Ovaj se članak odnosi na Microsoft Dynamics NAV za regionalne sheme na njemačkom (de)jeziku.
Simptomi
Kada stvorite datoteku za plaćanje koja sadrži posebne njemačke znakove, kao što je Umlaute, posebni se znakovi nedosljedno pretvaraju. Na primjer, " Ö "kao specijalni znak, on se jednom transformira u "\" i jednom transformira u "TM".
Problemi se javljaju u sljedećim proizvodima:
- Njemačka verzija sustava Microsoft Dynamics NAV 2009 Service Pack 1
- Njemačka verzija sustava Microsoft Dynamics NAV 5.0 Service Pack 1
Rješenje
Informacije o hitnom popravku
Microsoft sada nudi podržani hitni popravak. No njegova je namjena samo ispravljanje problema opisanog u ovom članku. Primijenite ga samo na sustave koji imaju taj specifični problem. Ovaj hitni popravak može proći dodatna testiranja. Stoga, ako se ovaj problem ne odnosi ozbiljno, preporučujemo da pričekate sljedeći servisni paket za Microsoft Dynamics NAV 2009 ili sljedeću verziju sustava Microsoft Dynamics NAV koja sadrži ovaj hitni popravak.
Napomena: U posebnim slučajevima, ako stručnjak tehničke podrške za Microsoft Dynamics i povezane proizvode utvrdi da određeno ažuriranje može riješiti problem, poziv službi podrške može biti besplatan. Uobičajene cijene poziva službi za podršku primjenjuju se na dodatna pitanja i probleme koje nemaju veze s pripadnom nadopunom.
Informacije o instalaciji
Microsoft daje primjere programiranja samo za ilustraciju, bez jamstva, bilo izričitog ili prešutnog. To uključuje, bez ograničenja, implicitna jamstva utrživosti ili prikladnosti za određenu svrhu. U članku se podrazumijeva da ste upoznati s programskim jezikom koji se pokazuje te s alatima koji se koriste za stvaranje i ispravljanje pogrešaka procedura. Microsoftovi inženjeri za podršku mogu vam pomoći objasniti funkcionalnost određene procedure, no neće mijenjati te primjere radi pružanja dodatne funkcionalnosti ili konstruirati procedure koji zadovoljavaju vaše specifične zahtjeve.
Napomena Prije nego što instalirate ovaj hitni popravak, provjerite jesu li svi korisnici Microsoft Navision klijenta odjavljeni sa sustava. To obuhvaća korisnike klijentskih usluga Microsoft Navision Application Services (NAS). Trebali biste biti jedini klijentski korisnik prijavljen na vrijeme implementacije ovog hitnog popravka.
Da biste implementirali ovaj hitni popravak, morate imati licencu za razvojne inženjere.
Preporučujemo da se korisničkom računu u prozoru Prijave u sustav Windows ili u prozoru Prijave u bazu podataka dodijeli ID uloge "SUPER". Ako korisničkom računu nije moguće dodijeliti ID uloge "SUPER", morate provjeriti ima li korisnički račun sljedeće dozvole:
- Dozvola za izmjenu objekta koji ćete mijenjati.
- Dozvola za izvršavanje za objekt System Object ID 5210 i za objekt System Object ID 9015
Napomena: nemate pravo na spremišta podataka, osim ako morate popraviti podatke.
Promjene koda
Napomena: uvijek testirajte popravke koda u kontroliranom okruženju prije primjene popravaka na proizvodnim računalima.
Da biste riješili taj problem, učinite sljedeće:
Promijenite sljedeću globalnu varijablu u funkciji Clearing, jedinici koda (5001901):
Postojeća varijabla- Name: Dtaus
- DataType: Kod
- Duljina: 150
Zamjenska varijabla
- Name: Dtaus
- DataType: Kod
- Duljina: 1024
Izbrišite sljedeće globalne varijable u funkciji Clearing, jedinica koda (5001901):
- Name:AUmlaut
- Naziv:OUmlaut
- Naziv:UUmlaut
- Naziv: EsZet
Dodajte sljedeću konstantu teksta u funkciju čišćenja, jedinicu koda (5001901):
Naziv: Tekstni 1105400400
Konstantna vrijednost:
- DEU=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]~.,&-+*%/$
- ENU=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]~.,&-+*%/$'
Promijenite sljedeći kod prilikom postupka otvaranja datoteke izvoza:
Postojeći kod
... PaymentSetup.TESTFIELD("Textcode Credit Note"); TextCode := PaymentSetup."Textcode Credit Note"; END; END; AUmlaut := '['; OUmlaut := '\'; UUmlaut := ']'; EsZet := '~'; ...Zamjenski kôd
... PaymentSetup.TESTFIELD("Textcode Credit Note"); TextCode := PaymentSetup."Textcode Credit Note"; END; END; ...Promijenite sljedeći kod u proceduri CustomerOutput:
Postojeći kod
... WITH PaymLine2 DO BEGIN IF "Account No." = PaymLine3."Account No." THEN BEGIN PaymLine3 := PaymLine2; IF "Sum Entries"<>0 THEN BEGIN Counter := Counter + 1; SumDM := TotalEntries; AmountDM[Counter] := TotalEntries; END ELSE BEGIN Counter := Counter + 1; ...Zamjenski kôd
... WITH PaymLine2 DO BEGIN IF "Account No." = PaymLine3."Account No." THEN BEGIN PaymLine3 := PaymLine2; IF "Sum Entries"<>0 THEN BEGIN Counter := Counter + 1; SumDM := TotalEntries; AmountDM[Counter] := TotalEntries; // Add the following line. PDate [Counter] := "Posting Date"; // End of the added line. END ELSE BEGIN Counter := Counter + 1; ...Promijenite sljedeći kod u postupku PaymentfileRecord:
Postojeći kod
... // Record C (DataExchange), 1. Constant Part, 2. Section // // field length contents // ------------------------------------------------------------------------------------------------------------------------------- FORMAT(UPPERCASE(CompanyInfo.Name),27) + // 15 27 Name COPYSTR(Text1105400035 + PADSTR('',7,' '),1,7) + // Cust.No / KD.NR. ...Zamjenski kôd
... // Record C (DataExchange), 1. Constant Part, 2. Section // // field length contents // ------------------------------------------------------------------------------------------------------------------------------- FORMAT(UPPERCASE(CompName),27) + // 15 27 Name COPYSTR(Text1105400035 + PADSTR('',7,' '),1,7) + // Cust.No / KD.NR. ...U postupak CheckFormat dodajte sljedeće lokalne varijable:
Name:AUmlaut
- DataType: Text
- Duljina: 1
Naziv:OUmlaut
- DataType: Text
- Duljina: 1
Naziv:UUmlaut
- DataType: Text
- Duljina: 1
Naziv: EsZet
- DataType: Text
- Duljina: 1
Promijenite sljedeći kod u postupku CheckFormat:
Postojeći kod
... WHILE STRPOS(FieldContent,'ß') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'ß')-1) + EsZet + COPYSTR(FieldContent,STRPOS(FieldContent,'ß')+1,MAXSTRLEN(FieldContent)); WHILE STRPOS(FieldContent,'Ä') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'Ä')-1) + AUmlaut + COPYSTR(FieldContent,STRPOS(FieldContent,'Ä')+1,MAXSTRLEN(FieldContent)); WHILE STRPOS(FieldContent,'Ö') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'Ö')-1) + OUmlaut + COPYSTR(FieldContent,STRPOS(FieldContent,'Ö')+1,MAXSTRLEN(FieldContent)); WHILE STRPOS(FieldContent,'Ü') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'Ü')-1) + UUmlaut + COPYSTR(FieldContent,STRPOS(FieldContent,'Ü')+1,MAXSTRLEN(FieldContent)); CheckRec := DELCHR(FieldContent,'=',Text1105400043); IF CheckRec <>'' THEN BEGIN CheckRec := CONVERTSTR(FieldContent,Text1105400044, ' '); String := STRLEN(DELCHR(CheckRec)); FieldContent := CONVERTSTR(FieldContent,DELCHR(CheckRec),PADSTR('',String,' ')); END; EXIT (FieldContent); ...Zamjenski kôd
... AUmlaut := '['; OUmlaut := '\'; UUmlaut := ']'; EsZet := '~'; WHILE STRPOS(FieldContent,'ß') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'ß')-1) + EsZet + COPYSTR(FieldContent,STRPOS(FieldContent,'ß')+1,MAXSTRLEN(FieldContent)); WHILE STRPOS(FieldContent,'Ä') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'Ä')-1) + AUmlaut + COPYSTR(FieldContent,STRPOS(FieldContent,'Ä')+1,MAXSTRLEN(FieldContent)); WHILE STRPOS(FieldContent,'Ö') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'Ö')-1) + OUmlaut + COPYSTR(FieldContent,STRPOS(FieldContent,'Ö')+1,MAXSTRLEN(FieldContent)); WHILE STRPOS(FieldContent,'Ü') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'Ü')-1) + UUmlaut + COPYSTR(FieldContent,STRPOS(FieldContent,'Ü')+1,MAXSTRLEN(FieldContent)); CheckRec := DELCHR(FieldContent,'=',Text1105400043); IF CheckRec <>'' THEN BEGIN CheckRec := CONVERTSTR(FieldContent,Text1105400400, ' '); String := STRLEN(DELCHR(CheckRec)); FieldContent := CONVERTSTR(FieldContent,DELCHR(CheckRec),PADSTR('',String,' ')); END; EXIT (FieldContent); ...Promijenite duljinu parametra "Pogon" u proceduri CheckPaymfile:
- Postojeća vrijednost duljine: 150
- Zamjenska vrijednost duljine: 260
Promijenite duljinu parametra "ErrorMessage" u postupku CheckBeforePym:
- Postojeća vrijednost duljine: 150
- Zamjenska vrijednost duljine: 1024
Promijenite sljedeći kod u proceduri WritePaymBankInfoLine:
Postojeći kod... "Bank Branch No." := CustBankAcc."Bank Branch No."; "Bank Account No." := CustBankAcc."Bank Account No."; "Bank Name 2" := CustBankAcc."Name 2"; "Bank Address" := CustBankAcc.Address; ...Zamjenski kôd
... "Bank Branch No." := CustBankAcc."Bank Branch No."; "Bank Account No." := CustBankAcc."Bank Account No."; "SWIFT Code" := CustBankAcc."SWIFT Code"; IBAN := CustBankAcc.IBAN; "Bank Name 2" := CustBankAcc."Name 2"; "Bank Address" := CustBankAcc.Address; ...
Preduvjeti
Da biste primijenili ovaj hitni popravak, morate imati instaliran neki od sljedećih proizvoda:
- Njemačka verzija sustava Microsoft Dynamics NAV 2009 Service Pack 1
- Njemačka verzija sustava Microsoft Dynamics NAV 5.0 Service Pack 1
Podaci o uklanjanju
Ovaj hitni popravak ne možete ukloniti.
Status
Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.
Napomena: Ovo je članak "FAST PUBLISH" stvoren izravno u Microsoftovoj ustanovi za podršku. Ovdje sadržane informacije pružaju se takve kakve jesu kao odgovor na nove probleme. Kao rezultat brzine stavljanja na raspolaganje, materijali mogu sadržavati tipografske pogreške i mogu se revidirati u bilo kojem trenutku bez prethodne najave. Dodatne napomene potražite u Uvjetima korištenja .