Dataverse-toiminto ja funktiomenetelmät luoville sivuille

Kutsu -objektin toiminto- ja funktiomenetelmiä dataApi , joilla käynnistetään sivulle sidottuja Dataversen mukautettuja ohjelmointirajapintoja .

Note

Toiminto- ja funktiomenetelmät ovat valinnaisia jaetussa dataApi sopimuksessa. Jotkin isännät eivät ota niitä käyttöön, joten tarkista menetelmän olemassaolo ennen sen kutsumista. Menetelmä ei tarkoita, että toiminto sidotaan sivuun, otetaan käyttöön suorituspalvelussa tai se on sallittu nykyiselle käyttäjälle. Toisin kuin liitinmenetelmät, nämä menetelmät eivät koskaan heitä odotettuja virheitä; niiden ratkaisu on ja ok: false niiden sijaan niissä on virhekoodi. Käsittele kohteen ok ja error ominaisuudet eksplisiittisesti.

listBoundActions palauttaa toiminnot ja funktiot, jotka nykyinen suorituksenaikainen määritys sallii sivulle, kun etsintä on käytössä; se ei takaa, että nykyisellä käyttäjällä on Dataverse-oikeudet, joita tarvitaan jokaisen luetellun toiminnon suorittamiseen.

Menetelmä Kuvaus
executeAction Käynnistää dataverse-mukautetun ohjelmointirajapinnan, joka on sidottu sivulle toimintona.
executeFunction Käynnistää dataverse-mukautetun ohjelmointirajapinnan, joka on sidottu sivulle funktiona.
listBoundActions Näyttää luettelon sivuun sidotuista Dataversen mukautetuista ohjelmointirajapinnoista (toiminnoista ja funktioista).

executeAction menetelmä

Käynnistää Mukautetun Dataverse-ohjelmointirajapinnan, jonka tekijä sitoo sivulle toimintona (viesti, joka saattaa muuttaa tietoja).

Parametrit

Määritä tälle pakolliselle parametrille arvo.

Nimi Kirjoita Kuvaus
request DataverseActionRequest Kutsuttava toiminto ja sen syöteparametrit.

DataverseActionRequest

Nimi Kirjoita Kuvaus
name string Mukautetun ohjelmointirajapinnan yksilöivä nimi, julkaisijan etuliite, kuten new_ApproveExpenseReport.
parameters object (Valinnainen) Toiminnon edellyttämät syöteparametrit, joita avain on parametrin yksilöivä nimi.
boundTo object (Valinnainen) Kohderiviviittaus (entityName ja id) entiteettiin sidotuille toiminnoille. Poista yleiset (ei sidotut) toiminnot.

Palautukset

Lupaus, joka sisältää DataverseActionResult-asetuksen. Tämä menetelmä ei koskaan järjestä odotettuja virheitä (kuten 403-käyttöoikeusvirhe, 400-virheellinen parametri tai toiminto, jota ei ole sidottu tai käytössä) – tarkista ok ominaisuus sen sijaan.

DataverseActionResult

Nimi Kirjoita Kuvaus
ok boolean Ilmaisee, onnistuiko toiminto.
status number Dataversen palauttama HTTP-tilakoodi tai 0 kun HTTP-tilaa ei ole käytettävissä. Tila 0 voi tarkoittaa, not_enabledettä suorituksenaikainen hylkää -kutsun ennen sen lähettämistä (esimerkiksi , not_bound, not_permitted, wrong_operation_kind, invalid_parametertai invalid_bound_to), pyyntö epäonnistui ilman HTTP-vastausta tai tulos on tuntematon (indeterminate on true). Käytä error.code näitä tapauksia ja indeterminate erota ne toisistaan.
outputs object Toiminnon palauttamat tulosparametrit, joita avain on yksilöivä nimi. Tyhjä toiminnoille, joilla ei ole tulosteita.
indeterminate boolean (Valinnainen) true kun aikakatkaisu tai muu lähettämisen jälkeinen virhe tarkoittaa, että palvelin on saattanut tehdä toiminnon; älä yritä automaattisesti uudelleen.
error object (Valinnainen) Virhetiedot, kun ok on , mukaan lukien koneluettava code ja sanitisoitu messagefalse. code on yksi not_enabled-, - not_bound, - not_permitted, wrong_operation_kind- invalid_parameter, invalid_bound_to-, indeterminate- tai network-toiminnosta, tai toiminnon HTTP-tilakoodi merkkijonona (esimerkiksi "404"), kun Dataverse palautti virhevastauksen tai "0" kun HTTP-tilaa ei ollut käytettävissä. not_permitted tarkoittaa, että toiminto tai funktio ei ole ympäristön sallittujen luettelossa luotaville sivuille – se ei ilmaise, onko nykyisellä käyttäjällä Dataverse-oikeudet sen suorittamiseen. Oikeusvirhe ilmenee yleensä virhekoodin status: 403"403"muodossa . Jos isäntä ei pysty määrittämään HTTP-tilaa, se palauttaa status: 0 sen sijaan virheen.

