जनरेटिव पृष्ठों के लिए Dataverse क्रिया और फ़ंक्शन विधियाँ

पृष्ठ से बंधे Dataverse कस्टम API को लागू करने के लिए ऑब्जेक्ट की क्रिया dataApi और फ़ंक्शन विधियों का उपयोग करें.

नोट

साझा dataApi अनुबंध में कार्रवाई और कार्य विधियाँ वैकल्पिक हैं। कुछ होस्ट उन्हें लागू नहीं करते हैं, इसलिए इसे कॉल करने से पहले जांच लें कि कोई विधि मौजूद है। एक विधि मौजूद होने का मतलब यह नहीं है कि ऑपरेशन पृष्ठ से बंधा हुआ है, रनटाइम के लिए सक्षम है, या वर्तमान उपयोगकर्ता के लिए अनुमति दी गई है। कनेक्टर विधियों के विपरीत, ये विधियां कभी भी अपेक्षित विफलताओं के लिए नहीं फेंकती हैं; वे इसके बजाय एक त्रुटि कोड के साथ ok: false हल करते हैं। परिणाम ok और error गुणों को स्पष्ट रूप से संभालें।

listBoundActions उन कार्यों और कार्यों को लौटाता है जो वर्तमान रनटाइम कॉन्फ़िगरेशन उस खोज को सक्षम करने पर पृष्ठ के लिए अनुमति देता है; यह इस बात की गारंटी नहीं है कि वर्तमान उपयोगकर्ता के पास प्रत्येक सूचीबद्ध ऑपरेशन को निष्पादित करने के लिए आवश्यक Dataverse विशेषाधिकार हैं।

विधि विवरण
executeAction एक कार्रवाई के रूप में पृष्ठ से बंधे एक Dataverse कस्टम API का आह्वान करता है.
executeFunction एक फ़ंक्शन के रूप में पृष्ठ से बंधे एक Dataverse कस्टम API का आह्वान करता है.
listBoundActions पृष्ठ से बंधे Dataverse कस्टम API (क्रियाएँ और फ़ंक्शन) को सूचीबद्ध करता है.

executeAction विधि

एक Dataverse कस्टम API को लागू करता है जिसे एक निर्माता एक क्रिया के रूप में पृष्ठ से बंधा होता है (एक संदेश जो डेटा बदल सकता है).

पैरामीटर

इस आवश्यक पैरामीटर के लिए कोई मान सेट करें.

नाम प्रकार विवरण
request DataverseActionRequest लागू करने की क्रिया और इसके इनपुट पैरामीटर।

DataverseActionRequest

नाम प्रकार विवरण
name string कस्टम API का अद्वितीय नाम, प्रकाशक-उपसर्ग, जैसे .new_ApproveExpenseReport
parameters object (वैकल्पिक) कार्रवाई द्वारा आवश्यक इनपुट पैरामीटर, पैरामीटर अद्वितीय नाम द्वारा कुंजी।
boundTo object (वैकल्पिक) निकाय के लिए एक लक्ष्य पंक्ति संदर्भ ( औरentityName )id वैश्विक (अनबाउंड) कार्रवाइयों के लिए छोड़ दें।

वापस

एक वादा जिसमें DataverseActionResult शामिल है। यह विधि कभी भी अपेक्षित विफलताओं (जैसे 403 अनुमति त्रुटि, 400 खराब पैरामीटर, या कार्रवाई बाध्य या सक्षम नहीं किया जा रहा है) के लिए फेंकती है - इसके बजाय गुण की ok जाँच करें।

DataverseActionResult

