Lisensiering og tverraktiverbarhetshåndhevelse (offentlig forhåndsversjon)

Når du oppretter Power BI-visualobjekter for nedlasting på AppSource, kan du nå administrere og håndheve lisensene ved hjelp av Microsoft-systemer. Sluttbrukeren tilordner og administrerer lisenser ved hjelp av kjente verktøy som Administrasjonssenter for Microsoft 365, og lisensierings-API-en lar deg håndheve disse lisensene og sikre at bare lisensierte brukere kan gjengi visualobjektene.

Lisenshåndhevelsesprosess

Tabellen nedenfor illustrerer trinnene som er involvert i å administrere de visuelle lisensene gjennom Microsoft:

Trinn Detaljer
Opprette et tilbud i partnersenteret Velg å handle gjennom Microsoft Commerce-systemet. Aktiver Microsoft for å administrere lisenser. Angi priser og tilgjengelighet.
Legg til lisenshåndhevelse i Power BI-pakken for visualobjekter Opprett eller konfigurer pakken på nytt for å bruke kjøretidslisensen for Power BI, som håndhever lisensiering i henhold til hver brukers tilgang.
Kunder oppdager tilbudet ditt i AppSource og kjøper et abonnement Når kunder kjøper tilbudet ditt i AppSource, får de også lisenser for Power BI-visualobjektet.
Kunder administrerer abonnementene sine og tilordner/opphever tilordning av brukerlisenser Kunder administrerer abonnementer og tilordner lisenser for disse visualobjektene og tilbyr i Administrasjonssenter for Microsoft 365, akkurat som de gjør for andre abonnementer som Office eller Power BI.
Fremtving kjøretidskontroller Gi kundene en ensartet opplevelse ved å bruke våre out-of-the-box API-er til å håndheve kjøretidslisenskontroller.
Vis rapporter for drivstoffvekst Få innsikt i inntekter, utbetalingsinformasjon og ordre- og lisensdetaljer. Vis informasjon om lisenser og ordrer kjøpt, fornyet og kansellert over tid og geografi.

Lisensierings-API

Lisensierings-API-en gjør det mulig for power BI-visualobjektutviklere å håndheve power bi-visualobjektlisenser. API-en støtter henting av informasjonen om Power BI-visualobjektlisenser som er tilordnet Til Power BI-brukeren. Den aktiverer også utløser lisensieringsrelaterte varsler som vises på Power BI-visualobjektet, og informerer brukeren om at de må kjøpe de manglende lisensene. Visualobjektet bør ikke vise sin egen lisensierings-UX, i stedet bruke en av forhåndsdefinerte varsler som støttes av Power BI, som beskrevet nedenfor.

Mer informasjon om Power BI-lisensiering, kan du se lisenshåndhevelse.

Merk

Lisensierings-API-en er tilgjengelig fra versjon 4.7. Hvis du vil finne ut hvilken versjon du bruker, kan du se apiVersion i pbiviz.json-filen .

Hent visualobjektets serviceplaner som er tilordnet den aktive brukeren

Hvis du vil få tilordnet serviceplaner, kan du legge til getAvailableServicePlans en samtale (tilgjengelig via IVisualLicenseManager). Fra ytelsesperspektiv kan du prøve å hente lisensene én gang, fortrinnsvis i constructor eller init samtalene, og lagre resultatet.
Når lisenser er hentet, bufres de på Power BI-vertssiden under Power BI-økten, og eventuelle videre kall til det samme vil returnere de bufrede dataene.

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

Henting av lisensene kan være en lang operasjon, derfor getAvailableServicePlans er kallet et asynkront kall og bør håndteres som sådan i koden.
Som svar på kall av metoden returneres LicenseInfoResult objektet.

