Sdílet prostřednictvím


Vynucení licencování a transactability (Public Preview)

Při vytváření vizuálů Power BI ke stažení na AppSource teď můžete spravovat a vynucovat jejich licence pomocí systémů Microsoftu. Koncový uživatel přiřazuje a spravuje licence pomocí známých nástrojů, jako je Centrum pro správu Microsoftu 365, a rozhraní API pro licencování umožňuje vynutit tyto licence a zajistit, aby vizuály mohli vykreslit jenom licencovaní uživatelé.

Proces vynucení licencí

Následující tabulka ukazuje kroky, které se týkají správy licencí vizuálů prostřednictvím Microsoftu:

Krok Detaily
Vytvoření nabídky v Partnerském centru Zvolte transakce prostřednictvím komerčního systému Microsoftu. Povolte Microsoftu spravovat licence. Nastavte ceny a dostupnost.
Přidání vynucení licencí do balíčku vizuálu Power BI Vytvořte nebo překonfigurujte balíček tak, aby používal licenci modulu runtime Power BI, která vynucuje licencování podle přístupu jednotlivých uživatelů.
Zákazníci zjistí vaši nabídku v AppSource a kupí si předplatné. Když si zákazníci koupí nabídku v AppSource, získají také licence pro vizuál Power BI.
Zákazníci spravují svá předplatná a přiřazují nebo nepřiřazují uživatelské licence Zákazníci spravují předplatná a přiřazují licence pro tyto vizuály a nabídky v Centrum pro správu Microsoftu 365 stejně jako u kteréhokoliv jiného předplatného, jako je Office nebo Power BI.
Vynucení kontrol za běhu Poskytněte svým zákazníkům jednotné prostředí pomocí našich předefinovaných rozhraní API k vynucení kontrol licencí za běhu.
Zobrazení sestav pro růst paliva Získejte přehled o výnosech, informacích o výplatách a podrobnostech o objednávce a licenci. Umožňuje zobrazit informace o licencích a objednávkách zakoupených, obnovených a zrušených v průběhu času a podle zeměpisu.

Rozhraní API pro licencování

Rozhraní API pro licencování umožňuje vývojářům vizuálů Power BI vynucovat licence vizuálů Power BI. Rozhraní API podporuje načtení informací o licencích vizuálů Power BI přiřazených uživateli Power BI. Umožňuje také aktivovat oznámení související s licencováním, která se zobrazí ve vizuálu Power BI, a informovat uživatele, že si musí koupit chybějící licence. Vizuál by neměl zobrazovat vlastní uživatelské prostředí licencování, místo toho použijte jedno z předdefinovaných oznámení podporovaných Power BI, jak je podrobně popsáno v následujících částech.

Další informace o licencování Power BI najdete vynucování licencí.

Poznámka:

Rozhraní API pro licencování je k dispozici ve verzi 4.7. Pokud chcete zjistit, kterou verzi používáte, podívejte se do apiVersion souboru pbiviz.json .

Načtení plánů služeb vizuálu přiřazených aktivnímu uživateli

Pokud chcete získat přiřazené plány služeb, přidejte volání getAvailableServicePlans (dostupné prostřednictvím IVisualLicenseManager). Z hlediska výkonu se pokuste o načtení licencí jednou, nejlépe v constructor voláních nebo init voláních, a uložte výsledek.
Po načtení licencí se během relace Power BI ukládají do mezipaměti na straně hostitele Power BI a všechna další volání, která vrátí data uložená v mezipaměti.

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

Načtení licencí může být dlouhá operace, takže getAvailableServicePlans volání je asynchronní volání a mělo by se zpracovat jako takový v kódu.
Jako odpověď na volání metody LicenseInfoResult je vrácen objekt.

