Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Denne artikkelen beskriver mappe- og filstrukturen for Real-Time instrumentbordelementer når de er synkronisert til et GitHub- eller Azure Devops-repositorium.
Mappestruktur
Når et arbeidsområde er synkronisert til et repo, ser du en mappe på øverste nivå for arbeidsområdet og en undermappe for hvert element som ble synkronisert. Hver undermappe er formatert med elementnavn. Elementtype
I mappen for instrumentbordet ser du følgende filer:
- Plattform: Definerer stoffplattformverdier som visningsnavn og beskrivelse.
- Egenskaper: Definerer elementspesifikke verdier.
Her er et eksempel på mappestrukturen:
Repo
- Arbeidsområde A
- Item_A.KQLDashboard
- .plattform
- RealTimeDashboard-1.json
- Item_A.KQLDashboard
- Arbeidsområde B
- Item_B.KQLDashboard
- .plattform
- RealTimeDashboard-2.json
- Item_B.KQLDashboard
Real-Time instrumentbordfiler
Følgende filer finnes i en instrumentbordmappe:
.plattform
Filen bruker følgende skjema til å definere et instrumentbord i sanntid:
{ "$schema": "https://developer.microsoft.com/json-schemas/fabric/gitIntegration/platformProperties/2.0.0/schema.json", "metadata": { "type": "KQLDashboard", "displayName": "", "description": "" }, "config": { "version": "2.0", "logicalId": "" } }RealTimeDashboard.json
Filen bruker følgende skjema til å definere et instrumentbord i sanntid:
{ "$schema": "", "id": "", "eTag": "\"\"", "schema_version": "", "title": "", "tiles": [ { "id": "", "title": "", "visualType": "", "pageId": "", "layout": { "x": , "y": , "width": , "height": }, "queryRef": { "kind": "", "queryId": "" }, "visualOptions": { "multipleYAxes": { "base": { "id": "", "label": "", "columns": [], "yAxisMaximumValue": , "yAxisMinimumValue": , "yAxisScale": "", "horizontalLines": [] }, "additional": [], "showMultiplePanels": }, "hideLegend": , "legendLocation": "", "xColumnTitle": "", "xColumn": , "yColumns": , "seriesColumns": , "xAxisScale": "", "verticalLine": "", "crossFilterDisabled": , "drillthroughDisabled": , "crossFilter": [ { "interaction": "", "property": "", "parameterId": "", "disabled": } ], "drillthrough": [], "selectedDataOnLoad": { "all": , "limit": }, "dataPointsTooltip": { "all": , "limit": } } } ], "baseQueries": [], "parameters": [ { "kind": "", "id": "", "displayName": "", "description": "", "variableName": "", "selectionType": "", "includeAllOption": , "defaultValue": { "kind": "" }, "dataSource": { "kind": "", "columns": { "value": "" }, "queryRef": { "kind": "", "queryId": "" } }, "showOnPages": { "kind": "" }, "allIsNull": }, ], "dataSources": [ { "id": "", "name": "", "clusterUri": "", "database": "", "kind": "", "scopeId": "" } ], "pages": [ { "name": "", "id": "" } ], "queries": [ { "dataSource": { "kind": "", "dataSourceId": "" }, "text": "", "id": "", "usedVariables": [ "", "" ] } ] }
Real-Time dashbordvalidering
Real-Time Dashboard-lastendepunktet validerer JSON-en utover standard skjema-samsvar. Brudd vises for brukerne i dashbordets UI som feilmeldinger som: Error loading dashboard / Error found at: /<section> / Message: <reason>.
Spørringsreferansens unikhet
Alle queryId i dashbordet må refereres nøyaktig én gang, telles over:
tiles[].queryRef.queryIdbaseQueries[].queryIdparameters[].dataSource.queryRef.queryId
Hvis a queryId deles mellom to fliser, eller mellom en flis og en baseQuery, feiler valideringen med: /queries: Some query IDs are used in multiple query references (tiles, base queries, parameters).
Når du programmatisk dupliserer en flis til en ny side, dupliser du også spørringen (tildel en ny queryId, behold den samme text og dataSource) og pek de nye flisene queryRef.queryId mot den nye spørringen.
ID-unikhet og format
Hver i , , , , parameters[], dataSources[], og pages[] må være: baseQueries[]queries[]tiles[]id
- Unik innenfor sin kategori.
-
En gyldig RFC 4122 UUID (for eksempel
3e4666bf-d5e5-4aa7-b8ce-cefe41c7568a). Lesbare strenger som tilfeldigvis har bindestreker (for eksempelmy-tile-0001-0000-0000-000000000001) blir avvist ved lastetid med:Needs to follow the UUID format as defined by RFC 4122.
For programmatiske redigeringer, generer ID-er med et UUID-bibliotek: uuid.uuid4() for ferske ID-er, eller uuid.uuid5(namespace, label) for deterministiske ID-er som overlever skript-rekjøringer.
Tips
Hvis du ser en lastfeil som /tiles/N/queryRef ... must have required property 'baseQueryId', er den faktiske feilen vanligvis en feil, queryRef.queryIdikke en manglende baseQueryIdfeil. Skjemaet queryRef er et oneOf mellom { kind: "query", queryId: <uuid> } og { kind: "baseQuery", baseQueryId: <uuid> }. Når den indre UUIDEN er ugyldig, feiler validatoren i -kind-grenen queryog rapporterer feil fra -kind-grenen baseQueryi stedet. Fikser du UUID, forsvinner kaskaden.
Bevaring av identitet på tvers av redigeringer
For å bevare koblingen mellom filen og det levende arbeidsområdet, ikke endre følgende på eksisterende oppføringer:
- Toppnivå:
id,eTag,schema_version - Per flis:
id,pageId,queryRef.queryId - Per spørring:
id,dataSource.dataSourceId - Ifølge dataKilde:
id,scopeId - Per side:
id - Per parameter:
id,variableName(ogbeginVariableName/endVariableNameforkind: "duration") -
.platform:config.logicalId
Å endre disse identifikatorene vil føre til at endringen behandles som en sletting og en gjenskaping på neste Update from Git, noe som vil føre til tapt kontekst: festede elementreferanser, share-targets og enhver tilstand knyttet til originalen id.
Parametre
Når en flis som bruker en parameter (referert via forespørselens usedVariables) legges til på en ny side, vises ikke den parameteren automatisk på den nye siden.
Hvis parameteren showOnPages.kind er "selection", må du legge til de nye sidene id til .showOnPages.pageIds
Hvis parameteren har en brukbar defaultValue, gjengir flisen med standard.
Parametere med flere variabler som kind: "duration" parametere eksponerer to variabler via beginVariableName og endVariableName (vanligvis _startTime og _endTime). De deler et enkelt parameterobjekt med én showOnPages innstilling.
Eksempelredigeringer via Git
Ved å bruke skjema- og valideringsnotatene kan du gjøre endringer på Real-Time-dashbordet via Git i stedet for via brukergrensesnittet.
Eksempel: Kopier en flis til en ny side
For å kopiere en flis fra side A til en nylig lagt til side B ved å redigere RealTimeDashboard-N.json:
- Legg til side B med
pages[]en nyid. - Dypkopier kildeflisen i
tiles[]. Tildel:- ny flis
id(frisk GUID) -
pageId= side Bs ID
- ny flis
- Finn kildespørringen i
queries[]ved kildeflisens .queryRef.queryId - Dypkopier spørringen inn i
queries[]med en nyid. - Oppdater de klonede flisene
queryRef.queryIdtil de nye spørringeneid. - For hver parameter som refereres til i den klonede spørringen
usedVariables[]: hvisshowOnPages.kind == "selection", legg til side Bs ID tilshowOnPages.pageIds. - Valider at ingen
queryIdforekommer mer enn én gang overtiles[],baseQueries[], ogparameters[].dataSource.queryRef. - Committ, push, og kjør Oppdatering fra Git på arbeidsområdet.