export interface LicenseInfoResult {
        plans: ServicePlan[] | undefined;
        isLicenseUnsupportedEnv: boolean; 
        isLicenseInfoAvailable: boolean; 
    }
  • plans – en matrise med serviceplaner kjøpt av den aktive brukeren for dette visualobjektet. (Lisenser som er kjøpt for andre visualobjekter, er ikke inkludert i svaret.)
    En ServicePlan inneholder tjenesteidentifikatoren (spIdentifier) og tilstanden (ServicePlanState).

    • spIdentifier: strengverdien for tjeneste-ID-en som genereres når du konfigurerer tilbudets planer i partnersenteret (se følgende eksempel) Screenshot showing an example of a Service ID string.

    • state – opplisting (ServicePlanState) som representerer tilstanden til de tilordnede planene.
      Støttede tjenesteplantilstander:

      Tilstand Bekrivelse
      Inaktive Angir at lisensen ikke er aktiv og ikke bør brukes til klargjøring av fordeler.
      Aktiv Angir at lisensen er aktiv og kan brukes til klargjøring av fordeler.
      Advarsel! Angir at lisensen er i løpeperiode som sannsynligvis skyldes brudd på betalingen.
      Midlertidig avbrutt Angir at lisensen er suspendert sannsynligvis på grunn av brudd på betalingen.
      Ukjent Sentinel-verdi.

      Bare de aktive og advarselsstatusene representerer en brukbar lisens. Alle andre stater bør behandles som ikke resulterer i en brukbar lisens.

  • isLicenseUnsupportedEnv – indikerer at visualobjektet gjengis i et Power BI-miljø som ikke støtter lisensadministrasjon eller håndhevelse. Følgende Power BI-miljøer støtter for øyeblikket ikke lisensadministrasjon eller lisenshåndhevelse:

    • Embedded – Publiser på nett, PaaS innebygging
    • Nasjonale/regionale skyer (avhenger av generell støtte for transactability i nasjonale/regionale skyer)
    • RS Server (ingen planlagt støtte)
    • Eksportering (PDF\PPT) ved hjelp av REST-API
  • isLicenseInfoAvailable – Angir om lisensinformasjonen kan hentes. Feil i henting av lisenser kan oppstå i tilfelle Power BI Desktop-brukeren ikke er logget på eller ikke er koblet til Internett (frakoblet). Henting av lisenser på nettet kan mislykkes på grunn av midlertidig tjenesteavbrudd.

Eksempel på anrop getAvailableServicePlans (ved hjelp av tjeneste-ID-en fra bildet ovenfor):

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);
        });

Varsle brukeren om at de nødvendige lisensene mangler

Power BI-plattformen inneholder flere opplevelser som kan brukes til å varsle:

  • Lisenser bør kjøpes for å kunne dra nytte av funksjonene til hele visualobjektet
  • Funksjonen for bestemte visualobjekter er blokkert på grunn av manglende lisenser
  • Hele visualobjektet er blokkert på grunn av manglende lisenser
  • Hele visualobjektet blokkeres fordi Power BI-miljøet som er i bruk, ikke støtter lisensadministrasjon\håndhevelse
export interface IVisualLicenseManager {
        notifyLicenseRequired(notificationType: LicenseNotificationType): IPromise<boolean>;
        notifyFeatureBlocked(tooltip: string): IPromise<boolean>;
        clearLicenseNotification(): IPromise<boolean>;
    }

Generelt-ikon som angir at en nødvendig lisens mangler

Bruk notifyLicenseRequired samtale med LicenseNotificationType.General til å vise et ikon som en del av beholderen for visualobjektet.
Når det utløses, bevares ikonet gjennom hele levetiden til clearLicenseNotification eller notifyLicenseRequired kalles.

Merk

Varselet LicenseNotificationType.General fremtvinges bare når begge gjelder: støttes for lisensieringsmiljø og Power BI Edit-scenarier. Hvis du kaller dette i et miljø som ikke støttes, eller når rapporten er i lesemodus eller på instrumentbordet, brukes ikke ikonet og kommer tilbake false i anropets svar.

Eksempel på den visuelle visningen som inneholder ikonet «lisenser kreves» generelt:

visual display containing the

visual display containing the

Overlegg visningen av visualobjektet med en manglende lisensvarsling

