개체의 작업 및 함수 메서드를 dataApi 사용하여 페이지에 바인딩된 Dataverse 사용자 지정 API 를 호출합니다.
비고
작업 및 함수 메서드는 공유 dataApi 계약에서 선택 사항입니다. 일부 호스트는 구현하지 않으므로 메서드를 호출하기 전에 메서드가 있는지 확인합니다. 메서드가 있다고 해서 작업이 페이지에 바인딩되거나, 런타임에 사용하도록 설정되거나, 현재 사용자에 대해 허용되는 것은 아닙니다. 커넥터 메서드와 달리 이러한 메서드는 예상된 오류를 throw하지 않습니다. 대신 오류 코드를 사용하여 해결 ok: false 합니다. 결과 ok 및 error 속성을 명시적으로 처리합니다.
listBoundActions 는 현재 런타임 구성이 해당 검색을 사용하도록 설정된 경우 페이지에 대해 허용하는 작업 및 함수를 반환합니다. 현재 사용자가 나열된 모든 작업을 실행하는 데 필요한 Dataverse 권한을 보유한다는 보장은 아닙니다.
| 메서드 | Description |
|---|---|
executeAction |
페이지에 바인딩된 Dataverse 사용자 지정 API를 작업으로 호출합니다. |
executeFunction |
페이지에 바인딩된 Dataverse 사용자 지정 API를 함수로 호출합니다. |
listBoundActions |
페이지에 바인딩된 Dataverse 사용자 지정 API(작업 및 함수)를 나열합니다. |
executeAction 메서드
작성자가 페이지에 바인딩된 Dataverse 사용자 지정 API를 작업(데이터를 변경할 수 있는 메시지)으로 호출합니다.
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 잘못된 매개 변수 또는 바인딩되지 않거나 사용하도록 설정되지 않은 작업)를 throw하지 않습니다. 대신 속성을 확인 ok 합니다.
DataverseActionResult
| Name | Type | Description |
|---|---|---|
ok |
boolean |
작업이 성공했는지 여부를 나타냅니다. |
status |
number |
Dataverse에서 반환된 HTTP 상태 코드이거나 0 HTTP 상태를 사용할 수 없는 경우
0 상태는 런타임이 호출을 보내기 전에 거부했음을 의미할 수 있습니다(예: not_enabled, , not_permittednot_bound, wrong_operation_kindinvalid_parameter또는invalid_bound_to) HTTP 응답 없이 요청이 실패했거나 결과를 알 수 없음(indeterminate이true).
indeterminate 이러한 경우를 사용하고 error.code 구분합니다. |
outputs |
object |
작업에서 반환된 출력 매개 변수로, 고유 이름으로 키가 지정됩니다. 출력이 없는 작업의 경우 비어 있습니다. |
indeterminate |
boolean |
(선택 사항) true 시간 제한 또는 기타 디스패치 후 오류가 발생하면 서버가 작업을 커밋했을 수 있습니다. 자동으로 다시 시도하지 마세요. |
error |
object |
(선택 사항) 컴퓨터에서 읽을 수 code 있고 삭제된 message경우를 포함한 오류 세부 정보 ok 입니다false.
code
not_enabled
invalid_parameter
wrong_operation_kind
not_bound
indeterminate
not_permitted
invalid_bound_to은 Dataverse에서 오류 응답을 반환하거나 networkHTTP 상태를 사용할 수 없는 경우 작업 HTTP 상태 코드를 문자열(예"404": 문자열)로 지정합니다."0"
not_permitted 는 작업 또는 함수가 생성 페이지에 대한 환경의 허용 목록에 있지 않음을 의미하며, 현재 사용자가 Dataverse 권한을 보유하여 실행할지 여부를 나타내지 않습니다. 권한 오류는 일반적으로 오류 코드"403"와 같이 status: 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 메서드
작성자가 페이지에 함수(GET 의미 체계가 있는 읽기 전용 메시지)로 바인딩된 Dataverse 사용자 지정 API를 호출합니다.
Parameters
이 필수 매개 변수의 값을 설정합니다.
| Name | Type | Description |
|---|---|---|
request |
DataverseFunctionRequest | 호출할 함수 및 해당 입력 매개 변수입니다. |
DataverseFunctionRequest
| Name | Type | Description |
|---|---|---|
name |
string |
사용자 지정 API의 고유 이름(예: 게시자 접두사) new_GetExchangeRate입니다. |
parameters |
object |
(선택 사항) 함수에 필요한 입력 매개 변수로, 매개 변수 고유 이름으로 키가 지정됩니다. |
boundTo |
object |
(선택 사항) 엔터티 바인딩 함수에 대한 대상 행 참조(entityName 및 id)입니다. 전역(언바운드) 함수는 생략합니다. |
Returns
DataverseActionResult를 포함하는 프라미스입니다. 마찬가지로 executeAction이 메서드는 예상된 오류를 throw하지 않습니다. 대신 속성을 확인 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 메서드
작성자가 페이지에 바인딩된 Dataverse 사용자 지정 API(작업 및 함수)를 나열합니다.
Parameters
None.
Returns
DataverseActionInfo 항목의 배열을 포함하는 프라미스입니다. 런타임에 대해 검색을 사용하도록 설정되지 않은 경우 빈 배열을 반환합니다.
DataverseActionInfo
DataverseActionInfo 는 라이브 Dataverse 메타데이터가 아닌 이 작업 또는 함수에 대해 페이지 작성자가 바인딩한 내용을 반영합니다. 입력 양식을 작성하거나 출력의 유효성을 검사하는 데 사용하지 마세요. 실제 Dataverse 사용자 지정 API 정의에 대한 매개 변수 요구 사항 및 출력 셰이프를 확인합니다.
| Name | Type | Description |
|---|---|---|
name |
string |
Dataverse 사용자 지정 API의 고유한(논리적) 이름입니다. |
displayName |
string |
사용자 지정 API의 표시 이름입니다. |
isFunction |
boolean |
true Dataverse 사용자 지정 API가 함수(읽기 전용)이면 입니다. false 이 값이 바인딩 시간에 기록되지 않은 경우를 포함하여 작업인 경우 |
bindingType |
string |
바인딩 형식: "Global" 또는 "Entity". |
boundEntityLogicalName |
string |
(선택 사항) 작업 또는 함수가 바인딩된 테이블(있는 경우 bindingType )입니다 "Entity". |
parameters |
Object[] |
Dataverse 사용자 지정 API가 각각 a와 declaredKind.name
type 은 항상 "unknown" 이며 optional 항상 false 이며 Dataverse 사용자 지정 API의 실제 메타데이터를 반영하지 않습니다. |
outputs |
Object[] |
항상 빈 배열입니다. 바인딩 검색은 출력 매개 변수를 기록하지 않습니다. |
listBoundActions 예제
const actions = await dataApi.listBoundActions?.();