تتيح إعادة الكتابة للمستخدمين إمكانية تحديث البيانات من التحليلات.
الموضوعات:
تتيح إعادة الكتابة للمستخدمين إمكانية تحديث البيانات مباشرة من خلال لوحات المعلومات والتحليلات.
يرى المستخدمون الذين لديهم امتياز الرجوع إلى قاعدة البيانات حقول إعادة الكتابة كحقول قابلة للتحرير في التحليلات. ويتم حفظ القيم التي يدخلونها في قاعدة البيانات. بالنسبة للمستخدمين الذين ليس لديهم امتياز الرجوع إلى قاعدة البيانات، فإنهم يرون حقول إعادة الكتابة كحقول للقراءة فقط.
إذا كتب المستخدم قيمة في حقل قابل للتحرير ونقر على زر إعادة الكتابة، فسيقوم التطبيق بتشغيل أمر SQL insert
أو update
المحدد في أمر write- القالب الخلفي. وإذا تم تنفيذ الأمر بنجاح، فسيتم تحديث التحليل بالقيمة الجديدة. إذا حدث خطأ أثناء قراءة القالب أو تشغيل أمر SQL، فسيتم عرض رسالة خطأ.
يعمل الأمر الإدراج
حتى في حالة عدم وجود سجل، ويقوم المستخدم بإدخال بيانات جديدة في الجدول. في هذه الحالة، قام المستخدم بكتابة سجل جدول حيث كانت القيمة الأصلية فارغة. يتم تشغيل أمر تحديث
عندما يقوم المستخدم بتعديل البيانات الموجودة. ولعرض سجل غير موجود بعد في الجدول الفعلي، يمكن تكوين جدول آخر مشابه. استخدم هذا الجدول المماثل لعرض سجلات التعويض التي يستطيع المستخدم تعديلها.
ملاحظة:
عند تكوين قوالب إعادة الكتابة، يجب عليك تضمين أمر insert
وأمر update
، حتى لو لم يتم استخدامهما معًا. على سبيل المثال، إذا كنت تقوم فقط بتنفيذ insert
, you must include an empty update
فارغة <update></update>
، كما هو الحال في تعليمات XML البرمجية التالية:
insert
وعبارتين update
فارغتين. لمعرفة المزيد حول كيفية إنشاء ملفات XML للكتابة الخلفية وتنظيمها، راجع تكوين ملفات قالب إعادة الكتابة.
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="oracle.bi.presentation/writebackschemas/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuotaUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert> <update></update> </writeBack> </XML> </WebMessage> <WebMessage name="SetForecastUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypeforecast VALUES(@{c83ebf607f3cb8320},@{cb7e2046a0fba2204},'@{c5a93e65d31f10e0}','@{c5a93e65d31f10e0}',@{c7322jkl93ev92cd8})</insert> <update></update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>
بوسع المسئولين تمكين المستخدمين من تحرير البيانات في التحليلات ولوحات المعلومات.
يمكن للمستخدمين الرد على أي مصدر بيانات يسمح بتنفيذ استعلامات SQL من Oracle Analytics .
أثناء قيامك بتكوين إعادة الكتابة، ضع القيود التالية في الاعتبار:
يجب أن تحتوي الأعمدة الرقمية على أرقام فقط. ويجب ألا تحتوي على أي أحرف لتنسيق البيانات مثل علامات الدولار ($) أو علامات الجنيه أو علامات التجزئة (#) أو علامات النسبة المئوية (%)، وما إلى ذلك.
يجب أن تحتوي الأعمدة النصية على بيانات السلسلة فقط.
إذا كان هناك مستخدم مسجل الدخول يقوم بعرض لوحة معلومات تشتمل على تحليل تم تعديل البيانات فيه باستخدام إعادة الكتابة، فلا يتم تحديث البيانات تلقائيًا في لوحة المعلومات. وللاطلاع على البيانات الجديدة، يتعين على المستخدم تجديد لوحة المعلومات يدويًا.
يمكنك استخدام آلية القالب فقط مع طرق عرض الجدول وللبيانات ذات القيمة الفردية فقط. آلية القالب غير مدعومة لطرق عرض الجدول المحوري أو أي نوع آخر من طرق العرض، أو للبيانات متعددة القيم، أو للأعمدة المنسدلة التي تحتوي على بيانات ذات قيمة واحدة.
جميع القيم الموجودة في أعمدة إعادة الكتابة قابلة للتحرير. عند عرضها في سياق غير مناسب للطباعة، يتم عرض الحقول القابلة للتحرير كما لو كان المستخدم لديه امتياز الرجوع إلى قاعدة البيانات. ومع ذلك، عندما يتم تعيين عمود منطقي إلى عمود فعلي يمكن تغييره، يقوم العمود المنطقي بإرجاع قيم لتقاطعات المستويات المتعددة. قد يسبب هذا السيناريو مشكلات.
يمكن وضع علامة على أي حقل في التحليل كحقل إعادة الكتابة، حتى لو لم يكن مشتقًا من جدول إعادة الكتابة الذي قمت بتكوينه. ومع ذلك، لا يمكنك تشغيل عملية إعادة الكتابة بنجاح إذا لم يتم تمكين إعادة الكتابة في الجدول. تقع مسؤولية وضع العلامات بشكل صحيح على الحقول على عاتق مصمم المحتوى.
يمكن أن يحتوي القالب على عبارات SQL بخلاف إدراج
وتحديث
. تقوم وظيفة إعادة الكتابة بتمرير هذه البيانات إلى قاعدة البيانات. ومع ذلك، لا تدعم Oracle أو توصي باستخدام أي عبارات أخرى غير insert
أو update
تقوم Oracle Analytics بإجراء الحد الأدنى فقط من التحقق من صحة إدخال البيانات. إذا كان الحقل رقميًا وقام المستخدم بإدخال بيانات نصية، فإن Oracle Analytics يكتشف ذلك ويمنع البيانات غير الصالحة من الانتقال إلى قاعدة البيانات. ومع ذلك، فإنه لا يكتشف الأشكال الأخرى من إدخال البيانات غير الصالحة (القيم خارج النطاق، والنص المختلط والأرقام، وما إلى ذلك). عندما يقوم المستخدم بالنقر على زر إعادة الكتابة ويتم تشغيل عملية إدراج أو تحديث، تؤدي البيانات غير الصالحة إلى ظهور رسالة خطأ من قاعدة البيانات. ويمكن للمستخدم بعد ذلك تصحيح الإدخال الخاطئ. يمكن لمصممي المحتوى تضمين نص في تحليل إعادة الكتابة لمساعدة المستخدم، على سبيل المثال، "لا يُسمح بإدخال قيم أبجدية رقمية مختلطة في حقل بيانات رقمية."
آلية القالب ليست مناسبة لإدخال سجلات جديدة عشوائية. بمعنى آخر، لا تستخدمه كأداة لإدخال البيانات.
عند تكوين جدول لإعادة الكتابة، تأكد من أن عمودًا واحدًا على الأقل لا يتضمن إمكانية إعادة الكتابة ولكنه يتضمن قيمًا فريدة لكل صف وغير فارغة.
لا تدعم تحليلات إعادة الكتابة النفاذ للداخل. ونظرًا لأن التنقل لأسفل يؤدي إلى تعديل بنية الجدول، فإن قالب إعادة الكتابة لا يعمل.
تنبيه:
تأخذ آلية القالب مدخلات المستخدم وتكتبها مباشرة في قاعدة البيانات. إن أمان قاعدة البيانات الفعلية هو مسؤوليتك الخاصة. للحصول على الأمان الأمثل، قم بتخزين جداول قاعدة بيانات إعادة الكتابة في مثيل قاعدة بيانات فريد.ملف قالب إعادة الكتابة هو ملف بتنسيق XML يحتوي على واحد أو أكثر من قوالب إعادة الكتابة.
يتكون قالب إعادة الكتابة من عنصر WebMessage
الذي يحدد اسم القالب، ومجمع الاتصالات، وعبارات SQL اللازمة لإدراج وتحديث السجلات في جداول وأعمدة إعادة الكتابة التي قمت بتكوينها. عندما يقوم مصممو المحتوى بتمكين عرض جدول لإعادة الكتابة، يجب عليهم تحديد اسم قالب إعادة الكتابة لاستخدامه في إدراج السجلات وتحديثها في طريقة عرض الجدول.
يجب أن يستوفي قالب إعادة الكتابة المتطلبات التالية:
WebMessage
: يجب عليك تحديد اسم لقالب إعادة الكتابة باستخدام سمة name
في عنصر WebMessage.
لكي تعمل عملية إعادة الكتابة بشكل صحيح، عند تمكين طريقة عرض جدول لإعادة الكتابة، يجب على مصمم المحتوى تحديد اسم قالب إعادة الكتابة الذي سيتم استخدامه لإدراج السجلات في طريقة العرض وتحديثها.
يعرض هذا المثال قالب إعادة الكتابة بالاسم SetQuotaUseID
.
<WebMessage name="SetQuotaUseID">
connectionPool
: لتلبية متطلبات الأمان، يجب عليك تحديد مجمع الاتصالات بأوامر SQL لإدراج السجلات وتحديثها. تُشير أوامر SQL هذه إلى القيم التي تم تمريرها في مخطط إعادة الكتابة لإنشاء عبارات SQL لتعديل جدول قاعدة البيانات.
VALUES
: يمكن الإشارة إلى قيم العمود إما عن طريق معرف العمود أو موضع العمود. من الأفضل استخدام معرف العمود.
قم بإحاطة قيم السلسلة والتاريخ بعلامات اقتباس مفردة. لا يلزم وضع علامات الاقتباس المفردة على القيم الرقمية.
معرف العمود - معرف كل عمود يتكون من أبجدية رقمية ويتم إنشاؤه عشوائيًا. يمكنك العثور على معرفات الأعمدة في تعريف XML للتحليل المتوفر في علامة التبويب متقدم بمحرر التحليل. على سبيل المثال، قيم معرف العمود مثل: @{c5f6e60e1d6eb1098}
، @{c3a93e65731210ed1}
، '@{c6b8735ea60ff3011}'
عند استخدام معرفات الأعمدة، تستمر عملية إعادة الكتابة حتى عند تغيير ترتيب الأعمدة.
موضع العمود - تبدأ مواضع الأعمدة بالرقم 1. على سبيل المثال، قيم موضع العمود مثل: @1
, @3
, '@5'
إذا تغير ترتيب الأعمدة، فلن تعمل إعادة الكتابة وهذا هو سبب تفضيل معرفات الأعمدة.
يجب عليك تضمين عنصر <insert>
وعنصر <update>
في القالب. إذا كنت لا تريد تضمين أوامر SQL داخل العناصر، فيجب عليك إدراج مسافة فارغة بين علامتي الفتح والإغلاق. على سبيل المثال، يجب عليك إدخال العنصر على النحو التالي:
<insert> </insert>
بدلاً من:
<insert></insert>
إذا قمت بحذف المساحة الفارغة، فسترى رسالة خطأ إعادة الكتابة مثل "يتعذر على النظام قراءة قالب إعادة الكتابة 'my_template'".
إذا لم يكن نوع بيانات المعلمة عددًا صحيحًا أو رقمًا حقيقيًا، فقم بإضافة علامات اقتباس مفردة حوله. إذا لم تقم قاعدة البيانات بتنفيذ الالتزامات تلقائيًا، فقم بإضافة نقطة توصيل postUpdate
الاختيارية بعد نقطتي التوصيل insert
وupdate
لفرض الالتزام. عادةً ما تتبع نقطة توصيل postUpdate
هذا المثال:
<postUpdate>COMMIT</postUpdate>
مثال على ملف قالب إعادة الكتابة باستخدام صيغة معرف العمود
قد يشبه ملف قالب إعادة الكتابة الذي يشير إلى القيم حسب معرف العمود هذا المثال:
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuotaUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert> <update>UPDATE regiontypequota SET Dollars=@{c0432jkl53eb92cd8} WHERE YR=@{c5f6e60e1d6eb1098} AND Quarter=@{c5d7e483445037d9e} AND Region='@{c3a93e65731210ed1}' AND ItemType='@{c6b8735ea60ff3011}'</update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>
مثال على ملف قالب إعادة الكتابة باستخدام صيغة موضع العمود
قد يشبه ملف قالب إعادة الكتابة الذي يشير إلى القيم حسب موضع العمود هذا المثال:
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuota"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@1,@2,'@3','@4',@5)</insert> <update>UPDATE regiontypequota SET Dollars=@5 WHERE YR=@1 AND Quarter=@2 AND Region='@3' AND ItemType='@4'</update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>