नाम प्रकार विवरण
ok boolean इंगित करता है कि कार्रवाई सफल हुई या नहीं।
status number Dataverse द्वारा लौटाया गया HTTP स्थिति कोड, या जब 0 कोई HTTP स्थिति उपलब्ध नहीं होती है। एक स्थिति का 0 मतलब यह हो सकता है कि रनटाइम ने कॉल भेजने से पहले उसे अस्वीकार कर दिया (उदाहरण के लिए, not_enabled, , not_boundnot_permitted, wrong_operation_kindinvalid_parameter, , अनुरोध invalid_bound_toHTTP प्रतिक्रिया के बिना विफल हो गया, या परिणाम अज्ञात है (indeterminate हैtrue)। इन मामलों का उपयोग करें error.code और indeterminate उन्हें अलग करने के लिए।
outputs object कार्रवाई द्वारा लौटाए गए आउटपुट पैरामीटर, अद्वितीय नाम से कुंजी। बिना किसी आउटपुट वाले कार्यों के लिए खाली।
indeterminate boolean (वैकल्पिक) true जब टाइमआउट या अन्य पोस्ट-डिस्पैच विफलता का मतलब है कि सर्वर ने कार्रवाई की है; स्वचालित रूप से पुनः प्रयास न करें।
error object (वैकल्पिक) त्रुटि विवरण जब ok है false, जिसमें मशीन-पठनीय code और एक साफ करना messageशामिल है। code, , not_permitted, invalid_parameterwrong_operation_kind, invalid_bound_toindeterminateया network, या कार्रवाई के HTTP स्थिति कोड में से not_boundnot_enabledएक स्ट्रिंग के रूप में है (उदाहरण के लिए, "404") जब Dataverse ने कोई त्रुटि प्रतिक्रिया दी थी, या जब "0" कोई HTTP स्थिति उपलब्ध नहीं थी। not_permitted इसका मतलब है कि कार्रवाई या फ़ंक्शन जनरेटिव पृष्ठों के लिए पर्यावरण की अनुमति सूची में नहीं है - यह इंगित नहीं करता है कि वर्तमान उपयोगकर्ता के पास इसे चलाने के लिए Dataverse विशेषाधिकार हैं या नहीं। एक विशेषाधिकार विफलता आमतौर पर त्रुटि कोड "403"के साथ सामने status: 403 आती है; यदि होस्ट HTTP स्थिति निर्धारित नहीं कर सकता है, तो यह इसके बजाय वापस आ status: 0 जाता है।

निष्पादन कार्रवाई उदाहरण

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 विधि

एक Dataverse कस्टम API का आह्वान करता है जिसे एक निर्माता एक फ़ंक्शन के रूप में पृष्ठ से बंधा होता है (GET शब्दार्थ के साथ केवल पढ़ने के लिए एक संदेश)।

पैरामीटर

इस आवश्यक पैरामीटर के लिए कोई मान सेट करें.

नाम प्रकार विवरण
request DataverseFunctionRequest आह्वान करने के लिए फ़ंक्शन और इसके इनपुट पैरामीटर।

DataverseFunctionRequest

नाम प्रकार विवरण
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 विधि

Dataverse कस्टम API (क्रियाएँ और फ़ंक्शंस) को सूचीबद्ध करता है जो एक निर्माता पृष्ठ से बंधा होता है.

पैरामीटर

None.

वापस

एक वादा जिसमें DataverseActionInfo प्रविष्टियों की एक सरणी शामिल है। रनटाइम के लिए खोज सक्षम नहीं होने पर एक रिक्त सरणी लौटाता है.

DataverseActionInfo

DataverseActionInfo यह दर्शाता है कि पृष्ठ का निर्माता इस क्रिया या फ़ंक्शन के लिए क्या बाध्य है, न कि लाइव Dataverse मेटाडेटा. इनपुट फ़ॉर्म बनाने या आउटपुट को मान्य करने के लिए इसका उपयोग न करें — वास्तविक Dataverse कस्टम API परिभाषा के विरुद्ध पैरामीटर आवश्यकताओं और आउटपुट आकृतियों को सत्यापित करें.

नाम प्रकार विवरण
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 और name .declaredKind type हमेशा होता है "unknown" और हमेशा optionalfalse होता है — न तो Dataverse कस्टम API के वास्तविक मेटाडेटा को दर्शाता है.
outputs Object[] हमेशा एक खाली सरणी। बाइंडिंग खोज आउटपुट पैरामीटर रिकॉर्ड नहीं करती है।

listBoundActions उदाहरण

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