การดําเนินการผกผันและวิธีการของฟังก์ชันสําหรับหน้าที่สร้าง

ใช้การดําเนินการและวิธีการของฟังก์ชันของ 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?.();