Методы действия и функции dataverse для создания страниц

Используйте методы dataApi действия и функции объекта для вызова пользовательских API Dataverse , привязанных к странице.

Примечание.

Методы действий и функций являются необязательными в общем dataApi контракте. Некоторые узлы не реализуют их, поэтому убедитесь, что метод существует перед вызовом. Метод, который присутствует, не означает, что операция привязана к странице, включена для среды выполнения или разрешена для текущего пользователя. В отличие от методов соединителя, эти методы никогда не вызывают ожидаемые сбои; они разрешаются с ok: false помощью кода ошибки и вместо него. Обработка результатов ok и error свойств явным образом.

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

Метод Description
executeAction Вызывает настраиваемый API Dataverse, привязанный к странице в качестве действия.
executeFunction Вызывает настраиваемый API Dataverse, привязанный к странице в качестве функции.
listBoundActions Перечисляет настраиваемые API Dataverse (действия и функции), привязанные к странице.

executeActionМетод

Вызывает пользовательский API Dataverse, привязанный к странице в качестве действия (сообщение, которое может изменить данные).

Parameters

Задайте значение для этого обязательного параметра.

Name Type Description
request DataverseActionRequest Действие для вызова и входных параметров.

DataverseActionRequest

Name Type Description
name string Уникальное имя пользовательского API, префиксированного издателем, например new_ApproveExpenseReport.
parameters object (Необязательно) Входные параметры, необходимые для действия, ключом с помощью уникального имени параметра.
boundTo object (Необязательно) Ссылка на целевую строку (entityName и id) для действий, связанных с сущностью. Опущено для глобальных (несвязанных) действий.

Returns

Обещание, содержащее DataverseActionResult. Этот метод никогда не вызывает ожидаемых сбоев (таких как ошибка разрешения 403, неправильный параметр 400 или операция не привязана или включена) — проверьте ok это свойство.

DataverseActionResult

Name Type Description
ok boolean Указывает, успешно ли выполнено действие.
status number Код состояния HTTP, возвращаемый Dataverse или 0 если состояние HTTP недоступно. Состояние 0 может означать, что среда выполнения отклонила вызов перед отправкой (например, , not_boundinvalid_parameternot_permittednot_enabledwrong_operation_kindили invalid_bound_to), запрос завершился сбоем без HTTP-ответа, или результат неизвестен (indeterminateимеет значение ).true Используйте error.code и indeterminate сообщите об этих случаях отдельно.
outputs object Выходные параметры, возвращаемые действием, ключом с помощью уникального имени. Пусто для действий без выходных данных.
indeterminate boolean (Необязательно) true Если время ожидания или другой сбой после отправки означает, что сервер может зафиксировать действие; Не повторяйтесь автоматически.
error object (Необязательно) Сведения об ошибке, когда ok это falseпроисходит, включая машинный code и удобочитаемый message. code— это один из not_enabled, not_permittednot_bound, wrong_operation_kindinvalid_parameterindeterminateinvalid_bound_to, или networkкод состояния HTTP действия в виде строки (например, "404"), когда Dataverse вернул ответ на ошибку или "0" когда состояние HTTP не было доступно. not_permitted означает, что действие или функция не находятся в списке разрешений среды для генеривных страниц. Он не указывает, содержит ли текущий пользователь права dataverse для его запуска. Ошибка привилегий обычно возникает как status: 403 с кодом "403"ошибки; если узел не может определить состояние HTTP, он возвращается status: 0 вместо него.

Пример 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Метод

Вызывает настраиваемый API Dataverse, привязанный к странице в качестве функции (сообщение только для чтения с семантикой GET).

Parameters

Задайте значение для этого обязательного параметра.

Name Type Description
request DataverseFunctionRequest Функция для вызова и входных параметров.

DataverseFunctionRequest

Name Type Description
name string Уникальное имя пользовательского API, префиксированного издателем, например new_GetExchangeRate.
parameters object (Необязательно) Входные параметры, необходимые функции, ключом с помощью уникального имени параметра.
boundTo object (Необязательно) Ссылка на целевую строку (entityName и id) для функций, привязанных к сущностям. Опущено для глобальных (несвязанных) функций.

Returns

Обещание, содержащее DataverseActionResult. Как и в случае executeActionс этим методом, этот метод никогда не вызывает ожидаемых сбоев— вместо этого проверьте ok свойство.

Пример 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Метод

Перечисляет пользовательские API Dataverse (действия и функции), привязанные к странице создателем.

Parameters

None.

Returns

Обещание, содержащее массив записей DataverseActionInfo. Возвращает пустой массив, если обнаружение не включено для среды выполнения.

DataverseActionInfo

DataverseActionInfo отражает то, что создатель страницы привязан к этому действию или функции, а не динамическим метаданным Dataverse. Не используйте его для создания входных форм или проверки выходных данных — проверьте требования к параметрам и выходные фигуры в соответствии с фактическим определением пользовательского API Dataverse.

Name Type Description
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 к странице, каждый из которых имеет name значение и declaredKind. typeвсегда и optional всегда "unknown" — false не отражает фактические метаданные пользовательского API Dataverse.
outputs Object[] Всегда пустой массив. Обнаружение привязки не записывает выходные параметры.

пример listBoundActions

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