عندما تقوم بتطبيق العميل أو المورد إدخالات دفتر الأستاذ في بطاقة العميل أو المورد في إصدار Microsoft Dynamics NAV 2009 البرتغالية، يقوم بإنشاء سجل سجل الأستاذ العام غير صحيح يشير إلى الأستاذ العام إدخال سجل غير موجود. اتبع الخطوات الموجودة في المقطع تغييرات التعليمات البرمجية لحل هذه المشكلة. تحدث هذه المشكلة في المنتجات التالية:
-
إصدار Microsoft Dynamics NAV 2009 R2 البرتغالية
-
إصدار Microsoft Dynamics NAV 2009 SP1 البرتغالية
الحل
معلومات الإصلاح العاجل
الآن يتوفر إصلاح عاجل معتمد من Microsoft. ومع ذلك، هو فقط لتصحيح المشكلة الموضحة في هذه المقالة. تطبيقها فقط على الأنظمة التي تواجه هذه المشكلة بالتحديد. قد يتم إجراء اختبارات إضافية على هذا الإصلاح العاجل. ولذلك، إذا لم يكن تأثير المشكلة كبيرا، نوصي بالانتظار حتى الإصدار التالي من حزمة الخدمة Microsoft Dynamics NAV 2009 أو الإصدار Microsoft Dynamics التنقل التالي الذي يحتوي على هذا الإصلاح العاجل.
ملاحظة: في بعض الحالات، يحدد المصروفات التي تحتسب عادة لدعم قد يتم إلغاء المكالمات إذا "أخصائي الدعم التقني" ل Microsoft Dynamics والمنتجات ذات الصلة أن تحديثًا معيناً سوف يعمل على حل المشكلة. سيتم اضافة تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشاكل التي لا يأهل على حلها للتحديث المطلوب.
معلومات التثبيت
تقدم Microsoft أمثلة برمجية للتوضيح فقط، دون أي ضمان صريح أو ضمني. هذا يتضمن، على سبيل المثال لا الحصر، الضمانات الضمنية الخاصة بالتسويق أو الملاءمة لغرض معين. تفترض هذه المقالة أنك معتاد على لغة البرمجة التي يتم شرحها والأدوات المستخدمة لإنشاء الإجراءات وتصحيحها. يساعد مهندسو الدعم لدى Microsoft شرح وظيفة إجراء محدد. ومع ذلك، لن يقوموا بتعديل هذه الأمثلة لتقديم وظيفة إضافية أو إنشاء إجراءات تستوفي متطلبات محددة.
ملاحظة: قبل تثبيت هذا الإصلاح العاجل، تأكد من تسجيل خروج النظام كافة المستخدمين عميل Microsoft Dynamics التنقل. ويشمل ذلك خدمات Microsoft Dynamics NAV تطبيق الملقم (NAS). يجب أن يكون عميل فقط المستخدم الذي تم تسجيل دخوله عند تطبيق هذا الإصلاح العاجل.
لتطبيق هذا الإصلاح العاجل، يجب أن يكون لديك ترخيص مطور.
نوصي بأن تعيين حساب المستخدم في إطار عمليات تسجيل دخول Windows أو في إطار "قاعدة بيانات تسجيل الدخول" بمعرف دور "رئيسي". إذا كان حساب المستخدم لا يمكن تعيين معرف دور "سوبر"، يجب التحقق من أن حساب المستخدم يملك الأذونات التالية:
-
إذن "تعديل" للكائن الذي سيتم تغيير.
-
إذن Execute للكائن 5210 معرف كائن النظام و نظام 9015 معرف الكائن
الكائن.
ملاحظة: ليس لديك حق لمخازن البيانات ما لم يكن لديك لإجراء إصلاح البيانات.
تغييرات التعليمات البرمجية
ملاحظة اختبار دائماً إصلاحات التعليمات البرمجية في بيئة تسيطر عليها قبل تطبيق الإصلاحات على أجهزة الكمبيوتر الإنتاج. قبل تطبيق التغيير، استيراد كافة التحديثات سيبا.
لحل هذه المشكلة، اتبع الخطوات التالية.
-
تغيير التعليمات البرمجية في وظيفة بوستدتلدكوستليدجينتريس في جنل جنرال.-"كوديونيت خط وظيفة" (12) كما يلي:
التعليمات البرمجية الموجودة 1...SavedEntryUsed@1023 : Boolean;
ReceivableAccAmtLCY@1110107 : Decimal;
ReceivableAccAmtAddCurr@1110108 : Decimal;
DtldCustLedgEntry2@1110109 : TEMPORARY Record 379;
ExistDtldCVLedgEntryBuf@1110110 : Boolean;
BEGIN
TotalAmountLCY := 0;
TotalAmountAddCurr := 0;
PositiveLCYAppAmt := 0;
PositiveACYAppAmt := 0;
...استبدال رمز 1
...SavedEntryUsed@1023 : Boolean;
ReceivableAccAmtLCY@1110107 : Decimal;
ReceivableAccAmtAddCurr@1110108 : Decimal;
DtldCustLedgEntry2@1110109 : TEMPORARY Record 379;
ExistDtldCVLedgEntryBuf@1110110 : Boolean;
// Add the following line.
FindBill@1100004 : Boolean;
// End of the added line.
BEGIN
TotalAmountLCY := 0;
TotalAmountAddCurr := 0;
PositiveLCYAppAmt := 0;
PositiveACYAppAmt := 0;
...التعليمات البرمجية الموجودة 2
...IF DtldCustLedgEntry.FINDLAST THEN
DtldCustLedgEntryNoOffset := DtldCustLedgEntry."Entry No."
ELSE
DtldCustLedgEntryNoOffset := 0;
DtldCVLedgEntryBuf.RESET;
// Delete the following lines.
IF DtldCVLedgEntryBuf.FINDSET THEN BEGIN
SaveEntryNo := NextEntryNo;
NextEntryNo := NextEntryNo + 1;
NextEntryNo2 := NextEntryNo;
// End of the deleted lines.
REPEAT
IF DtldCVLedgEntryBuf."Posting Date" <> GenJnlLine."Posting Date" THEN BEGIN
OriginalPostingDate := GenJnlLine."Posting Date";
GenJnlLine."Posting Date" := DtldCVLedgEntryBuf."Posting Date";
OriginalDateSet := TRUE;
...استبدال رمز 2
...IF DtldCustLedgEntry.FINDLAST THEN
DtldCustLedgEntryNoOffset := DtldCustLedgEntry."Entry No."
ELSE
DtldCustLedgEntryNoOffset := 0;
DtldCVLedgEntryBuf.RESET;
// Add the following lines.
DtldCVLedgEntryBuf.SETRANGE("Initial Document Type",DtldCVLedgEntryBuf."Initial Document Type"::Bill);
IF NOT DtldCVLedgEntryBuf.ISEMPTY THEN
FindBill := TRUE;
DtldCVLedgEntryBuf.RESET;
IF DtldCVLedgEntryBuf.FINDSET THEN BEGIN
IF CustLedgEntryInserted OR FindBill THEN BEGIN
SaveEntryNo := NextEntryNo;
NextEntryNo := NextEntryNo + 1;
NextEntryNo2 := NextEntryNo;
END;
// End of the added lines.
REPEAT
IF DtldCVLedgEntryBuf."Posting Date" <> GenJnlLine."Posting Date" THEN BEGIN
OriginalPostingDate := GenJnlLine."Posting Date";
GenJnlLine."Posting Date" := DtldCVLedgEntryBuf."Posting Date";
OriginalDateSet := TRUE;
...التعليمات البرمجية الموجودة 3
...SavedEntryUsed@1031 : Boolean;
PayableAccAmtLCY@1110120 : Decimal;
PayableAccAmtAddCurr@1110121 : Decimal;
DtldVendLedgEntry2@1110122 : Record 380;
ExistDtldCVLedgEntryBuf@1110123 : Boolean;
BEGIN
TotalAmountLCY := 0;
TotalAmountAddCurr := 0;
PositiveLCYAppAmt := 0;
PositiveACYAppAmt := 0;
...استبدال رمز 3
...SavedEntryUsed@1031 : Boolean;
PayableAccAmtLCY@1110120 : Decimal;
PayableAccAmtAddCurr@1110121 : Decimal;
DtldVendLedgEntry2@1110122 : Record 380;
ExistDtldCVLedgEntryBuf@1110123 : Boolean;
// Add the following line.
FindBill@1100005 : Boolean;
// End of the added line.
BEGIN
TotalAmountLCY := 0;
TotalAmountAddCurr := 0;
PositiveLCYAppAmt := 0;
PositiveACYAppAmt := 0;
...التعليمات البرمجية الموجودة 4
... IF GenJnlLine2."Account Type" = GenJnlLine2."Account Type"::Vendor THEN BEGIN
IF DtldVendLedgEntry.FINDLAST THEN
DtldVendLedgEntryNoOffset := DtldVendLedgEntry."Entry No."
ELSE
DtldVendLedgEntryNoOffset := 0;
// Delete the following lines.
DtldCVLedgEntryBuf.RESET;
IF DtldCVLedgEntryBuf.FINDSET THEN BEGIN
SaveEntryNo := NextEntryNo;
NextEntryNo := NextEntryNo + 1;
NextEntryNo2 := NextEntryNo;
// End of the deleted lines.
REPEAT
IF DtldCVLedgEntryBuf."Posting Date" <> GenJnlLine."Posting Date" THEN BEGIN
OriginalPostingDate := GenJnlLine."Posting Date";
GenJnlLine."Posting Date" := DtldCVLedgEntryBuf."Posting Date";
OriginalDateSet := TRUE;
...استبدال رمز 4
...IF GenJnlLine2."Account Type" = GenJnlLine2."Account Type"::Vendor THEN BEGIN
IF DtldVendLedgEntry.FINDLAST THEN
DtldVendLedgEntryNoOffset := DtldVendLedgEntry."Entry No."
ELSE
DtldVendLedgEntryNoOffset := 0;
// Add the following lines.
DtldCVLedgEntryBuf.RESET;
DtldCVLedgEntryBuf.SETRANGE("Initial Document Type",DtldCVLedgEntryBuf."Initial Document Type"::Bill);
IF NOT DtldCVLedgEntryBuf.ISEMPTY THEN
FindBill := TRUE;
DtldCVLedgEntryBuf.RESET;
IF DtldCVLedgEntryBuf.FINDSET THEN BEGIN
IF VendLedgEntryInserted OR FindBill THEN BEGIN
SaveEntryNo := NextEntryNo;
NextEntryNo := NextEntryNo + 1;
NextEntryNo2 := NextEntryNo;
END;
// End of the added lines.
REPEAT
IF DtldCVLedgEntryBuf."Posting Date" <> GenJnlLine."Posting Date" THEN BEGIN
OriginalPostingDate := GenJnlLine."Posting Date";
GenJnlLine."Posting Date" := DtldCVLedgEntryBuf."Posting Date";
OriginalDateSet := TRUE;
...
المتطلبات الأساسية
يجب أن يكون لديك أحد المنتجات التالية مثبتة لتطبيق هذا الإصلاح العاجل:
-
إصدار Microsoft Dynamics NAV 2009 R2 البرتغالية
-
إصدار Microsoft Dynamics NAV 2009 SP1 البرتغالية
معلومات الإزالة
لا يمكنك إزالة هذا الإصلاح العاجل.
الحالة
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".
ملاحظة: وهذا المقال "النشر السريع" التي تم إنشاؤها مباشرة من داخل مؤسسة دعم Microsoft. وتقدم المعلومات الواردة في هذه الوثيقة كاستجابه للمسائل الناشئة. نتيجة للسرعة في توفيره، قد تتضمن الأخطاء المطبعية المواد ويمكن مراجعة في أي وقت دون سابق إنذار. راجع شروط الاستخداملاعتبارات أخرى.