الثلاثاء، 20 أكتوبر 2020

SAP ABAP - Creating Internal Tables إنشاء الجداول الداخلية في ساب

 SAP ABAP - Creating Internal Tables إنشاء الجداول الداخلية في ساب

SAP ABAP - Creating Internal Tables إنشاء الجداول الداخلية في ساب

SAP ABAP - Creating Internal Tables إنشاء الجداول الداخلية في ساب

يتم استخدام عبارة DATA للإعلان عن جدول داخلي. يجب إخبار البرنامج حيث يبدأ الجدول وينتهي. لذا استخدم عبارة BEGIN OF ثم قم بتعريف اسم الجدول. بعد ذلك ، يتم استخدام إضافة OCCURS ، متبوعة برقم ، هنا 0. يخبر OCCURS SAP أنه يتم إنشاء جدول داخلي ، وينص الرقم 0 على أنه لن يحتوي على أي سجلات في البداية. سيتم توسيعها بعد ذلك لأنها مليئة بالبيانات.

فيما يلي بناء الجملة -

DATA: BEGIN OF <internal_tab> Occurs 0,

لنقم بإنشاء الحقول في سطر جديد. على سبيل المثال ، قم بإنشاء "اسم" والذي تم الإعلان عنه كاسم LIKE ZCUSTOMERS1. قم بإنشاء حقل آخر يسمى "dob" ، مثل ZCUSTOMERS1-dob. من المفيد في البداية إعطاء أسماء الحقول في الجداول الداخلية نفس الأسماء مثل الحقول الأخرى التي تم إنشاؤها في مكان آخر. أخيرًا ، أعلن عن نهاية الجدول الداخلي بـ "END OF <internal_tab>". كما هو موضح في الكود التالي -

DATA: BEGIN OF itab01 Occurs 0,
   name LIKE ZCUSTOMERS1-name,
   dob LIKE ZCUSTOMERS1-dob, 
END OF itab01.

هنا يتم استخدام اختصار 'itab01' بشكل شائع عند إنشاء جداول مؤقتة في SAP. يتم استخدام جملة OCCURS لتعريف جسم الجدول الداخلي عن طريق إعلان الحقول الخاصة بالجدول. عند استخدام جملة OCCURS ، يمكنك تحديد ثابت رقمي "n" لتحديد ذاكرة افتراضية إضافية إذا لزم الأمر. الحجم الافتراضي للذاكرة المستخدمة بواسطة جملة OCCUR 0 هو 8 كيلو بايت. تم الآن إنشاء هيكل الجدول الداخلي ، ويمكن كتابة الكود لملئه بالسجلات.

يمكن إنشاء جدول داخلي باستخدام أو بدون استخدام سطر العنوان. لإنشاء جدول داخلي بسطر رأس ، استخدم إما جملة BEGIN OF قبل جملة OCCURS أو جملة WITH HEADER LINE بعد جملة OCCURS في تعريف الجدول الداخلي. لإنشاء جدول داخلي بدون سطر رأس ، استخدم جملة OCCURS بدون عبارة BEGIN OF.

يمكنك أيضًا إنشاء جدول داخلي كنوع بيانات محلي (نوع بيانات يُستخدم فقط في سياق البرنامج الحالي) باستخدام جملة الأنواع. تستخدم هذه العبارة عبارة TYPE أو LIKE للإشارة إلى جدول موجود.

بناء الجملة لإنشاء جدول داخلي كنوع بيانات محلي هو -

TYPES <internal_tab> TYPE|LIKE <internal_tab_type> OF 
   <line_type_itab> WITH <key> INITIAL SIZE <size_number>.

هنا يحدد <internal_tab_type> نوع جدول لجدول داخلي <internal_tab> ويحدد <line_type_itab> نوع سطر من جدول داخلي. في عبارة TYPES ، يمكنك استخدام عبارة TYPE لتحديد نوع سطر جدول داخلي كنوع بيانات وعبارة LIKE لتحديد نوع السطر ككائن بيانات. يعد تحديد مفتاح لجدول داخلي اختياريًا وإذا لم يحدد المستخدم مفتاحًا ، فإن نظام SAP يحدد نوع الجدول بمفتاح عشوائي.

الحجم الأولي <size_number> يُنشئ كائن جدول داخلي عن طريق تخصيص مقدار أولي من الذاكرة له. في الصيغة السابقة ، تحتفظ جملة الحجم الأولي بمساحة ذاكرة لأسطر جدول size_number. عندما يتم التصريح عن كائن جدول داخلي ، لا ينتمي حجم الجدول إلى نوع بيانات الجدول.

ملاحظة - يتم استهلاك ذاكرة أقل بكثير عند ملء جدول داخلي لأول مرة.

مثال

الخطوة 1 - افتح محرر ABAP عن طريق تنفيذ رمز المعاملة SE38. تظهر الشاشة الأولية لمحرر ABAP.

الخطوة 2 - في الشاشة الأولية ، أدخل اسمًا للبرنامج ، وحدد زر خيار رمز المصدر وانقر على زر إنشاء لإنشاء برنامج جديد.

الخطوة 3 - في مربع الحوار "ABAP: Program Attributes" ، أدخل وصفًا موجزًا ​​للبرنامج في حقل العنوان ، وحدد خيار "البرنامج القابل للتنفيذ" من القائمة المنسدلة النوع في مربع مجموعة السمات. انقر فوق الزر حفظ.

الخطوة 4 - اكتب الكود التالي في محرر ABAP.

REPORT ZINTERNAL_DEMO. 
TYPES: BEGIN OF CustomerLine, 
Cust_ID TYPE C, 
Cust_Name(20) TYPE C, 
END OF CustomerLine. 
 
TYPES mytable TYPE SORTED TABLE OF CustomerLine  
WITH UNIQUE KEY Cust_ID. 
WRITE:/'The mytable is an Internal Table'. 

الخطوة 5 - حفظ وتنشيط وتنفيذ البرنامج كالمعتاد.

في هذا المثال ، يعد mytable جدولًا داخليًا ويتم تحديد مفتاح فريد في حقل Cust_ID.

ينتج الكود أعلاه الناتج التالي -

The mytable is an Internal Table.







التسميات: