أكثر

كيفية إزالة LayerName.FieldName تنسيق الانضمام في منشئ النموذج؟

كيفية إزالة LayerName.FieldName تنسيق الانضمام في منشئ النموذج؟


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

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

أتساءل هل هناك إعداد / أداة / عملية خاصة بباني النماذج يمكنني استخدامها للاحتفاظ بأسماء الحقول الفعلية فقط.


تُمنح أداة نسخ الميزات إعداد بيئة أسماء الحقول المؤهلة. لذا استخدم هذه الأداة لعمل نسخة من مجموعة البيانات مع الوصلة والعمل معها.


كيفية استخدام DI (AutoFac) مع طبقة الخدمة

لدي تطبيق MVC يستخدم نمطًا من 3 مستويات: DAL & lt-> Service & lt-> UI وأحاول إضافة AutoFac لاختبار وحدات تحكم MVC الخاصة بي بالإضافة إلى الخدمات.

1) كيف يمكنني استخدام AutoFac لإخبار طبقة الخدمة الخاصة بي باستخدام سياق معين؟ أستخدم حاليًا builder.Register (c = & gt c.Resolve & ltIRepo & gt ()). As & ltRepo & gt () ولكن هذا يعرض IRepo لواجهة المستخدم ، مما يسمح لهم بتجاوز التحقق من طبقة الخدمة وقواعد العمل.

2) ريبو و MockRepo متطابقان إلى جانب المُنشئ الذي يحدد السياق الذي يجب استخدامه. إنه موجود لأن واجهة المستخدم لا تحتوي على مرجع إلى DAL ولذا لا يمكنني تمرير IDataContext. هل هناك طريقة لإزالة التعليمات البرمجية / الفئات الزائدة وتظل قادرًا على استخدام DI؟


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

ما هو نموذج قاعدة البيانات الهرمية

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

Hadoop وعلوم البيانات والإحصاء وغيرها

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


تسبب نقل التاريخ بين الجداول في حدوث خطأ ORA-01841 [مغلق]

تريد تحسين هذا السؤال؟ قم بتحديث السؤال بحيث يكون & # 39s على الموضوع لمسؤولي قاعدة البيانات Stack Exchange.

الملخص: كل شيء بعد INSERT INTO BRAND_RECORD يعمل بشكل جيد. إنه استعلام ينتج STRENGTH و GENERIC_NAME و INTERCHANGEABILITY_DATE. BRAND_RECORD جدول به الأعمدة STRENGTH ، GENERIC_NAME ، INTERCHANGEABILITY_DATE.

ومع ذلك ، أتلقى الخطأ التالي:

تقرير الخطأ - خطأ SQL: ORA-01841: يجب أن تكون السنة (الكاملة) بين -4713 و +9999 ، وألا تكون 0 01841. 00000 - "يجب أن تكون السنة (الكاملة) بين -4713 و +9999 ، وألا تكون 0" * السبب: تم ​​إدخال سنة غير قانونية. * الإجراء: سنة الإدخال في النطاق المحدد

هذا يبدو وكأنه نوع من مشكلة التحويل. لكنني أحدد موعدًا وأضعه في جدول يأخذ تاريخًا! أي فكرة عما قد تكون المشكلة؟

تحديث: لقد غيرت تنسيق التاريخ الافتراضي الخاص بي إلى MM / DD / YYYY HH24: MI: SS. أتلقى الآن الخطأ التالي عندما أحاول هذا:

تقرير الخطأ - خطأ SQL: ORA-01858: تم العثور على حرف غير رقمي حيث كان من المتوقع وجود رقم رقمي 01858. 00000 - "تم العثور على حرف غير رقمي حيث كان متوقعًا رقمًا" * السبب: بيانات الإدخال المراد تحويلها باستخدام كان نموذج تنسيق التاريخ غير صحيح. لا تحتوي بيانات الإدخال على رقم حيث كان نموذج التنسيق مطلوبًا لرقم. * الإجراء: أصلح بيانات الإدخال أو نموذج تنسيق التاريخ للتأكد من تطابق العناصر في العدد والنوع. ثم أعد العملية. خطأ يبدأ من السطر: 1 في الأمر - INSERT INTO BRAND_RECORD خطأ في سطر الأوامر: 1 العمود: 24 تقرير الخطأ - خطأ SQL: ORA-00926: الكلمة الأساسية VALUES مفقودة 00926. 00000 - "VALUES keyword" * السبب: * الإجراء:


3 إجابات 3

على حد علمي ، يجب أن يعمل بشرط تنزيل أحدث إصدار من wiringPi وتثبيته.

الآن بعد أن تم إهمال wiringpi (ويتطلب تنزيلًا من موقع المؤلف للعمل على Pi4) ، فإن مستقبل أمر gpio readall غير معروف.

لقد كتبت بديلاً (يستخدم Pigpiod) - والذي يتميز بميزة عرض وظيفة GPIO المبرمجة الفعلية إذا تم تغييرها ويمكن استخدامه عن بُعد (مثل برامج Pigpiod الأخرى). هذا مبسط ، ولا يعرض أرقام دبوس wiringpi المربكة.

إذا لم تكن فترة الخنزير قيد التشغيل ، فقم بتشغيل sudo pigpiod

يعرض gpioread افتراضيًا دبابيس الطاقة بالألوان.

لاستعادة الإخراج غير الملون ، قم بإلغاء التعليق على السطرين # ناتج غير ملون والتعليق بها # ناتج ملون.


1 إجابة 1

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

في حالتك هناك بالفعل خيار ثالث. دع OnGet يتعامل مع الملف فقط. إزالة OrderBy لأن هذه طريقة عرض مهمة كيف يتم عرضها. بالإضافة إلى ذلك ، قم بتهيئة itemListReportages إلى قائمة فارغة إذا كان الملف فارغًا. سيوفر لك عناء الشيكات الفارغة لاحقًا.

لا نرى ما إذا كنت قد قمت بتهيئة itemListReportages ولكن هذا العرض قد يتعطل لأنك لا تستخدم عامل الانتشار الفارغ هنا:؟.


ORA-21780: تم تجاوز الحد الأقصى لعدد مدد الكائن

بطريقة ما تحاول الاحتفاظ بالعديد من كائنات PL / SQL (أعني كائنات "TYPE AS OBJECT"). هناك قيود داخلية تبلغ حوالي 64 كيلو بايت لكل جلسة. هذا من جانب العميل (وليس من جانب الخادم) ، لذلك يعد هذا خطأ برمجيًا ، ولا يتعلق بإدارة قاعدة البيانات.

ليس إذا كان هذا مهمًا ، ولكن إذا كنت تشعر بالفضول ببساطة عن سبب حديث هذه الرسالة عن "المدد" ، فراجع هذا المستند.


كيفية حفظ وتحميل نموذج وسيط بشكل صحيح في Keras؟