export interface LicenseInfoResult {
        plans: ServicePlan[] | undefined;
        isLicenseUnsupportedEnv: boolean; 
        isLicenseInfoAvailable: boolean; 
    }
  • plans – pole plánů služeb zakoupených aktivním uživatelem pro tento vizuál. (Licence zakoupené pro všechny ostatní vizuály nejsou součástí odpovědi.)
    ServicePlan obsahuje identifikátor služby (spIdentifier) a jeho stav (ServicePlanState).

    • spIdentifier: řetězcová hodnota ID služby vygenerovaná při konfiguraci plánů vaší nabídky v Partnerském centru (viz následující příklad) Snímek obrazovky znázorňující příklad řetězce ID služby

    • state – výčet (ServicePlanState), který představuje stav přiřazených plánů.
      Podporované stavy plánu služeb:

      Stát Popis
      Neaktivní Označuje, že licence není aktivní a neměla by se používat pro výhody zřizování.
      Aktivní Označuje, že licence je aktivní a dá se použít pro výhody zřizování.
      Upozorňující Označuje, že licence je pravděpodobně v období odkladu kvůli porušení platby.
      Dočasně blokován. Označuje, že licence je pravděpodobně pozastavena kvůli porušení platby.
      Neznámý Hodnota Microsoft Sentinelu

      Pouze aktivní stavy a stavy upozornění představují použitelnou licenci. Všechny ostatní státy by se měly považovat za nepovolitelné licence.

  • isLicenseUnsupportedEnv – označuje, že se vizuál vykresluje v prostředí Power BI, které nepodporuje správu nebo vynucování licencí. V současné době následující prostředí Power BI nepodporují správu licencí ani vynucení licencí:

    • Vložené – publikování na webu, vložení PaaS
    • Národní/regionální cloudy (závisí na obecné podpoře transaktability v národních/regionálních cloudech)
    • RS Server (žádná plánovaná podpora)
    • Export (PDF\PPT) pomocí rozhraní REST API
  • isLicenseInfoAvailable – Určuje, jestli se dají načíst informace o licencích. K chybě při načítání licencí může dojít v případě, že uživatel Power BI Desktopu není přihlášený nebo není připojený k internetu (offline). U webu může načítání licencí selhat kvůli dočasnému výpadku služby.

Příklad volání getAvailableServicePlans pro načtení plánů služeb uživatele pro tento vizuál:

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

Poznámka:

Tento příklad ukazuje, jak ověřit, jestli má uživatel pro tento vizuál platné plány. Pole plans může obsahovat různé spIdentifier hodnoty a každý identifikátor se může zobrazit vícekrát s různými stavy.

Upozornit uživatele, že chybí požadované licence

Platforma Power BI nabízí několik předvyhlevaných prostředí, která se dají použít k upozornění:

  • Licence by se měly zakoupit, aby bylo možné využívat možnosti úplného vizuálu.
  • Funkce konkrétního vizuálu je zablokovaná kvůli chybějícím licencím
  • Celý vizuál je zablokovaný kvůli chybějícím licencím
  • Celý vizuál je blokovaný, protože používané prostředí Power BI nepodporuje správu licencí\vynucení
export interface IVisualLicenseManager {
        notifyLicenseRequired(notificationType: LicenseNotificationType): IPromise<boolean>;
        notifyFeatureBlocked(tooltip: string): IPromise<boolean>;
        clearLicenseNotification(): IPromise<boolean>;
    }

Příklad volání 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);
        });
}

Obecná ikona označující, že chybí požadovaná licence

Voláním LicenseNotificationType.General můžete notifyLicenseRequired zobrazit ikonu jako součást kontejneru vizuálu.
Po aktivaci se ikona zachovají po celou dobu života vizuálu, dokud clearLicenseNotification se nevolají nebo notifyLicenseRequired se volají.

Poznámka:

Oznámení LicenseNotificationType.General se vynucuje jenom z prostředí, které podporuje správu licencování a ve scénářích úprav Power BI. Volání v nepodporovaném prostředí nebo v případě, že je sestava v režimu čtení nebo na řídicím panelu, nepoužije ikonu a vrátí se false v odpovědi volání.

Příklad zobrazení vizuálu, který obsahuje obecnou ikonu "Licence jsou povinné":

Snímek obrazovky se zobrazením vizuálu, který obsahuje obecnou ikonu *licence*

Snímek obrazovky s vizuálem, který obsahuje rozbalenou ikonu *licenses are required* (Vyžaduje se licence).

Překrytí zobrazení vizuálu chybějícím oznámením o licenci

