Dataverse-actie- en functiemethoden voor generatieve pagina's

Gebruik de actie- en functiemethoden van het dataApi object om aangepaste API's van Dataverse aan te roepen die zijn gebonden aan de pagina.

Notitie

Actie- en functiemethoden zijn optioneel in het gedeelde dataApi contract. Sommige hosts implementeren ze niet, dus controleer of er een methode bestaat voordat u deze aanroept. Een methode die aanwezig is, betekent niet dat de bewerking is gebonden aan de pagina, is ingeschakeld voor de runtime of is toegestaan voor de huidige gebruiker. In tegenstelling tot connectormethoden worden deze methoden nooit veroorzaakt door verwachte fouten; in plaats daarvan worden ze opgelost met ok: false en een foutcode. De resultaten ok en error eigenschappen expliciet verwerken.

listBoundActions retourneert de acties en functies waarmee de huidige runtimeconfiguratie de pagina toestaat wanneer die detectie is ingeschakeld; het is geen garantie dat de huidige gebruiker de Dataverse-bevoegdheden heeft die nodig zijn om elke vermelde bewerking uit te voeren.

Method Description
executeAction Roept een aangepaste Dataverse-API aan die is gebonden aan de pagina als een actie.
executeFunction Roept een aangepaste Dataverse-API aan die is gebonden aan de pagina als een functie.
listBoundActions Geeft een lijst weer van de aangepaste API's (acties en functies) die zijn gebonden aan de pagina.

executeAction methode

Roept een aangepaste Dataverse-API aan die door een maker is gebonden aan de pagina als een actie (een bericht dat gegevens kan wijzigen).

Parameters

Stel een waarde in voor deze vereiste parameter.

Name Type Description
request DataverseActionRequest De actie die moet worden aangeroepen en de bijbehorende invoerparameters.

DataverseActionRequest

Name Type Description
name string De unieke naam van de aangepaste API, voorafgegaan door uitgevers, zoals new_ApproveExpenseReport.
parameters object (Optioneel) De invoerparameters die vereist zijn voor de actie, gesleuteld op unieke parameternaam.
boundTo object (Optioneel) Een verwijzing naar de doelrij (entityName en id) voor entiteitsgebonden acties. Weglaten voor globale (niet-afhankelijke) acties.

Returns

Een belofte met een DataverseActionResult. Deze methode genereert nooit verwachte fouten (zoals een machtigingsfout van 403, een ongeldige parameter van 400 of de bewerking is niet gebonden of ingeschakeld). Controleer in plaats daarvan de ok eigenschap.

DataverseActionResult

Name Type Description
ok boolean Geeft aan of de actie is geslaagd.
status number De HTTP-statuscode die wordt geretourneerd door Dataverse of 0 wanneer er geen HTTP-status beschikbaar is. Een 0 status kan betekenen dat de runtime de aanroep heeft afgewezen voordat deze wordt verzonden (bijvoorbeeld, not_enablednot_bound, not_permittedwrong_operation_kind, of invalid_bound_toinvalid_parameter), de aanvraag is mislukt zonder EEN HTTP-antwoord, of dat het resultaat onbekend is (indeterminateis).true Gebruik error.code en indeterminate om deze gevallen apart te vertellen.
outputs object De uitvoerparameters die door de actie worden geretourneerd, met een unieke naam. Leeg voor acties zonder uitvoer.
indeterminate boolean (Optioneel) true wanneer een time-out of een andere post-dispatch-fout betekent dat de server de actie mogelijk heeft doorgevoerd; probeer het niet automatisch opnieuw.
error object (Optioneel) Foutdetails wanneer ok , falseinclusief een machineleesbaar code en opgeschoond message. codeis een van, not_bound, not_permitted, wrong_operation_kind, , invalid_parameter, invalid_bound_to, , , indeterminateof , of networkde HTTP-statuscode van not_enabledde actie als een tekenreeks (bijvoorbeeld "404") wanneer Dataverse een foutantwoord heeft geretourneerd of "0" wanneer er geen HTTP-status beschikbaar was. not_permitted betekent dat de actie of functie zich niet in de acceptatielijst van de omgeving bevindt voor generatieve pagina's. Het geeft niet aan of de huidige gebruiker de Dataverse-bevoegdheden heeft om deze uit te voeren. Een fout met bevoegdheden komt meestal voor als status: 403 bij foutcode "403". Als de host de HTTP-status niet kan bepalen, wordt deze geretourneerd status: 0 .