أنا أعمل مع نموذج يتضمن 3 مراحل من "تداخل" النماذج في Keras.

الأول من الناحية المفاهيمية هو نموذج نقل التعلم CNN ، على سبيل المثال MobileNetV2. (النموذج 1) ثم يتم تغليفها بنموذج يتكون من DNN صغير. (النموذج 2) أخيرًا أثناء التدريب ، يتم تغليفها جميعًا بنموذج يدمج مخرجات متعددة من النموذج 2 ، ويحسب الخسارة ، ثم ينتشر في النموذج 2 وفي النموذج المستقبلي 1 (النموذج 3)

للاستدلال لاحقًا ، أريد ببساطة حفظ أوزان الطرازين 1 و 2. لقد واجهت مشكلات متعددة مع هذا ، نظرًا لما يبدو أنه أخطاء في بعض إصدارات Keras (أستخدم 2.2.2) وكذلك تحميل الأوزان بشكل أكثر وضوحًا يبدو أنه ينتج عنه أوزان عشوائية وبالتالي لا يعمل بشكل صحيح. بدلاً من محاولة استكشاف الأخطاء وإصلاحها في أي سيناريو ، أحاول ببساطة تحديد أفضل ممارسة لحفظ النماذج المتداخلة الوسيطة.

ثم هيكل النموذج 3:

يبدو أن النموذج يعمل ويتدرب على ما يرام:

لكن حفظ النموذج بعد التدريب غير واضح:

يبدو أن أوضاع الفشل الحالية هي إذا حاولت تحميل الأوزان فقط إلى مثيل model_2 تم إنشاؤه حديثًا أحصل عليه:

