หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ใช้การดําเนินการและวิธีการของฟังก์ชันของ dataApi วัตถุเพื่อเรียกใช้ Api แบบกําหนดเองของ Dataverse ที่ผูกไว้กับหน้า
Note
การดําเนินการและวิธีการของฟังก์ชันเป็นทางเลือกในสัญญาที่แชร์dataApi โฮสต์บางตัวไม่ได้ใช้โฮสต์ดังนั้นโปรดตรวจสอบว่ามีเมธอดอยู่ก่อนที่จะเรียกใช้ วิธีการที่แสดงไม่ได้หมายความว่าการดําเนินการถูกผูกไว้กับหน้า เปิดใช้งานสําหรับรันไทม์ หรืออนุญาตสําหรับผู้ใช้ปัจจุบัน ไม่เหมือนกับวิธีการเชื่อมต่อ วิธีการเหล่านี้จะไม่แสดงความล้มเหลวที่คาดไว้ ซึ่งแก้ไขปัญหาได้ด้วย ok: false และรหัสข้อผิดพลาดแทน จัดการผลลัพธ์ ok และ error คุณสมบัติของผลลัพธ์อย่างชัดเจน
listBoundActions แสดงการดําเนินการและฟังก์ชันที่การกําหนดค่ารันไทม์ปัจจุบันอนุญาตสําหรับหน้าเมื่อเปิดใช้งานการค้นพบ ซึ่งไม่รับประกันว่าผู้ใช้ปัจจุบันมีสิทธิ์การใช้งาน Dataverse ที่จําเป็นสําหรับการดําเนินการทุกการดําเนินการที่แสดงรายการไว้
| วิธีการ | คำอธิบาย |
|---|---|
executeAction |
เรียกใช้ API แบบกําหนดเองของ Dataverse ที่ผูกกับหน้าเป็นการดําเนินการ |
executeFunction |
เรียกใช้ API แบบกําหนดเองของ Dataverse ที่ผูกกับหน้าเป็นฟังก์ชัน |
listBoundActions |
แสดงรายการ API แบบกําหนดเองของ Dataverse (การดําเนินการและฟังก์ชัน) ที่ผูกไว้กับหน้า |
executeAction วิธี
เรียกใช้ API แบบกําหนดเองของ Dataverse ที่ผู้สร้างผูกกับหน้าเป็นการดําเนินการ (ข้อความที่อาจเปลี่ยนแปลงข้อมูล)
พารามิเตอร์
ตั้งค่าสําหรับพารามิเตอร์ที่จําเป็นนี้
| ชื่อ | Type | คำอธิบาย |
|---|---|---|
request |
DataverseActionRequest | การดําเนินการเพื่อเรียกใช้และพารามิเตอร์การป้อนข้อมูล |
DataverseActionRequest
| ชื่อ | Type | คำอธิบาย |
|---|---|---|
name |
string |
ชื่อเฉพาะของ API แบบกําหนดเอง คํานําหน้าผู้เผยแพร่ เช่นnew_ApproveExpenseReport |
parameters |
object |
(ไม่บังคับ) พารามิเตอร์ข้อมูลป้อนเข้าที่การดําเนินการต้องการ โดยป้อนคีย์ตามชื่อพารามิเตอร์ที่ไม่ซ้ํากัน |
boundTo |
object |
(ไม่บังคับ) การอ้างอิงแถวเป้าหมาย (entityName และ id) สําหรับการดําเนินการที่ผูกกับเอนทิตี ไม่ใช้สําหรับการดําเนินการส่วนกลาง (ไม่ถูกผูกไว้) |
การคืนสินค้า
สัญญาที่มี DataverseActionResult วิธีนี้จะไม่แสดงความล้มเหลวที่คาดไว้ (เช่น ข้อผิดพลาดของสิทธิ์ 403 พารามิเตอร์ที่ไม่ดี 400 หรือการดําเนินการที่ไม่ได้ผูกหรือเปิดใช้งาน) — ตรวจสอบ ok คุณสมบัติแทน
DataverseActionResult
| ชื่อ | Type | คำอธิบาย |
|---|---|---|
ok |
boolean |
ระบุว่าการดําเนินการสําเร็จหรือไม่ |
status |
number |
รหัสสถานะ HTTP ที่ส่งกลับโดย Dataverse หรือ 0 เมื่อไม่มีสถานะ HTTP
0สถานะอาจหมายถึงรันไทม์ที่ปฏิเสธการเรียกใช้ก่อนที่จะส่ง (ตัวอย่างเช่น not_enabled, not_bound, not_permitted, wrong_operation_kindinvalid_parameter, หรือ invalid_bound_to) คําขอล้มเหลวโดยไม่มีการตอบสนองของ HTTP หรือผลลัพธ์ไม่เป็นที่ทราบ (indeterminate คือ true) ใช้ error.code และ indeterminate เพื่อแยกกรณีเหล่านี้ออกจากกัน |
outputs |
object |
พารามิเตอร์ผลลัพธ์ที่ส่งกลับโดยการดําเนินการ โดยคีย์ตามชื่อที่ไม่ซ้ํากัน ว่างเปล่าสําหรับการดําเนินการที่ไม่มีเอาต์พุต |
indeterminate |
boolean |
(ไม่บังคับ) true เมื่อหมดเวลาหรือความล้มเหลวในการส่งผ่านข้อมูลอื่น ๆ หมายความว่าเซิร์ฟเวอร์อาจยอมรับการดําเนินการดังกล่าว; ไม่ต้องลองใหม่โดยอัตโนมัติ |
error |
object |
(ไม่บังคับ) รายละเอียดข้อผิดพลาดเมื่อ ok เป็น falseรวมถึงเครื่องที่สามารถอ่านได้ code และถูก messageสุขลักษณะ
codeเป็นหนึ่งใน , , wrong_operation_kind, , invalid_parameter, invalid_bound_toindeterminateหรือ หรือnetworkรหัสสถานะ HTTP ของการดําเนินการเป็นสตริง (ตัวอย่างเช่น "404") เมื่อ Dataverse ส่งกลับการตอบสนองข้อผิดพลาด หรือ"0"เมื่อไม่มีสถานะ HTTP not_enablednot_boundnot_permitted
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 Semantics)
พารามิเตอร์
ตั้งค่าสําหรับพารามิเตอร์ที่จําเป็นนี้
| ชื่อ | Type | คำอธิบาย |
|---|---|---|
request |
DataverseFunctionRequest | ฟังก์ชันที่จะเรียกใช้และพารามิเตอร์การป้อนข้อมูล |
DataverseFunctionRequest
| ชื่อ | Type | คำอธิบาย |
|---|---|---|
name |
string |
ชื่อเฉพาะของ API แบบกําหนดเอง คํานําหน้าผู้เผยแพร่ เช่นnew_GetExchangeRate |
parameters |
object |
(ไม่บังคับ) พารามิเตอร์ข้อมูลป้อนเข้าที่ต้องการโดยฟังก์ชัน โดยป้อนคีย์ตามชื่อที่ไม่ซ้ํากันของพารามิเตอร์ |
boundTo |
object |
(ไม่บังคับ) การอ้างอิงแถวเป้าหมาย (entityName และ id) สําหรับฟังก์ชันที่ผูกกับเอนทิตี ไม่ใช้สําหรับฟังก์ชันส่วนกลาง (ไม่ถูกผูกไว้) |
การคืนสินค้า
สัญญาที่มี 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 (การดําเนินการและฟังก์ชัน) ที่ผู้สร้างผูกไว้กับหน้า
พารามิเตอร์
ไม่มี
การคืนสินค้า
สัญญาที่มีอาร์เรย์ของรายการ DataverseActionInfo แสดงอาร์เรย์ว่างเมื่อไม่ได้เปิดใช้งานการค้นพบสําหรับรันไทม์
DataverseActionInfo
DataverseActionInfo แสดงสิ่งที่ผู้สร้างของหน้าผูกไว้กับการดําเนินการหรือฟังก์ชันนี้ ไม่ใช่เมตาดาต้า Dataverse แบบสด อย่าใช้เพื่อสร้างฟอร์มการป้อนข้อมูลหรือตรวจสอบเอาต์พุต — ตรวจสอบข้อกําหนดของพารามิเตอร์และรูปร่างเอาต์พุตเทียบกับข้อกําหนด API แบบกําหนดเองสําหรับ Dataverse จริง ๆ
| ชื่อ | Type | คำอธิบาย |
|---|---|---|
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คือเสมอ "unknown"false และ optional อยู่เสมอ — ไม่สะท้อนถึงเมตาดาต้าจริงของ API แบบกําหนดเองของ Dataverse |
outputs |
Object[] |
อาร์เรย์ที่ว่างเปล่าเสมอ การค้นพบการผูกไม่ได้บันทึกพารามิเตอร์เอาต์พุต |
ตัวอย่าง listBoundActions
const actions = await dataApi.listBoundActions?.();