تشغيل البرامج النصية X++ المخصصة من دون وقت توقف

تتيح لك هذه الميزة تحميل الحزم القابلة للنشر التي تحتوي على برامج نصية X + + مخصصة وكيفية تشغيلها من دون الحاجة إلى المرور عبر Microsoft Dynamics Lifecycle Services (LCS) أو إيقاف النظام بشكل مرحلي.‬ وبالتالي، يمكنك تصحيح حالات عدم تناسق البيانات الثانوية دون حدوث أي تعطل.

تتمثل فائدة استخدام برنامج نصي X ++ لتصحيح حالات عدم تناسق البيانات الثانوية في قيام النظام تلقائيًا بتعديل جميع الجداول ذات الصلة كما هو مطلوب عند تشغيل البرنامج النصي. يساعد هذا الأسلوب في ضمان سلامة التصحيح ويساعد في تقليل مخاطر إدخال حالات عدم تناسق جديدة.

هام

هذه الميزة مخصصة لتصحيح حالات عدم تناسق البيانات الثانوية فقط. ويجب عدم استخداما للأغراض التالية أو أي غرض آخر:

  • تجميع البيانات
  • تغييرات المخططات
  • عملية ترحيل البيانات أو عمليات أخرى يتم تشغيلها لفترة طويلة
  • تصحيح البيانات التي يمكن تصحيحها من خلال وسائل أخرى، مثل دورات العمل العادية أو أدوات تناسق البيانات أو أدوات الخدمة الذاتية الأخرى

تتيح الميزة للمستخدمين المخوّلين تغيير الكيانات وسجلاتها بشكل مباشر، دون الحاجة إلى تشغيل منطق الأعمال المرتبط بهذه الكيانات. وقد تتسبب هذه التغييرات في حدوث مشكلات تتعلق بتكامل البيانات. وبالتالي، قد تطالبك مؤسستك بالحصول على الموافقة والتوقيع من المدققين الداخليين والخارجيين (أو أصحاب المصلحة الآخرين) قبل و/أو بعد تشغيل البرنامج النصي. لأسباب تتعلق بالامتثال، قد يتعين أيضًا الإفصاح عن التغييرات التي تؤثر على بعض الخصائص في التقارير الخارجية (مثل البيانات المالية) أو إبلاغ السلطات الحكومية. تتحمل مؤسستك وحدها المسؤولية عن أي تغييرات يتم إجراؤها على بياناتها عبر هذه الميزة، وأي موافقة وتوقيع أو الإفصاح عن هذه التغييرات، والامتثال للقوانين المعمول بها. ستتحمل كافة المخاطر التي تنتج عن استخدام هذه الميزة.

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

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

يتم حفظ كل حزمة تم تحميلها في النظام وتنتقل عبر سير عمل أحداث معرّف. لكل حدث، يحتفظ النظام بسجل يتضمن طابعًا زمنيًا وهوية الشخص الذي نفّذ الحدث. وبهذه الطريقة، يضمن النظام وجود مسار مراجعة.

كما يظهر في الرسم التوضيحي التالي، يوفر النظام تفاصيل حول كيفية تشغيل كل حزمة قابلة للنشر في X ++ والكيانات تم لمسها.

صفحة تفاصيل البرنامج النصي

تعيين مهام للمستخدمين للتحكم في الوصول

توفر هذه الميزة المهام التالية. بإمكان المسؤولين استخدام هذه المهام للمساعدة في التحكم في الوصول إلى الميزة.

  • المحافظة على البرامج النصي المخصصة – تمنح هذه المهمة القدرة على تحميل البرامج النصية المخصصة X ++ واختبارها والتحقق منها وتشغيلها في البيئات (بيئة اختبار قبول المستخدم [UAT] وبيئة الإنتاج).
  • الموافقة على البرامج النصية المخصصة – تمنح هذه المهمة القدرة على الموافق على برنامج نصي X++ مخصص تم تحميله. تمثل الموافقة خطوة إلزامية قبل اختبار أي برنامج نصي والتحقق منه وتشغيله.

للمساعدة في تقليل مخاطر الإجراءات الضارة، يجب أن تتم الموافقة على كل برنامج نصي بشكل صريح من قبل مستخدم آخر غير المستخدم الذي قام بتحميله. قبل أن تتمكن من استخدام هذه الميزة في مؤسستك، يجب على المسؤول تعيين المهام السابقة لاثنين على الأقل من المستخدمين ذوي الصلة والموثوقين للغاية. على الرغم من أنه بإمكان مستخدم واحد تنفيذ المهمتين، إلا أن هذا المستخدم لن يكون قادرًا على الموافقة على برامجه النصية.

إنشاء حزمة قابلة للنشر

