اتبع المعلومات الموضحة هنا للتعرف على كيفية تضمين إجراءات البيانات وتنفيذها في تمثيل مرئي داخل حاويات خارجية مثل صفحة HTML أو صفحة ويب لتطبيق.
ملاحظة:
تسري الأمثلة الواردة في هذا القسم على إجراءات البيانات المضمنة في حالة عدم استخدام تطبيق التضمين لتقنية Oracle JET. اطلع على:تنفيذ إجراءات البيانات
عند النقر على إجراء البيانات "نشر حدث" فإنه يحدد المعلومات السياقية للتمثيل المرئي وينقل هذه المعلومات إلى خدمة إجراء الاستكشاف لمعالجتها. تقوم عملية الخدمة في إجراء الاستكشاف بتفعيل حدث يسمى "oracle.bitech.dataaction" مع معلومات حمولة السياق. يمكنك الاشتراك في هذا الحدث وتلقي الحمولة في استدعاء الحدث، كما يمكنك استغلال الحملة بصورة أكبر كما هو مطلوب.
يعرض التمثيل المرئي التالي لك الإيرادات بالدولار لمجالات العمل بالدولار، مثل الاتصالات Communication والأجهزة الرقمية Digital والإلكترونيات Electronics، وعلى مستوى المؤسسات، مثل Franchises Org، وInbound Org، وInternational Org.
صيغة الحدث والحمولة والسياق
يوضح المثال التالي نشر حدث عند استدعاء إجراء البيانات المضمن بواسطة خلية بيانات أو أكثر بعد النقر عليها بزر الماوس الأيمن وتحديد إجراء البيانات من القائمة المعروضة في المصنف المضمن.
الأمثلة التالية هي من ملف JSON مثل obitech-cca/cca/component.json
.
صيغة الحدث
"events": { "oracle.bitech.dataaction": { "description": "Generic DV Event published from an embedded data visualization.", "bubbles": true, "cancelable": false, "detail": { "eventName": { "description": "The name of the published BI Event", "type": "string" }, "payload": { "description": "The payload contains context and related information to the event published", "type": "object" } } }
صيغة الحمولة
{"context":[ "or": [ "and":[ {"contextParamValues":[...], "contextParamValuesKeys":[...], "colFormula":"...", "displayName":"...", "isDoubleColumn":true/false, "dataType":"..." } ] ] ] }
تمرير قيمة واحدة لعمود واحد في التمرير حسب السياق
في هذا المثال، عندما تنقر على خلية عمود، يتم تمرير الكائن بمعلومات السياق حول العمود إلى الحاوية الخارجية. وفي هذه الحالة يتم تمرير اسم المؤسسة.
{ "context": [ { "contextParamValues": [ "Inbound Org." ], "contextParamValuesKeys": [ "Inbound Org." ], "colFormula": "\"A - Sample Sales\".\"Offices\".\"D3 Organization\"", "displayName": "D3 Organization", "isDoubleColumn": false, "dataType": "varchar" } ] }
تمرير قيمة واحدة لكل عمود في التمرير حسب السياق
في هذا المثال، عند النقر على خلية عمود على سبيل المثال Inbound Org وDigital products، فما يتم تمريره عند النقر على خيار القائمة DA1 المضمنة لتحديد الإجراء المضمن هو قيمة الإيرادات بالدولار لمجال العمل والمؤسسة المحددين. على سبيل المثال يتم تمرير إيرادات المنتجات الرقمية Digital من المؤسسة Inbound Org، وهو 42.738,458,1 $ في هذا المثال.
{ "context": [ { "contextParamValues": [ "Digital" ], "contextParamValuesKeys": [ "Digital" ], "colFormula": "\"A - Sample Sales\".\"Products\".\"P3 LOB\"", "displayName": "P3 LOB", "isDoubleColumn": false, "dataType": "varchar" }, { "contextParamValues": [ "Inbound Org." ], "contextParamValuesKeys": [ "Inbound Org." ], "colFormula": "\"A - Sample Sales\".\"Offices\".\"D3 Organization\"", "displayName": "D3 Organization", "isDoubleColumn": false, "dataType": "varchar" } ] }
تمرير قيم متعددة في التمرير حسب السياق
في هذا المثال عند النقر على خلايا في صفين (على سبيل المثال Inbound Org وnternational Org للمنتجات الرقمية Digital) مع النقر على خيار القائمة "DA1 مضمن" لتحديد الإجراء المضمن، فما يتم تمريره هو قيمة الإيرادات بالدولار للخليتين المحددتين للمؤسسة ومجالات العمل. على سبيل المثال بالنقر على إيرادات المنتجات الرقمية Digital من المؤسستين المحددتين (Inbound Org وInternational Org) يتم تمرير القيمتين 42.738,458,1 $ و97.528,915 $.
{ "context": [ { "or": [ { "and": [ { "contextParamValues": [ "Digital" ], "contextParamValuesKeys": [ "Digital" ], "colFormula": "\"A - Sample Sales\".\"Products\".\"P3 LOB\"", "displayName": "P3 LOB", "isDoubleColumn": false, "dataType": "varchar" }, { "contextParamValues": [ "Inbound Org." ], "contextParamValuesKeys": [ "Inbound Org." ], "colFormula": "\"A - Sample Sales\".\"Offices\".\"D3 Organization\"", "displayName": "D3 Organization", "isDoubleColumn": false, "dataType": "varchar" } ] }, { "and": [ { "contextParamValues": [ "Digital" ], "contextParamValuesKeys": [ "Digital" ], "colFormula": "\"A - Sample Sales\".\"Products\".\"P3 LOB\"", "displayName": "P3 LOB", "isDoubleColumn": false, "dataType": "varchar" }, { "contextParamValues": [ "International Org." ], "contextParamValuesKeys": [ "International Org." ], "colFormula": "\"A - Sample Sales\".\"Offices\".\"D3 Organization\"", "displayName": "D3 Organization", "isDoubleColumn": false, "dataType": "varchar" } ] } ] } ] }
استخدم هذه الخطوات لعرض حمولات الأحداث باستخدام أدوات مستعرض Chrome.
console.log("To view the payload, add a breakpoint on this line and use the browser tools debugger") ;
وحدد إضافة نقطة فاصلة.
عند استدعاء إجراء بيانات الحدث من لوحة العمل المضمنة، ستظهر حمولة في قسم النطاق في الجزء الأيمن لأدوات المستعرض.
يمكن عرض المتغير العام من علامة تبويب وحدة التحكم وتوسيعها لعرض تفاصيل الحمولة.
مثال لصفحة HTML مع تمثيل مرئي يتلقى أحداثًا
توضح عينة التعليمات البرمجية كيفية تعريف مستمع حدث لإجراء بيانات حدث تحليلات. يجب تحديث مثيل التحليلات والمسار المضمن للمصنف في عينة التعليمات البرمجية. يجب أن يتم تعريف إجراء بيانات حدث للمصنف. الحدث الجاري الاستماع له بالاسم oracle.bitech.dataaction
. عند بدء الحدث، يتم إرسال رسالة إلى وحدة التحكم.
<!DOCTYPE HTML> <html dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Oracle Analytics embed example to view data action event payload</title> <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/> <script src="https://<OAC-INSTANCE>.analytics.ocp.oraclecloud.com/public/dv/v1/embedding/standalone/embedding.js" type="application/javascript"> </script> </head> <body> <h1>Oracle Analytics embed example to view data action event payload</h1> <div id="mydiv" style="position: absolute; width: calc(100% - 40px); height: calc(100% - 120px)" > <oracle-dv project-path='<WORKBOOK-PATH-TO-EMBED>' active-page='insight' active-tab-id='snapshot!canvas!1'> </oracle-dv> </div> <script> requirejs(['knockout', 'ojs/ojcore', 'ojs/ojknockout', 'ojs/ojcomposite', 'jet-composites/oracle-dv/loader'], function(ko) { ko.applyBindings(); }); </script> <script> var eventName = 'oracle.bitech.dataaction'; var element = document.getElementById("mydiv"); if (element) { var oEventListener = element.addEventListener(eventName, function (e) { console.log("***** Payload from DV sent ***** "); console.log("eventName = " + e.detail.eventName); console.log("To view the payload, add a breakpoint on this line and use the browser tools debugger") ; console.log("******************************** "); }, true); } </script> </body> </html>
يمكنك أيضًا تعديل قسم <script>
في عينة التعليمات البرمجية السابقة لإرجاع القيم حيث تم استدعاء إجراء البيانات:
<script> var eventName = 'oracle.bitech.dataaction'; var element = document.getElementById("mydiv"); if (element) { var oEventListener = element.addEventListener(eventName, function (e) { console.log("***** Payload from DV sent ***** "); console.log("eventName = " + e.detail.eventName); console.log("To view the payload, add a breakpoint on this line and use the browser tools debugger") ; console.log("******************************** "); var res = " Data Received from DV Content: "; // Get the values of the row from where data action was invoked Object.keys(e.detail.payload.context).forEach(function(key) { res = res.concat(key); res = res.concat(" : "); var temp = e.detail.payload.context[key]["oValueMap"]; var temp1 = Object.keys(temp)[0]; res = res.concat(temp1); res = res.concat(" | "); }); console.log("Data Action Row Context : " + res); }, true); } </script>