Dela via


Tillämpning av licensiering och transactability (offentlig förhandsversion)

När du skapar visuella Power BI-objekt för nedladdning på AppSource kan du nu hantera och tillämpa deras licenser med hjälp av Microsoft-system. Slutanvändaren tilldelar och hanterar licenser med välbekanta verktyg som Administrationscenter för Microsoft 365, och med licensierings-API:et kan du framtvinga dessa licenser och se till att endast licensierade användare kan återge de visuella objekten.

Licenstillämpningsprocess

I följande tabell visas de steg som ingår i hanteringen av dina visuella licenser via Microsoft:

Steg Details
Skapa ett erbjudande i Partnercenter Välj att handla via Microsofts handelssystem. Aktivera Microsoft för att hantera licenser. Ange priser och tillgänglighet.
Lägga till licenstillämpning i ditt visuella Power BI-paket Skapa eller konfigurera om paketet så att det använder Power BI-körningslicensen, som tillämpar licensiering enligt varje användares åtkomst.
Kunder upptäcker ditt erbjudande i AppSource och köper en prenumeration När kunder köper ditt erbjudande i AppSource får de även licenser för det visuella Power BI-objektet.
Kunder hanterar sina prenumerationer och tilldelar/avtilldelar användarlicenser Kunder hanterar prenumerationer och tilldelar licenser för dessa visuella objekt och erbjudanden i Administrationscenter för Microsoft 365, precis som de gör för någon av sina andra prenumerationer som Office eller Power BI.
Framtvinga körningskontroller Ge dina kunder en enhetlig upplevelse genom att använda våra färdiga API:er för att tillämpa körningslicenskontroller.
Visa rapporter för att driva tillväxt Få insikter om intäkter, utbetalningsinformation och beställnings- och licensinformation. Visa information om licenser och beställningar som köpts, förnyats och avbrutits över tid och efter geografi.

Licensierings-API

Med licensierings-API :et kan utvecklare av visuella Power BI-objekt framtvinga licenser för visuella Power BI-objekt. API:et stöder hämtning av information om visuella Power BI-licenser som har tilldelats Power BI-användaren. Det gör det också möjligt att utlösa licensieringsrelaterade meddelanden som visas i det visuella Power BI-objektet och informera användaren om att de behöver köpa de saknade licenserna. Det visuella objektet bör inte visa ett eget licensierings-UX, utan i stället använda en av de fördefinierade meddelanden som stöds av Power BI enligt beskrivningen nedan.

Läs mer om Power BI-licensiering i Licenstillämpning.

Kommentar

Licensierings-API:et är tillgängligt från version 4.7. Om du vill ta reda på vilken version du använder kontrollerar apiVersion du i filen pbiviz.json .

Hämta det visuella objektets tjänstplaner som har tilldelats till den aktiva användaren

Om du vill tilldela tjänstplaner lägger du till ett anrop till getAvailableServicePlans (tillgängligt via IVisualLicenseManager). Från prestandaperspektiv försöker du hämta licenserna en gång, helst i anropen constructorinit eller och spara resultatet.
När licenser har hämtats cachelagras de på Power BI-värdsidan under Power BI-sessionen och eventuella ytterligare anrop till samma kommer att returnera cachelagrade data.

export interface IVisualLicenseManager {
        getAvailableServicePlans(): IPromise<powerbi.extensibility.visual.LicenseInfoResult>;
    }

Det kan vara en lång åtgärd att hämta licenserna, vilket innebär att anropet getAvailableServicePlans är ett asynkront anrop och bör hanteras som sådant i koden.
Som svar på att anropa metoden LicenseInfoResult returneras objektet.

