توزيع إعادة الكتابة

تتيح إعادة الكتابة للمستخدمين إمكانية تحديث البيانات من التحليلات.

الموضوعات:

معلومات حول إعادة الكتابة للمسئولين

تتيح إعادة الكتابة للمستخدمين إمكانية تحديث البيانات مباشرة من خلال لوحات المعلومات والتحليلات.

يرى المستخدمون الذين لديهم امتياز الرجوع إلى قاعدة البيانات حقول إعادة الكتابة كحقول قابلة للتحرير في التحليلات. ويتم حفظ القيم التي يدخلونها في قاعدة البيانات. بالنسبة للمستخدمين الذين ليس لديهم امتياز الرجوع إلى قاعدة البيانات، فإنهم يرون حقول إعادة الكتابة كحقول للقراءة فقط.

إذا كتب المستخدم قيمة في حقل قابل للتحرير ونقر على زر إعادة الكتابة، فسيقوم التطبيق بتشغيل أمر SQL insert أو update المحدد في أمر write- القالب الخلفي. وإذا تم تنفيذ الأمر بنجاح، فسيتم تحديث التحليل بالقيمة الجديدة. إذا حدث خطأ أثناء قراءة القالب أو تشغيل أمر SQL، فسيتم عرض رسالة خطأ.

يعمل الأمر الإدراج حتى في حالة عدم وجود سجل، ويقوم المستخدم بإدخال بيانات جديدة في الجدول. في هذه الحالة، قام المستخدم بكتابة سجل جدول حيث كانت القيمة الأصلية فارغة. يتم تشغيل أمر تحديث عندما يقوم المستخدم بتعديل البيانات الموجودة. ولعرض سجل غير موجود بعد في الجدول الفعلي، يمكن تكوين جدول آخر مشابه. استخدم هذا الجدول المماثل لعرض سجلات التعويض التي يستطيع المستخدم تعديلها.

ملاحظة:

عند تكوين قوالب إعادة الكتابة، يجب عليك تضمين أمر insert وأمر update، حتى لو لم يتم استخدامهما معًا. على سبيل المثال، إذا كنت تقوم فقط بتنفيذ insert, you must include an empty update فارغة <update></update>، كما هو الحال في تعليمات XML البرمجية التالية:

فيما يلي نموذج لملف 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>

تمكين إعادة الكتابة في التحليلات ولوحات المعلومات

