Skip to main content
cancel
Showing results forย 
Search instead forย 
Did you mean:ย 

Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!

Reply
jesuslogmein
New Contributor III

custom visual write back

Hi I am trying to create a custom visual , my ts script is this:

import powerbi from "powerbi-visuals-api";
import IVisual = powerbi.extensibility.visual.IVisual;
import VisualConstructorOptions = powerbi.extensibility.visual.VisualConstructorOptions;
import IVisualHost = powerbi.extensibility.visual.IVisualHost;
import VisualUpdateOptions = powerbi.extensibility.visual.VisualUpdateOptions;

export class Visual implements IVisual {
    private target: HTMLElement;
    private host: IVisualHost;

    constructor(options: VisualConstructorOptions) {
        this.target = options.element;
        this.host = options.host;

        // Crear un botรณn para enviar el filtro "OK"
        this.target.innerHTML = `<button id="btnSendOk">Validacion</button>`;

        const btn = this.target.querySelector("#btnSendOk") as HTMLButtonElement;
        btn.addEventListener("click", () => this.sendOkToModel());
    }

    // Mรฉtodo para enviar el filtro al modelo
    sendOkToModel() {
        const filter = {
            $schema: "http://powerbi.com/product/schema#basic",
            target: {
                table: "tb_llamadas",  // <-- Cambia esto segรบn el nombre real de tu tabla
                column: "transcription_items.transcription_time"  // <-- Cambia esto a la columna deseada
            },
            operator: "In",
            values: ["OK"]
        };

        this.host.applyJsonFilter(
            filter,
            "general",      // objectName
            "merge",        // propertyName (corregido: ahora es un string, no un enum)
            undefined       // identities (opcional)
        );

        console.log("Filtro 'OK' aplicado");
    }

    update(options: VisualUpdateOptions) {
        // Aquรญ podrรญas actualizar visualizaciรณn basada en datos si lo necesitas
    }
}

 

but it fails me, the only thing I want is that the user when he clicks sends OK to the semantic model of the pbi.

help!!!

1 REPLY 1
BeaBF
Valued Contributor III

@jesuslogmein Hi! Try with:

 

import powerbi from "powerbi-visuals-api";
import IVisual = powerbi.extensibility.visual.IVisual;
import VisualConstructorOptions = powerbi.extensibility.visual.VisualConstructorOptions;
import IVisualHost = powerbi.extensibility.visual.IVisualHost;
import VisualUpdateOptions = powerbi.extensibility.visual.VisualUpdateOptions;
import { FilterAction, FilterType, IBasicFilter } from "powerbi-models";

export class Visual implements IVisual {
private target: HTMLElement;
private host: IVisualHost;

constructor(options: VisualConstructorOptions) {
this.target = options.element;
this.host = options.host;

// Add a button to send "OK" filter
this.target.innerHTML = `<button id="btnSendOk">Validaciรณn</button>`;

const btn = this.target.querySelector("#btnSendOk") as HTMLButtonElement;
btn.addEventListener("click", () => this.sendOkToModel());
}

sendOkToModel() {
const filter: IBasicFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "tb_llamadas",
column: "transcription_items.transcription_time"
},
operator: "In",
values: ["OK"],
filterType: FilterType.Basic
};

this.host.applyJsonFilter(
filter,
"general", // objectName โ€” can be any string
"filter", // propertyName โ€” must be a string
FilterAction.merge // This is the correct enum
);

console.log("Filtro 'OK' aplicado");
}

update(options: VisualUpdateOptions) {
// Not used for this button-only visual
}
}

 

BBF


๐Ÿ’ก Did I answer your question? Mark my post as a solution!

๐Ÿ‘ Kudos are appreciated

๐Ÿ”ฅ Proud to be a Super User!

Community News image 1920X1080.png

Helpful resources

Announcements
Sticker Challenge 2026 Carousel

Join our Community Sticker Challenge 2026

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

January Power BI Update Carousel

Power BI Monthly Update - January 2026

Check out the January 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Users online (7,728)