export interface LicenseInfoResult {
        plans: ServicePlan[] | undefined;
        isLicenseUnsupportedEnv: boolean; 
        isLicenseInfoAvailable: boolean; 
    }
  • plans – en matris med tjänstplaner som köpts av den aktiva användaren för det här visuella objektet. (Licenser som köpts för andra visuella objekt ingår inte i svaret.)
    En ServicePlan innehåller tjänstidentifieraren (spIdentifier) och dess tillstånd (ServicePlanState).

    • spIdentifier: strängvärdet för tjänst-ID:t som genererades när du konfigurerade erbjudandets planer i Partnercenter (se följande exempel) Screenshot showing an example of a Service ID string.

    • state – enum (ServicePlanState) som representerar tillståndet för de tilldelade planerna.
      Tjänstplanstillstånd som stöds:

      Stat/län beskrivning
      Inaktiv Anger att licensen inte är aktiv och inte bör användas för att etablera förmåner.
      Aktivt Anger att licensen är aktiv och kan användas för att etablera fördelar.
      Varning Anger att licensen är i respitperiod som sannolikt beror på betalningsöverträdelse.
      Inaktiverad Anger att licensen är avstängd sannolikt på grund av betalningsöverträdelse.
      Okänt Sentinel-värde.

      Endast aktiva tillstånd och varningstillstånd representerar en användbar licens. Alla andra tillstånd bör behandlas som inte resulterar i en användbar licens.

  • isLicenseUnsupportedEnv – anger att det visuella objektet återges i en Power BI-miljö som inte stöder licenshantering eller tillämpning. För närvarande stöder inte följande Power BI-miljöer licenshantering eller licenstillämpning:

    • Inbäddad – Publicera på webben, PaaS-inbäddning
    • Nationella/regionala moln (beror på allmänt stöd för transaktabilitet i nationella/regionala moln)
    • RS Server (inget planerat stöd)
    • Exportera (PDF\PPT) med hjälp av REST API
  • isLicenseInfoAvailable – Anger om licensinformationen kunde hämtas. Fel vid hämtning av licenser kan inträffa om Power BI Desktop-användaren inte är inloggad eller inte är ansluten till Internet (offline). För webben kan hämtning av licenser misslyckas på grund av ett tillfälligt avbrott i tjänsten.

Exempel på anrop getAvailableServicePlans (med tjänst-ID:t från bilden ovan):

this.licenseManager.getAvailableServicePlans().then((result: LicenseInfoResult) => {
            this.notificationType = result.isLicenseUnsupportedEnv ?  powerbi.LicenseNotificationType.UnsupportedEnv : powerbi.LicenseNotificationType.General;
            this.hasServicePlans = !!(result.plans && result.plans.length && result.plans[0].spIdentifier == "test_isvconnect1599092224747.powerbivisualtransact.plan1" && 
                ( result.plans[0].state == powerbi.ServicePlanState.Active ||  result.plans[0].state == powerbi.ServicePlanState.Warning));
            
            // display notification if the user doesn't have licenses
            if (!this.hasServicePlans) {
                this.licenseManager.notifyLicenseRequired(this.notificationType).then((value) => {
                    if (value) {
                        this.isIconDisplayed = true;
                    }
                }).catch((err) => {
                    console.log('ERROR', err);
                })
            }
        }).catch((err) => {
            this.hasServicePlans = undefined;
            console.log(err);
        });

Meddela användaren att de nödvändiga licenserna saknas

Power BI-plattformen innehåller flera färdiga funktioner som kan användas för att meddela:

  • Licenser bör köpas för att kunna dra nytta av fullständiga visuella funktioner
  • Funktionen för vissa visuella objekt blockeras på grund av saknade licenser
  • Hela det visuella objektet blockeras på grund av saknade licenser
  • Hela det visuella objektet blockeras eftersom Den Power BI-miljö som används inte stöder licenshantering\tvingande
export interface IVisualLicenseManager {
        notifyLicenseRequired(notificationType: LicenseNotificationType): IPromise<boolean>;
        notifyFeatureBlocked(tooltip: string): IPromise<boolean>;
        clearLicenseNotification(): IPromise<boolean>;
    }

Allmän ikon som anger att en nödvändig licens saknas

Använd notifyLicenseRequired anrop med LicenseNotificationType.General för att visa en ikon som en del av det visuella objektets container.
När den har utlösts bevaras ikonen under hela det visuella objektets livslängd tills clearLicenseNotification eller notifyLicenseRequired anropas.

Kommentar

Meddelandet LicenseNotificationType.General framtvingas endast när båda tillämpas: stöds för licensieringsmiljö och Power BI-redigeringsscenarier. Om du anropar detta i en miljö som inte stöds eller när rapporten är i läsläge eller på instrumentpanelen tillämpas inte ikonen och returneras false i samtalets svar.

Exempel på den visuella visning som innehåller den allmänna ikonen "licenser krävs":

