لا يأخذ النظام في الاعتبار "Check Prepmt. خيار عند النشر" عند تشغيل نشر دفعة في Microsoft Dynamics NAV

ينطبق على
Dynamics NAV 2009 Microsoft Dynamics NAV 5.0

تنطبق هذه المقالة على Microsoft Dynamics NAV لجميع البلدان وجميع اللغات المحلية.

الأعراض

عند تشغيل نشر دفعة في Microsoft Dynamics NAV، لا يأخذ النظام في الاعتبار الخيار Check Prepmt. عند الترحيل .

ملاحظة عند نشر طلب واحد، يأخذ النظام في الاعتبار الخيار Check Prepmt. عند النشر .

تحدث هذه المشكلة في المنتجات التالية:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1
  • Microsoft Dynamics NAV 5.0 Service Pack 1

الدقة

معلومات الإصلاح العاجل

يتوفر الآن إصلاح عاجل مدعوم من Microsoft. ومع ذلك، فإنه يهدف فقط إلى تصحيح المشكلة الموضحة في هذه المقالة. قم بتطبيقه فقط على الأنظمة التي تواجه هذه المشكلة المحددة. قد يتلقى الإصلاح العاجل هذا اختبارا إضافيا. لذلك، إذا لم تتأثر بشدة بهذه المشكلة، نوصي بالانتظار حتى حزمة خدمة Microsoft Dynamics NAV 2009 التالية أو إصدار Microsoft Dynamics NAV التالي الذي يحتوي على هذا الإصلاح العاجل.

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

          

معلومات التثبيت

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

ملاحظة قبل تثبيت هذا الإصلاح العاجل، تحقق من تسجيل خروج جميع مستخدمي عميل Microsoft Navision من النظام. يتضمن ذلك مستخدمي عميل Microsoft Navision Application Services (NAS). يجب أن تكون المستخدم العميل الوحيد الذي قام بتسجيل الدخول عند تنفيذ هذا الإصلاح العاجل.

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

نوصي بتعيين معرف دور "SUPER" لحساب المستخدم في نافذة تسجيلات الدخول إلى Windows أو في نافذة تسجيلات دخول قاعدة البيانات. إذا تعذر تعيين معرف دور "SUPER" لحساب المستخدم، فيجب عليك التحقق من أن حساب المستخدم لديه الأذونات التالية:

  • إذن تعديل للكائن الذي ستقوم بتغييره.
  • إذن Execute للكائن System Object ID 5210 ولعنصر System Object ID 9015.

                
ملاحظة ليس لديك حقوق في مخازن البيانات ما لم يكن لديك لإجراء إصلاح البيانات.

