Share via


Functiedocumentatie toevoegen

Power Query genereert automatisch een aanroepgebruikersinterface voor u op basis van de argumenten voor uw functie. Deze gebruikersinterface bevat standaard de naam van uw functie en een invoer voor elk van uw parameters.

DefaultFunctionPrompt.

Op dezelfde manier wordt bij het evalueren van de naam van uw functie, zonder parameters op te geven, informatie over deze functie weergegeven.

DefaultFunctionInfo.

Mogelijk merkt u dat ingebouwde functies doorgaans een betere gebruikerservaring bieden, met beschrijvingen, knopinfo en zelfs voorbeeldwaarden. U kunt gebruikmaken van ditzelfde mechanisme door specifieke metawaarden voor uw functietype te definiëren. In dit onderwerp worden de metavelden beschreven die door Power Query worden gebruikt en hoe u deze in uw extensies kunt gebruiken.

CsvDocument.

Functietypen

U kunt documentatie voor uw functie opgeven door aangepaste typewaarden te definiëren. Het proces ziet er als volgt uit:

  1. Definieer een type voor elke parameter.
  2. Definieer een type voor uw functie.
  3. Voeg verschillende Documentation.* velden toe aan de metagegevensrecord van uw typen.
  4. Roep Value.ReplaceType aan om het type toe te schrijven aan uw gedeelde functie.

Meer informatie over typen en metagegevenswaarden vindt u in de M-taalspecificatie.

Met deze methode kunt u beschrijvingen en weergavenamen opgeven voor uw functie, evenals afzonderlijke parameters. U kunt ook voorbeeldwaarden opgeven voor parameters en een vooraf ingestelde lijst met waarden definiëren (het standaardbesturingselement voor tekstvaken omzetten in een vervolgkeuzelijst).

De Power Query-ervaring haalt documentatie op uit metawaarden voor het type functie, met behulp van een combinatie van aanroepen naar Value.Type, Type.FunctionParameters en Value.Metadata.

Functiedocumentatie

De volgende tabel bevat de documentatievelden die kunnen worden ingesteld in de metagegevens voor uw functie. Alle velden zijn optioneel.

Veld Type DETAILS
Documentation.Examples lijst Lijst met recordobjecten met voorbeeldgebruik van de functie. Alleen weergegeven als onderdeel van de functie-informatie. Elke record moet de volgende optionele tekstvelden bevatten: Description, Codeen Result.
Documentation.LongDescription sms verzenden Volledige beschrijving van wat de functie doet, weergegeven in de functie-informatie.
Documentation.Name sms verzenden Tekst die boven aan het aanroepdialoogvenster van de functie moet worden weergegeven.

Parameterdocumentatie

De volgende tabel bevat de documentatievelden die kunnen worden ingesteld in de metagegevens voor uw functieparameters. Alle velden zijn optioneel.

Veld Type DETAILS
Documentation.AllowedValues lijst Lijst met geldige waarden voor deze parameter. Als u dit veld opneemt, wordt de invoer van een tekstvak gewijzigd in een vervolgkeuzelijst. Dit voorkomt niet dat een gebruiker de query handmatig bewerkt om alternatieve waarden op te geven.
Documentation.FieldCaption sms verzenden Beschrijvende weergavenaam die moet worden gebruikt voor de parameter.
Documentation.FieldDescription sms verzenden Beschrijving die naast de weergavenaam moet worden weergegeven.
Documentation.SampleValues lijst Lijst met voorbeeldwaarden die moeten worden weergegeven (als vervaagde tekst) in het tekstvak.
Format.IsMultiLine boolean Hiermee kunt u een invoer met meerdere regels maken, bijvoorbeeld voor het plakken in systeemeigen query's.
Formatting.IsCode boolean Hiermee wordt het invoerveld voor code opgemaakt, meestal met invoer met meerdere regels. Maakt gebruik van een codeachtig lettertype in plaats van het standaardlettertype.

Basisvoorbeeld

Het volgende codefragment (en de resulterende dialoogvensters) zijn afkomstig uit het HelloWorldWithDocs-voorbeeld .

[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;

Deze code resulteert in de volgende dialoogvensters in Power BI.

Functie aanroepenFunctionPrompt.

FunctiegegevensFunctionInfo.

Voorbeeld van meerdere regels

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

Deze code (met gekoppelde publicatiegegevens, enzovoort) resulteert in de volgende dialoog in Power BI. Nieuwe regels worden weergegeven in tekst met '#(lf)' of 'regelfeed'.

Opbouwfunctie voor invoer met meerdere regels.