Metody akcji i funkcji usługi Dataverse dla stron generowania

Użyj metod dataApi akcji i funkcji obiektu, aby wywołać niestandardowe interfejsy API usługi Dataverse powiązane ze stroną.

Uwaga / Notatka

Metody akcji i funkcji są opcjonalne w umowie udostępnionej dataApi . Niektóre hosty nie implementują ich, dlatego przed wywołaniem metody sprawdź, czy istnieje metoda. Obecna metoda nie oznacza, że operacja jest powiązana ze stroną, włączona dla środowiska uruchomieniowego lub dozwolona dla bieżącego użytkownika. W przeciwieństwie do metod łącznika te metody nigdy nie zgłaszają oczekiwanych błędów; Zamiast tego rozwiążą problem z ok: false kodem błędu i . Jawne obsługa właściwości i error wynikówok.

listBoundActions Zwraca akcje i funkcje, które umożliwia bieżącą konfigurację środowiska uruchomieniowego dla strony po włączeniu tego odnajdywania; Nie jest to gwarancja, że bieżący użytkownik posiada uprawnienia usługi Dataverse wymagane do wykonania każdej wymienionej operacji.

Metoda Description
executeAction Wywołuje niestandardowy interfejs API usługi Dataverse powiązany ze stroną jako akcję.
executeFunction Wywołuje niestandardowy interfejs API usługi Dataverse powiązany ze stroną jako funkcję.
listBoundActions Wyświetla listę niestandardowych interfejsów API usługi Dataverse (akcji i funkcji) powiązanych ze stroną.

Metoda executeAction

Wywołuje niestandardowy interfejs API usługi Dataverse powiązany ze stroną jako akcję (komunikat, który może zmienić dane).

Parameters

Ustaw wartość dla tego wymaganego parametru.

Name Typ Description
request DataverseActionRequest Akcja wywoływania i jego parametrów wejściowych.

DataverseActionRequest

Name Typ Description
name string Unikatowa nazwa niestandardowego interfejsu API, prefiks wydawcy, taki jak new_ApproveExpenseReport.
parameters object (Opcjonalnie) Parametry wejściowe wymagane przez akcję, kluczem według unikatowej nazwy parametru.
boundTo object (Opcjonalnie) Odwołanie do wiersza docelowego (entityName i id) dla akcji powiązanych z jednostkami. Pomiń akcje globalne (niezwiązane).

Returns

Obietnica zawierająca element DataverseActionResult. Ta metoda nigdy nie zgłasza oczekiwanych błędów (takich jak błąd uprawnień 403, 400 nieprawidłowy parametr lub operacja nie jest powiązana lub włączona) — sprawdź ok właściwość zamiast tego.

DataverseActionResult

Name Typ Description
ok boolean Wskazuje, czy akcja zakończyła się pomyślnie.
status number Kod stanu HTTP zwrócony przez usługę Dataverse lub 0 gdy stan HTTP nie jest dostępny. 0 Stan może oznaczać, że środowisko uruchomieniowe odrzuciło wywołanie przed wysłaniem go (na przykład not_enabled, , not_bound, wrong_operation_kindnot_permitted, , invalid_parameterlub invalid_bound_to), żądanie nie powiodło się bez odpowiedzi HTTP lub wynik jest nieznany (indeterminate to true). Użyj instrukcji error.code i indeterminate , aby odróżnić te przypadki.
outputs object Parametry wyjściowe zwrócone przez akcję, kluczem o unikatowej nazwie. Puste dla akcji bez danych wyjściowych.
indeterminate boolean (Opcjonalnie) true w przypadku przekroczenia limitu czasu lub innego błędu po wysłaniu oznacza, że serwer mógł zadeklarować akcję; nie ponawiaj próby automatycznie.
error object (Opcjonalnie) Szczegóły błędu, gdy ok to false, w tym czytelny code dla maszyny i oczyszczony messageelement . codejest jednym z not_enabled, , not_permittedinvalid_parameterindeterminateinvalid_bound_tonot_boundwrong_operation_kindlub networkkod stanu HTTP akcji jako ciąg (na przykład "404"), gdy usługa Dataverse zwróciła odpowiedź o błędzie lub "0" gdy stan HTTP nie był dostępny. not_permitted oznacza, że akcja lub funkcja nie znajduje się na liście dozwolonych środowiska dla stron generowania — nie wskazuje, czy bieżący użytkownik posiada uprawnienia usługi Dataverse do jego uruchomienia. Awaria uprawnień zwykle występuje podobnie jak status: 403 w przypadku kodu "403"błędu ; jeśli host nie może określić stanu HTTP, zwraca status: 0 zamiast tego.

przykład 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);
}

Metoda executeFunction

Wywołuje niestandardowy interfejs API usługi Dataverse powiązany ze stroną jako funkcję (komunikat tylko do odczytu z semantyki GET).

Parameters

Ustaw wartość dla tego wymaganego parametru.

Name Typ Description
request DataverseFunctionRequest Funkcja do wywoływania i jej parametrów wejściowych.

DataverseFunctionRequest

Name Typ Description
name string Unikatowa nazwa niestandardowego interfejsu API, prefiks wydawcy, taki jak new_GetExchangeRate.
parameters object (Opcjonalnie) Parametry wejściowe wymagane przez funkcję, kluczem według unikatowej nazwy parametru.
boundTo object (Opcjonalnie) Odwołanie do wiersza docelowego (entityName i id) dla funkcji powiązanych z jednostkami. Pomiń funkcje globalne (niepowiązane).

Returns

Obietnica zawierająca element DataverseActionResult. Podobnie jak w przypadku executeActionmetody , ta metoda nigdy nie zgłasza oczekiwanych błędów — zamiast tego sprawdź ok właściwość.

przykład 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);
}

Metoda listBoundActions

Wyświetla listę niestandardowych interfejsów API usługi Dataverse (akcji i funkcji), które producent jest powiązany ze stroną.

Parameters

None.

Returns

Obietnica zawierająca tablicę wpisów DataverseActionInfo. Zwraca pustą tablicę, gdy odnajdywanie nie jest włączone dla środowiska uruchomieniowego.

DataverseActionInfo

DataverseActionInfo Odzwierciedla to, co twórca strony jest powiązany z tą akcją lub funkcją, a nie na żywo metadanych usługi Dataverse. Nie używaj go do kompilowania formularzy wejściowych ani weryfikowania danych wyjściowych — sprawdź wymagania dotyczące parametrów i kształty wyjściowe względem rzeczywistej niestandardowej definicji interfejsu API usługi Dataverse.

Name Typ Description
name string Unikatowa (logiczna) nazwa niestandardowego interfejsu API usługi Dataverse.
displayName string Nazwa wyświetlana niestandardowego interfejsu API.
isFunction boolean true jeśli niestandardowy interfejs API usługi Dataverse jest funkcją (tylko do odczytu); false jeśli jest to akcja, w tym wtedy, gdy ta wartość nie została zarejestrowana w czasie powiązania.
bindingType string Typ powiązania: "Global" lub "Entity".
boundEntityLogicalName string (Opcjonalnie) Tabela, z którymi jest powiązana akcja lub funkcja, gdy bindingType ma wartość "Entity".
parameters Object[] Parametry wejściowe zarejestrowane, gdy niestandardowy interfejs API usługi Dataverse został powiązany ze stroną, z których każda ma wartość i namedeclaredKind. type jest zawsze "unknown" i optional zawsze false — ani nie odzwierciedla rzeczywistych metadanych interfejsu API niestandardowego usługi Dataverse.
outputs Object[] Zawsze pusta tablica. Odnajdywanie powiązań nie rejestruje parametrów wyjściowych.

listBoundActions Przykład

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