تغييرات التعليمات البرمجية

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

  1. تغيير التعليمات البرمجية <في مشغل Control77> - OnPush في نموذج أمر المبيعات (42) كما يلي:
    التعليمات البرمجية الموجودة

    ...
    // Delete the following line.
    IF IsApprovedForPosting THEN BEGIN 
    
    REPORT.RUNMODAL(REPORT::"Batch Post Sales Orders",TRUE,TRUE,Rec);
    CurrForm.UPDATE(FALSE);
    
    // Delete the following line.
    END;
    
    ...
    
    

    رمز الاستبدال

    ...
    REPORT.RUNMODAL(REPORT::"Batch Post Sales Orders",TRUE,TRUE,Rec);
    CurrForm.UPDATE(FALSE);
    ...
    
    
  2. تغيير التعليمات البرمجية <في مشغل Control81> - OnPush في نموذج أمر الشراء (50) كما يلي:
    التعليمات البرمجية الموجودة

    ...
    // Delete the following line.
    IF IsApprovedForPosting THEN BEGIN
    
    REPORT.RUNMODAL(REPORT::"Batch Post Purchase Orders",TRUE,TRUE,Rec);
    CurrForm.UPDATE(FALSE);
    
    // Delete the following line.
    END;
    
    ...
    
    

    رمز الاستبدال

    ...
    REPORT.RUNMODAL(REPORT::"Batch Post Purchase Orders",TRUE,TRUE,Rec);
    CurrForm.UPDATE(FALSE);
    ...
    
    
  3. إنشاء دالة IsApprovedForPostingBatch جديدة في جدول Sales Header (36). اتبع هذه الخطوات للقيام بذلك:

    1. قم بتعيين قيمة إرجاع في الدالة IsApprovedForPostingBatch، ثم حدد القيمة كما يلي:

      • نوع المرجع: منطقي
    2. أضف متغيرا محليا في الدالة IsApprovedForPostingBatch، ثم حدد المتغير كما يلي:

      • Name:P urchaseHeader
      • نوع البيانات:تسجيل
      • النوع الفرعي:رأس الشراء
    3. أضف التعليمات البرمجية التالية في IsApprovedForPostingBatch() : دالة منطقية:

      IF ApprovalMgt.PrePostApprovalCheck(Rec,PurchaseHeader) THEN BEGIN
      IF ApprovalMgt.TestSalesPrepayment(Rec) THEN
      EXIT(FALSE);
      IF ApprovalMgt.TestSalesPayment(Rec) THEN
      EXIT(FALSE);
      EXIT(TRUE);
      END;
      
      
  4. إنشاء دالة IsApprovedForPostingBatch جديدة في جدول رأس الشراء (38). اتبع هذه الخطوات للقيام بذلك:

    1. قم بتعيين قيمة إرجاع في الدالة IsApprovedForPostingBatch، ثم حدد القيمة كما يلي:

      • نوع المرجع: منطقي
    2. أضف متغيرا محليا في الدالة IsApprovedForPostingBatch، ثم حدد المتغير كما يلي:

      • Name:SalesHeader
      • نوع البيانات:تسجيل
      • النوع الفرعي:عنوان المبيعات
    3. أضف التعليمات البرمجية التالية في IsApprovedForPostingBatch() : دالة منطقية:

      IF ApprovalMgt.PrePostApprovalCheck(SalesHeader,Rec) THEN BEGIN
      IF ApprovalMgt.TestPurchasePrepayment(Rec) THEN
      EXIT(FALSE);
      IF ApprovalMgt.TestPurchasePayment(Rec) THEN
      EXIT(FALSE);
      EXIT(TRUE);
      END;
      
      
  5. تغيير التعليمات البرمجية في مشغل Sales Header - OnAfterGetRecord في تقرير Batch Post Sales Orders (296) كما يلي:
    التعليمات البرمجية الموجودة

    ...
    SalesPost.SetPostingDate(ReplacePostingDate,ReplaceDocumentDate,PostingDateReq);
    IF SalesPost.RUN("Sales Header") THEN BEGIN
    CounterOK := CounterOK + 1;
    IF MARKEDONLY THEN
    MARK(FALSE);
    END;
    ...
    
    

    رمز الاستبدال

    ...
    SalesPost.SetPostingDate(ReplacePostingDate,ReplaceDocumentDate,PostingDateReq);
    
    // Add the following line.
    IF IsApprovedForPostingBatch THEN BEGIN
    
    IF SalesPost.RUN("Sales Header") THEN BEGIN
    CounterOK := CounterOK + 1;
    IF MARKEDONLY THEN
    MARK(FALSE);
    END;
    
    // Add the following line.
    END;
    ...
    
    
  6. تغيير التعليمات البرمجية في مشغل رأس الشراء - OnAfterGetRecord في تقرير Batch Post Purchase Orders (496) كما يلي:
    التعليمات البرمجية الموجودة

    ...
    PurchPost.SetPostingDate(ReplacePostingDate,ReplaceDocumentDate,PostingDateReq);
    IF PurchPost.RUN("Purchase Header") THEN BEGIN
    CounterOK := CounterOK + 1;
    IF MARKEDONLY THEN
    MARK(FALSE);
    END;
    ...
    
    

    رمز الاستبدال

    ...
    PurchPost.SetPostingDate(ReplacePostingDate,ReplaceDocumentDate,PostingDateReq);
    
    // Add the following line.
    IF IsApprovedForPostingBatch THEN BEGIN
    
    IF PurchPost.RUN("Purchase Header") THEN BEGIN
    CounterOK := CounterOK + 1;
    IF MARKEDONLY THEN
    MARK(FALSE);
    END;
    
    // Add the following line.
    END;
    ...
    
    

المتطلبات الأساسية

يجب أن يكون لديك أحد المنتجات التالية مثبتا لتطبيق هذا الإصلاح العاجل:

  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack 1
  • Microsoft Dynamics NAV 5.0 Service Pack 1

معلومات الإزالة

لا يمكنك إزالة هذا الإصلاح العاجل.

الحالة

لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".

ملاحظة هذه مقالة "FAST PUBLISH" تم إنشاؤها مباشرة من داخل مؤسسة دعم Microsoft. وتقدم المعلومات الواردة هنا كما هي استجابة للقضايا الناشئة. نتيجة لسرعة إتاحتها، قد تتضمن المواد أخطاء مطبعية ويمكن مراجعتها في أي وقت دون إشعار. راجع شروط الاستخدام لاعتبارات أخرى.