Wymuszanie licencjonowania i transakcji (publiczna wersja zapoznawcza)

Podczas tworzenia wizualizacji usługi Power BI do pobrania w usłudze AppSource możesz teraz zarządzać licencjami i wymuszać je przy użyciu systemów firmy Microsoft. Użytkownik końcowy przypisuje licencje i zarządza nimi przy użyciu znanych narzędzi, takich jak Centrum administracyjne platformy Microsoft 365, a interfejs API licencjonowania umożliwia wymuszanie tych licencji i zapewnienie, że tylko licencjonowani użytkownicy mogą renderować wizualizacje.

Proces wymuszania licencji

W poniższej tabeli przedstawiono kroki związane z zarządzaniem licencjami wizualnymi za pośrednictwem firmy Microsoft:

Krok Szczegóły
Tworzenie oferty w Centrum partnerskim Wybierz transakcję za pośrednictwem systemu handlowego firmy Microsoft. Włącz firmie Microsoft zarządzanie licencjami. Ustawianie cen i dostępności.
Dodawanie wymuszania licencji do pakietu wizualizacji usługi Power BI Utwórz lub skonfiguruj ponownie pakiet do korzystania z licencji środowiska uruchomieniowego usługi Power BI, która wymusza licencjonowanie zgodnie z dostępem każdego użytkownika.
Klienci odkrywają ofertę w usłudze AppSource i kupują subskrypcję Gdy klienci kupują ofertę w usłudze AppSource, otrzymują również licencje dla wizualizacji usługi Power BI.
Klienci zarządzają swoimi subskrypcjami i przypisują/nieprzypisują licencjiużytkownika Klienci zarządzają subskrypcjami i przypisują licencje dla tych wizualizacji i ofert w Centrum administracyjne platformy Microsoft 365, podobnie jak w przypadku innych subskrypcji, takich jak Office lub Power BI.
Wymuszanie kontroli środowiska uruchomieniowego Zapewnij klientom jednolite środowisko, korzystając z naszych wbudowanych interfejsów API, aby wymusić kontrole licencji środowiska uruchomieniowego.
Wyświetlanie raportów w celu podsycania wzrostu Uzyskaj wgląd w przychody, informacje o wypłatach oraz szczegóły zamówienia i licencji. Wyświetl informacje o licencjach i zamówieniach zakupionych, odnowionych i anulowanych w czasie oraz według lokalizacji geograficznej.

Interfejs API licencjonowania

Interfejs API licencjonowania umożliwia deweloperom wizualizacji usługi Power BI wymuszanie licencji wizualizacji usługi Power BI. Interfejs API obsługuje pobieranie informacji na temat licencji wizualizacji usługi Power BI przypisanych do użytkownika usługi Power BI. Umożliwia również wyzwalanie powiadomień związanych z licencjonowaniem, które będą wyświetlane w wizualizacji usługi Power BI i informuje użytkownika o konieczności zakupu brakujących licencji. Wizualizacja nie powinna wyświetlać własnego środowiska użytkownika licencjonowania, zamiast tego użyj jednego z wstępnie zdefiniowanych powiadomień usługi Power BI, jak opisano poniżej.

Dowiedz się więcej o licencjonowaniu usługi Power BI, zobacz Wymuszanie licencji.

Uwaga

Interfejs API licencjonowania jest dostępny w wersji 4.7. Aby dowiedzieć się, której wersji używasz, sprawdź apiVersion plik pbiviz.json .

Pobieranie planów usługi wizualizacji przypisanych do aktywnego użytkownika

Aby uzyskać przypisane plany usług, dodaj wywołanie usługi getAvailableServicePlans (dostępne za pośrednictwem polecenia IVisualLicenseManager). Z perspektywy wydajności spróbuj pobrać licencje raz, najlepiej w constructor wywołaniach lub init i zapisz wynik.
Po pobraniu licencji będą one buforowane po stronie hosta usługi Power BI podczas sesji usługi Power BI, a wszelkie dalsze wywołania tej samej funkcji będą zwracać buforowane dane.

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

Pobieranie licencji może być długotrwałą operacją, dlatego getAvailableServicePlans wywołanie jest wywołaniem asynchronicznym i powinno być obsługiwane jako takie w kodzie.
W odpowiedzi na wywołanie metody LicenseInfoResult zwracany jest obiekt.