بوسع المسئولين تمكين المستخدمين من تحرير البيانات في التحليلات ولوحات المعلومات.

  1. قم بإعداد النموذج الدلالي.

    ملاحظة:

    اتبع هذه الخطوات إذا كنت تستخدم أداة إدارة النماذج لتطوير النماذج الدلالية. إذا كنت تستخدم Semantic Modeler، فاطلع على

    تمكين إعادة الكتابة في الأعمدة .

    1. في Model Administration Tool، افتح النموذج الدلالي (ملف .rpd).
    2. في الطبقة الفعلية، انقر نقرًا مزدوجًا على الجدول الفعلي المشتمل على العمود الذي تريد تمكين إعادة الكتابة فيه.
    3. في علامة التبويب عام ضمن مربع حوار الجدول الفعلي تأكد من عدم تحديد الخيار قابل للتخزين في الذاكرة المخبئية. من شأن إلغاء تحديد هذا الخيار أن يضمن قدرة مستخدمي Presentation Services على رؤية التحديثات على الفور.
    4. انقر في طبقة نموذج العمل والتخطيط نقرًا مزدوجًا على العمود المنطقي المناظر.
    5. في مربع حوار العمود المنطقي حدد قابل للكتابة ثم انقر على موافق.
    6. انقر في طبقة العرض التقديمي نقرًا مزدوجًا على العمود المناظر للعمود المنطقي حيث قمت بتمكين إعادة الكتابة.
    7. في مربع الحوار عمود العرض التقديمي انقر على الأذونات.
    8. حدد إذن قراءة/كتابة للمستخدمين وأدوار التطبيق الملائمة.
    9. حفظ التغييرات التي قمت بها.
  2. تكوين مستند XML باستخدام قالب (أو قوالب) إعادة الكتابة. يرجى الاطلاع على تكوين ملفات قالب إعادة الكتابة.

    يمكن أن يحتوي مستند XML الخاص بك على قوالب متعددة. يعرض هذا المثال مستند XML يحتوي على قالبين (SetQuotaUseID وSetForecastUseID).

    <?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 regiontypequota SET Dollars=@{c0432jkl53eb92cd8} WHERE YR=@{c5f6e60e1d6eb1098} AND Quarter=@{c5d7e483445037d9e} AND Region='@{c3a93e65731210ed1}' AND ItemType='@{c6b8735ea60ff3011}'</update>
             </writeBack>
          </XML>
       </WebMessage>
    <WebMessage name="SetForecastUseID">
          <XML>
             <writeBack connectionPool="Supplier">
                <insert>INSERT INTO regiontypeforecast VALUES(@{c83ebf607f3cb8320},@{cb7e2046a0fba2204},'@{c5a93e65d31f10e01}','@{c5a93e65d31f10e0}',@{c7322jkl93ev92cd8})</insert>
                <update>UPDATE regiontypeforecast SET Dollars=@{c7322jkl93ev92cd8} WHERE YR=@{c83ebf607f3cb8320} AND Quarter=@{cb7e2046a0fba2204} AND Region='@{c5a93e65d31f10e01}' AND ItemType='@{c5a93e65d31f10e0}'</update>
             </writeBack>
          </XML>
       </WebMessage>
    </WebMessageTable>
    </WebMessageTables>
    ملاحظة: يجب عليك تضمين عنصر <insert> وعنصر <update>، حتى لو لم يتم استخدام كليهما. على سبيل المثال، إذا كنت تقوم فقط بتنفيذ insert، فيجب عليك تضمين عبارة update الفارغة <update></update>.
  3. انسخ مستند XML الذي يحتوي على قوالب إعادة الكتابة إلى الحافظة.
  4. طبّق قالب إعادة الكتابة في Oracle Analytics:
    1. انقر على وحدة التحكم ثم انقر على إعدادات النظام.
    2. في قالب الكتابة XML، ألصق قالب إعادة الكتابة الذي نسخته في الخطوة 3.
  5. امنح أذونات باستخدام التعليمات البرمجية لإعادة الكتابة:
    1. انتقل إلى الصفحة الرئيسية الكلاسيكية، ثم انقر على الإدارة.
    2. ضمن التأمين انقر على إدارة الامتيازات ثم انتقل إلى إعادة الكتابة.
    3. منح إعادة الكتابة في قاعدة البيانات إلى المستخدم المعتمد.
    4. امنح إدارة إعادة الكتابة إلى مسؤول BI Service.
  6. لتمكين إعادة الكتابة في الأعمدة:
    1. في محرر التحليل اعرض "خصائص الأعمدة" الخاصة بالعمود الذي تريد تمكين إعادة الكتابة فيه.
    2. في مربع الحوار "خصائص العمود"، انقر على علامة تبويب إعادة الكتابة.
      في حالة تمكين العمود لإعادة الكتابة في النموذج الدلالي، عندئذ يتوفر المربع تمكين إعادة الكتابة.
    3. حدد خيار تمكين إعادة الكتابة.
    4. حدد قيم الخيارات الأخرى إن أردت تغيير قيمها الافتراضية.
    5. حفظ التغييرات التي قمت بها.
    يتم تمكين العمود لإعادة الكتابة في أي تحليل يشمل هذا العمود.
  7. لتمكين إعادة الكتابة في طرق العرض الجدولية:
    1. في محرر التحليل، افتح طريقة عرض الجدول لإجراء التحرير.
    2. انقر على عرض الخصائص.
    3. في مربع الحوار خصائص الجدول، انقر على علامة تبويب إعادة الكتابة.
    4. حدد خيار تمكين إعادة الكتابة.
    5. اختر مربع اسم القالب وحدد قيمة "WebMessage name=" في قالب إعادة الكتابة الذي حددته في الخطوة رقم 2.
      على سبيل المثال، اسم القالب الخاص بقالب المثال في الخطوة رقم 2 هو 'SetQuotaUseID'.
    6. حفظ التغييرات التي قمت بها.

قيود إعادة الكتابة

يمكن للمستخدمين الرد على أي مصدر بيانات يسمح بتنفيذ استعلامات 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}'

      عند استخدام معرفات الأعمدة، تستمر عملية إعادة الكتابة حتى عند تغيير ترتيب الأعمدة.

      XML في علامة تبويب خيارات متقدمة بمحرر التحليل

    • موضع العمود - تبدأ مواضع الأعمدة بالرقم 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>