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 لا ليها بداية محدده و ليها نهاية كمان و معروف حدودها و معروف اليوزر هميش لفين و يروح لفين
تعالو نتكلم بامثله احسن
هنتكلم عن يوزر داخل موقع ياهو و نشوف هيعمل اية
مبدأيا نقول ان ال 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
طيب سؤال : معنى كدة ان كل APPLICATION لية entry point واحدة؟؟
الاجابه : بالطبع لا
لو لاحظتو الصورة هتلاقوها myyahoo مش yahoo
بالطبع ممكن يكون عندك اكتر من entry point
اليوزر دخل على الصفحة الرئيسية و دى هى ال entry point
ايون دى هى ال entry point يعنى دى هى ال unbound task
لية unbound؟
لان مش عارفين حدودها مش عارفين اليوزر هيضغط على ايى لينك و لا هيعمل بحث و لا لا و لا هيقرا الاخبار و لا هيعمل اية
اهو كل اللى انا قولته دة( الاخبار - اللينكات - الميل - البحث) يبقى bound tasks
You typically use an unbounded instead of a bounded task flow if:
- You want to take advantage of ADF Controller features not offered by boundedtask flows, such as bookmarkable view activities.
- 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
بس الدنيا هوضح اكتر لو هنعمل مثال عملى و نطبقة كمان
المثال العملي:
تخيلو معايا ان احنا الوقتى بنتفرج على لقاء بين محلل نظيم و بين عميل يبقى صاحب شركة اجهزة كهربائية
تعالو نشوف المدادثة اللى بينهم ---
انا هفترض انا انا العميل و انتم شركة ال IT اللى هتعملي السيستم
العميل :
احنا شركة مبيعات اسمنا الشركة مصرية للاجهزة الالكترونية
عاوزين نظام يشتغل للعملاء يعرضلهم منتجاتنا اللى بينبيعها على الانترنت
و كمان عاوزين نفس النظام يقدر الموظفين يدخلو من عليه و يسجلو منتجات جديدة و كمان يعملو عروض اسعار تظهر للعملاء فى صفحتهم
محلل النظم :
يعنى انتو عاوزين العملاء و الموظفين يدخلو من نفس الصفحة و كل واحد يشوف حاجته حسب صلاحياته
و لا عاوزين للعملاء صفحة و للموظفين صفحة مختلفة
العميل:
لا احنا عاوزين صفحة العملاء مختلفه عن صفحة الموظفين مش كلهم يدخلو من نفس المكان
لان احنا هننشر صفحة العملاء على الانترنت لكن صفحة الموظفين هتبقى داخلية بس
محلل النظيم " بيكلم نفسه : اةة يعنى كدة هيبقى عندى two entry points" مممممم" يعنى 2 unbound task flows"
محلل النظم:
طيب انت عاوز تعرض اية فى صفحة العملاء دى بالظبط؟
العميل:
عاوز اعرض اول حاجة تظهر للعميل العروض لو كان فيه عروض و بعد كدة جدول بالمنتجات و كل منتج ممكن اعرض تفاصيلة و مواصفاته و صورة و عاوز كمان اعمل امكانية انى ابيع بالفيزا للعميل من على النت
و كمان عاوز امكانية ان العميل يبعتلى استفسار عن اى حاجة و يوصلنى فى الميل بتاعى
محلل النظم : طيب بالنسبة للموظف عاوزة يعمل اية على السيستم؟
العميل : عاوز الموظفين كلهم اول ما يفتحو الصفحة تظهرلهم الاجازات الرسمية فى البلد للسنة الحالية علشان يبقى عارفين الاجازات امتى و كمان عاوز كل الموظفين يشوفو جدول كدة بالقرارات الادارية و جدول باخر اخبار الشركة و كمان عاوز مكان كدة يعملو منه Login علشان يدخلو يعملو شغلهم
محلل النظم: و اية شغلهم؟
العميل: فى الوقت الحالى عاوزهم بس يعملو عروض اسعار بس دة طبعا للناس بس اللى عنها صلاحية تعمل عرض اسعار
محلل النظم: فى حاجة تانية
العميل : لا بس كدة بس انت اعمل دول و اعرضلى اللى انت عملته
----------------
و انتهى اللقاء الاول بين محلل النظم و العميل و اخد محلل النظم ورقة وحاجته و راح على مكتبه
فى الحلقة القادمة ان شاء الله هنتكلم ازاى محلل النظم فكر و بدا يحلل
بس هنركز على موضوع ازاى عمل ال unbound and bound task flow
Comments