الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Dcbindingcontainer Returns Null

Featured Replies

بتاريخ:

السلام عليكم
فى مشكلة غريبة بتظهر لما بنادى الميثود دى

   public boolean isDeserveTicket() {
    BindingContext bc = BindingContext.getCurrent();
    DCBindingContainer binding = (DCBindingContainer)bc.getCurrentBindingsEntry();
    DCIteratorBinding hdr = binding.findIteratorBinding("TicketsTransactionHdrVoIterator");
    Row row = hdr.getCurrentRow();
    Date requestDate = (Date)row.getAttribute("ReqDate");
    Date allwanceDate = (Date)row.getAttribute("NextPayDate");
    if (allwanceDate.compareTo(requestDate)<0){
	    deserveTicket = true;		   
    }
   
    return deserveTicket;
   }


لما بعمل debug للكود بكتشف ان المتغير اللى اسمة binding بيرجع ب null بالتالي الكود كلة بيفشل
انا متاكد ان الصفحة بتاعتى ليها page definition
حد ظهرله المشكلة جى قبل كدة؟؟

بتاريخ:
  • كاتب الموضوع

المشكلة طلع سببها انى كنت بعمل call للميثود دى من خلال Router
جربت اعملها Call من button on the page و اشتغلت عادي

معنى كدة ان مينفعش اعمل router فى الحالة دى !!!

بتاريخ:

الاخ / طارق

هل تقصد ان الميثود دى بتضعها ك method call فى ال bounded Task flow ؟ لو قصدك كده هل تاكدت ان الميثود دى لها page Definition ( للميثود وليس للصفحة) انت هنا فى الكود عاوز تحصل على object من ال DCBindingContainer ولو الميثود نفسها ملهاش binding فاكيد ال DCBindingContainer حيبقى ب null

لعمل page Definition للميثود اقف عليها و right Click و create Page Definition حيتعمل لك page Definition فاضى وعشان ال binding ميرجعش null فى ال page Definition اللى عملته اقف على ال Binding واعمل insert داخله لاى action ك commit او rollback عشان يتعمل operation binding لاى منهم

ولو حتستدعى اى iterator فى الميثود يبقى لازم داخل ال Executables تضع هذا ال iterator فى page Definition اللى عملته

ده على افتراض انك فعلا بتستدعى الميثود دى ك method call فى ال task flow ولو المشكلة استمرت معاك اعمل test case على hr schema وارفعها عشان اعرف المشكلة فين

بتاريخ:

لو انت بتستخدم method call لازم تعمل create page Definition لل method وده مثال تقريبا نفس الطريقة
http://www.oracle.co...come-169187.pdf

تم تعديل بواسطة miro_aer

بتاريخ:
  • كاتب الموضوع

السلام عليكم
شكرا جزيلا بشمهندسة هالة و بشمهندس ميرو على المساعدة

انا مقصدش method call انا اقصد انى استخدم router و case flow
مرفق صورة كمثال للتاسك فلو

بس انا استفدت جدا من معلومة انى اعمل page definition للميثود. مكنتش اعرفها و فعلا هتفيدنى كتير

اما بالنسبة للموضوع الاصلى و هو انى ازى استخدم method بتعمل ACCESS FOR THE BINDING و استخدمها من خلال ROUTER كما هو موضح فى الصورة فمش عارف هل ممكن و لا لا
أرجو الافادة و جذاكم الله خيرا

post-2550-0-78124700-1336028452_thumb.jpg

تم تعديل بواسطة tarek_fathi

بتاريخ:

الاخ / طارق

برضه المشكلة ما زالت موجوده لان اللى بيحصل ان ال Router بيستدعى الميثود عشان يشوف الناتج منها وبالتالى ال Binding container الخاص بالميثود بيرجع null لان الميثود مالهاش binding

الحل

احذف ال Router اللى عندك ونزل الميثود ك method call بدلا منه واستخدم ال result الناتج من الميثود ك Router بمعنى ان على حسب ال String اللى الميثود حترجعه ال Control Flow case حيروح على الصفحة اللى عاوزها ولاستخدام الحل ده اتبع الاتى

1- قم بعمل تغيير بسيط فى الميثود عشان ترجع String بدلا من boolean بحيث ان لو ال If دى ب true خليها ترجع yes وخللى الميثود ترجع no
2- بعد ما تنزل الميثود بدلا من الRouter اعملها page Definition زى ما قلنا فى المشاركه السابقه عشان مترجعش Null
3- فى ال Bounded Task flow اللى عندك اقف على ال method call ومن ال properties خللى ال ()toString ب true معنى كده ان احنا بنقوله اننا حنستخدم ال Return value الناتج من الميثود ك navigation outcome
4 - اعمل navigation من الmethod الى الصفحات اللى عندك وتاكد ان ال outcome هو نفسه اللى كتبته فى الكود

ملحوظه هذه الطريقه اسمها programmatic Router وفى مثال عليها من هنا

بتاريخ:
  • كاتب الموضوع

شكرا جدا بشمهندسة هالة
حل رائع جدا
انا طبقته ذى ما قولتى و اشتغل معايا
و د حاجة جديدة اتعلمتها
جذاكي الله خيرا

  • بعد 3 سنة...
بتاريخ:

الاخ / طارق

 

هل تقصد ان الميثود دى بتضعها ك method call فى ال bounded Task flow ؟ لو قصدك كده هل تاكدت ان الميثود دى لها page Definition ( للميثود وليس للصفحة) انت هنا فى الكود عاوز تحصل على object من ال DCBindingContainer ولو الميثود نفسها ملهاش binding فاكيد ال DCBindingContainer حيبقى ب null

 

لعمل page Definition للميثود اقف عليها و right Click و create Page Definition حيتعمل لك page Definition فاضى وعشان ال binding ميرجعش null فى ال page Definition اللى عملته اقف على ال Binding واعمل insert داخله لاى action ك commit او rollback عشان يتعمل operation binding لاى منهم

 

ولو حتستدعى اى iterator فى الميثود يبقى لازم داخل ال Executables تضع هذا ال iterator فى page Definition اللى عملته

 

ده على افتراض انك فعلا بتستدعى الميثود دى ك method call فى ال task flow ولو المشكلة استمرت معاك اعمل test case على hr schema وارفعها عشان اعرف المشكلة فين

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

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.