والتي قد تكون مرتبطة بالبحث عن خطأ في Keras. إذا قمت بحفظ النموذج (.


يمكنك الحصول على إعداد API الخاص بك مثل هذا:

ممنوحًا ، سيؤدي هذا إلى تكرار بعض الحقول عبر الأنواع ولكنها طريقة مرنة إلى حد ما للسماح لك بتحديد ما تريد إرجاعه بالضبط لكل طلب. في هذا السيناريو ، يكون نوع الكتاب هو ما تستخدمه في الواجهة الخلفية و * نموذج العرض عبارة عن استجابات للموقف المحدد الذي يستجيبون له.

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


26.5 استخدام ميزات إدارة الموافقة لقائمة عمل Oracle BPM ومساحة العمل

تتيح قائمة عمل Oracle Business Process Management (BPM) للمستخدمين أداء مهام إدارة الموافقة المتنوعة ، بما في ذلك ما يلي:

استخدم نماذج المهام لإدارة المهام

تحديد تسميات السمات المعينة

إدارة مجموعات الموافقة

استخدم تكوين المهمة لتكوين قواعد الموافقة

استخدم مناطق سرد المهام والمداخل

استخدم منطقة محفوظات المهام لمعاينة المعتمدين

26.5.1 كيفية استخدام نماذج المهام

تنشئ خدمة سير العمل البشري مهام للمستخدمين للتفاعل مع عملية الأعمال. تحتوي كل مهمة على جزأين & # x2014 البيانات الوصفية للمهمة ونموذج المهمة. يُستخدم نموذج المهمة لعرض محتويات المهمة على قائمة عمل المستخدم.

تم تصميم نموذج المهمة في JDeveloper مع Oracle Application Development Framework (Oracle ADF). لمزيد من المعلومات ، راجع "تصميم نماذج عرض المهام للمهام البشرية" في Oracle Fusion Middleware Developer Guide for Oracle SOA Suite.

يعرض تطبيق Oracle BPEL Worklist جميع مهام قائمة العمل التي تم تعيينها لمستخدم أو مجموعة. عندما ينتقل مستخدم قائمة العمل إلى مهمة محددة ، يعرض نموذج عرض المهمة تفاصيل هذه المهمة. على سبيل المثال ، قد تُظهر مهمة الموافقة على المصروفات نموذجًا يحتوي على عناصر سطر للنفقات المختلفة ، وقد يُظهر نموذج مهمة مكتب المساعدة تفاصيل مثل الخطورة وموقع المشكلة وما إلى ذلك.

تصف الأقسام التالية نموذج المهمة في تطبيق قائمة العمل الذي يستخدمه المستخدمون الذين يتمتعون بحقوق المسؤول لإدارة المهام. يوضح الشكل 26-50 كيف يبدو شكل المهمة.

شكل 26-50 نموذج مهمة في تطبيق قائمة العمل

26.5.1.1 عرض الرأس

يتم إنشاء عرض الرأس ، الموضح في الشكل 26-51 ، في JDeveloper باستخدام معالج إسقاط الرأس.

بشكل افتراضي ، يتضمن معالج الإسقاط حقول الرأس المدرجة في الجدول 26-8. ومع ذلك ، يمكنك تضمين أو إزالة أي من الحقول بناءً على حالة الاستخدام.

الرقم الذي يتم تعيينه تلقائيًا للمهمة.

الوضع الحالي للمهمة.

نتيجة المستخدم. بالنسبة إلى testaple ، إذا نقر المستخدم على موافقة ، فسيعرض حقل النتيجة "موافقة".

مستوى الأولوية المعين للمهمة.

المستخدم الذي أنشأ المهمة.

تاريخ آخر تحديث للمهمة.

تاريخ انتهاء المهمة.

اسم (أسماء) المسؤول (المسؤولين) الذي تم تعيين المهمة له.

اسم المستخدم الذي يدعي المهمة قبل اتخاذ أي إجراء بشأنها.

التاريخ الذي تكون فيه المهمة مستحقة.

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

تظهر إجراءات النظام ، مثل Escalate و Suspend و Resume دائمًا في قائمة منسدلة. تعتمد الإجراءات التي تظهر على ما يفعله المستخدم. على سبيل المثال ، بعد بدء المهمة ، يمكن سحبها. بعد ذلك ، إذا قام مستخدم بتسجيل الدخول إلى تطبيق قائمة العمل لعرض تفاصيل مهمة تم بدؤها ، فسيظهر "سحب" في القائمة التي تحتوي على الإجراءات المتاحة.

يسرد الجدول 26-9 جميع الإجراءات التي يمكن للمسؤول تنفيذها من الرأس وأوصافها.

تمكن المسؤول من رفض المهمة.

تمكن المستخدم من الموافقة على المهمة.

يُمكِّن المسؤول من تعيين مهمة لشخص آخر للعمل نيابة عنه.

تمكن المسؤول من نقل مهمة إلى مسؤول آخر.

يمكّن المسؤول من إيقاف المهمة مؤقتًا للعمل عليها في وقت لاحق.

تمكن المسؤول من استئناف مهمة معلقة.

تمكن المسؤول من سحب مهمة تم بدئها.

تمكن المسؤول من تصعيد مهمة إلى مشرف.

تمكن المسؤول من حذف مهمة. يظهر لجميع مهام "المهام الواجبة".

تمكن المسؤول من مسح مهمة. يظهر لجميع مهام "المهام الواجبة".

تمكن المسؤول من "الانتقال" إلى الإجراء المحدد من القائمة المنسدلة.

تمكن المسؤول من حفظ المهمة.

26.5.1.2 عرض حمولة المهام

تعرض طريقة عرض "حمولة المهام" ، الموضحة في الشكل 26-52 ، تفاصيل معلمات المهمة وتوفر القدرة على تحديثها. يمكن أيضًا عرض أي معلمة تم تصميمها بناءً على SDO هنا. بينما تستند قيم المعلمات العامة إلى ما تم تمريره إلى المهمة أو التحديث من قبل أي مستخدم ، فإن قيم المعلمات المستندة إلى SDO تعكس القيمة الحالية لكائن الأعمال كما تم تحديثه في التطبيق الأساسي.

لمزيد من المعلومات ، راجع "تصميم نماذج عرض المهام للمهام البشرية" في Oracle Fusion Middleware Developer Guide for Oracle SOA Suite.

26.5.1.3 عرض محفوظات المهام

توفر طريقة عرض "محفوظات المهام" ، الموضحة في الشكل 26-53 ، عرضًا رسوميًا وجدوليًا للأحداث في دورة حياة المهمة. بالإضافة إلى ذلك ، إذا تم تحديد خيار تحرير تكوين الموافق في المصمم ، فستتوفر عناصر تحكم خاصة في طريقة العرض المجدولة التي تسمح للموافقين المستقبليين بالتحرير. يمكن حذف أي مانح تتم إضافته يدويًا ويمكن إضافة جهات اعتماد جديدة. تنعكس تغييرات الموافقة التي تم إجراؤها في العرض الجدولي على الفور في العرض الرسومي. عند حفظ المهمة أو تنفيذ إجراء مخصص ، مثل الموافقة أو الرفض على المهمة ، يتم أيضًا حفظ جميع التغييرات المتعلقة بالموافق.

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

يوضح الشكل 26-54 إضافة زري "تطبيق" و "إعادة تعيين".

شكل 26-54 سجل المهام - إجراءات إضافية

يصف الجدول 26-10 جميع إجراءات مهمة الموافقة الإضافية.

جدول 26-10 تحرير إجراءات قائمة المشاركين في المستقبل

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

يتم تمكينه عندما يختار المستخدم مشاركًا تم إدراجه بشكل خاص. عند تحديد هذا الخيار ، يفتح مربع الحوار "تحرير مشارك" ويمكن للمستخدم تحريك موضع المشارك المُدرج.

يتم تمكينه عندما يختار المستخدم مشاركًا تم إدراجه بشكل خاص. عند تحديد هذا الخيار ، يتم حذف المشارك المقابل.

يستمر في عمليات التحرير على قائمة المشاركين في المستقبل.

يعيد تعيين عمليات التحرير من المشارك المستقبلي إلى قائمة من إنشاء النظام.

يسرد الجدول 26-11 الإجراءات التي يمكن للمسؤول تنفيذها من عرض محفوظات المهام وأوصافها.

الجدول 26-11 إجراءات تاريخ المهام

يعرض تفاصيل المهمة للإصدار المحدد.

إذا تم تحديده ، فسيتم عرض محفوظات إجراء المهمة الكاملة. إذا لم يتم تحديده ، فسيتم عرض محفوظات الإجراءات فقط. بشكل افتراضي ، المربع غير محدد.

إذا تم تحديده ، يتم عرض المهمة الرئيسية في مشاهدة مهمة فرعية. إذا لم يتم تحديده ، فسيتم عرض محفوظات المهام الفرعية فقط. بشكل افتراضي ، يتم تحديد المربع.

إذا تم تحديده ، يتم عرض الموافق المستقبلي مع المحفوظات. بشكل افتراضي ، المربع غير محدد.

26.5.1.4 عرض التعليقات والمرفقات

يتم إنشاء طريقة عرض التعليقات والمرفقات ، الموضحة في الشكل 26-55 ، في JDeveloper باستخدام معالج إسقاط التحكم في بيانات المهمة. يتضمن حقل إدخال نص لإدخال التعليقات حول المهمة ، ووظيفة إرفاق المستندات الداعمة.

الشكل 26-55 التعليقات والمرفقات

26.5.2 كيفية إنشاء تسميات السمات المعينة

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

يجب أن يكون لديك امتياز workflow.mapping.protectedFlexfield لإنشاء سمات فليكسفيلد محمية. المستخدم المسؤول الافتراضي ، weblogic ، لديه هذا الامتياز.

من الصفحة الرئيسية لتطبيق BPM Worklist ، انقر فوق ارتباط "الإدارة" في الزاوية العلوية اليمنى من الصفحة.

في جزء الإدارة ، انقر فوق ارتباط "الحقول المرنة المحمية". يتم عرض صفحة مشابهة للصفحة المعروضة في الشكل 26-56.

رسم خرائط فليكسفيلد الشكل 26-56: محمي

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

لإنشاء تسمية سمة:

انقر فوق الزر إضافة (+). يظهر مربع الحوار "إنشاء تسمية" ، كما هو موضح بالشكل 26-57.

شكل 26-57 إنشاء مربع حوار تسمية

حدد نوع سمة وسمة مهمة من القوائم المنسدلة.

أدخل اسمًا فريدًا للتسمية ووصفًا.

انقر فوق إنشاء. يتم إنشاء التسمية وإتاحتها للتعيين في مكونات المهمة.

لحذف تسمية سمة:

لحذف تسمية سمة ، حددها أولاً من قائمة تسميات السمات. ثم انقر فوق الزر حذف (-).

يمكن حذف تسميات السمات فقط إذا لم يتم استخدامها في أي تعيينات.

26.5.2.1 استيراد وتصدير تعريفات بطاقة السمات

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

26.5.2.2 تدويل تسميات السمات

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

لمزيد من المعلومات ، راجع "تدويل تسميات السمات" في فصل "مقدمة إلى خدمات سير العمل البشري" في Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

26.5.3 إدارة مجموعات الموافقة

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

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

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

26.5.3.1 كيفية عرض مجموعات الموافقة

من الصفحة الرئيسية Oracle BPM Worklist ، انقر فوق علامة التبويب مجموعات الموافقة. تظهر صفحة مشابهة للصفحة الموضحة في الشكل 26-58.

تطبيق قائمة العمل بالشكل 26-58: علامة التبويب مجموعات الموافقة

يُظهر الرسم أن مجموعة الموافقة "DisbursementTeam" بها مستخدمان ، "bpalmer" و "rjames". يتصرف المستخدمون في مهمة في تكوين تسلسل محدد.

26.5.3.2 كيفية البحث عن مجموعة اعتماد

يمكنك البحث عن مجموعة قبول إما عن طريق اسم المستخدم أو اسم المجموعة.

في جزء التنقل الأيمن ، حدد المستخدم من القائمة المنسدلة.

أدخل اسم المستخدم الكامل للمستخدم في حقل إدخال النص. (يمكنك أيضًا إجراء بحث حرف بدل (*) باستخدام اسم مستخدم جزئي.)

يتم عرض قائمة بجميع مجموعات القبول التي ينتمي إليها المستخدم في جزء التنقل الأيسر ، كما هو موضح في الشكل 26-59.

شكل 26-59 نتائج البحث عن اسم المستخدم

يؤدي النقر فوق اسم مجموعة الموافقة إلى تحديث جزء التفاصيل الموجود على اليمين ببنية تلك المجموعة.

في جزء التنقل الأيمن ، حدد مجموعة من القائمة المنسدلة.

أدخل اسم المجموعة بالكامل في حقل إدخال النص. (يمكنك أيضًا إجراء بحث عن حرف بدل (*) باستخدام اسم مجموعة جزئي.)

يتم عرض قائمة بجميع مجموعات الموافقة المطابقة في جزء التنقل الأيمن ، كما هو موضح في الشكل 26-59.

الشكل 26-60 نتائج البحث عن اسم المجموعة

يؤدي النقر فوق اسم مجموعة الموافقة إلى تحديث جزء التفاصيل الموجود على اليمين ببنية تلك المجموعة.

26.5.3.3 كيفية إضافة مجموعة موافقة ثابتة

يوضح الإجراء التالي كيفية إضافة مجموعة موافقة ثابتة.

في جزء التنقل الأيمن ، انقر فوق الزر إضافة (+) وحدد إنشاء ثابت من القائمة المنسدلة ، كما هو موضح في الشكل 26-61.

شكل 26-61 إنشاء مجموعة موافقة: حدد مجموعة ثابتة

تظهر صفحة مشابهة للصفحة الموضحة في الشكل 26-62.

شكل 26-62 إنشاء مجموعة موافقة ثابتة: التفاصيل

أدخل اسمًا جديدًا للمجموعة.

يمكنك الآن إضافة أعضاء إلى مجموعة القبول الجديدة.

26.5.3.4 كيفية إضافة عضو جديد إلى مجموعة الموافقة الثابتة

يمكن أن يكون أعضاء مجموعة الموافقة الثابتة إما مستخدمين أو مجموعات قبول أخرى. يوضح الإجراء التالي كيفية إضافة عضو مستخدم جديد إلى مجموعة قبول.

من الصفحة الموضحة بالشكل 26-62 ، انقر فوق أيقونة إضافة (+).

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

يظهر مربع الحوار "إضافة إلى المجموعة" المنبثق ، كما هو موضح بالشكل 26-63.

شكل 26-63 إضافة إلى مربع حوار المجموعة

حدد مستخدمًا باستخدام أحد هذه الخيارات:

أدخل اسم مستخدم كاملاً وانقر فوق "موافق".

يتم إغلاق مربع الحوار ويظهر العضو الجديد في قسم الأعضاء في جزء التفاصيل.

انقر فوق العدسة المكبرة للبحث عن مستخدم.

إذا نقرت على العدسة المكبرة ، فسيظهر مربع حوار منبثق لمتصفح الهوية ، كما هو موضح بالشكل 26-64.

مستعرض الهوية الشكل 26-64: إضافة مستخدم

حدد المستخدمون من القائمة المنسدلة.

أدخل الاسم الكامل في حقل إدخال النص وانقر فوق بحث. (يمكنك أيضًا إجراء بحث حرف بدل (*) باستخدام اسم مستخدم جزئي.)

يتم تحديث مربع حوار Identity Browser وتظهر نتائج البحث ، كما هو موضح في الشكل 26-65.

مستعرض الهوية الشكل 26-65: نتائج البحث

اختر مستخدمًا من القائمة.

تظهر التفاصيل الخاصة بهذا المستخدم في قسم التفاصيل بمربع الحوار.

انقر فوق "موافق" مرة أخرى لإغلاق مربع الحوار "إضافة إلى المجموعة".

تظهر العقدة التي تمثل المستخدم المحدد في بنية مجموعة الموافقة في قسم الأعضاء في جزء التفاصيل ، كما هو موضح في الشكل 26-66.

شكل 26-66 هيكل مجموعة الموافقة

يمكنك إضافة المزيد من الأعضاء إلى مجموعة الموافقة بتكرار الخطوات أعلاه. يبدو هيكل مجموعة الموافقة الناتج مشابهًا للهيكل الموضح في الشكل 26-67.

شكل 26-67 هيكل مجموعة الموافقة: عدة أعضاء

26.5.3.5 كيفية حذف عضو من مجموعة الموافقة

يوضح الإجراء التالي كيفية حذف عضو من مجموعة الموافقة.

اختر عقدة العضو المناسبة من بنية مجموعة الموافقة.

يتم تحديث بنية مجموعة القبول وتم حذف عقدة العضو.

26.5.3.6 كيفية نقل أعضاء مجموعة الموافقة

يوضح الإجراء التالي كيفية تغيير ترتيب التسلسل لمجموعة الموافقة.

اختر عقدة عضو لنقلها.

استخدم رمز Push Member Up (^) و Push Member Down (v) لنقل العضو إلى الموقع المطلوب.

يوضح الشكل 26-68 والشكل 26-69 مواقف rjames و jstein قبل وبعد التحرك.

26.5.3.7 كيفية عش مجموعات الموافقة

يوضح الإجراء التالي كيفية إجراء تداخل لمجموعات القبول ، أي إضافة مجموعة قبول إلى مجموعة قبول أخرى.

انقر فوق العدسة المكبرة.

يظهر مربع حوار "إضافة إلى المجموعة" آخر.

من الجزء الأيمن ، اختر مجموعة الموافقة التي تريد إضافتها.

يظهر هيكلها في الجزء الأيمن ، كما هو موضح في الشكل 26-70.

الشكل 26-70 اختر مجموعة الموافقة على العش

انقر فوق "موافق" مرة أخرى لإغلاق مربع الحوار "إضافة إلى المجموعة".

تظهر مجموعة الموافقة الجديدة في هيكل مجموعة الموافقة ، كما هو موضح في الشكل 26-71.

مجموعات الموافقة المتداخلة الشكل 26-71

26.5.3.8 كيفية إعادة تسمية مجموعة الموافقة

يوضح الإجراء التالي كيفية إعادة تسمية مجموعة الموافقة.

أدخل الاسم الجديد لمجموعة القبول في حقل الاسم.

ينعكس تغيير الاسم أيضًا في مجموعات الموافقات الأخرى التي تتداخل فيها مجموعة الموافقة هذه.

26.5.3.9 استخدام مجموعات الموافقة الديناميكية

توفر مجموعات الموافقة الديناميكية طريقة لإنشاء مجموعات الموافقة من خلال فئة Java مخصصة في وقت التشغيل. هذا يتطلب ما يلي:

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

تسجيل مجموعة الموافقة الديناميكية المخصصة باستخدام واجهة مستخدم تطبيقات قائمة العمل بواسطة قسم تكنولوجيا المعلومات

جعل ملف الفصل متاحًا في دليل معروف عالميًا يعد جزءًا من مسار فئة SOA

26.5.3.9.1 كيفية كتابة فئة مجموعة الموافقة الديناميكية المخصصة

لتعريف مجموعة الموافقة الديناميكية ، يجب على العميل تحديد فئة التنفيذ باستخدام ملف الواجهة IDynamicApprovalGroup.java ، المحدد بواسطة AMX لمجموعات الموافقة الديناميكية في الحزمة oracle.bpel.services.workflow.task. يحتوي هذا على طريقة عامة واحدة فقط تحصل على أعضاء مجموعة الموافقة. كائن المهمة هو معلمة الإدخال الوحيدة. يمكن الحصول على قائمة المفاتيح الأساسية من المهمة / systemAttributes / collectionTarget المهمة.

مثال 26-6 فئة التنفيذ

يوضح الشكل 26-72 مقتطف رمز لفئة عينة لمجموعة الموافقة الديناميكية.

الشكل 26-72 رمز لفئة مجموعة الموافقة الديناميكية

26.5.3.9.2 كيفية تسجيل فئة مجموعة الموافقة الديناميكية المخصصة
26.5.3.9.3 كيفية إتاحة فئة مجموعة الموافقة الديناميكية المخصصة

لجعل ملف الفصل متاحًا في دليل مشهور عالميًا يعد جزءًا من مسار فئة SOA ، يجب عليك وضع ملفات الفصل الدراسي في دليل خادم WebLogic التالي:

على سبيل المثال ، بالنسبة لفئة Java oracle.apps.DynamicAG ، سيكون المسار $ BEAHOME / AS11gR1SOA / soa / modules / oracle.soa.ext_11.1.1 / class / oracle / apps / DynamicAG.class. يجب إعادة تشغيل WebLogic Server بعد وضع ملفات الفصل الدراسي هناك.

26.5.3.9.4 كيفية إضافة مجموعة اعتماد ديناميكية

يوضح الإجراء التالي كيفية إضافة مجموعة موافقة ديناميكية.

في جزء التنقل الأيمن ، انقر فوق الزر إضافة (+) وحدد إنشاء ديناميكي من القائمة المنسدلة ، كما هو موضح في الشكل 26-73

شكل 26-73 إنشاء مجموعة موافقة: حدد مجموعة ديناميكية

تظهر صفحة مشابهة للصفحة الموضحة في الشكل 26-74.

شكل 26-74 إنشاء مجموعة اعتماد ديناميكية: التفاصيل

أدخل اسمًا وفئة للمجموعة.

انقر فوق تطبيق لحفظ المجموعة.

26.5.3.10 كيفية حذف مجموعة موافقة

يوضح الإجراء التالي كيفية حذف مجموعة الموافقة.

في جزء التنقل الأيمن ، اختر مجموعة الموافقة التي تريد حذفها.

انقر فوق الزر حذف (-) ، كما هو موضح بالشكل 26-75.

شكل 26-75 حذف مجموعة الموافقة

يظهر مربع حوار التأكيد.

تم حذف مجموعة القبول.

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

26.5.4 استخدام تكوين المهام

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

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

يمكّنك تكوين المهام من تحرير القواعد المستندة إلى الأحداث والقواعد المستندة إلى البيانات المرتبطة بتدفق الموافقة في وقت التشغيل ، أي عند نشر سير العمل. يمكن الوصول إلى علامتي التبويب Event Driven and Data Driven بالنقر فوق علامة التبويب "تكوين المهمة" الرئيسية في قسم الإدارة في التطبيق. يتم عرض شاشة مشابهة لتلك المعروضة في الشكل 26-76.

شكل 26-76 تكوين المهمة: علامة التبويب الرئيسية

تسرد لوحة المهام المراد تكوينها الموجودة على اليسار جميع مهام سير العمل التي تم تكوينها لاستخدام قواعد تدفق الموافقة. كما يوفر إمكانية البحث. في وضع العرض ، تعرض اللوحة اليمنى التكوين والقواعد الافتراضية لتجاوز تكوين منشئ قائمة تدفق الموافقة. يتم عرض تكوينات القواعد بناءً على المراحل المحددة في تدفق الموافقة.

26.5.4.1 كيفية تحرير الإعدادات التي يحركها الحدث

يحتوي هذا القسم على معلومات حول الإعدادات التي تستند إلى الأحداث ، أي بيانات تعريف المهام.

يوضح الشكل 26-77 صفحة تكوين مهمة تعتمد على الحدث.

الشكل 26-77 تكوين المهمة: حدث مدفوع

استخدم الإجراء التالي لتحرير إعداد يعتمد على الحدث.

ضمن علامة التبويب "تكوين المهمة" ، انقر فوق علامة التبويب "مدفوعة بالحدث".

في جزء المهام المراد تكوينها ، حدد مهمة. ثم انقر فوق رمز تحرير (قلم رصاص).

يتم تحديث الصفحة الرئيسية في وضع التحرير ، كما هو موضح بالشكل 26-78.

الشكل 26-78 تكوين المهمة: يحركها الحدث ، وضع التحرير

قم بإجراء التغييرات وانقر فوق "تطبيق" لحفظها

انقر فوق نشر لنشر التغييرات الخاصة بك.

يمكن أن يتسبب تعريف القواعد غير المناسب أو غير الكامل في مجموعة قواعد إنشاء القائمة في حدوث أخطاء في وقت التشغيل. يمكن أن تحدث الأخطاء بسبب ما يلي:

لم يتم تحديد أي قاعدة في مجموعة القواعد.

لم يتم استيفاء أي من الشروط المحددة في القاعدة.

تأكد من أن القواعد محددة بشكل صحيح للتعامل مع جميع الشروط.

26.5.4.1.1 كيفية تحديد إعدادات التوجيه

تحتوي علامة التبويب Event Driven على مجموعة محدودة من خيارات التوجيه المتاحة في محرر المهام البشرية.

يمكن أن تكون متطلبات تجميع الموافقة أيًا مما يلي ، كما هو موضح في الشكل 26-79:

الشكل 26-79 إعدادات التوجيه

26.5.4.1.2 كيفية تحديد سياسات انتهاء الصلاحية والتصعيد

إن تحديد سياسات انتهاء الصلاحية والتصعيد في تطبيق قائمة العمل مشابه جدًا للطريقة التي يتم بها في محرر المهام البشرية. لمزيد من المعلومات ، راجع قسم "كيفية تصعيد المهمة أو تجديدها أو إنهائها" في الفصل "تصميم المهام البشرية" في Oracle Fusion Middleware Developer Guide for Oracle SOA Suite.

الشكل 26-80 سياسات انتهاء الصلاحية والتصعيد

26.5.4.1.3 كيفية تحديد إعدادات الإعلام

إن إنشاء أو تحديث إعدادات الإعلام لمهمة ما في تطبيق قائمة العمل يشبه إلى حد بعيد الطريقة التي يتم إجراؤها في محرر المهام البشرية. لمزيد من المعلومات ، راجع قسم "كيفية تحديد تفضيلات إخطار المشاركين" في فصل "تصميم المهام البشرية" في Oracle Fusion Middleware Developer Guide for Oracle SOA Suite.

Figure 26-81 Notification Settings

26.5.4.1.4 How to Allow Task Access

Access-rule settings can be set to control the actions a user can perform, and is very similar to how it can be done in the Human Task Editor. Content and action permissions can be specified based on the logical role of a user, such as creator (inititator), owner, assignee, and reviewers.

26.5.4.2 How to Edit Data-Driven Settings

Use the following procedure to edit a data-driven setting, that is, a rule or condition.

Under the Task Configuration tab, click the Data Driven tab.

In the Tasks to be configured pane, select a task. Then click the Edit (pencil) icon.

The right panel refreshes in edit mode, as shown in Figure 26-83 and Figure 26-84.

Figure 26-83 Task Configuration: Data Driven, Edit Mode (1)

Figure 26-84 Task Configuration: Data Driven, Edit Mode (2)

The rule name appears as the rule reason in the history graph. If you defined a resource bundle, then the rule name is used to obtain the resource bundle and a translated text is displayed.

Change assertions (which depend on the type of list builder for which the rule has been configured)

Click Apply when you have finished making your changes.

The changes are saved to the rule definitions in the rules dictionary.

Click Deploy to deploy the changes.

26.5.4.2.1 How to Add a Variable

Use the following procedure to add a variable.

The Add Variable window displays, as shown in Figure 26-85.

Figure 26-85 Add Variable Window with "Type" Dropdown List

Enter a name for the variable.

Click the down arrow to select a variable type from the dropdown list.

The types displayed in the list correspond to those that are available in the rule dictionary (built-in and others that have been registered).

The variable can now be used to define conditions.

26.5.4.2.2 How to Define Conditions

You can set the left and right sides of a condition by selecting operands from condition browsers. Clicking the magnifying glass icon displays the browsers. Figure 26-86 shows the left condition browser.

Figure 26-86 Left Condition Browser

The operator for comparing the operands of the condition changes based on the type of operand selected for the left side of the condition. Figure 26-87 shows the right condition browser.

Figure 26-87 Right Condition Browser

You also can define more complex conditions using the Expression Builder.

26.5.4.2.3 How to Define Assertions

You can specify an assertion by selecting the appropriate rule function from the dropdown list.

26.5.5 Using the Task Listing Region

The task listing region in the BPM Worklist is available as standalone, reusable component that you can use to display a list of tasks in an embedding application. It is provided as an ADF library that you can include in the embedding application.

Figure 26-88 shows the task listing region.

Figure 26-88 Task Listing Region

26.5.5.1 How to Embed the Task Listing Region in an Application

The task listing region is exposed as a portlet and can be embedded in other applications.

The consumer application is developed using JDeveloper. The task list portlet then is embedded in a page in the consumer application. At run time, the login credentials passed to the consumer application are propagated to the WSRP producer and the portlet content is displayed on the page. The standalone task list portlet is deployed on the WLS PORTLET server, which would contact the remote WLS SOA server for workflow services. A separate portlet ear is provided for deployment on the portlet server.

Any consumer can use the task list portlet after registering to the portlet producer (WLS Portlet server).

To embed the task listing region in an application:

The task list ADF library adflibTaskListTaskFlow.jar file must be in the class path. This jar is available in JDeveloper in the BPM Worklist Components library.

In JDeveoloper, create a new application and provide a name for example, "TaskListTaskFlowSample."

Add adflibTaskListTaskFlow.jar task flow in the project's class path.

Add the following libraries from Libraries and Classpath to the class path:

If you run your application on a non-SOA server, perform the steps listed in Section 26.5.5.1.1, "How to Deploy a Human Task Detail Page on a Remote Non-SOA Server." Otherwise, continue to step 5.

Create a .jspx page. You can name it something like "testSample.jspx."

Choose adflibTaskListFlow.jar from the Component Palette , and drag Tasklist-flow-definition onto the .jspx page as a region.

The Edit Task Flow Binding dialog displays.

Figure 26-89 Edit Task Flow Binding Dialog


Example 26-7 shows what is created in testSamplePagedef.xml .

Example 26-7 testSamplePagedef.xml Code

Add the following shared libraries to weblogic-application.xml :

Add the libraries appropriately if you have oracle.soa.workflow.wc installed on your server.

From the Edit WAR Deployment Profile Properties dialog, select the following:

From the Level menu, choose Secure > Configure ADF Security to secure the application, as shown in Figure 26-90.

Figure 26-90 Securing the Application

From the Configure ADF Security dialog, do the following:

Select ADF Authentication .

Select HTTP Basic Authentication .

If you are using the task flow in the federated mode, see Section 26.5.5.1.2, "How to Use the Task Flow in the Federated Mode," for additional steps you must perform. Otherwise, continue to step 12.

Create an EAR deployment profile, build an ear and deploy it.

Go to the following URL: http://server:port/TaskListTaskFlowSample-ViewController-context-root/faces/testSample.jspx .

From the popup dialog that displays, log in as any user. The task list for that user displays.

The dropdown list contains all available servers. Selecting any combination of servers refreshes the task list to display all tasks that belong to those servers.

If "showServerColumn" was passed as true , the server column, indicating the server to which the task belongs, displays in the task.

Figure 26-91 Server Column


Click any of the tasks titles to display a dialog containing the details of the task.


26.5.5.1.1 How to Deploy a Human Task Detail Page on a Remote Non-SOA Server

The following procedure is required if you run your application on a non-SOA server.

To deploy on a non-SOA server:

Deploy the oracle.soa.workflow shared library on the non-SOA WLS server. Do the following:

Navigate to http:// remote_hostname:remote_port /console, where remote_hostname and remote_port are the host name and port for the remote non-SOA WLS server.

Click the "Deployments" link, then click Install .

Ensure the following value in the Path field is specified. Be sure to replace $ADE_VIEW_ROOT with the actual directory. فمثلا:

Confirm that the oracle.soa.workflow(11.1.1,11.1.1) library has an Active State.

Define the foreign JNDI on the non-SOA WLS server. Do the following:

Navigate to http:// remote_hostname:remote_port /console, where remote_hostname and remote_port are the host name and port for the remote non-SOA WLS server.

Navigate to Domain Structure > Services > Foreign JNDI Providers .

Enter the name ForeignJNDIProvider-SOA .

Click the "ForeignJNDIProvider-SOA" link.

Replace soa_hostname and soa_port with the host name and port for the SOA WLS server.

Enter the following values:

- Initial Context Factory: weblogic.jndi.WLInitialContextFactory - Provider URL: t3://soa_hostname:soa_port/soa-infra - User: weblogic - Password: weblogic

The Provider URL is referring to the soa-infra application, not the domain. Do not change soa-infra to soa.

Define the JNDI links on non-SOA WLS server. Do the following:

Navigate to http:// remote_hostname:remote_port /console, where remote_hostname and remote_port are the host name and port for the remote non-SOA WLS server.

Navigate to Domain Structure > Services > Foreign JNDI Providers .

Select the Link tab, then click New .

Enter the following values:

- Name: RuntimeConfigService - Local JNDI Name: RuntimeConfigService - Remote JNDI Name: RuntimeConfigService

Repeat steps a through f to enter the following values for Name, Local JNDI Name, and Remote JNDI name:

- ejb/bpel/services/workflow/TaskServiceBean - ejb/bpel/services/workflow/TaskMetadataServiceBean - TaskReportServiceBean - TaskEvidenceServiceBean - TaskQueryService - UserMetadataService

Specify "ejb/bpel/services/workflow/" for ejb/bpel/services/workflow/TaskServiceBean and ejb/bpel/services/workflow/TaskMetadataServiceBean only.

Change system-jazn-data.xml on the remote non-SOA WLS server to include the grant for bpm-services.jar , as shown in Example 26-8. If you are deploying the ADF Task Flow for Human Task to the integrated WLS server, then you can locate the system-jazn-data.xml file in $ADE_VIEW_ROOT/system11.1.1.1.32.53.26/DefaultDomain/config/fmwconfig .

Important: Be sure to replace $ADE_VIEW_ROOT with the actual path.. For example, /scratch/skaneshi/view_storage/skaneshi_d7b4/fmwtools/fmwtools_home/jdeveloper/soa/modules/oracle.soa.workflow_11.1.1/bpm-services.jar .

Example 26-8 bpm-services.jar Grant Code

Restart the remote non-SOA WLS server.

Deploy your application containing the human task detail UI to the remote non-SOA WLS server.

26.5.5.1.2 How to Use the Task Flow in the Federated Mode

If you are using the task flow in the federated mode, you must put wf_client_config.xml in the class path of the application. For more information, see Section 26.5.5.2, "How to Use Task Listing Region Parameters."

You also must enable global trust between the two servers. This is done so that the authenticated user is passed to all the federated servers defined in the client configuration file.

You must restart all the servers.

To use the task flow in the federated mode:

Perform the following procedure for all the servers defined in wf_client_config.xml :

Log in to the WebLogic console.

Under Domain Structures , click the soainfra domain name.

Click the Advanced link located near the Save button.

Enter a credential password of your choosing.

You must use this password for all SOA servers.

Example 26-9 shows sample wf_client_config.xml code.

Put excludeFromFederatedList="true" in the <server> element if you do not want to include the server in the federated servers list.

Example 26-9 Sample wf_client_config.xml Code

26.5.5.2 How to Use Task Listing Region Parameters

Task listing region parameters control the display behavior of the embedded region. This section describes these parameters.

The task list displays in federated mode if this paramater is passed as true . To run the task flow in federated mode, you must pass the list of federated servers to the task flow using one of these options:

Put the client configuration file wf_client_config.xml in the class path ( APP-INFclasseswf_client_config.xml at the ear level or the WEB-INFclasses of the web application). The client configuration file contains all federated server details. For more information, see Section 26.5.5.1.2, "How to Use the Task Flow in the Federated Mode."

Construct a JAXB object, which contains the federated servers list. This JAXB object can be passed to the task flow through the federatedServers parameter. For information on how to construct the JAXB object, see the details of that parameter.

This parameter displays a list of servers if the task flow is run in federated mode. Construct a JAXB object (WorkflowServicesClientConfigurationType) using the code shown below, and then pass it as a parameter to the task flow. Ensure that you set one server as the "default," as indicated (in bold type) in the code.

A default server is used when you have many servers defined in wf_client_config.xml or in the JAXB object. However, the workflow client is preferred for a single server. There are a few legacy APIs that do not take the server name as parameter. To support these APIs, you must define one single server as default server otherwise these APIs do not work.

Example 26-10 Defining a Single Server

If the task flow is run in federated mode, the server column in the task list, by default, is not displayed. To display the column, this parameter must be passed as true .

This is a workflow context token string and is used to create workflow context inside the task flow. If the application Single Sign On is enabled or is secured using ADF security, this parameter is not required. The workflow context is shown below.

Example 26-11 Workflow Context

The views panel displays only if passed as true . By default, it is not displayed.

The task details panel displays only if passed as true . By default, it is not displayed.

This string enables task details in the task listing region to display in an inline frame. If action is taken on the task details page, the action refreshes the task listing area with the p age URL in which the task flow/portlet is contained.

Since the task flow does not know the URL of the container page, the URL must be passed as a parameter. Get the parameter by calling the getRequestURL() method on the request object. You can pass the full URL either by calling the getRequestURL() method on the request object, or by passing the URL using the following format:

A string parameter that passes the locale source. It can be from the browser (BROWSER) or from the identity context (IDENTITY).

The action dropdown does not display only if passed as false . By default, it is displayed.

The view filter dropdown does not display only if passed as false . By default, it is displayed.

Specifies if the Actions menu displays the TODO action. To hide the TODO action, set this parameter to false. By default the Actions menu inclueds the TODO action.

The assignment filter dropdown does not display only if passed as false . By default, it is displayed.

The status filter dropdown does not display only if passed as false . By default, it is displayed.

The search box does not display only if passed as false . By default, it is displayed.

This comma-delineated list of strings enables the list of columns to be displayed in the region in the order specified.

This string specifies the name of the column to be used for sorting tasks by default in the region.

This string specifies the sort order for sorting tasks, that is ascending (ASC) or descending (DESC).

This string specifies the value to be used as the selection of the assignment filter for tasks. If not set, the values default to My and Group. For more information, see Section 26.5.5.2.1, "Using Assigment Filter Constraints."

This string specifies the value to be used as the selection of the view name to filter the tasks. If not set, the value defaults to Inbox.

A strings parameter that specifies the comma-delineated list of the task type(s) to be used for filtering the tasks that are displayed.

A string that specifies the operator (and/or) to be used as the predicate join criterion for the field-specified in Attribute Filter list.

A string parameter that specifies the comma-delineated list of name value pairs to be used to filter tasks based on attribute values. (The name is task column name and value is column value.)

If the user wants to see the task with attribute filter values as priority = 1 and status = ASSIGNED and promoted flexfield textAttribute1 = NorthAmerica, then the user would set the values as the following:

The attribute filter operator would be the following:

26.5.5.2.1 Using Assigment Filter Constraints

The following is a list of assignment filter constraints:

26.5.5.2.2 Passing Column Constraints

The list below contains the column constants that can be passed in the displayColumnList parameter. The constant value is the value that should be passed. For example, for TITLE_COLUMN = "title" , the "title" should be passed, not "TITLE_COLUMN".

Primary Column Contraints


STARTDATE_COLUMN = "startDate"
TASKDEFINITIONNAME_COLUMN = "taskDefinitionName"
OWNERROLE_COLUMN = "ownerRole"
UPDATEDDATE_COLUMN = "updatedDate"
COMPOSITEVERSION_COLUMN = "compositeVersion"
CREATOR_COLUMN = "creator"
FROMUSER_COLUMN = "fromUser"
PERCENTAGECOMPLETE_COLUMN = "percentageComplete"
OWNERGROUP_COLUMN = "ownerGroup"
ENDDATE_COLUMN = "endDate"
COMPOSITENAME_COLUMN = "compositeName"
DUEDATE_COLUMN = "dueDate"
COMPOSITEDN_COLUMN = "compositeDN"
TASKDISPLAYURL_COLUMN = "taskDisplayUrl"
UPDATEDBY_COLUMN = "updatedBy"
OUTCOME_COLUMN = "outcome"
TASKNAMESPACE_COLUMN = "taskNamespace"
APPROVERS_COLUMN = "approvers"
APPLICATIONCONTEXT_COLUMN = "applicationContext"
OWNERUSER_COLUMN = "ownerUser"
CATEGORY_COLUMN = "category"
ACQUIREDBY_COLUMN = "acquiredBy"
ORIGINALASSIGNEEUSER_COLUMN = "originalAssigneeUser"


ACQUIREDBY_COLUMN = "acquiredBy"
ASSIGNEDDATE_COLUMN = "assignedDate"
APPROVERS_COLUMN = "approvers"
ASSIGNEES_COLUMN = "assignees"
ASSIGNEESDISPLAYNAME_COLUMN = "assigneesDisplayName"
ASSIGNEEGROUPS_COLUMN = "assigneeGroups"
ASSIGNEEGROUPSDISPLAYNAME_COLUMN = "assigneeGroupsDisplayName"
ASSIGNEEUSERS_COLUMN = "assigneeUsers"
ASSIGNEEUSERSDISPLAYNAME_COLUMN = "assigneeUsersDisplayName"
OUTCOME_COLUMN = "outcome"
CREATEDDATE_COLUMN = "createdDate"
ELAPSEDTIME_COLUMN = "elapsedTime"
DIGITALSIGNATUREREQUIRED_COLUMN = "digitalSignatureRequired"
PASSWORDREQUIREDONUPDATE_COLUMN = "passwordRequiredOnUpdate"
ENDDATE_COLUMN = "endDate"
EXPIRATIONDATE_COLUMN = "expirationDate"
EXPIRATIONDURATION_COLUMN = "expirationDuration"
FROMUSER_COLUMN = "fromUser"
FROMUSERDSIPLAYNAME_COLUMN = "fromUserDisplayName"
HASSUBTASK_COLUMN = "hasSubtask"
STATE_COLUMN = "State"
TASKID_COLUMN = "taskId"
VERSION_COLUMN = "version"
TASKNUMBER_COLUMN = "taskNumber"
UPDATEDBY_COLUMN = "updatedBy"
UPDATEDBYDISPLAYNAME_COLUMN = "updatedByDisplayName"
UPDATEDDATE_COLUMN = "updatedDate"
VERSIONREASON_COLUMN = "versionReason"
CREATOR_COLUMN = "creator"
OWNERUSER_COLUMN = "ownerUser"
OWNERGROUP_COLUMN = "ownerGroup"
OWNERROLE_COLUMN = "ownerRole"
PRIORITY_COLUMN = "priority"
DOMAINID_COLUMN = "domainId"
INSTANCEID_COLUMN = "instanceId"
PROCESSID_COLUMN = "processId"
PROCESSNAME_COLUMN = "processName"
PROCESSTYPE_COLUMN = "processType"
PROCESSVERSION_COLUMN = "processVersion"
TITLE_COLUMN = "title"
TITLERESOURCEKEY_COLUMN = "titleResourceKey"
IDENTIFICATIONKEY_COLUMN = "identificationKey"
TASKDEFINITIONID_COLUMN = "taskDefinitionId"
TASKDEFINITIONNAME_COLUMN = "taskDefinitionName"
APPLICATIONNAME_COLUMN = "applicationName"
ASSIGNEETYPE_COLUMN = "assigneeType"
CATEGORY_COLUMN = "category"
COMPONENTNAME_COLUMN = "componentName"
COMPOSITEDN_COLUMN = "compositeDN"
COMPOSITEINSTANCEID_COLUMN = "compositeInstanceId"
COMPOSITENAME_COLUMN = "compositeName"
COMPOSITEVERSION_COLUMN = "compositeVersion"
CONVERSATIONID_COLUMN = "conversationId"
DUEDATE_COLUMN = "dueDate"
PARTICIPANTNAME_COLUMN = "participantName"
PERCENTAGECOMPLETE_COLUMN = "percentageComplete"
READBYUSERS_COLUMN = "readByUsers"
STARTDATE_COLUMN = "startDate"
PARENTTASKVERSION_COLUMN = "parentTaskVersion"
TASKGROUPINSTANCEID_COLUMN = "taskGroupInstanceId"
SUBTASKGROUPINSTANCEID_COLUMN = "subTaskGroupInstanceId"
ROOTTASKID_COLUMN = "rootTaskId"
PARENTTASKID_COLUMN = "parentTaskId"
CORRELATIONID_COLUMN = "correlationId"
TASKDISPLAYURL_COLUMN = "taskDisplayUrl"
STAGE_COLUMN = "stage"
LOCALE_COLUMN = "locale"

26.5.6 How to Use the Task History Region to Preview Approvers

The History component is an ADF declarative UI component used to render the past and future participants for an initiated task, and for a task before initiation. The component can edit the future participants, and can be embedded in any ADF page. Parameters are the following:

If any of the first three parameters are passed as null, or if the correlation ID of a task object is null, the component does not show the approval list. Instead, it shows a message explaining the possible cause why it failed to show the approval list. The last two parameters are used to indicate whether tabular or graphical views are to be shown. By default, both tabular and graphical views are shown. The value true/false can be passed to last two parameters.


شاهد الفيديو: تنسيق وترتيب النموذج