export interface LicenseInfoResult {
        plans: ServicePlan[] | undefined;
        isLicenseUnsupportedEnv: boolean; 
        isLicenseInfoAvailable: boolean; 
    }
  • plans — tablica planów usług zakupionych przez aktywnego użytkownika dla tej wizualizacji. (Licencje zakupione dla innych wizualizacji nie są uwzględnione w odpowiedzi).
    Element ServicePlan zawiera identyfikator usługi (spIdentifier) i jego stan (ServicePlanState).

    • spIdentifier: wartość ciągu identyfikatora usługi wygenerowanego podczas konfigurowania planów oferty w Centrum partnerskim (zobacz poniższy przykład) Screenshot showing an example of a Service ID string.

    • state — wyliczenie (ServicePlanState), które reprezentuje stan przypisanych planów.
      Obsługiwane stany planu usługi:

      Stan opis
      Nieaktywny Wskazuje, że licencja nie jest aktywna i nie powinna być używana do aprowizacji korzyści.
      Aktywne Wskazuje, że licencja jest aktywna i może być używana do aprowizacji korzyści.
      Ostrzeżenie Wskazuje, że licencja jest w okresie prolongaty prawdopodobnie z powodu naruszenia płatności.
      Suspended Wskazuje, że licencja jest zawieszona prawdopodobnie z powodu naruszenia płatności.
      Nieznane Wartość usługi Sentinel.

      Tylko stany aktywne i ostrzegawcze reprezentują licencję do użycia. Wszystkie inne stany powinny być traktowane jako nieużywalne licencje.

  • isLicenseUnsupportedEnv — wskazuje, że wizualizacja jest renderowana w środowisku usługi Power BI, które nie obsługuje zarządzania licencjami ani wymuszania. Obecnie następujące środowiska usługi Power BI nie obsługują zarządzania licencjami ani wymuszania licencji:

    • Embedded — publikowanie w Sieci Web, osadzanie paaS
    • Chmury krajowe/regionalne (zależy od ogólnej obsługi transakcji w chmurach krajowych/regionalnych)
    • Serwer RS (brak planowanej pomocy technicznej)
    • Eksportowanie (PDF\PPT) przy użyciu interfejsu API REST
  • isLicenseInfoAvailable — wskazuje, czy można pobrać informacje o licencjach. Niepowodzenie pobierania licencji może wystąpić w przypadku, gdy użytkownik programu Power BI Desktop nie jest zalogowany lub nie jest połączony z Internetem (offline). W przypadku sieci Web pobieranie licencji może zakończyć się niepowodzeniem z powodu tymczasowej awarii usługi.

Przykład wywołania getAvailableServicePlans (przy użyciu identyfikatora usługi z powyższego obrazu):

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

Powiadamianie użytkownika o braku wymaganych licencji

Platforma Power BI udostępnia kilka środowisk gotowe do użycia, które mogą służyć do powiadamiania:

  • Licencje powinny być kupowane w celu korzystania z możliwości pełnej wizualizacji
  • Funkcja określonej wizualizacji jest zablokowana z powodu brakujących licencji
  • Cała wizualizacja jest zablokowana z powodu brakujących licencji
  • Cała wizualizacja jest zablokowana, ponieważ używane środowisko usługi Power BI nie obsługuje zarządzania licencjami\wymuszania
export interface IVisualLicenseManager {
        notifyLicenseRequired(notificationType: LicenseNotificationType): IPromise<boolean>;
        notifyFeatureBlocked(tooltip: string): IPromise<boolean>;
        clearLicenseNotification(): IPromise<boolean>;
    }

Ikona ogólna wskazująca brak wymaganej licencji

Użyj notifyLicenseRequired wywołania z LicenseNotificationType.General , aby wyświetlić ikonę jako część kontenera wizualizacji.
Po wyzwoleniu ikona zostanie zachowana przez cały okres istnienia wizualizacji do momentu clearLicenseNotification wywołania lub notifyLicenseRequired wywołania.

Uwaga

Powiadomienie LicenseNotificationType.General jest wymuszane tylko wtedy, gdy są stosowane: obsługiwane w przypadku środowiska licencjonowania i scenariuszy edycji usługi Power BI. Wywołanie tego w nieobsługiwanym środowisku lub gdy raport jest w trybie odczytu lub na pulpicie nawigacyjnym nie zastosuje ikony i powróci false w odpowiedzi wywołania.

Przykład wyświetlania wizualizacji zawierającej ikonę ogólną "licencje są wymagane":

visual display containing the

visual display containing the

Nakładanie wyświetlania wizualizacji z brakującym powiadomieniem o licencji

Użyj notifyLicenseRequired wywołania z LicenseNotificationType.VisualIsBlocked , aby nakładać wyświetlanie wizualizacji z powiadomieniem, że wizualizacja jest zablokowana, ponieważ brakuje wymaganych licencji.
Po wyzwoleniu to powiadomienie będzie zachowywane przez cały okres istnienia wizualizacji do momentu clearLicenseNotification wywołania lub notifyLicenseRequired wywołania.