visual display containing the

visual display containing the

Överlägg det visuella objektets visning med ett licensmeddelande som saknas

Använd notifyLicenseRequired anrop med LicenseNotificationType.VisualIsBlocked för att lägga över det visuella objektets visning med ett meddelande om att det visuella objektet är blockerat eftersom nödvändiga licenser hittades saknade.
När det här meddelandet har utlösts bevaras det under hela det visuella objektets livslängd tills clearLicenseNotification eller notifyLicenseRequired anropas.

Exempel på den visuella visning som innehåller det visuella objektets blockerade meddelande. Power BI Desktop visar endast alternativet Hämta en licens :

Visual display containing the *visual blocked* notification.

Överlägg det visuella objektets visning med en miljöavisering som inte stöds

Använd notifyLicenseRequired anrop med LicenseNotificationType.UnsupportedEnv för att lägga över det visuella objektets visning med ett meddelande om att det visuella objektet är blockerat eftersom Power BI som används inte stöder licenshantering\tillämpning.
När den har utlösts bevaras ikonen under hela det visuella objektets livslängd tills clearLicenseNotification eller notifyLicenseRequired anropas.

Kommentar

Meddelandet LicenseNotificationType.UnsupportedEnv framtvingas endast när det anropas i samband med att licensieringsmiljön inte stöds. Om du anropar detta i någon annan miljö tillämpas inte meddelandet och returneras false i samtalets svar.

Exempel på den visuella visning som innehåller meddelandet "Miljö som inte stöds" :

visual display containing the

Visa en banderoll som meddelar att det inte gick att använda en specifik visuell funktion

När du tillämpar en specifik visuell funktion kräver licenser som hittades saknade, kan du använda anropet notifyFeatureBlocked som kommer att dyka upp en banderoll som en del av det visuella objektets container. Banderollen har också stöd för en anpassad knappbeskrivning som kan anges av dig och som används för att ge ytterligare information om funktionen som utlöste meddelandet.

Kommentar

Funktionen blockeras endast när den anropas i kontexten för licensieringsmiljön och om blockering av överlägg inte tillämpas (LicenseNotificationType.UnsupportedEnv, LicenseNotificationType.VisualIsBlocked). Om du anropar det här meddelandet i en miljö som inte stöds tillämpas inte meddelandet och returneras false i samtalets svar.

Kommentar

För att stödja lokaliserad Power BI-miljö rekommenderar vi att du underhåller lokaliserade versioner av knappbeskrivningarna som används. Använd lokaliserings-API :et för att hämta språk för Power BI-språk.

När den har utlösts visas banderollen i 10 sekunder, eller tills en annan "funktionsblockerad" banderoll utlöses, eller tills clearLicenseNotification den anropas (vad som än kommer först).

Exempel på den visuella visning som innehåller meddelandet "funktionen blockerade" banderollen:

visual display containing the

Testa ett licensierat visuellt objekt

Så här testar du ett licensierat visuellt objekt från slutpunkt till slutpunkt innan det blir offentligt tillgängligt:

  • Om du skapar ett helt nytt erbjudande lägger du till det visuella objektet som en privat plan för ett testkundkonto. Erbjudandet visas endast för det här testkontot för inköp. Använd det här kontot för att verifiera erbjudandet innan du gör det offentligt.
  • Om ditt visuella objekt redan är tillgängligt i AppSource och du vill uppgradera det till ett licensierat visuellt objekt kan du inte göra det till en privat plan eftersom det döljer det visuella objektet från AppSource och dina befintliga användare inte har åtkomst till det. Det finns för närvarande inget sätt att testa ett publicerat visuellt objekt från slutpunkt till slutpunkt. Testa det på samma sätt som du testade det ursprungliga visuella objektet till AppSource genom att håna api-värdet för licensiering för att kontrollera de olika möjligheterna.

Beaktanden och begränsningar

  • Knappbeskrivning för funktionsbanderoll begränsas av 500 tecken.
  • Knappbeskrivning för funktionsbanderollen kräver lokalisering.
  • Licenspaketering (dvs. en licens som omfattar flera erbjudanden från samma utgivare) stöds ännu inte.

Publicera ett anpassat visuellt Power BI-objekt

Har du fler frågor? Prova att fråga Power BI Community