Introduction To Task Flows

فى بدايتنا مع ال jsf  لما كنا بنعمل plan  للمشروع بتاعنا كان شغلنا بيبقى عبارة عن pages  و بينها flows  و كان كل ما نحتاج function  جديدة او متطلب جديد كنا بنعمله page  و نربط الصفحة دى ب flow  و ن control ال flow دة من خلال managed-bean  او حتى backing-bean 
طيب تخيل معايا لو الموضوع كبر مننا و لقينا نفسنا بعد سنتين بقى عندنا 25 او 30 صفحة على اقل تقدير
تخيل منظر ال flows و ال pages  هيبقى عامل ازاى
تخيل ال maintenance  هيبقى ازاى
طبعا الموضوع هيكون صعب جدا
طيب اية الحل؟
لو روحنا لل system analyst  و قولناله الحقنا دورلنا على حل اكيد اول حاجة هيقولهانا " قسمو شغلكم ل modules" 
و هو دة الحل فعلا
بس نطبقه ازاى؟
هنا تيجى اوراكل و تقدملنا حل
الحل فى ال task flows
ال task flows  هو انك تفكر باسلوب المديولات .  هو انك تقسم شغلك لمديولات .  مجموعه الصفحات دى اللى ليها علاقة بالمبيعات فى مدويول المبيعات و مجموعه الصفحات دى اللى ليها علاقة بالمخازن فى مديول المخازن مثلا
اقرا معايا ال paragraph  اللى جاى دة من كتاب Oracle fusion ware developer guide


ADF task flows provide a modular approach for defining control flow in an application.
Instead of representing an application as a single large JSF page flow, you can break it
up into a collection of reusable task flows.



طيب السؤال هنا ازاى يعنى اعمل كل محموعة صفحات فى task flow 
طيب وفى حالة انى عاوز اعمل navigate  من صفحة فى مدول المبيعات لصفحة فى مديول المخازن بردة تتعمل ازاى؟
الاجابة باختصار معنى انك تقسم شغلك لمديولات يعنى انك تعمل كل مديول فى config file  و تديله اسم
مش احنا فى الاول كنا بنعمل ال page flow  بتاعنا فى ال faces-config.xml 
لا الوقتى هتعمل اكتر من config file  كل ملف بيمثل مديول معروف بدايته و معروف نهايته ودة اللى بنقول علية bound task flow  

اية bound task flow  و اية unbound task flow
مبدأيا نقول ان ال unbound task flow هى ال entry point for our application و ان ال bound task flow  هى ال task  اللى ليها بدايه محددة و معروفه و ليها نهاية كمان
ممكن يجى فى دماغ واحد و يقول "  اةة يعنى unbound task هى login page "
اجى انا و اقولة لا مش ال login  ال login page  عمرها ما تنفع تبقى unbound task  لا ليها بداية محدده و ليها نهاية كمان و معروف حدودها و معروف اليوزر هميش لفين و يروح لفين
تعالو نتكلم بامثله احسن
هنتكلم عن يوزر داخل موقع ياهو و نشوف هيعمل اية
 تعالو ندخل موقع ياهو و نتفرج علية
اليوزر دخل على الصفحة الرئيسية و دى هى ال entry point
ايون دى هى ال entry point  يعنى دى هى ال unbound task
لية unbound؟
لان مش عارفين حدودها مش عارفين اليوزر هيضغط على ايى لينك و لا هيعمل بحث و لا لا و لا هيقرا الاخبار و لا هيعمل اية
اهو كل اللى انا قولته دة( الاخبار - اللينكات - الميل - البحث) يبقى bound tasks
You typically use an unbounded instead of a bounded task flow if:

  1. You want to take advantage of ADF Controller features not offered by boundedtask flows, such as bookmarkable view activities.
  2. The task flow will not be called by another task flow.

طيب سؤال : معنى كدة ان كل APPLICATION لية entry point  واحدة؟؟
الاجابه : بالطبع لا
لو لاحظتو الصورة هتلاقوها myyahoo  مش yahoo
بالطبع ممكن يكون عندك اكتر من entry point
    3. The application has multiple points of entry.
لكن هى نفسها لا تحتوي على single point of entry  


كل الكلام اللى فات دة كلام نظرى كان مقدمة
بس الدنيا هوضح اكتر لو هنعمل مثال عملى و نطبقة كمان

المثال العملي:
تخيلو معايا ان احنا الوقتى بنتفرج على لقاء بين محلل نظيم و بين عميل يبقى صاحب شركة اجهزة كهربائية
تعالو نشوف المدادثة اللى بينهم ---
انا هفترض انا انا العميل و انتم شركة ال IT اللى هتعملي السيستم
العميل :
احنا شركة مبيعات اسمنا الشركة مصرية للاجهزة الالكترونية
عاوزين نظام يشتغل للعملاء يعرضلهم منتجاتنا اللى بينبيعها على الانترنت
و كمان عاوزين نفس النظام يقدر الموظفين يدخلو من عليه و يسجلو منتجات جديدة و كمان يعملو عروض اسعار تظهر للعملاء فى صفحتهم

محلل النظم :
يعنى انتو عاوزين العملاء و الموظفين يدخلو من نفس الصفحة و كل واحد يشوف حاجته حسب صلاحياته
و لا عاوزين للعملاء صفحة و للموظفين صفحة مختلفة

العميل:
لا احنا عاوزين صفحة العملاء مختلفه عن صفحة الموظفين مش كلهم يدخلو من نفس المكان
لان احنا هننشر صفحة العملاء على الانترنت لكن صفحة الموظفين هتبقى داخلية بس

محلل النظيم " بيكلم نفسه : اةة يعنى كدة هيبقى عندى two entry points" مممممم" يعنى 2 unbound task flows"

محلل النظم:
طيب انت عاوز تعرض اية فى صفحة العملاء دى بالظبط؟
العميل:
عاوز اعرض اول حاجة تظهر للعميل العروض لو كان فيه عروض و بعد كدة جدول بالمنتجات و كل منتج ممكن اعرض تفاصيلة و مواصفاته و صورة و عاوز كمان اعمل امكانية انى ابيع بالفيزا للعميل من على النت
و كمان عاوز امكانية ان العميل يبعتلى استفسار عن اى حاجة و يوصلنى فى الميل بتاعى


محلل النظم : طيب بالنسبة للموظف عاوزة يعمل اية على السيستم؟

العميل : عاوز الموظفين كلهم اول ما يفتحو الصفحة تظهرلهم الاجازات الرسمية فى البلد للسنة الحالية علشان يبقى عارفين الاجازات امتى و كمان عاوز كل الموظفين يشوفو جدول كدة بالقرارات الادارية و جدول باخر اخبار الشركة و كمان عاوز مكان كدة يعملو منه Login علشان يدخلو يعملو شغلهم

محلل النظم: و اية شغلهم؟

العميل: فى الوقت الحالى عاوزهم بس يعملو عروض اسعار بس دة طبعا للناس بس اللى عنها صلاحية تعمل عرض اسعار
محلل النظم: فى حاجة تانية
العميل : لا بس كدة بس انت اعمل دول و اعرضلى اللى انت عملته
----------------
و انتهى اللقاء الاول بين محلل النظم و العميل و اخد محلل النظم ورقة وحاجته و راح على مكتبه

فى الحلقة القادمة ان شاء الله هنتكلم ازاى محلل النظم فكر و بدا يحلل
بس هنركز على موضوع ازاى عمل ال unbound and bound task flow

Comments

Popular posts from this blog

Another user has changed the row with primary key oracle.jbo.Key[12 ].

Working With File Throgh WebUtill

Reading From File