تنطبق هذه المقالة على Microsoft Dynamics NAV للبلدان واللغات المحلية التالية.
- الإنجليزية (كندا) (en-ca)
- الإنجليزية (الولايات المتحدة) (en-us)
- الأسبانية (المكسيك) (es-mx)
- الفرنسية (كندا) (fr-ca)
الأعراض
افترض أنك تحدد خانة الاختيار Automatic Build Kit BOM لعنصر في إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009. عند تشغيل الدالة Copy to Document في نموذج "محفوظات مبيعات العملاء" لإنشاء أمر مبيعات للعنصر للعميل، تتلقى رسالة الخطأ التالية:
ملاحظة
يجب أن تكون Build Kit لا في Sales Line.
تحدث هذه المشكلة في المنتجات التالية:
- إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 R2
- إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 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.
ملاحظة ليس لديك حقوق في مخازن البيانات ما لم يكن لديك لإجراء إصلاح البيانات.
تغييرات التعليمات البرمجية
ملاحظة اختبر دائما إصلاحات التعليمات البرمجية في بيئة خاضعة للرقابة قبل تطبيق الإصلاحات على أجهزة الكمبيوتر الإنتاجية.
لحل هذه المشكلة، اتبع الخطوات التالية:
قم بإزالة الخاصية LOCAL من الإجراءات التالية في Copy Document Mgt. codeunit (6620) كما يلي:
التعليمات البرمجية الموجودة 1... // Delete the following line. LOCAL PROCEDURE CopyFromKitSalesToLine@1462000(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesLine@1462001 : Record 37); ...رمز الاستبدال 1
... // Add the following line. PROCEDURE CopyFromKitSalesToLine@1462000(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesLine@1462001 : Record 37); ...التعليمات البرمجية الموجودة 2
... // Delete the following line.LOCAL PROCEDURE CopyFromKitSalesShptToLine@1462001(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesShptLine@1462001 : Record 111); ...رمز الاستبدال 2
... // Add the following line.PROCEDURE CopyFromKitSalesShptToLine@1462001(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesShptLine@1462001 : Record 111); ...التعليمات البرمجية الموجودة 3
... // Delete the following line.LOCAL PROCEDURE CopyFromKitSalesInvToLine@1462002(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesInvLine@1462001 : Record 113); ...رمز الاستبدال 3
... // Add the following line.PROCEDURE CopyFromKitSalesInvToLine@1462002(VAR ToSalesLine@1462000 : Record 37;VAR FromSalesInvLine@1462001 : Record 113); ...أضف المتغيرات المحلية التالية في الإجراء CopyLinesToDoc في Sales History Copy Line Mgt. codeunit (7172) كما يلي:
CopytoKitLine@1015 : Codeunit 6620; FromSalesInvLine@1018 : Record 113; FromSalesShptLine@1020 : Record 111; FromArchiveLine@1021 : Record 5108;تغيير التعليمات البرمجية في الإجراء CopyLinesToDoc في Sales History Copy Line Mgt. codeunit (7172) كما يلي:
التعليمات البرمجية الموجودة 1... FromDocType::"Return Order": BEGIN FromSalesHeader.GET(FromSalesLine."Document Type",FromSalesLine."Document No."); ItemChargeAssgntNextLineNo := 0; CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo); // Delete the following lines. IF FromSalesLine.Type = FromSalesLine.Type::"Charge (Item)" THEN CopyFromSalesDocAssgntToLine(ToSalesLine,FromSalesLine,ItemChargeAssgntNextLineNo); END; FromDocType::"Posted Shipment": BEGIN FromSalesShptHeader.GET(FromSalesLine."Document No."); FromSalesHeader.TRANSFERFIELDS(FromSalesShptHeader); CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo); END; FromDocType::"Posted Invoice": BEGIN FromSalesInvHeader.GET(FromSalesLine."Document No."); FromSalesHeader.TRANSFERFIELDS(FromSalesInvHeader); CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo); // End of the lines. END; FromDocType::"Posted Return Order": BEGIN ...رمز الاستبدال1
... FromDocType::"Return Order": BEGIN FromSalesHeader.GET(FromSalesLine."Document Type",FromSalesLine."Document No."); ItemChargeAssgntNextLineNo := 0; CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo); // Add the following lines. IF NOT (FromDocType IN ["Document Type"::"Credit Memo","Document Type"::"Return Order"]) THEN CopytoKitLine.CopyFromKitSalesToLine(ToSalesLine,FromSalesLine); IF FromSalesLine.Type = FromSalesLine.Type::"Charge (Item)" THEN BEGIN CopyFromSalesDocAssgntToLine(ToSalesLine,FromSalesLine,ItemChargeAssgntNextLineNo); CopytoKitLine.CopyFromKitSalesToLine(ToSalesLine,FromSalesLine); END; END; FromDocType::"Posted Shipment": BEGIN FromSalesShptHeader.GET(FromSalesLine."Document No."); FromSalesShptLine.GET(FromSalesLine."Document No.",FromSalesLine."Line No."); FromSalesHeader.TRANSFERFIELDS(FromSalesShptHeader); CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo); CopytoKitLine.CopyFromKitSalesShptToLine(ToSalesLine,FromSalesShptLine); END; FromDocType::"Posted Invoice": BEGIN FromSalesInvHeader.GET(FromSalesLine."Document No."); FromSalesInvLine.GET(FromSalesLine."Document No.",FromSalesLine."Line No."); FromSalesHeader.TRANSFERFIELDS(FromSalesInvHeader); CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo); CopytoKitLine.CopyFromKitSalesInvToLine(ToSalesLine,FromSalesInvLine); // End of the lines. END; FromDocType::"Posted Return Order": BEGIN ...التعليمات البرمجية الموجودة 2
... FromDocType::"Archived Order": BEGIN FromSalesArchHeader.GET(FromSalesLine."Document Type",FromSalesLine."Document No.", DocNoOccurrence,DocVersionNo); // Delete the following lines. FromSalesHeader.TRANSFERFIELDS(FromSalesArchHeader); CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo); // End of the lines. END; END; END; ...رمز الاستبدال 2
... FromDocType::"Archived Order": BEGIN FromSalesArchHeader.GET(FromSalesLine."Document Type",FromSalesLine."Document No.", DocNoOccurrence,DocVersionNo); // Add the following lines. FromArchiveLine.GET(FromSalesLine."Document Type",FromSalesLine."Document No.", DocNoOccurrence,DocVersionNo,FromSalesLine."Line No."); FromSalesHeader.TRANSFERFIELDS(FromSalesArchHeader); CopyLine(ToSalesHeader,ToSalesLine,FromSalesHeader,FromSalesLine,NextLineNo); CopyFromKitArchiveToLine(ToSalesLine,FromArchiveLine); // End of the lines. END; END; END; ...تغيير التعليمات البرمجية في الإجراء CopyLine في Sales History Copy Line Mgt. codeunit (7172) كما يلي:
التعليمات البرمجية الموجودة... VALIDATE("Variant Code",FromSalesLine."Variant Code"); // Delete the following lines. VALIDATE("Location Code",FromSalesLine."Location Code"); VALIDATE("Unit of Measure",FromSalesLine."Unit of Measure"); VALIDATE("Unit of Measure Code",FromSalesLine."Unit of Measure Code"); VALIDATE(Quantity,0); // End of the lines. IF NOT (FromSalesLine.Type IN [FromSalesLine.Type::Item,FromSalesLine.Type::Resource]) THEN BEGIN IF (FromSalesHeader."Currency Code" <> ToSalesHeader."Currency Code") OR ...رمز الاستبدال
... VALIDATE("Variant Code",FromSalesLine."Variant Code"); // Add the following lines. "Location Code" := FromSalesLine."Location Code"; VALIDATE("Unit of Measure",FromSalesLine."Unit of Measure"); VALIDATE("Unit of Measure Code",FromSalesLine."Unit of Measure Code"); VALIDATE(Quantity,0); Quantity := FromSalesLine.Quantity; "Qty. to Ship" := FromSalesLine.Quantity; "Qty. to Invoice" := FromSalesLine.Quantity; "Line Amount" := FromSalesLine."Line Amount"; "Quantity (Base)" := FromSalesLine.Quantity; "Qty. to Invoice (Base)" := FromSalesLine.Quantity; // End of the lines. IF NOT (FromSalesLine.Type IN [FromSalesLine.Type::Item,FromSalesLine.Type::Resource]) THEN BEGIN IF (FromSalesHeader."Currency Code" <> ToSalesHeader."Currency Code") OR ...أضف الإجراء المحلي التالي في سطر نسخ محفوظات المبيعات Mgt. codeunit (7172) كما يلي:
LOCAL PROCEDURE CopyFromKitArchiveToLine@7(VAR ToSalesLine@1001 : Record 37;VAR FromArchiveLine@1002 : Record 5108); VAR FromKitArchiveLine@1003 : Record 25003; ToKitArchiveLine@1004 : Record 25003; ToKitSalesLine@1005 : Record 25000; BEGIN IF ToSalesLine."Build Kit" THEN BEGIN FromKitArchiveLine.RESET; FromKitArchiveLine.SETRANGE("Document No.",FromArchiveLine."Document No."); FromKitArchiveLine.SETRANGE("Document Line No.",FromArchiveLine."Line No."); IF FromKitArchiveLine.FINDSET THEN REPEAT ToKitSalesLine.TRANSFERFIELDS(FromKitArchiveLine); ToKitSalesLine."Document Type" := ToSalesLine."Document Type"; ToKitSalesLine."Document No." := ToSalesLine."Document No."; ToKitSalesLine."Document Line No." := ToSalesLine."Line No."; CASE ToKitSalesLine.Type OF ToKitSalesLine.Type::Item,ToKitSalesLine.Type::Resource: BEGIN ToKitSalesLine."Extended Quantity" := ToKitSalesLine."Quantity per" * ToSalesLine."Quantity (Base)"; ToKitSalesLine."Extended Quantity (Base)" := ToKitSalesLine."Quantity per (Base)" * ToSalesLine."Quantity (Base)" END; ToKitSalesLine.Type::"Setup Resource": BEGIN ToKitSalesLine."Extended Quantity" := ToKitSalesLine."Quantity per"; ToKitSalesLine."Extended Quantity (Base)" := ToKitSalesLine."Quantity per (Base)"; END; END; ToKitSalesLine."Outstanding Quantity" := ToKitSalesLine."Extended Quantity"; ToKitSalesLine."Outstanding Qty. (Base)" := ToKitSalesLine."Extended Quantity (Base)"; ToKitSalesLine.INSERT; UNTIL FromKitArchiveLine.NEXT = 0; END; END;
المتطلبات الأساسية
يجب أن يكون لديك أحد المنتجات التالية مثبتا لتطبيق هذا الإصلاح العاجل:
- إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 R2
- إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 Service Pack 1
معلومات الإزالة
لا يمكنك إزالة هذا الإصلاح العاجل.
الحالة
لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".
ملاحظة هذه مقالة "FAST PUBLISH" تم إنشاؤها مباشرة من داخل مؤسسة دعم Microsoft. وتقدم المعلومات الواردة هنا كما هي استجابة للقضايا الناشئة. نتيجة لسرعة إتاحتها، قد تتضمن المواد أخطاء مطبعية ويمكن مراجعتها في أي وقت دون إشعار. راجع شروط الاستخدام لاعتبارات أخرى.