تتطلب الميزة حزمة عادية قابلة للنشر يمكن إنشاؤها في Visual Studio. للحصول على الإرشادات، راجع إنشاء حزم نماذج قابلة للنشر‬.

يجب أن تحتوي الحزمة القابلة للنشر على فئة X ++ واحدة قابلة للتشغيل. بمعنى آخر، يجب أن تحتوي على فئة واحدة تتضمن أسلوبًا لديه التوقيع التالي.

public static void main(Args _args)

إشعار

يجب أن يكون اسم الأسلوب الرئيسي مكونًا من أحرف صغيرة.

مثال عن التعليمات البرمجية

يُظهر مثال التعليمات البرمجية التالي كيفية بناء حزمة قابلة للنشر.

class MyScriptClassForIssueXYZ
{
    public static void main(Args _args)
    {
        if (curExt() != 'DAT')
        {
            throw error("This script must run in the DAT company!");
        }

        ttsbegin;

        MyTable myTable;

        update_recordset myTable
            setting myField = 17
            where myTable.myReference == 'xyz';

        if (myTable.RowCount() != 1)
        {
            throw error("Not updating the expected row!");
        }

        info("Success");
  
        ttscommit;
    }

}

أفضل الممارسات

تصف القائمة التالية بعض أفضل الممارسات لكتابة برنامج نصي وتطبيقه وتشغيله بنجاح. القائمة ليست شاملة وهي بمثابة إرشادات فقط.

  • اكتب رسالة نجاح في نهاية البرنامج النصي. وبهذه الطريقة، سترى أن تشغيل البرنامج قد تم بدون استثناءات.
  • أضف معالجة صريحة لنطاق الحركة.
  • استخدم منطق عمل موجودًا، مثل أساليب update()، ولكن لا تتجاوز منطق العمل باستخدام الأساليب doUpdate() وdoInsert() وdoDelete(). سيساعد هذا الأسلوب على ضمان التعامل مع البيانات التابعة بشكل صحيح. كما أنه سيقلل بشكل ملحوظ من خطر حدوث المزيد من حالات عدم التناسق في البيانات.
  • أكد سياق الشركة. سيكشف هذا الأسلوب عن الأخطاء الشائعة أثناء تشغيل البرنامج النصي. على سبيل المثال، سيكشف ما إذا كان يتم تشغيل البرنامج النصي في الشركة الخطأ.
  • أكد أن عدد السجلات المتأثرة يطابق توقعاتك. سيكشف هذا النهج عما إذا كانت البيانات قد تحولت بشكل غير متوقع في النظام أثناء إعداد البرنامج النصي.
  • استخدم أسماء فئات فريدة لكل برنامج نصي (على سبيل المثال، عن طريق تضمين مرجع لعنصر عمل في الاسم). سيمنع هذا الأسلوب من حدوث مشاكل تعارض الأسماء عند تحميل النص البرمجي. إذا كان هناك حاجة لتكرار جديد للبرنامج النصي، فتأكد من إعطائه اسمًا جديدًا.
  • اختبر اختبر كل برنامج نصي في بيئة غير إنتاجية أولاً. اختبار التأثير المقصود والآثار الجانبية غير المقصودة على البيانات ذات الصلة. تأكد من أنه يمكن إكمال جميع دورات العمل التي قد تتأثر بطريقة ناجحة وكاملة.

تحميل حزمة قابلة للنشر وتشغيلها

