بسم الله الرحمن الرحيم
نتعلم اليوم باذن الله من خلال هذا الدرس كل التفاصيل المتعلقة بمصمم الناقل Transporter Designer
ولعلنا نبدأ دراستنا بسؤال ! لماذا يسمى الناقل بهذا الاسم ؟
ببساطة لانه يستخدم كوسيلة لنقل صفات وملامح لغة البرمجة الى عالم البرمجة بدون كود.
تعريف الناقل :
" هو عبارة عن مكون Component يدخل فى تكوين لغات البرمجة التفاعلية التى ترتكز على البرمجة بدون كود
وهذا المكون يستخدم فى عملية التفاعل Interaction التى تتم من خلال عدد من الصفحات التفاعلية Interaction Pages
ومن ثم يتم توليد كل من (الشفيرة المصدرية Code والتى تولد تحد المسمى Result ) و (المعلومات Information )
بصورة تلقائية "
يتم تسجيل ملفات الناقل تحتى مسمى الاحقة او الامتداد TRF بمعنى Transporter File
بينما تسجل ملفات الصفحات التفاعلية تحت الاحقة او الامتداد IDF بمعنى Interaction Designer File
ماهو التكوين البنائى للناقل Transporter ?
يتكون الناقل ببساطة من ثلاثة اجزاء
1 - روابط (مسار الملفات) تشير الى ملفات الصفحات التفاعلية Interaction Pages
2 - قناع الشفيرة المصدرية (Code Mask) وهذا القناع يكتب بلغة وصفية Script Language بسيطة جدا
وصغيرة الحجم ايضا وتسمى هذه اللغة الوصفية بالاسم RPWI
3 - التوفيق (Matching ) وهو الرابط بين كل من الصفحات التفاعلية وقناع الكود حيث ان الصفحات التفاعلية
تشتمل على متغيرات Variables وكذلك قناع الكود يشتمل على متغيرات وعملية التوفيق هى تحديد الازواج
Pairs المرتبة من هذه المتغيرات ( متغير من الصفحة التفاعلية و متغير من قناع الشفيرة المصدرية)
ميكانيكية التفاعل باستخدام الناقل Interaction Using Transporter
1 - يتم تنشيط الصفحات التفاعلية بحيث يتاح لنا ادخال البيانات الازمة وتحديد الاختيارات المطلوب
2 - تتم عملية الاستبدال لاماكن المتغيرات المعرفة فى قناع الشفيرة المصدرية Code Mask بالقيم التى تم ادخالها
من خلال الصفحات التفاعلية وذلك استنادا على ماتم فى عملية التوفيق Matching
2 - يستخدم قناع الشفيرة المصدرية Code Mask فى تحديد الشفيرة التى يتم انتاجها بناء على الاختيارات التى تمت
من خلال الصفحات التفاعلية
ماذا يستطيع قناع الشفيرة المصدرية ان يقدم لنا ؟
1 - التحكم فى الشفيرة المصدرية التى يتم انتاجها
2 - تقسيم و تنظيم الشفيرة المصدرية التى يتم انتاجها الى مجموعة من الخطوات على شكل Tree
3 - توليد اى معلومات Information بجانب الشفيرة المصدرية
قواعد كتابة قناع الشفيرة المصدرية
هذه القواعد بسيطة جدا وهى قواعد اللغة الوصفية التى تسمى RPWI
وسوف تتضح القواعد من خلال اطلاعك على الامثلة العملية
1 - الكود الذى نود توليده يكتب مباشرة
2 - المتغيرات الخاصة بقناع الشفيرة المصدرية تكتب بين علامتين اكبر من واصغر من كالتالى
<variable_name>
3 - الامر <RPWI:POSITIVE>
هذا الامر يعنى ان يتم توليد الكود الموضوع بين <RPWI:TEST> و <RPWI:ENDTEST> فى حالة كون نتيجة الاختبار
سليمة
4 - الامر <RPWI:NEGATIVE>
هذا الامر يعنى ان يتم توليد الكود الموضوع بين <RPWI:TEST> و <RPWI:ENDTEST> فى حالة كون نتيجة الاختبار
غير سليمة سليمة
5 - الامر <RPWI:VALUE> يحدد القيمة التى سوف يتم مقارنتها بقيم المتغيرات المذكورة بعد الامر <RPWI:TEST>
6 - نتيجة الاختبار تكون سليمة عندما تكون المتغيرات التى تلى الامر <RPWI:TEST> لها نفس القيمة المحددة بالامر <RPWI:VALUE>
7 - لعمل اختبار يتم كتابة الامر <RPWI:TEST> يليه متغير او عدد من المتغيرات ويتم انها الاختبار بالامر <RPWI:ENDTEST>
جمل الاختبار المتتابعة (اختبار داخل اختبار) Nested Test Statements يسمح بها.
8 - الامر <RPWI:INFORMATION>
يستخدم لتوليد معلومات توضع فى صندوق المعلومات التابع للخطوة فى مصمم الاهداف
Step Detials - Information Tap inside Goal Designer
9 - الامر <*> او <RPWI:NOTE> يستخدم لاضافة ملاحظات او تعليقات Comments
10 - الامر < RPWI:NEWSTEP> يستخدم لانشاء خطوة جديدة
11- الامر <RPWI:PUTMARK> لتسجيل الرقم التعريفى ID الخاص بالخطوة الحالية او النشطة Active Step فى منطقة ما (المناطق
المتاحة من 1 الى 30 )
12 - الامر <RPWI:SETMARK> يستخدم لتحديد الخطوة النشطة Active Step عن طريق رقم منطقة Area Number تم تسجيل الرقم
التعريفى الخاص بالخطوة ID بها مسبقا.
13- رقم المنطقة 1 محفوظ لتسجيل الرقم التعريفى ID الخاص بالخطوة النشطة Active Step فى مصمم الاهداف عند بداية عملية
التفاعل Interaction
14- الامر <RPWI:IGNORELAST> يستخدم لحذف اخر حرف موجود فى الكود الذى يتم توليده اذا كان هذا الحرف مطابقا
للحرف المذكور بعد هذا الامر مباشرة.
التطبيق العملى:
لفتح مصمم الناقل يمكنك استخدام شريط الادوات او من شريط القائمة
مثال على ناقل لجملة IF
اى IF Statement Transporter
الملفات الخاصة بهذا المكون
C:\SSRPWI\DOUBLES\RPWI1\ISF\ISF400.ISF
C:\SSRPWI\DOUBLES\RPWI1\IDF\IDF400.IDF
C:\SSRPWI\DOUBLES\RPWI1\TRF\TRF400.TRF
فى مولد الصفحات التفاعلية - يتم وصف الصفحة التفاعلية كالاتى
TITLE IF Statement
LARGEGET Condition
المتغيرات فى الصفحة التفاعلية
D_TB_Condition
المتغيرات فى قناع الشفيرة المصدرية (الكود)
<T_CONDITION>
الازواج المرتبة لعملية التوفيق Matching
D_TB_Condition
<T_CONDITION>
مثال على ناقل لحدود ظهور المتغيرات Variable-Scope Transporter
ملفات المكون
C:\SSRPWI\DOUBLES\RPWI1\ISF\ISF602.ISF
C:\SSRPWI\DOUBLES\RPWI1\IDF\IDF602.IDF
C:\SSRPWI\DOUBLES\RPWI1\TRF\TRF602.TRF
وصف الصفحة التفاعلية
TITLE Scope of Variable
LARGEGET Variable Name
ENTER
LISTBOX Scope
متغيرات الصفحة التفاعلية
D_TB_VariableName
D_LB_Scope
متغيرات قناع الكود
<T_VAR>
<T_SCOPE>
الازواج المرتبة لعملية التوفيق Matching
D_TB_VariableName
<T_VAR>
D_LB_Scope
<T_SCOPE>
مثال على ناقل لانشاء ملف Create File Transporter
ملفات المكون
C:\SSRPWI\DOUBLES\RPWI1\ISF\ISF444.ISF
C:\SSRPWI\DOUBLES\RPWI1\IDF\IDF444.IDF
C:\SSRPWI\DOUBLES\RPWI1\TRF\TRF444.TRF
وصف الصفحة التفاعلية
TITLE Create File LARGEGET variable (Handle) ENTER LARGEGET File Name ENTER LISTBOX Attribute
متغيرات الصفحة التفاعلية
D_TB_variable
D_TB_FileName
D_LB_Attribute
متغيرات قناع الكود
<T_FILE>
<T_HANDLE>
<T_ATTRIB>
الازواج المرتبة فى عملية التوافق
D_TB_variable
<T_Handle>
D_TB_FileName
<T_FILE>
D_LB_Attribute
<T_ATTRIB>
قناع الكود Code Mask
<RPWI:NEWSTEP> Create file <T_FILE> Store handle in <T_HANDLE> <RPWI:INFORMATION> Create new file <RPWI:INFORMATION> File : <T_FILE> <RPWI:INFORMATION> Variable(handle) : <T_HANDLE> <RPWI:POSITIVE> <RPWI:VALUE> 1 <RPWI:TEST> <T_ATTRIB> <T_HANDLE> = FCREATE( <T_FILE> , 0 ) <RPWI:INFORMATION> Attribute : Normal <RPWI:ENDTEST> <RPWI:VALUE> 2 <RPWI:TEST> <T_ATTRIB> <T_HANDLE> = FCREATE( <T_FILE> , 1 ) <RPWI:INFORMATION> Attribute : Read Only <RPWI:ENDTEST> <RPWI:VALUE> 3 <RPWI:TEST> <T_ATTRIB> <T_HANDLE> = FCREATE( <T_FILE> , 2 ) <RPWI:INFORMATION> Attribute : Hidden <RPWI:ENDTEST> <RPWI:VALUE> 4 <RPWI:TEST> <T_ATTRIB> <T_HANDLE> = FCREATE( <T_FILE> , 3 ) <RPWI:INFORMATION> Attribute : System <RPWI:ENDTEST>


















