Simptome
Valoarea implicită a câmpul de Tip partener într-un furnizor este zero (necompletată) în versiunea în limba olandeză din Microsoft Dynamics NAV 2009. Cu toate acestea, după ce s-au modificat domeniul, nu modificați valoarea zero (gol) din nou. Urmați pașii din secțiunea modificări de cod pentru a rezolva această problemă. Această problemă se produce în următoarele produse:
-
Versiunea în limba olandeză de Microsoft Dynamics NAV 2009 R2
-
Versiunea în limba olandeză Microsoft Dynamics NAV 2009 SP1
Rezolvare
Informații despre remedierea rapidă
Un hotfix acceptat este acum disponibil de la Microsoft. Cu toate acestea, acesta este destinat numai corectării problemei descrise în acest articol. Aplicați-o numai pe sistemele care întâmpină această problemă anume. Această remediere rapidă poate să necesite testare suplimentară. De aceea, dacă nu sunteți grav afectat de această problemă, vă recomandăm să așteptați următorul pachet service pack Microsoft Dynamics NAV 2009 sau versiunea Microsoft Dynamics NAV următoare, care conține această remediere rapidă.
Notă În cazuri speciale, costurile implicate de obicei pentru asistență apeluri pot fi anulate dacă un specialist în asistență tehnică pentru Microsoft Dynamics și produse asociate stabilește că o anumită actualizare va rezolva problema. Se vor aplica costurile uzuale de asistenţă pentru întrebări suplimentare de asistenţă şi pentru probleme ce nu fac obiectul actualizării în cauză.
Informaţii despre instalare
Microsoft furnizează exemple de programare scop ilustrativ, fără nicio garanţie explicită sau implicită. Aceasta include, dar nu se limitează la, garanţiile implicite de vandabilitate sau de potrivire pentru un anumit scop. Acest articol presupune că sunteţi familiarizat cu limbajul de programare care este prezentat şi cu instrumentele utilizate pentru a crea şi a depana proceduri. Specialiștii în asistență Microsoft pot ajuta la explicarea funcționalității unei anumite proceduri. Cu toate acestea, nu vor modifica aceste exemple pentru a furniza funcționalitate suplimentară construi proceduri pentru a răspunde cerințelor dvs. specifice.
Notă Înainte de a instala această remediere rapidă, verificați dacă toți utilizatorii de client Microsoft Dynamics NAV sunt log off sistemul. Aceasta include servicii Microsoft Dynamics NAV Application Server (NAS). Ar trebui să fie singurul client utilizatorului care este conectat când implementați această remediere rapidă.
Pentru a implementa această remediere rapidă, trebuie să aveți o licență de dezvoltare.
Vă recomandăm că contul de utilizator în fereastra Conectări Windows sau în fereastra Conectări bază de date se atribuie "SUPER" rolul ID-ul. În cazul în care contul de utilizator nu poate fi atribuit ID-ul "SUPER" rolul, trebuie să verificați că contul de utilizator are următoarele permisiuni:
-
Modify permisiunea pentru obiectul care se va schimba.
-
Permisiunea de executare pentru obiectul sistem obiect ID 5210 și sistem obiect ID 9015
obiect.
Notă Nu trebuie să aveți drepturi de la magazine de date decât dacă trebuie să efectuați o reparare de date.
Modificări de cod
Notă Întotdeauna test cod remediază într-un mediu controlat înainte de a aplica remedieri pentru computerele de producție.
Pentru a rezolva această problemă, urmați acești pași:
-
Modificați codul din CheckTransModePartnerType funcţia în tabelul de tranzacții modul (11000004) după cum urmează:
Cod existent...END;
END;
// Delete the following lines.
PROCEDURE CheckTransModePartnerType@1000001(TransactionModeCode@1000001 : Code[20];PartnerType@1000002 : ' ,Company,Person') : Boolean;
VAR
TransationMode@1000000 : Record 11000004;
BEGIN
IF TransactionModeCode <> '' THEN BEGIN
// End of the deleted lines.
SETRANGE(Code,TransactionModeCode);
FINDFIRST;
IF PartnerType <> "Partner Type" THEN
...Cod de înlocuire
...END;
END;
// Add the following lines.
PROCEDURE CheckTransModePartnerType@1000001(AccountType@1000003 : 'Customer,Vendor';TransactionModeCode@1000001 : Code[20];PartnerType@1000002 : ' ,Company,Person') : Boolean;
VAR
TransationMode@1000000 : Record 11000004;
BEGIN
IF TransactionModeCode <> '' THEN BEGIN
SETRANGE("Account Type",AccountType);
// End of the added lines.
SETRANGE(Code,TransactionModeCode);
FINDFIRST;
IF PartnerType <> "Partner Type" THEN
... -
Modificați codul din proprietățile din tabelul de client (18) după cum urmează:
Cod existent 1...END;
OnModify=VAR
TransactionMode@1000000 : Record 11000004;
BEGIN
"Last Date Modified" := TODAY;
...Înlocuirea cod 1
...END;
OnModify=VAR
// Add the following line.
AccountType@1000001 : 'Customer,Vendor';
// End of the added line.
TransactionMode@1000000 : Record 11000004;
BEGIN
"Last Date Modified" := TODAY;
...Cod existent 2
...(Contact <> xRec.Contact) OR
("Partner Type" <> xRec."Partner Type")
THEN BEGIN
// Delete the following line.
IF NOT TransactionMode.CheckTransModePartnerType("Transaction Mode Code","Partner Type") THEN
// End of the deleted line.
ERROR(PartnerTypeMismatchErr);
MODIFY;
UpdateContFromCust.OnModify(Rec);
...Înlocuirea cod 2
...(Contact <> xRec.Contact) OR
("Partner Type" <> xRec."Partner Type")
THEN BEGIN
// Add the following line.
IF NOT TransactionMode.CheckTransModePartnerType(AccountType::Customer,"Transaction Mode Code","Partner Type") THEN
// End of the added line.
ERROR(PartnerTypeMismatchErr);
MODIFY;
UpdateContFromCust.OnModify(Rec);
... -
Modificați codul din câmpuri din tabelul de client (18) după cum urmează:
Cod existent...CalcFormula=Count("Sales Header Archive" WHERE (Document Type=CONST(Order),
Sell-to Customer No.=FIELD(No.))) }
{ 132 ; ;Partner Type ;Option ;OnValidate=VAR
// Delete the following lines.
TransactionMode@1000000 : Record 11000004;
BEGIN
IF NOT TransactionMode.CheckTransModePartnerType("Transaction Mode Code","Partner Type") THEN
// End of the deleted lines.
IF NOT CONFIRM(PartnerTypeMismatchMsg,FALSE) THEN
ERROR('')
END;
...Cod de înlocuire
...CalcFormula=Count("Sales Header Archive" WHERE (Document Type=CONST(Order),
Sell-to Customer No.=FIELD(No.))) }
{ 132 ; ;Partner Type ;Option ;OnValidate=VAR
// Add the following lines.
AccountType@1000001 : 'Customer,Vendor';
TransactionMode@1000000 : Record 11000004;
BEGIN
IF NOT TransactionMode.CheckTransModePartnerType(AccountType::Customer,"Transaction Mode Code","Partner Type") THEN
// End of the added lines.
IF NOT CONFIRM(PartnerTypeMismatchMsg,FALSE) THEN
ERROR('')
END;
... -
Modificați codul din proprietățile din tabelul furnizor (23) după cum urmează:
Cod existent 1...END;
OnModify=VAR
TransactionMode@1000000 : Record 11000004;
BEGIN
"Last Date Modified" := TODAY;
...Înlocuirea cod 1
...END;
OnModify=VAR
// Add the following line.
AccountType@1000001 : 'Customer,Vendor';
// End of the added line.
TransactionMode@1000000 : Record 11000004;
BEGIN
"Last Date Modified" := TODAY;
...Cod existent 2
...("Home Page" <> xRec."Home Page") OR
("Partner Type" <> xRec."Partner Type")
THEN BEGIN
// Delete the following line.
IF NOT TransactionMode.CheckTransModePartnerType("Transaction Mode Code","Partner Type") THEN
// End of the deleted line.
ERROR(PartnerTypeMismatchErr);
MODIFY;
UpdateContFromVend.OnModify(Rec);
...Înlocuirea cod 2
...("Home Page" <> xRec."Home Page") OR
("Partner Type" <> xRec."Partner Type")
THEN BEGIN
// Add the following line.
IF NOT TransactionMode.CheckTransModePartnerType(AccountType::Vendor,"Transaction Mode Code","Partner Type") THEN
// End of the added line.
ERROR(PartnerTypeMismatchErr);
MODIFY;
UpdateContFromVend.OnModify(Rec);
... -
Modificați codul din câmpuri din tabelul furnizor (23) după cum urmează:
Cod existent...CalcFormula=Count("Purchase Header Archive" WHERE (Document Type=CONST(Order),
Buy-from Vendor No.=FIELD(No.))) }
{ 132 ; ;Partner Type ;Option ;OnValidate=VAR
// Delete the following lines.
TransactionMode@1000000 : Record 11000004;
BEGIN
IF NOT TransactionMode.CheckTransModePartnerType("Transaction Mode Code","Partner Type") THEN
IF NOT CONFIRM(PartnerTypeMismatchMsg,FALSE) THEN
ERROR('')
END;
OptionString=,Company,Person }
// End of the deleted lines.
{ 5049; ;Primary Contact No. ;Code20 ;TableRelation=Contact;
OnValidate=VAR
Cont@1001 : Record 5050;
...Cod de înlocuire
...CalcFormula=Count("Purchase Header Archive" WHERE (Document Type=CONST(Order),
Buy-from Vendor No.=FIELD(No.))) }
{ 132 ; ;Partner Type ;Option ;OnValidate=VAR
// Add the following lines.
AccountType@1000001 : 'Customer,Vendor';
TransactionMode@1000000 : Record 11000004;
BEGIN
IF NOT TransactionMode.CheckTransModePartnerType(AccountType::Vendor,"Transaction Mode Code","Partner Type") THEN
IF NOT CONFIRM(PartnerTypeMismatchMsg,FALSE) THEN
ERROR('')
END;
OptionString=[ ,Company,Person] }
// End of the added lines.
{ 5049; ;Primary Contact No. ;Code20 ;TableRelation=Contact;
OnValidate=VAR
Cont@1001 : Record 5050;
...
Cerințe preliminare
Trebuie să aveți unul dintre următoarele produse instalate pentru a aplica această remediere rapidă:
-
Versiunea în limba olandeză de Microsoft Dynamics NAV 2009 R2
-
Versiunea în limba olandeză Microsoft Dynamics NAV 2009 SP1
În plus, trebuie să aveți cea mai recentă versiune de SEPA MSDNAV2009sp1SEPANLdebitinstalat.
Eliminare informaţii
Nu se poate elimina această remediere rapidă.
Stare
Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".
Notă Acesta este un articol "rapid publicat" creat direct în cadrul organizației de asistență Microsoft. Informațiile conținute în acest document sunt furnizate ca răspuns la problemele care apar. Ca rezultat al vitezei în a-l face disponibil, materialele pot include erori tipografice și pot fi revizuite în orice moment, fără notificare. Consultați Termenii de utilizarepentru alte considerații.