Voláním notifyLicenseRequired LicenseNotificationType.VisualIsBlocked překryjte zobrazení vizuálu oznámením, že vizuál je zablokovaný, protože chybí požadované licence.
Po aktivaci se toto oznámení zachovají po celou dobu životnosti vizuálu, dokud clearLicenseNotification se nevolají nebo notifyLicenseRequired se volají.

Příklad zobrazení vizuálu obsahujícího oznámení o zablokování vizuálu Power BI Desktop zobrazí jenom možnost Získat licenci :

Vizuální zobrazení obsahující oznámení o zablokování vizuálu

Překryv zobrazení vizuálu oznámením o nepodporovaném prostředí

Voláním LicenseNotificationType.UnsupportedEnv překryjte notifyLicenseRequired zobrazení vizuálu oznámením, že vizuál je blokovaný, protože power BI nepoužívá správu licencí\vynucení.
Po aktivaci se ikona zachovají po celou dobu života vizuálu, dokud clearLicenseNotification se nevolají nebo notifyLicenseRequired se volají.

Poznámka:

Oznámení LicenseNotificationType.UnsupportedEnv se vynucuje pouze v kontextu nepodporovaného licenčního prostředí. Volání v jakémkoli jiném prostředí nepoužije oznámení a vrátí se false v odpovědi volání.

Příklad zobrazení vizuálu obsahujícího oznámení Nepodporované prostředí:

Snímek obrazovky se zobrazením vizuálu s oznámením Nepodporované prostředí

Zobrazení banneru s oznámením, že se nepodařilo použít funkce konkrétního vizuálu

Když použijete funkce konkrétního vizuálu, potřebujete chybějící licence, můžete použít notifyFeatureBlocked volání, které zobrazí automaticky otevíraný banner jako součást kontejneru vizuálu. Banner také podporuje vlastní popis, který můžete nastavit a použít k poskytnutí dalších informací o funkci, která aktivovala oznámení.

Poznámka:

Funkce je blokovaná oznámení se vynucuje pouze v případech, kdy platí obě následující podmínky:

  • Volá se z podporovaného licenčního prostředí.
  • Blokování překrytí se nepoužije (LicenseNotificationType.UnsupportedEnv, LicenseNotificationType.VisualIsBlocked).

Volání tohoto oznámení v nepodporovaném prostředí nepoužije oznámení a vrátí se false v odpovědi na volání.

Poznámka:

Pokud chcete podporovat lokalizované prostředí Power BI, doporučujeme udržovat lokalizované verze popisů, které se používají. K načtení jazyka národního prostředí Power BI použijte lokalizační rozhraní API .

Po aktivaci se banner zobrazí po dobu 10 sekund nebo dokud se neaktivuje jiný banner "funkce blokovaný", nebo dokud clearLicenseNotification se nevolá (cokoli přijde jako první).

Příklad zobrazení vizuálu obsahujícího oznámení banneru "Funkce je blokované":

Snímek obrazovky se zobrazením vizuálu s oznámením o blokování funkce

Testování licencovaného vizuálu

Testování konce licencovaného vizuálu před zveřejněním veřejně dostupného vizuálu:

  • Pokud vytváříte úplně novou nabídku, přidejte vizuál jako soukromý plán testovacího zákaznického účtu. Nabídka je viditelná pouze pro tento testovací účet pro nákup. Tento účet použijte k ověření nabídky před jejím zveřejněním.
  • Pokud už je vizuál dostupný v AppSource a chcete ho upgradovat na licencovaný vizuál, nemůžete ho nastavit jako soukromý plán, protože se tím vizuál skryje z AppSource a stávající uživatelé k němu nebudou mít přístup. V současné době neexistuje způsob, jak otestovat publikovaný vizuál až do konce. Otestujte ho stejným způsobem, jakým jste testovali původní vizuál na AppSource, a to napodobováním hodnoty licenčního rozhraní API, abyste zkontrolovali různé možnosti.

Úvahy a omezení

  • Popis pro banner funkce je omezený na 500 znaků.
  • Popis pro banner funkce vyžaduje lokalizaci.
  • Sdružování licencí (tj. jedna licence, která pokrývá více nabídek od stejného vydavatele), se zatím nepodporuje.

Publikování vlastního vizuálu Power BI

Máte ještě další otázky? Zkuste se zeptat Komunita Power BI