Bruk notifyLicenseRequired samtale med LicenseNotificationType.VisualIsBlocked for å legge til visualobjektets visning med et varsel om at visualobjektet er blokkert siden nødvendige lisenser ble funnet manglende.
Når den utløses, bevares dette varselet gjennom hele levetiden til clearLicenseNotification eller notifyLicenseRequired kalles.

Eksempel på den visuelle visningen som inneholder varselet om blokkert visualobjekt. Power BI Desktop viser bare alternativet Få en lisens :

Visual display containing the *visual blocked* notification.

Overlegg visningen av visualobjektet med et miljøvarsel som ikke støttes

Bruk notifyLicenseRequired samtale med LicenseNotificationType.UnsupportedEnv for å legge til visualobjektets visning med et varsel om at visualobjektet er blokkert siden Power BI i bruk ikke støtter lisensadministrasjon\håndhevelse.
Når det utløses, bevares ikonet gjennom hele levetiden til clearLicenseNotification eller notifyLicenseRequired kalles.

Merk

Varselet LicenseNotificationType.UnsupportedEnv håndheves bare når det kalles inn konteksten som ikke støttes for lisensieringsmiljøet. Hvis du kaller dette i andre miljøer, brukes ikke varselet og kommer tilbake false i anropets svar.

Eksempel på visningen av visualobjektet som inneholder varselet Miljø som ikke støttes:

visual display containing the

Vis et banner som varsler om at funksjonaliteten til et bestemt visualobjekt ikke kan brukes

Når du bruker funksjonaliteten til et bestemt visualobjekt, krever lisenser som ble funnet manglende, kan du bruke anropet notifyFeatureBlocked som vil dukke opp et banner som en del av visualobjektets beholder. Banneret støtter også et egendefinert verktøytips som kan angis av deg og brukes til å gi tilleggsinformasjon om funksjonen som utløste varselet.

Merk

Funksjonen er blokkert varsling håndheves bare når den kalles i konteksten som støttes for lisensieringsmiljø, og i tilfelle blokkering av overlegg ikke brukes (LicenseNotificationType.UnsupportedEnv, LicenseNotificationType.VisualIsBlocked). Hvis du kaller dette varselet i et miljø som ikke støttes, brukes ikke varselet og kommer tilbake false i anropets svar.

Merk

Hvis du vil støtte lokalisert Power BI-miljø, anbefaler vi at du vedlikeholder lokaliserte versjoner av verktøytipsene i bruk. Bruk lokaliserings-API-en til å hente språk for nasjonal innstilling i Power BI.

Når det utløses, vises banneret i 10 sekunder, eller til et annet «funksjons blokkert»-banner utløses, eller til clearLicenseNotification det kalles (det som kommer først).

Eksempel på den visuelle visningen som inneholder bannervarslingen «funksjon blokkert» :

visual display containing the

Test et lisensiert visualobjekt

Slik tester du et lisensiert visualobjekt fra ende til slutt før du gjør det offentlig tilgjengelig:

  • Hvis du oppretter et helt nytt tilbud, kan du legge til visualobjektet som en privat plan for en testkundekonto. Tilbudet vil bare være synlig for denne testkontoen for kjøp. Bruk denne kontoen til å validere tilbudet før du gjør det offentlig.
  • Hvis visualobjektet allerede er tilgjengelig i AppSource og du vil oppgradere det til et lisensiert visualobjekt, kan du ikke gjøre det til et privat abonnement fordi det vil skjule visualobjektet fra AppSource, og de eksisterende brukerne har ikke tilgang til det. Det er for øyeblikket ingen måte å teste et publisert visualobjekt fra ende til ende på. Test det på samme måte som du testet det opprinnelige visualobjektet til AppSource, ved å spotte lisensierings-API-verdien for å kontrollere de ulike mulighetene.

Hensyn og begrensninger

  • Verktøytips for funksjonsbanner er begrenset av 500 tegn.
  • Verktøytips for funksjonsbanner krever lokalisering.
  • Lisensbunling (dvs. én lisens som dekker flere tilbud fra samme utgiver) støttes ennå ikke.

Publiser et egendefinert Visualobjekt i Power BI

Har du flere spørsmål? Prøv å spørre Power BI-fellesskap