استخدم الإجراء التالي لتحميل حزمة قابلة للنشر وتشغيلها.

  1. في تطبيق التمويل والعمليات ، انتقل إلى إدارة النظام > المهام الدورية > قاعدة البيانات > البرامج النصية المخصصة.

  2. ثم حدد تحميل.

  3. حدد الحزمة القابلة للنشر التي أنشأتها كما ورد سابقًا في هذه المقالة. ستتم مطالبتك بتحديد الغرض من البرنامج النصي.

  4. يجب أن تتم الآن الموافقة على البرنامج النصي من قبل مستخدم آخر غير المستخدم الذي قام بتحميله. يجب على الموافق اتباع الخطوات التالية.

    1. انتقل إلى إدارة النظام > دورية > قاعدة البيانات > البرامج النصية المخصصة.
    2. حدد البرنامج النصي المراد الموافقة عليه، ثم حدد التفاصيل.
    3. في جزء الإجراءات، على علامة التبويب سير عمل العملية، في مجموعة البدء، حدد موافقة أو رفض. إذا حددت موافقة، فستوضع علامة على البرنامج النصي كموافق عليه، وسيتم تأمينه للاختبار. إذا حددت رفض، فسيتم تأمين البرنامج النصي. وفي الحالتين، يتم تسجيل الحدث، ويتم الاحتفاظ بنسخة من البرنامج النصي في النظام.
  5. يجب اختبار البرنامج النصي للتأكد من أنه يقوم بما يُفترض القيام به. يمكن أن يكون المختبر هو نفسه مُحمِّل أو الموافق، أو يمكن أن يكون مستخدمًا ثالثًا لديه الأذونات المطلوبة. يجب على المختبر اتباع الخطوات التالية:

    1. انتقل إلى إدارة النظام > دورية > قاعدة البيانات > البرامج النصية المخصصة.

    2. حدد البرنامج النصي المراد اختباره، ثم حدد التفاصيل.

    3. في جزء الإجراءات، في علامة تبويب سير عمل العملية في مجموعة الاختبار‏‎‬، حدد تشغيل الاختبار. يتم تشغيل البرنامج النصي داخل حركة مؤقتة يقوم النظام بإجهاضها تلقائيًا أثناء قيامه بجمع سجلات وعبارات SQL المختلفة.

    4. عند انتهاء تشغيل البرنامج النصي، راجع السجلات، وتحقق من ان النتائج تفي بتوقعاتك. اتبع إحدى الخطوات التالية:

      • إذا كنت راضيًا عن نتائج الاختبار، فحدد قبول سجل الاختبارات‬ في المجموعة اختبار على علامة تبويب سير عمل العملية في جزء الإجراءات للسماح بتشغيل البرنامج النصي سيعكس سجل الأحداث حقيقة أن البرنامج النصي قد تم اختباره، وسيشير إلى الجهة التي أجرت الاختبار وتاريخ إجراء الاختبار.
      • إذا لم تكن راضيًا عن نتائج الاختبار، فحدد ترك‬ في المجموعة إنهاء على علامة تبويب سير عمل العملية في جزء الإجراءات لمنع تشغيل البرنامج النصي سيحتفظ النظام بنسخة من البرنامج النصي مع سجل بمحفوظاته.
  6. عندما تتأكد من أن البرنامج النصي يفي بتوقعاتك، حدد تشغيل في المجموعة تشغيل ضمن علامة التبويب سير عمل العملية في جزء الإجراءات لتشغيله. يقوم هذا الأمر بنفس الشيء الذي يقوم به تشغيل الاختبار السابق، ولكن سيتم تنفيذ المعاملة في النهاية.

  7. بعد الانتهاء من تشغيل البرنامج النصي، تحقق من النتيجة، وتأكد من أن البرنامج النصي يعمل كما كنت تتوقع. اتبع إحدى الخطوات التالية:

    • إذا كنت راضيًا عن النتيجة، فحدد ‏‫تم حل الغرض‬ في المجموعة إنهاء على علامة تبويب سير عمل العملية في جزء الإجراءات. سيعكس سجل الأحداث حقيقة أن البرنامج النصي قد تم تشغيله بنجاح، وسيشير إلى الجهة التي تحقق من البرنامج النصي وتاريخ التحقق. يتم حفظ البرنامج النصي، ولكنه أصبح الآن مؤمنًا ولا يمكن تشغيله مرة أخرى.
    • إذا لم تكن راضيًا عن النتيجة، فحدد ‏‫لم يتم حل الغرض‬ في المجموعة إنهاء على علامة تبويب سير عمل العملية في جزء الإجراءات. سيعكس سجل الأحداث حقيقة أن البرنامج النصي قد فشل في تحقيق الغرض المرجو منه، وسيشير إلى الجهة التي قامت بتشغيل البرنامج النصي وتاريخ التشغيل. يتم حفظ البرنامج النصي، ولكنه أصبح الآن مؤمنًا ولا يمكن تشغيله مرة أخرى. ومع ذلك، لا يتراجع النظام بشكل تلقائي عن إجراء البرنامج النصي. قد تحتاج إلى كتابة برنامج نصي جديد واستيراده وتشغيله للتراجع عن التأثير الذي أحدثه البرنامج النصي الفاشل على نظامك.

يحدد التحديد الذي تقوم به في الخطوة الأخيرة الحالة النهائية لهذا البرنامج النصي. ويمكنك تكرار العملية وفق احتياجاتك.

تحميل حزمة قابلة للنشر وتشغيلها عبر LCS

بدلاً من نشر الحزمة القابلة للنشر من خلال واجهة المستخدم لتطبيق التمويل والعمليات، كما هو موضح في القسم السابق، يمكنك تحميلها إلى LCS واستخدام الإجراء العادي لنشرها. لمزيد من المعلومات، راجع تثبيت حزم قابلة للنشر من سطر الأوامر.

علي الرغم من أن هذا الأسلوب ينطوي على بعض القيود، غير أنه يوفر حماية أقل للأخطاء. بالإضافة إلى ذلك، نظرًا لأنه يتطلب إعادة تشغيل جميع الخوادم، فقد يتسبب ذلك في حدوث وقت تعطل.