Dataverse action and function methods for generative pages

Використовуйте методи dataApi дії та функції об'єкта, щоб викликати настроювані API Dataverse , прив'язані до сторінки.

Нотатка

У спільному dataApi контракті необов'язкові методи дій і функцій. Деякі хости не впроваджують їх, тому перевірте, чи існує метод, перш ніж викликати його. Наявний метод не означає, що операція прив'язана до сторінки, увімкнута для середовища виконання або дозволена для поточного користувача. На відміну від методів сполучної лінії, ці методи ніколи не кидають для очікуваних помилок; замість них буде вирішено проблему з ok: false кодом помилки. Явне оброблення результатів ok і error властивостей.

listBoundActions повертає дії та функції, які дозволяє поточна конфігурація середовища виконання для сторінки, якщо цю функцію активовано; це не гарантує, що поточний користувач має права Dataverse, необхідні для виконання кожної вказаної операції.

Метод Опис
executeAction Викликає настроюваний API Dataverse, прив'язаний до сторінки як дію.
executeFunction Викликає настроюваний API Dataverse, прив'язаний до сторінки як функцію.
listBoundActions Список настроюваних API (дій і функцій) Dataverse, прив'язаних до сторінки.

executeAction метод

Викликає настроюваний API Dataverse, який виробник прив'язав до сторінки як дію (повідомлення, яке може змінити дані).

Параметри

Установіть значення для цього обов'язкового параметра.

Ім'я Тип Опис
request DataverseActionRequest Дія, яка викликається, і її вхідні параметри.

DataverseActionRequest

Ім'я Тип Опис
name string Унікальне ім'я настроюваного API, префікса видавця, наприклад new_ApproveExpenseReport.
parameters object (Необов'язково) Параметри вводу, необхідні для дії, з ключем від унікального імені параметра.
boundTo object (Необов'язково) Посилання на цільовий рядок (entityName і id) для дій, пов'язаних із сутністю. Не пускати для глобальних (незв'язаних) дій.

Відповіді

Обіцянка, що містить DataverseActionResult. Цей метод ніколи не кидає очікувані помилки (наприклад, помилку дозволу 403, неправильний параметр 400 або операцію не зв'язано або ввімкнуто) — перевірте ok властивість.

DataverseActionResult

Ім'я Тип Опис
ok boolean Указує, чи вдалося виконати дію.
status number Код стану HTTP, повернутий Dataverse, або 0 якщо немає стану HTTP. Стан 0 може означати, що час виконання відхилив виклик перед надсиланням (наприклад, not_enabled, , not_bound, not_permittedwrong_operation_kind, invalid_parameter, або invalid_bound_to), помилка запиту без відповіді HTTP, або невідомий результат (indeterminate є true). Використовуйте error.code ці інциденти та indeterminate розкажіть їх окремо.
outputs object Параметри виводу, повернуті дією, за допомогою унікального імені. Пусто для дій без вихідних результатів.
indeterminate boolean (Необов'язково) true коли час очікування або інша помилка після відправлення означає, що сервер міг виконати цю дію; не повторюйте автоматично.
error object (Необов'язково) Відомості про помилку , включно okfalseз машиночитабельними code та дезінфікованими файлами message. code– це один із not_enabled, not_bound, not_permitted, invalid_parameterwrong_operation_kind, invalid_bound_to, , indeterminateабо network, або код стану HTTP дії як рядок (наприклад, "404"), коли Dataverse повернув відповідь на помилку або "0" коли статус HTTP не був доступний. not_permitted означає, що дії або функції немає в списку довірених для генеративних сторінок середовища , це не вказує на те, чи має поточний користувач права на керування даними. Помилка прав зазвичай виникає, як status: 403 і з кодом "403"помилки; якщо хост не може визначити стан HTTP, він повертається status: 0 замість цього.

executeAction example

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 метод

Викликає настроюваний API Dataverse, який виробник прив'язав до сторінки як функцію (повідомлення лише для читання з семантикою GET).

Параметри

Установіть значення для цього обов'язкового параметра.

Ім'я Тип Опис
request DataverseFunctionRequest Функція, яка викликається, і її вхідні параметри.

DataverseFunctionRequest

Ім'я Тип Опис
name string Унікальне ім'я настроюваного API, префікса видавця, наприклад new_GetExchangeRate.
parameters object (Необов'язково) Параметри вводу, необхідні для функції, з ключем від унікального імені параметра.
boundTo object (Необов'язково) Посилання на цільовий рядок (entityName і id) для функцій, пов'язаних із сутністю. Пропустити для глобальних (незв'язаних) функцій.

Відповіді

Обіцянка, що містить DataverseActionResult. Як і у випадку з executeAction, цей метод ніколи не кидає на очікувані помилки - перевірте ok властивість замість.

executeFunction example

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 метод

У цій статті наведено список настроюваних API (дій і функцій), прив'язаних до сторінки виробником.

Параметри

None.

Відповіді

Обіцянка, що містить масив записів DataverseActionInfo. Повертає пустий масив, якщо виявлення не ввімкнуто для середовища виконання.

DataverseActionInfo

DataverseActionInfo відображає вміст, пов'язаний із цією дією або функцією, а не динамічні метадані Dataverse. Не використовуйте її для створення форм вводу або перевірки вихідних даних – перевірте вимоги до параметрів і фігури виводу відповідно до фактичного визначення настроюваного API Dataverse.

Ім'я Тип Опис
name string Унікальне (логічне) ім'я настроюваного API Dataverse.
displayName string Коротке ім'я настроюваного інтерфейсу API.
isFunction boolean true якщо настроюваний API Dataverse – це функція (лише для читання); false якщо це дія, включно з тим, коли це значення не було записано під час зв'язування.
bindingType string Тип зв'язування: "Global" або "Entity".
boundEntityLogicalName string (Необов'язково) Таблиця, до яку прив'язано дію або функцію , коли bindingType є "Entity".
parameters Object[] Вхідні параметри, записані, коли настроюваний API Dataverse прив'язано до сторінки, кожен із яких містить a name та declaredKind. type "unknown" optional false не відображає фактичні метадані настроюваного API Dataverse.
outputs Object[] Завжди пустий масив. Виявлення зв'язування не записує параметри виводу.

listBoundActions Приклад

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