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 i följande avsnitt.
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 constructor
init
eller och spara resultatet.
När licenser har hämtats cachelagras de på Power BI-värdsidan under Power BI-sessionen och ytterligare anrop till samma returnerar 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)
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. Aktiv 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 Microsoft 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
för att hämta användarens tjänstplaner för det här visuella objektet:
private currentUserValidPlans: ServicePlan[] | undefined;
private hasServicePlans: boolean | undefined;
private isLicenseUnsupportedEnv: boolean | undefined;
this.licenseManager.getAvailableServicePlans()
.then(({ plans, isLicenseUnsupportedEnv, isLicenseInfoAvailable }: LicenseInfoResult) => {
if (isLicenseInfoAvailable && !isLicenseUnsupportedEnv) {
this.currentUserValidPlans = plans?.filter(({ spIdentifier, state }) =>
(state === powerbi.ServicePlanState.Active || state === powerbi.ServicePlanState.Warning)
);
this.hasServicePlans = !!currentUserValidPlans?.length;
}
this.isLicenseUnsupportedEnv = isLicenseUnsupportedEnv;
}).catch((err) => {
this.currentUserValidPlans = undefined;
this.hasServicePlans = undefined;
console.log(err);
});
Kommentar
Det här exemplet visar bara hur du kontrollerar om användaren har giltiga planer för det här visuella objektet. Matrisen plans
kan innehålla olika spIdentifier
värden och varje identifierare kan visas flera gånger med olika tillstånd.
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>;
}
Exempel på samtal notifyLicenseRequired
:
private defaultNotificationType: powerbi.LicenseNotificationType = powerbi.LicenseNotificationType.General;
private isNotificaitonDisplayed: boolean = false;
if (!this.isNotificaitonDisplayed) {
const notificationType = this.isLicenseUnsupportedEnv ? powerbi.LicenseNotificationType.UnsupportedEnv : this.defaultNotificationType
this.licenseManager.notifyLicenseRequired(this.getNotificationType())
.then((value) => {
this.isNotificaitonDisplayed = value;
}).catch((err) => {
console.log(err);
});
}
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 från en miljö som stöder licenshantering och för 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":
Ö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 :
Ö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. Att anropa detta i någon annan miljö tillämpar inte meddelandet och returnerar false
i samtalets svar.
Exempel på den visuella visning som innehåller meddelandet "Miljö som inte stöds" :
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 visar en popup-banderoll som en del av det visuella objektets container. Banderollen stöder också en anpassad knappbeskrivning som du kan ange och använda för att ange ytterligare information om funktionen som utlöste meddelandet.
Kommentar
Funktionen blockeras endast när båda följande villkor gäller:
- Den anropas från en licensmiljö som stöds
- Blockering av överlägg tillämpas inte (
LicenseNotificationType.UnsupportedEnv
,LicenseNotificationType.VisualIsBlocked
).
Att anropa det här meddelandet i en miljö som inte stöds tillämpar inte meddelandet och returnerar 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 den anropas clearLicenseNotification
(vad som än kommer först).
Exempel på den visuella visning som innehåller meddelandet "funktionen blockerade" banderollen:
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 är endast synligt 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.
Relaterat innehåll
Publicera ett anpassat visuellt Power BI-objekt
Har du fler frågor? Prova att fråga Power BI Community