APEX

برمجة Oracle APEX مع Claude Code وAPEXlang (APEX 26.1+)

صدّر تطبيق APEX كملفات APEXlang، وعدّله من VS Code عبر محادثة Claude Code، ثم تحقّق منه واستورده مجددًا عبر SQLcl.

متوسط⏱ 2 دقيقة قراءةآخر تحديث: 2026-10-10

يحوّل APEXlang، الذي قُدّم في Oracle APEX 26.1، تطبيقك إلى ملفات .apx مقروءة. وبمجرد وجوده على القرص، يستطيع وكيل برمجة ذكي مثل Claude Code قراءة البنية وإجراء تعديلات دقيقة. تراجع أنت الفرق في Git، وتتحقّق منه بالأمر apex validate، ثم تستورده إلى مساحة العمل عبر SQLcl.

تصدير التطبيق إلى APEXlang

استخدم SQLcl 26.1.2 أو أحدث (الأمر sql)، فهو الإصدار الذي أضاف دعم APEXlang. اتصل بمخطط التحليل (parsing schema) الخاص بالتطبيق وصدّر مع الخيار -exptype APEXLANG. فافتراضيًا (-exptype APPLICATION_SOURCE) يكتب apex export التصدير التقليدي بصيغة SQL (الملف f100.sql، أو مجلدًا من ملفات .sql مع -split)، لا ملفات .apx. وتتيح صفحة التصدير في App Builder صيغة APEXlang أيضًا إن فضّلت تنزيل ملف ZIP.

sql /nolog
SQL> connect my_schema@//localhost:1521/FREEPDB1
SQL> apex export -applicationid 100 -exptype APEXLANG -dir ./app100

ينشئ SQLcl مجلدًا فرعيًا باسم الاسم المستعار للتطبيق (مثل ./app100/my-app). ستجد بداخله application.apx والملفات pages/p00001-home.apx وما يليها، والمجلدات shared-components/ وsupporting-objects/، والملف deployments/default.json (الذي يحمل رقم التطبيق الهدف). ضعه تحت Git قبل أن تسمح لأي وكيل بتعديله:

cd app100
git init
git add .
git commit -m "APEX app 100 baseline"

افتحه بوكيل ذكي

افتح المجلد في VS Code (أو Cursor) مع إضافة Claude Code. تنشر Oracle مهارة apex لـ APEXlang في مستودعها مفتوح المصدر oracle/skills. تغطي المهارة صياغة APEXlang وأمثلتها وأوامر التحقّق والاستيراد لـ APEX 26.1 و26.2. ثبّتها كإضافة (plugin) في Claude Code:

/plugin marketplace add oracle/skills
/plugin install apex@oracle-skills

هذه الأوامر مخصّصة لـ Claude Code في الطرفية (CLI). أما في إضافة VS Code فاكتب /plugins لفتح Manage plugins. أضف oracle/skills من تبويب Marketplaces، ثم ثبّت apex من تبويب Plugins. بعد ذلك صِف التغيير بلغة طبيعية:

› أضف قائمة اختيار "الحالة" للصفحة 12 بقيم مفتوح، قيد التنفيذ، مغلق،
  واجعل الافتراضي مفتوح. لا تُعِد تسمية المكوّنات الموجودة ولا تغيّر معرّفاتها الثابتة.

💡 حافظ على ثبات المعرّفات

باستثناء أرقام الصفحات ورقم التطبيق في deployments/default.json، لا يعرّف APEXlang المكوّنات بأرقام معرّفات. فمعظم المكوّنات (المناطق والأزرار والعمليات والإجراءات الديناميكية) تُعرَّف بالمعرّف الثابت (Static ID). مثلًا للمنطقة region buttons ( … ) الاسم Buttons والمعرّف الثابت buttons، وتشير إليها المكوّنات الأخرى بالصيغة @buttons. أما عناصر الصفحة فتُعرَّف باسم العنصر (pageItem P15_NAME ( … )، ويُستخدم بالصيغة :P15_NAME في SQL وPL/SQL)، وأعمدة الشبكة التفاعلية باسم العمود، والصفحات برقمها (page 12 ( … )). توصي Oracle بمعاملة المعرّفات الثابتة كمعرّفات دائمة، لذا اطلب من الوكيل ألّا يعيد تسمية المكوّنات الموجودة ولا يغيّر معرّفاتها الثابتة. هكذا تبقى المراجع صحيحة ولا يُظهر الفرق إلا التغيير الذي أردته.

المراجعة والتحقّق والاستيراد

راجع الفرق الذي أنتجه الوكيل (لهذا تهمّ الملفات وGit). ومن داخل المجلد app100، نفّذ apex validate، الذي يتحقّق من أن APEXlang يُترجَم دون أخطاء ولا يحتاج اتصالًا بقاعدة البيانات. ثم اتصل بمخطط التحليل ونفّذ apex import. يستخدم الاستيراد رقم التطبيق الموجود في deployments/default.json. أضف -id للاستيراد برقم مختلف، أو -workspace إن كان مخططك يتبع أكثر من مساحة عمل.

git diff                      # راجع ما تغيّر
sql /nolog
SQL> apex validate -input ./my-app
SQL> connect my_schema@//localhost:1521/FREEPDB1
SQL> apex import -input ./my-app

ℹ التطبيق كاملًا أم ملفات محدّدة

في APEX 26.1 يستورد apex import التطبيق كاملًا. وتذكر Oracle أن APEX 26.2 يضيف استيراد ملفات APEXlang محدّدة فقط. نفّذ help apex import في SQLcl لديك لترى الخيارات التي يدعمها إصدارك.

⚠ راجع تعديلات الذكاء الاصطناعي دائمًا

تعامل مع مخرجات الذكاء الاصطناعي كطلب دمج من مطوّر مبتدئ. اقرأ الفرق ونفّذ apex validate قبل الاستيراد إلى مساحة عمل حقيقية. واستورد إلى مساحة عمل تطوير أولًا.

اختبر فهمك

Check your understanding

0% · 0/3

لماذا يتيح APEXlang سير عمل الذكاء الاصطناعي وGit؟

أي خيار في apex export ينتج ملفات APEXlang بامتداد .apx؟

ما الذي يجب إبقاؤه ثابتًا؟

تحتاج إلى تنفيذها؟

اطلب عرضًا