كل كائن عمل له مخطط خاص

يحتوي كائن العمل على عناصر. وتعد العناصر عرض منطقي للحقول والأعمدة في أحد جداول كائن الصيانة. ويتم تحديد هيكل كائن العمل باستخدام مخطط XML. ويكون الغرض الرئيسي من المخطط هو تحديد كل العناصر من كائن الصيانة المضمنة في كائن العمل وربطها بحقول كائن الصيانة المقابلة. ويجب تخزين كل عنصر موجود في مخطط كائن العمل في مكان ما بكائن الصيانة. ومن الممكن ألا يحدد كائن العمل العناصر التي يتم اشتقاقها.

عند تحديد عناصر للجدول الرئيسي أو لجدول اللغة (لكائن إشرافي)، ليس من الضروري تحديد اسم الجدول الفعلي في المخطط. ويقوم النظام باستنتاج هذه المعلومات. وفيما يلي مقطع من أحد المخططات:

<schema>
    <migrationPlan mapField="MIGR_PLAN_CD" suppress="true" isPrimeKey="true"/>
    <bo mapField="BUS_OBJ_CD" fkRef="F1-BUSOB"/>
    <customizationOwner mapField="OWNER_FLG" suppress="input"/>
    <version mapField="VERSION" suppress="true"/>
    <description mapField="DESCR"/>
    <longDescription mapField="DESCRLONG"/>
  …

تحتوي العديد من كائنات الصيانة على مجموعات من الجداول الفرعية (مثل مجموعة بأسماء لشخص ما أو مجموعة أشخاص بأحد الحسابات). وفقًا للمتطلبات، يمكن أن يحدد كائن العمل المجموعة الكاملة حتى يقوم المستخدم بصيانة المعلومات في شبكة. على الرغم من ذلك، يدعم المخطط أيضًا سجلات "منفصلة" في جدول فرعي حتى يمكن معاملتها كما لو أنها عناصر فردية. وفيما يلي أمثلة على كل منها:

مثال على أحد الجداول الفرعية. يمثل هذا مقطع من مجموعة التعليمات في كائن عمل خطة الترحيل. يمكنك رؤية سمة القائمة التي تحدد الجدول الفرعي وكل العناصر بداخله يتم ربطها بالعمود المناسب في هذا الجدول.

   <migrationPlanInstruction type="list" mapChild="F1_MIGR_PLAN_INSTR">
         <migrationPlan mapField="MIGR_PLAN_CD" suppress="true"/>
         <sequence mapField="PLAN_INSTR_SEQ" suppress="true"/>
         <instructionSequence mapField="INSTR_SEQ"/>
         <instructionType mapField="INSTR_TYPE_FLG"/>
         <parentInstructionSequence mapField="PARENT_INSTR_SEQ"/>
         <businessObject mapField="BUS_OBJ_CD" fkRef="F1-BOMO"/>
...

مثال على حقل "منفصل" بسيط. يحتوي كائن العمل الخاص بسبب الحالة على عنصر يسمى الاستخدام، الذي يتم ربطه بخاصية محددة مسبقًا من النوع F1–SRUSG. ويحدد "الصف" الجدول الفرعي الذي يتم فصله وسمات الصف في هذا الجدول الفرعي التي تحدده على نحوٍ فريد.

    <usage mdField="STATUS_RSN_USAGE" mapField="CHAR_VAL"> 
        <row mapChild="F1_BUS_OBJ_STATUS_RSN_CHAR"> 
            <CHAR_TYPE_CD is="F1-SRUSG"/>
            <SEQ_NUM is="1"/> 
        </row>
    </usage>

مثال على "صف منفصل". يحتوي كائن عمل الحساب هذا على صف فردي لمجموعة "الشخص" حيث يتم فيها تحديد العميل "المسؤول ماليًا، الرئيسي" فقط. وتحدد السمة "accountPerson" حقل واحد من هذا الصف (معرف الشخص) وتحتوي على معايير "منفصلة" في معلومات "الصف". وبالإضافة إلى ذلك، يتم تحديد حقل ثانٍ من نفس الصف (“accountRelType”). وبدلاً من ضرورة تكرار معايير الفصل، تحدد السمة "rowRef" العنصر الذي يحتوي على "الفصل".

    <accountPerson mapField="PER_ID">
        <row mapChild="CI_ACCT_PER">
            <MAIN_CUST_SW is="true"/>
            <FIN_RESP_SW default="true"/>
         </row>
     </accountPerson>
     <accountRelType mapField="ACCT_REL_TYPE_CD" rowRef="accountPerson" dataType="string"/>  

مثال على "قائمة منفصلة". يحتوي كائن العمل لنوع فاتورة الضريبة على قائمة بالخوارزميات الصالحة التي تخص "إتمام الفاتورة". ويتم عرض التسلسل والخوارزمية في قائمة. ويحدد عنصر القائمة الجدول الفرعي ويحدد "rowFilter" المعلومات الخاصة بالقائمة العامة.

       <taxBillCompletion type="list" mapChild="C1_TAX_BILL_TYPE_ALG">
         <rowFilter suppress="true" private="true">
             <TAX_BILL_TYPE_SEVT_FLG is="C1BC"/>
         </rowFilter>
         <sequence mapField="SEQ_NUM"/>
         <algorithm mapField="ALG_CD" fkRef="F1-ALG"/>
     </taxBillCompletion> 

بالإضافة إلى ذلك، تدعم العديد من كائنات الصيانة حقل بنية XML داخل الكيان. ومن الممكن أن تكون هذه الحقول من نوع البيانات CLOB أو XML. ويمكن ربط عنصر أو أكثر من عناصر كائنات العمل بحقل بنية XML الخاصة بكائن الصيانة. ويمكن تحديد هذه العناصر بأماكن منطقية مختلفة في مخطط كائن العمل على أساس ما يبدو معقولاً لقواعد الأعمال. وعند تحديث كائن الصيانة، يقوم النظام بإنشاء نوع مستند XML يتضمن جميع العناصر التي يتم ربطها ببنية XML ويقوم بتخزينها في عمود واحد. وفيما يلي مثال على العناصر المخططة لعمود XML:

        <filePath mdField="F1_FILE_PATH" mapXML="MST_CONFIG_DATA" required="true"/>
        <characterEncoding mdField="F1_CHAR_ENCODING" mapXML="MST_CONFIG_DATA"/> 
ملاحظة: إذا كان حقل بنية XML لكائن الصيانة هو نوع البيانات XML، فستتيح قاعدة البيانات البحث عن السجلات على أساس هذه البيانات، بافتراض تحديد الفهارس المناسبة. وإذا كان حقل بنية XML لكائن الصيانة من نوع البيانات CLOB، فلا يتم عادةً دعم الفهرسة أو الربط بعناصر في هذا العمود من خلال عبارة SQL. لاحظ أن معظم كائنات الصيانة تستخدم حاليًا نوع البيانات CLOB لعمود بنية XML، في حالة توفيرها.

يمكن أن يكون لبعض كائنات العمل جداول فرعية تتيح تخزين البيانات في حقل بنية XML. وتدعم لغة المخطط تحديد العناصر من هذه الحقول في مخططك أيضًا.

بالإضافة إلى تضمين معلومات حول "التخطيط" الفعلي للعناصر لموقع الحقل/الجدول الملائم في كائن الصيانة، يدعم المخطط صياغة إضافية لتوفير القدرة على تحديد قواعد معالجة البيانات والتحقق الأساسي، بما في ذلك:

  • تحديد المفتاح الأساسي للسجل أو المفتاح الأساسي لصف في قائمة.

  • تحديد العناصر المطلوبة عند إضافة سجل أو تغييره.

  • القيم الافتراضية عند عدم إدخال بيانات عند الإضافة.

  • إمكانية تحديد البحث للتحقق من أن قيمة العنصر هي قيمة بحث صالحة للعناصر التي تعتبر قيم بحث.

  • إمكانية تحديد مرجع المفتاح الخارجي للتحقق من البيانات للعناصر التي تعتبر مفاتيح خارجية لجدول آخر.

سيفحص النظام صلاحية البيانات على أساس تعريف المخطط لتجنب ضرورة فحص هذا التحقق بواسطة أية خوارزمية خاصة.

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

ملاحظة: للحصول على قائمة كاملة بسمات وعقد XML المتاحة لك عند إنشاء مخطط ما، ارجع إلى بناء جملة المخطط.

يمكن أن يحتوي مخطط كائن العمل على مجموعة فرعية من الحقول والجداول المحددة في كائن الصيانة. يوجد سببان لذلك:

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

  • لم تتم صيانة المعلومات من خلال كائن العمل، ولكن بدلاً من ذلك تتم صيانتها بشكل منفصل. على سبيل المثال، تحتوي العديد من كائنات الصيانة المعتمدة على كائن العمل على جدول تسجيل. ولا تحتوي السجلات الموجودة في جدول التسجيل عادةً على كائن العمل بسبب عرضها وصيانتها بشكل منفصل عن كائن العمل.