esimerkki suoritustoimista

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 menetelmä

Käynnistää mukautetun Dataverse-ohjelmointirajapinnan, jonka tekijä on sidottu sivulle funktiona (vain luku -viesti, jossa on GET-semantiikka).

Parametrit

Määritä tälle pakolliselle parametrille arvo.

Nimi Kirjoita Kuvaus
request DataverseFunctionRequest Kutsuttava funktio ja sen syöteparametrit.

DataverseFunctionRequest

Nimi Kirjoita Kuvaus
name string Mukautetun ohjelmointirajapinnan yksilöivä nimi, julkaisijan etuliite, kuten new_GetExchangeRate.
parameters object (Valinnainen) -funktion edellyttämät syöteparametrit, joita käyttää parametrin yksilöivä nimi.
boundTo object (Valinnainen) Kohderiviviittaus (entityName ja id) entiteettiin sidotuille funktioille. Poista yleiset (ei sidotut) funktiot.

Palautukset

Lupaus, joka sisältää DataverseActionResult-asetuksen. Kuten kohdassa executeAction, tämä menetelmä ei koskaan heitä odotetuista virheistä – tarkista ok ominaisuus sen sijaan.

esimerkki 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 menetelmä

Näyttää luettelon Dataversen mukautetuista ohjelmointirajapinnoista (toiminnoista ja funktioista), joita sivulle sitonut tekijä on sitonut.

Parametrit

Ei mitään.

Palautukset

Lupaus, joka sisältää joukon DataverseActionInfo-merkintöjä. Palauttaa tyhjän matriisin, kun etsintä ei ole käytössä suorituspalvelussa.

DataverseActionInfo

DataverseActionInfo heijastelee sitä, mitä sivun tekijä on sitonut tähän toimintoon tai funktioon, ei reaaliaikaisia Dataverse-metatietoja. Älä käytä sitä syötelomakkeiden luomiseen tai tulosteiden vahvistamiseen. Tarkista parametrivaatimukset ja tulostemuodot verrattuna todelliseen Dataversen mukautettuun ohjelmointirajapinnan määritelmään.

Nimi Kirjoita Kuvaus
name string Dataversen mukautetun ohjelmointirajapinnan yksilöivä (looginen) nimi.
displayName string Mukautetun ohjelmointirajapinnan näyttönimi.
isFunction boolean true jos Dataversen mukautettu ohjelmointirajapinta on funktio (vain luku); false jos se on toiminto, myös silloin, kun tätä arvoa ei tallennettu sidonta-aikana.
bindingType string Sidontatyyppi: "Global" tai "Entity".
boundEntityLogicalName string (Valinnainen) Taulukko, johon toiminto tai funktio sidotaan, kun bindingType on "Entity".
parameters Object[] Dataversen mukautetun ohjelmointirajapinnan sivulle sitomisen yhteydessä tallennetut syöteparametrit, joilla kullakin name oli ja declaredKind. type on aina "unknown" ja optional on aina false – ei vastaa Dataversen mukautetun ohjelmointirajapinnan todellisia metatietoja.
outputs Object[] Aina tyhjä matriisi. Sidontaetsintä ei tallenna tulosparametreja.

listBoundActions -esimerkki

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