executeAction-voorbeeld

if (!dataApi.executeAction) {
  throw new Error("executeAction isn't available on this page.");
}

const result = await dataApi.executeAction({
  name: "new_ApproveExpenseReport",
  parameters: { comments: "Approved by manager" },
  boundTo: { entityName: "new_expensereport", id: "30dc51e9-947d-47d8-ad48-4fc48fba4a95" },
});

if (result.ok) {
  console.log(result.outputs);
}
else {
  console.log(result.error?.code);
}

executeFunction methode

Roept een aangepaste Dataverse-API aan die een maker als functie aan de pagina heeft gebonden (een alleen-lezen bericht met GET-semantiek).

Parameters

Stel een waarde in voor deze vereiste parameter.

Name Type Description
request DataverseFunctionRequest De functie die moet worden aangeroepen en de bijbehorende invoerparameters.

DataverseFunctionRequest

Name Type Description
name string De unieke naam van de aangepaste API, voorafgegaan door uitgevers, zoals new_GetExchangeRate.
parameters object (Optioneel) De invoerparameters die vereist zijn voor de functie, gesleuteld op unieke parameternaam.
boundTo object (Optioneel) Een verwijzing naar de doelrij (entityName en id) voor entiteitsgebonden functies. Weglaten voor globale (niet-afhankelijke) functies.

Returns

Een belofte met een DataverseActionResult. Net als bij executeActiondeze methode genereert deze methode nooit op verwachte fouten. Controleer in plaats daarvan de ok eigenschap.

executeFunction-voorbeeld

if (!dataApi.executeFunction) {
  throw new Error("executeFunction isn't available on this page.");
}

const result = await dataApi.executeFunction({
  name: "new_GetExchangeRate",
  parameters: { currencyCode: "EUR" },
});

if (result.ok) {
  console.log(result.outputs);
}

listBoundActions methode

Een lijst met de aangepaste API's van Dataverse (acties en functies) die een maker aan de pagina heeft gebonden.

Parameters

None.

Returns

Een belofte met een matrix van DataverseActionInfo-vermeldingen . Retourneert een lege matrix wanneer detectie niet is ingeschakeld voor de runtime.

DataverseActionInfo

DataverseActionInfo geeft aan wat de maker van de pagina is gebonden voor deze actie of functie, niet live Dataverse-metagegevens. Gebruik deze niet om invoerformulieren te maken of uitvoer te valideren. Controleer de parametervereisten en uitvoershapes op basis van de daadwerkelijke definitie van de aangepaste Dataverse-API.

Name Type Description
name string De unieke (logische) naam van de aangepaste Dataverse-API.
displayName string De weergavenaam van een aangepaste API.
isFunction boolean true als de aangepaste Dataverse-API een functie is (alleen-lezen); false als dit een actie is, inclusief wanneer deze waarde niet is vastgelegd tijdens de binding.
bindingType string Het bindingstype: "Global" of "Entity".
boundEntityLogicalName string (Optioneel) De tabel waaraan de actie of functie is gebonden, wanneerbindingType."Entity"
parameters Object[] De invoerparameters die zijn vastgelegd toen de aangepaste Dataverse-API gebonden was aan de pagina, elk met een name en declaredKind. type is altijd "unknown" en optional altijd false , noch weerspiegelt de werkelijke metagegevens van de Aangepaste API van Dataverse.
outputs Object[] Altijd een lege matrix. Met bindingsdetectie worden geen uitvoerparameters vastgelegd.

listBoundActions Voorbeeld

const actions = await dataApi.listBoundActions?.();