Del via


Legge til funksjonsdokumentasjon

Power Query genererer automatisk et aktiveringsgrensesnitt for deg basert på argumentene for funksjonen. Som standard vil dette brukergrensesnittet inneholde navnet på funksjonen, og en inndata for hver av parameterne.

DefaultFunctionPrompt.

På samme måte vil evaluering av navnet på funksjonen, uten å angi parametere, vise informasjon om den.

DefaultFunctionInfo.

Du legger kanskje merke til at innebygde funksjoner vanligvis gir en bedre brukeropplevelse, med beskrivelser, verktøytips og til og med eksempelverdier. Du kan dra nytte av den samme mekanismen ved å definere bestemte metaverdier for funksjonstypen. Dette emnet beskriver metafeltene som brukes av Power Query, og hvordan du kan bruke dem i utvidelsene.

CsvDocument.

Funksjonstyper

Du kan gi dokumentasjon for funksjonen ved å definere egendefinerte typeverdier . Prosessen ser slik ut:

  1. Definer en type for hver parameter.
  2. Definer en type for funksjonen.
  3. Legg til ulike Documentation.* felt i metadatapostene for typene.
  4. Kall Value.ReplaceType for å tilskrive typen til den delte funksjonen.

Du finner mer informasjon om typer og metadataverdier i M-språkspesifikasjonen.

Med denne fremgangsmåten kan du angi beskrivelser og visningsnavn for funksjonen, samt individuelle parametere. Du kan også angi eksempelverdier for parametere, i tillegg til å definere en forhåndsinnstilt liste over verdier (gjøre standard tekstbokskontroll om til en rullegardin).

Power Query-opplevelsen henter dokumentasjon fra metaverdier på funksjonstypen ved hjelp av en kombinasjon av kall til Value.Type, Type.FunctionParameters og Value.Metadata.

Funksjonsdokumentasjon

Tabellen nedenfor viser dokumentasjonsfeltene som kan angis i metadataene for funksjonen. Alle felt er valgfrie.

Felt Type Detaljer
Dokumentasjon.Eksempler liste Liste over oppføringsobjekter med eksempelbruk av funksjonen. Vises bare som en del av funksjonsinformasjonen. Hver post skal inneholde følgende valgfrie tekstfelt: Description, Codeog Result.
Documentation.LongDescription tekst Fullstendig beskrivelse av hva funksjonen gjør, som vises i funksjonsinformasjonen.
Documentation.Name tekst Tekst som skal vises øverst i dialogboksen for funksjonsaktivering.

Parameterdokumentasjon

Tabellen nedenfor viser dokumentasjonsfeltene som kan angis i metadataene for funksjonsparameterne. Alle felt er valgfrie.

Felt Type Detaljer
Documentation.AllowedValues liste Liste over gyldige verdier for denne parameteren. Hvis du angir dette feltet, endres inndataene fra en tekstboks til en rullegardinliste. Vær oppmerksom på at dette ikke hindrer en bruker i å redigere spørringen manuelt for å angi alternative verdier.
Documentation.FieldCaption tekst Egendefinert visningsnavn som skal brukes for parameteren.
Documentation.FieldDescription tekst Beskrivelse som skal vises ved siden av visningsnavnet.
Documentation.SampleValues liste Liste over eksempelverdier som skal vises (som falmet tekst) i tekstboksen.
Formatering.IsMultiLine boolean Lar deg opprette en flerlinjet inndata, for eksempel for innliming i opprinnelige spørringer.
Formatering.IsCode boolean Formaterer inndatafeltet for kode, vanligvis med flerlinjede inndata. Bruker en kodelignende skrift i stedet for standardskriften.

Grunnleggende eksempel

Følgende kodesnutt (og resulterende dialogbokser) er fra HelloWorldWithDocs-eksemplet .

[DataSource.Kind="HelloWorldWithDocs", Publish="HelloWorldWithDocs.Publish"]
shared HelloWorldWithDocs.Contents = Value.ReplaceType(HelloWorldImpl, HelloWorldType);

HelloWorldType = type function (
    message as (type text meta [
        Documentation.FieldCaption = "Message",
        Documentation.FieldDescription = "Text to display",
        Documentation.SampleValues = {"Hello world", "Hola mundo"}
    ]),
    optional count as (type number meta [
        Documentation.FieldCaption = "Count",
        Documentation.FieldDescription = "Number of times to repeat the message",
        Documentation.AllowedValues = { 1, 2, 3 }
    ]))
    as table meta [
        Documentation.Name = "Hello - Name",
        Documentation.LongDescription = "Hello - Long Description",
        Documentation.Examples = {[
            Description = "Returns a table with 'Hello world' repeated 2 times",
            Code = "HelloWorldWithDocs.Contents(""Hello world"", 2)",
            Result = "#table({""Column1""}, {{""Hello world""}, {""Hello world""}})"
        ],[
            Description = "Another example, new message, new count!",
            Code = "HelloWorldWithDocs.Contents(""Goodbye"", 1)",
            Result = "#table({""Column1""}, {{""Goodbye""}})"
        ]}
    ];

HelloWorldImpl = (message as text, optional count as number) as table =>
    let
        _count = if (count <> null) then count else 5,
        listOfMessages = List.Repeat({message}, _count),
        table = Table.FromList(listOfMessages, Splitter.SplitByNothing())
    in
        table;

Denne koden resulterer i følgende dialogbokser i Power BI.

FunksjonsinvokasjonFunctionPrompt.

FunksjonsinformasjonFunctionInfo.

Eksempel på flere linjer

[DataSource.Kind="HelloWorld", Publish="HelloWorld.Publish"]
shared HelloWorld.Contents =
    let
        HelloWorldType = type function (
            message1 as (type text meta [
                Documentation.FieldCaption = "Message 1",
                Documentation.FieldDescription = "Text to display for message 1",
                Documentation.SampleValues = {"Hello world"},
                Formatting.IsMultiLine = true,
                Formatting.IsCode = true
            ]),
            message2 as (type text meta [
                Documentation.FieldCaption = "Message 2",
                Documentation.FieldDescription = "Text to display for message 2",
                Documentation.SampleValues = {"Hola mundo"},
                Formatting.IsMultiLine = true,
                Formatting.IsCode = false
            ])) as text,
        HelloWorldFunction = (message1 as text, message2 as text) as text => message1 & message2
    in
        Value.ReplaceType(HelloWorldFunction, HelloWorldType);

Denne koden (med tilknyttet publiseringsinformasjon og så videre) resulterer i følgende dialog i Power BI. Nye linjer representeres i tekst med '#(lf)' eller 'linjefeed'.

Inndataverktøy med flere linjer.