Przykład wyświetlania wizualizacji zawierającej powiadomienie o zablokowaniu wizualizacji. Program Power BI Desktop wyświetli tylko opcję Pobierz licencję :

Visual display containing the *visual blocked* notification.

Nakładanie wyświetlania wizualizacji z nieobsługiwanym powiadomieniem o środowisku

Użyj notifyLicenseRequired wywołania z LicenseNotificationType.UnsupportedEnv , aby nakładać wyświetlanie wizualizacji z powiadomieniem, że wizualizacja jest zablokowana, ponieważ usługa Power BI w użyciu nie obsługuje zarządzania licencjami\wymuszania.
Po wyzwoleniu ikona zostanie zachowana przez cały okres istnienia wizualizacji do momentu clearLicenseNotification wywołania lub notifyLicenseRequired wywołania.

Uwaga

Powiadomienie LicenseNotificationType.UnsupportedEnv jest wymuszane tylko wtedy, gdy jest wywoływane w kontekście nieobsługiwanego środowiska licencjonowania. Wywołanie tej funkcji w innym środowisku nie spowoduje zastosowania powiadomienia i zostanie zwrócone false w odpowiedzi wywołania.

Przykład wyświetlania wizualizacji zawierającej powiadomienie "Nieobsługiwane środowisko":

visual display containing the

Wyświetl baner z powiadomieniem, że nie można zastosować funkcji określonej wizualizacji

Podczas stosowania funkcji określonej wizualizacji wymagane są brakujące licencje, można użyć notifyFeatureBlocked wywołania, które spowoduje wyskakujące baner w ramach kontenera wizualizacji. Baner obsługuje również niestandardową etykietkę narzędzia, którą można ustawić i użyć do udostępnienia dodatkowych informacji na temat funkcji, która wyzwoliła powiadomienie.

Uwaga

Powiadomienie o zablokowaniu funkcji jest wymuszane tylko wtedy, gdy jest wywoływane w kontekście obsługiwanego dla środowiska licencjonowania i w przypadku, gdy blokowanie nakładek nie jest stosowane (LicenseNotificationType.UnsupportedEnv, LicenseNotificationType.VisualIsBlocked). Wywołanie tego powiadomienia w nieobsługiwanym środowisku nie spowoduje zastosowania powiadomienia i zostanie zwrócone false w odpowiedzi wywołania.

Uwaga

Aby obsługiwać zlokalizowane środowisko usługi Power BI, zalecamy obsługę zlokalizowanych wersji etykietek narzędzi w użyciu. Użyj interfejsu API lokalizacji, aby pobrać język ustawień regionalnych usługi Power BI.

Po wyzwoleniu transparent będzie wyświetlany przez 10 sekund lub do momentu wyzwolenia innego baneru "blokada funkcji" lub do momentu clearLicenseNotification wywołania (cokolwiek nastąpi wcześniej).

Przykład wyświetlania wizualizacji zawierającej powiadomienie baneru "funkcja zablokowana":

visual display containing the

Testowanie licencjonowanej wizualizacji

Aby przetestować licencjonowany element wizualny przed udostępnieniem jej publicznie:

  • Jeśli tworzysz zupełnie nową ofertę, dodaj wizualizację jako prywatny plan dla testowego konta klienta. Oferta będzie widoczna tylko dla tego konta testowego do zakupu. Użyj tego konta, aby zweryfikować ofertę przed jej upublicznienie.
  • Jeśli wizualizacja jest już dostępna w usłudze AppSource i chcesz ją uaktualnić do licencjonowanej wizualizacji, nie możesz utworzyć planu prywatnego , ponieważ spowoduje to ukrycie wizualizacji w usłudze AppSource, a istniejący użytkownicy nie będą mieli do niej dostępu. Obecnie nie ma możliwości przetestowania opublikowanej wizualizacji. Przetestuj ją w taki sam sposób, jak w przypadku testowania oryginalnej wizualizacji w usłudze AppSource, wyśmiewając wartość interfejsu API licencjonowania, aby sprawdzić różne możliwości.

Rozważania i ograniczenia

  • Etykietka narzędzia dla baneru funkcji jest ograniczona o 500 znaków.
  • Etykietka narzędzia dla baneru funkcji wymaga lokalizacji.
  • Tworzenie pakietów licencji (tj. jedna licencja obejmująca wiele ofert od tego samego wydawcy) nie jest jeszcze obsługiwana.

Publikowanie wizualizacji niestandardowej usługi Power BI

Masz więcej pytań? Spróbuj zadać Społeczność usługi Power BI