A helyi tárolási API-val adatokat tárolhat a böngésző helyi tárolójában. A helyi tárolási API használatához engedélyezni kell az ügyfél helyi tárolási rendszergazdai kapcsolóját .
A helyi tároló elkülönített, így minden vizualizációtípus saját külön tárterület-hozzáféréssel rendelkezik.
Feljegyzés
A fejlesztő felelőssége annak biztosítása, hogy a tárolt adatok megfeleljenek a fogyasztó szervezeti szabályzatainak, és hogy tájékoztassa a felhasználókat arról, hogy milyen információkat tárolnak, ha az adatok bizalmassága megköveteli. Az egyéni vizualizáció-fejlesztőknek különösen akkor kell titkosítaniuk az adatokat, ha üzleti célok vagy forgatókönyvek várják.
A helyi tároló használata
A helyi storage API ezen verziója elavulásra van ütemezve. Nem fogadunk el további kéréseket. Ha lehetséges, használja a 2. verziót.
Az alábbi példában a számláló megnő, amikor a frissítési metódust meghívják. A számláló értékét a rendszer helyileg menti, és a vizualizáció minden indításakor meghívja. Így a számláló továbbra is onnan számol, ahonnan abbahagyta a vizualizáció minden egyes indításakor:
export class Visual implements IVisual {
// ...
private updateCountName: string = 'updateCount';
private updateCount: number;
private storage: ILocalVisualStorageService;
// ...
constructor(options: VisualConstructorOptions) {
// ...
this.storage = options.host.storageService;
// ...
this.storage.get(this.updateCountName).then(count =>
{
this.updateCount = +count;
})
.catch(() =>
{
this.updateCount = 0;
this.storage.set(this.updateCountName, this.updateCount.toString());
});
// ...
}
public update(options: VisualUpdateOptions) {
// ...
this.updateCount++;
this.storage.set(this.updateCountName, this.updateCount.toString());
// ...
}
}
Helyi tárolási módszerek
A helyi storage API négy metódussal rendelkezik:
állapot:
A lekérési, beállítási vagy eltávolítási módszerek használata előtt ajánlott az állapotmetódus használatával ellenőrizni az API állapotát, és gondoskodni arról, hogy a vizualizáció a várt módon viselkedjen.
lekérés:
Ez a metódus egy paramétert vár:
-
kulcs – az a kulcs, amelynek értékét le szeretné kapni.
Egy ígéretet ad vissza, amely feloldja az értéket, ha a kulcs létezik, és elutasítja az ellenkezőjét.
beállítás:
Ez a metódus két paramétert vár:
-
kulcs – a kulcs, amelyet meg szeretne adni az értékének
-
adatok – a kulcs értéke
Olyan ígéretet ad vissza, amely a típus egyik StorageV2ResultInfo oldódik fel, vagy elutasítja, ha hiba történt.
eltávolítás:
A helyi storage API használata
A helyi storage API használatához adjon hozzá egy deklarációt a privileges tömbhöz a vizualizációs képességekben.
Az alábbi példa bemutatja, hogyan állíthat be és kérdezhet le adatokat a helyi tárolóból a helyi storage API 2-es verziójával:
import IVisualLocalStorageV2Service = powerbi.extensibility.IVisualLocalStorageV2Service;
import StorageV2ResultInfo = powerbi.extensibility.StorageV2ResultInfo;
import PrivilegeStatus = powerbi.PrivilegeStatus;
export class Visual implements IVisual {
// ...
private updateCountName: string = 'updateCount';
private updateCount: number;
private storageV2Service: IVisualLocalStorageV2Service;
constructor(options: VisualConstructorOptions) {
this.storageV2Service = options.host.storageV2Service;
this.init();
}
private async init() {
try {
let status: powerbi.PrivilegeStatus = await this.storageV2Service.status();
if (status === PrivilegeStatus.DisabledByAdmin) {
//handle if the api blocked by admin
} else if (status === PrivilegeStatus.Allowed) {
this.updateCount = await this.storageV2Service.get(this.updateCountName);
}
} catch (error) {
//handle error
}
}
private async updateCount(count: number) {
try {
let status: PrivilegeStatus = await this.storageV2Service.status();
if (status === PrivilegeStatus.Allowed) {
let resultInfo: StorageV2ResultInfo = this.storageV2Service.set(this.updateCountName, count);
if (resultInfo.success) {
//updateCount was set.
} else {
}
}
} catch (error) {
// handle error
}
}
private async removeUpdateCount() {
let status: PrivilegeStatus = await this.storageV2Service.status();
if (status === PrivilegeStatus.Allowed) {
this.storageV2Service.remove(this.updateCountName);
}
}
}
Szempontok és korlátozások
- A helyi tárterület-korlát GUID-onként 1 mb.
- Az adatok csak ugyanazzal a GUID azonosítóval rendelkező vizualizációk között oszthatók meg.
- Az adatok nem oszthatók meg a Power BI Desktop egy másik példányával.
- A helyi tárolási API alapértelmezés szerint nincs aktiválva. A Power BI-vizualizáció aktiválásához küldjön egy kérést a Power BI-vizualizációk támogatásához.
pbicvsupport@microsoft.com
- A helyi tárolási API nem támogatja
await az építkezéseket. Csak then és catch a metódusok engedélyezettek.
A vizualizációnak elérhetőnek kell lennie az AppSource-ban, és hitelesítenie kell.
Az egyéni vizualizációk helyi tárolási korlátja 100 KB.
Az adatok megoszthatók ugyanazzal a GUID-val, ugyanazzal a környezettel és csak ugyanazon felhasználóval rendelkező vizualizációk között.
Az API a következő környezetekben támogatott:
- web
- Asztali
- SaaS-beágyazás
- Mobil
A helyi tárolás nem támogatott PDF-be vagy pptx-be történő exportáláskor.
Az API csak akkor támogatott, ha egy felhasználó bejelentkezett.
A vizualizáció adatai a legutóbbi módosítási idő után 29 nappal törlődnek.
Ez az API egy emelt szintű API.
A kulcs (a beállításhoz, lekéréshez, eltávolításhoz megadott paraméter) a következő korlátozásokkal rendelkezik:
- A hossznak 128 karakternél rövidebbnek kell lennie
- A(z) |karakter nem tartalmazható
Ha a böngésző kioszk módban van, a helyi tároló rendelkezésre állása eltérhet a böngészők és a kioszk tulajdonosának beállításai között.
Ennek az API-nak számos oka lehet, hogy nem támogatott. Előfordulhat például, hogy a környezet nem támogatott, vagy a böngésző helyi tárolója nem érhető el. Javasoljuk, hogy a set/get/remove metódusok használata előtt ellenőrizze az API állapotát. A hibakezelés fontos, mivel még ha az API támogatott is, akkor is sikertelen lehet.
Kapcsolódó tartalom