Metoder til dataversehandling og funktion for generative sider

Brug objektets handlings- og funktionsmetoder dataApi til at aktivere brugerdefinerede API'er for Dataverse, der er bundet til siden.

Notat

Handlings- og funktionsmetoder er valgfrie i den delte dataApi kontrakt. Nogle værter implementerer dem ikke, så kontrollér, at der findes en metode, før du kalder den. En metode, der findes, betyder ikke, at handlingen er bundet til siden, aktiveret for kørslen eller tilladt for den aktuelle bruger. I modsætning til connectormetoder udløses disse metoder aldrig for forventede fejl. de løse med ok: false og en fejlkode i stedet. Håndter eksplicit resultatets ok og error egenskaberne.

listBoundActions returnerer de handlinger og funktioner, som den aktuelle kørselskonfiguration tillader for siden, når registreringen er aktiveret. det er ikke en garanti for, at den aktuelle bruger har de Dataverse-rettigheder, der er nødvendige for at udføre alle handlinger på listen.

Metode Beskrivende tekst
executeAction Aktiverer en brugerdefineret API til Dataverse, der er bundet til siden, som en handling.
executeFunction Aktiverer en brugerdefineret DATAVERSE-API, der er bundet til siden, som en funktion.
listBoundActions Viser de brugerdefinerede API'er (handlinger og funktioner) for Dataverse, der er bundet til siden.

executeAction metode

Aktiverer en brugerdefineret Dataverse-API, som en opretter, der er bundet til siden, som en handling (en meddelelse, der kan ændre data).

Parametre

Angiv en værdi for denne påkrævede parameter.

Name Type Beskrivende tekst
request DataverseActionRequest Den handling, der skal aktiveres, og dens inputparametre.

DataverseActionRequest

Name Type Beskrivende tekst
name string Det entydige navn på den brugerdefinerede API med præfikset udgiver, f.eks new_ApproveExpenseReport. .
parameters object (Valgfrit) De inputparametre, der kræves af handlingen, angivet med et entydigt parameternavn.
boundTo object (Valgfrit) En reference til målrækken (entityName og id) for objektbundne handlinger. Udelad for globale (ubundne) handlinger.

Retur

Et løfte , der indeholder et DataverseActionResult. Denne metode udløser aldrig forventede fejl (f.eks. en 403-tilladelsesfejl, en 400 ugyldig parameter, eller handlingen ikke er bundet eller aktiveret) – kontrollér egenskaben ok i stedet for.

DataverseActionResult

Name Type Beskrivende tekst
ok boolean Angiver, om handlingen lykkedes.
status number Den HTTP-statuskode, der returneres af Dataverse, eller 0 når der ikke er nogen HTTP-status tilgængelig. En 0 status kan betyde, at runtime afviste opkaldet, før det blev sendt (f.eks. not_enabled, not_bound, not_permitted, wrong_operation_kind, invalid_parametereller invalid_bound_to), anmodningen mislykkedes uden et HTTP-svar, eller resultatet er ukendt (indeterminate er true). Brug error.code og indeterminate til at skelne mellem disse sager.
outputs object De outputparametre, der returneres af handlingen, med nøgle efter entydigt navn. Tom for handlinger uden output.
indeterminate boolean (Valgfrit) true når en timeout eller en anden fejl efter afsendelse betyder, at serveren kan have bekræftet handlingen. prøv ikke automatisk igen.
error object (Valgfrit) Oplysninger om fejl, når ok er false, herunder en maskinlæsbar code og en renset message. codeer en af not_enabled, not_bound, not_permittedwrong_operation_kind, invalid_parameter, , invalid_bound_to, indeterminateeller network, eller handlingens HTTP-statuskode som en streng (f.eks. "404"), når Dataverse returnerede et fejlsvar, eller "0" når der ikke var nogen HTTP-status tilgængelig. not_permitted betyder, at handlingen eller funktionen ikke findes på miljøets liste over tilladte sider for generative sider – det angiver ikke, om den aktuelle bruger har dataverserettigheder til at køre den. En rettighedsfejl vises typisk som status: 403 med fejlkode "403". Hvis værten ikke kan bestemme HTTP-status, returneres status: 0 den i stedet.

eksempel på executeAction

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 metode

Aktiverer en brugerdefineret Dataverse-API, som en opretter har bundet til siden som en funktion (en skrivebeskyttet meddelelse med GET-semantik).

Parametre

Angiv en værdi for denne påkrævede parameter.

Name Type Beskrivende tekst
request DataverseFunctionRequest Den funktion, der skal aktiveres, og dens inputparametre.

DataverseFunctionRequest

Name Type Beskrivende tekst
name string Det entydige navn på den brugerdefinerede API med præfikset udgiver, f.eks new_GetExchangeRate. .
parameters object (Valgfrit) De inputparametre, der kræves af funktionen, angivet efter parameter entydige navn.
boundTo object (Valgfrit) En reference til målrækken (entityName og id) for objektbundne funktioner. Udelad for globale (ubundne) funktioner.

Retur

Et løfte , der indeholder et DataverseActionResult. Som med executeAction, udløses denne metode aldrig for forventede fejl . Kontrollér egenskaben ok i stedet for.

eksempel på executeFunction

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 metode

Viser de brugerdefinerede API'er for Dataverse (handlinger og funktioner), som en opretter har bundet til siden.

Parametre

Ingen.

Retur

Et løfte , der indeholder en matrix af DataverseActionInfo-poster . Returnerer en tom matrix, når registrering ikke er aktiveret for kørsel.

DataverseActionInfo

DataverseActionInfo afspejler, hvad sidens opretter er bundet til denne handling eller funktion, ikke dynamiske dataversemetadata. Brug den ikke til at oprette inputformularer eller validere output – kontrollér parameterkrav og outputfigurer i forhold til den faktiske brugerdefinerede API-definition for Dataverse.

Name Type Beskrivende tekst
name string Det entydige (logiske) navn på den brugerdefinerede API Til Dataverse.
displayName string Det viste navn på en brugerdefineret API.
isFunction boolean true hvis den brugerdefinerede API Dataverse er en funktion (skrivebeskyttet); false hvis det er en handling, herunder når denne værdi ikke blev registreret på bindingstidspunktet.
bindingType string Bindingstypen: "Global" eller "Entity".
boundEntityLogicalName string (Valgfrit) Den tabel, som handlingen eller funktionen er bundet til, hvornår bindingType er "Entity".
parameters Object[] De inputparametre, der registreres, da den brugerdefinerede API Dataverse blev bundet til siden, hver med en name og declaredKind. type er altid "unknown" og optional er altid false – hverken afspejler dataverse-den brugerdefinerede API's faktiske metadata.
outputs Object[] Altid en tom matrix. Registrering af binding registrerer ikke outputparametre.

Eksempel på listBoundActions

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