Ovaj se članak odnosi na Microsoft Dynamics NAV za regionalnu shemu na njemačkom (de)jeziku.
Simptomi
U njemačkoj verziji sustava Microsoft Dynamics NAV s dodatkom Plaćanja, prilikom stvaranja datoteke za plaćanje u inozemstvu naići ćete na sljedeće probleme s netočnim izvozom:
- Pretpostavimo da ste stvorili datoteku za inozemna plaćanja koja sadrži račun za plaćanja. Ako se račun terećenja razlikuje od bankovnog računa koji je korišten za plaćanje, primijetit ćete da je u datoteku za plaćanje upisan netočan broj bankovnog računa.
- V-Satz polje (10) u datoteci neočekivano je popunjeno "N". Očekujete da će podaci u polju biti prazni.
- Polje T-Satz (10a) u datoteci neočekivano je popunjeno "DE". Očekujete da će podaci u polju biti "SAD" jer je dobavljač iz SAD-a, a samo je bankovni račun u Njemačkoj.
Taj se problem pojavljuje u sljedećim proizvodima:
- Njemačka verzija sustava Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
- Njemačka verzija sustava Microsoft Dynamics NAV 2009 R2
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 kod u funkciji Open ExportFile u jedinici koda AZV (5001905) na sljedeći način:
Promijenite definiciju globalne varijable na sljedeći načinStara definicija: Dtaus: Code[150];
Nova definicija: Dtaus : Code[260];
Postojeći kod
... CompanyInfo.GET; // Delete the following line. NameOfCompany := CheckFormat(FORMAT(UPPERCASE(CompanyInfo.Name),27)); FormatAddr.BankAcc(AddrArray,BankAccount); ...Zamjenski kôd
... CompanyInfo.GET; // Add the following line. NameOfCompany := COPYSTR(CheckFormat(FORMAT(UPPERCASE(CompanyInfo.Name),27)),1,MAXSTRLEN(NameOfCompany)); FormatAddr.BankAcc(AddrArray,BankAccount); ...Promijenite kod u funkciji FormatBankAcc u jedinici koda AZV (5001905) na sljedeći način:
Novu lokalnu varijablu BankAccount3 kreirajte na sljedeći način:BankAccount3@ : Rekord 270
Postojeći kod
... IF (PaymLedgEntry."Account No. Charges"<>") AND (PaymLedgEntry."Account No. Charges"<>PaymLedgEntry."Bank Account No.") THEN BEGIN // Delete the following lines. BankAccount.GET(PaymLedgEntry."Account No. Charges"); "Bank Code" := BankAccount."Bank Branch No."; IF STRLEN("Bank Code") = 0 THEN ERROR(Text1105400002,BankAccount."No."); BankCodeBank := FormatBankCode("Bank Code"); IF STRLEN(BankCodeBank) <> 8 THEN ERROR(Text1105400003,BankAccount."No."); BankCodeRec3 := BankCodeBank; Account := BankAccount."Bank Account No."; IF STRLEN(Account) = 0 THEN ERROR(Text1105400004,BankAccount."No."); AccountBank := FormatAccount(Account); IF STRLEN(AccountBank) >10 THEN ERROR( Text1105400005,BankAccount."No."); AccountRec3 := AccountBank; // End of the deleted lines. END ELSE BEGIN BankCodeRec3 := PADSTR('',8,'0'); AccountRec3 := PADSTR('',10,'0'); END; ...Zamjenski kôd
... IF (PaymLedgEntry."Account No. Charges"<>") AND (PaymLedgEntry."Account No. Charges"<>PaymLedgEntry."Bank Account No.") THEN BEGIN // Add the following lines. BankAccount3.GET(PaymLedgEntry."Account No. Charges"); IF STRLEN(BankAccount3."Bank Branch No.") = 0 THEN ERROR(Text1105400002,BankAccount3."No."); BankCodeRec3 := FormatBankCode(BankAccount3."Bank Branch No."); IF STRLEN(BankCodeRec3) <> 8 THEN ERROR(Text1105400003,BankAccount3."No."); IF STRLEN(BankAccount3."Bank Account No.") = 0 THEN ERROR(Text1105400004,BankAccount3."No."); AccountRec3 := FormatAccount(BankAccount3."Bank Account No."); IF STRLEN(AccountRec3) >10 THEN ERROR( Text1105400005,BankAccount3."No."); //End of the added lines. END ELSE BEGIN BankCodeRec3 := PADSTR('',8,'0'); AccountRec3 := PADSTR('',10,'0'); END; ...Promijenite kod u funkciji VendBankFormat u jedinici koda AZV (5001905) na sljedeći način:
Postojeći kod... ERROR(Text1105400129,Country."Bank Country Code"); END; // Delete the following line. VendCountry := Country."Bank Country Code"; IF PostedAZV.IBAN <>'' THEN BEGIN Account := DELCHR(PostedAZV.IBAN); Account := CheckFormat(UPPERCASE(PADSTR(Account,34,' '))); ...Zamjenski kôd
... ERROR(Text1105400129,Country."Bank Country Code"); END; // Add the following line. VendCountry := PostedAZV."Country Code"; IF PostedAZV.IBAN <> '' THEN BEGIN Account := DELCHR(PostedAZV.IBAN); Account := CheckFormat(UPPERCASE(PADSTR(Account,34,' '))); ...Promijenite kod u funkciji PaymFileHeader u jedinici koda AZV (5001905) na sljedeći način:
Postojeći kod... IF STRLEN(CompanyNo) <>8 THEN ERROR(Text1105400137,BankAccount."No."); END; Account := BankAccount."Bank Account No."; IF STRLEN(Account) = 0 THEN ...Zamjenski kôd
... IF STRLEN(CompanyNo) <>8 THEN ERROR(Text1105400137,BankAccount."No."); // Add the following lines. END ELSE BEGIN IF CompanyNo = '' THEN CompanyNo := PADSTR('',8,'0'); // End of the added lines. END; Account := BankAccount."Bank Account No."; IF STRLEN(Account) = 0 THEN ...Promijenite kod u funkciji CreateRegistration u jedinici koda AZV (5001905) na sljedeći način:
Delete the local variable InfoTransitUnsalableInvL: Code[1]Postojeći kod
... PassagingTransitL := 'N'; BrokenTransitL := 'N'; // Delete the following line. InfoTransitUnsalableInvL := 'N'; InfoTransitUnsalableForeignL := 'N'; IF RegistrationSet."Passaging Transit" THEN PassagingTransitL := 'J'; IF RegistrationSet."Broken Transit" THEN BEGIN BrokenTransitL := 'J'; RegistrationSet.TESTFIELD("Add. Information Transit"); Transit := COPYSTR(Transit,1,62) + PADSTR(CheckFormat(FORMAT(UPPERCASE(RegistrationSet."Add. Information Transit"),40)),40,' '); END; // Delete the following lines. IF RegistrationSet."Info Transit unsalable Inv" THEN InfoTransitUnsalableInvL := 'J'; // End of the deleted lines. IF RegistrationSet."Info Transit unsalable forei." THEN InfoTransitUnsalableForeignL := 'J'; Z := Text1105400025 + PADSTR(RegistrationSet."Itemname Trading Goods",27,' ') + NumToString(RegistrationSet."Capitel No. Goods",2,'0') + PADSTR('',7,'0') + PADSTR(BankCountries."Bank Country Short Name",7,' ') + PADSTR(RegistrationSet."Country Code",3,' ') + NumToString(FORMAT(ROUND(MAmount,1,'<'),12,1),12,'0') + PassagingTransitL + BrokenTransitL + // Delete the following line. InfoTransitUnsalableInvL + InfoTransitUnsalableForeignL + Transit; Exportfile.SEEK(Exportfile.POS-2); ...Zamjenski kôd
... PassagingTransitL := 'N'; BrokenTransitL := 'N'; InfoTransitUnsalableForeignL := 'N'; IF RegistrationSet."Passaging Transit" THEN PassagingTransitL := 'J'; IF RegistrationSet."Broken Transit" THEN BEGIN BrokenTransitL := 'J'; RegistrationSet.TESTFIELD("Add. Information Transit"); Transit := COPYSTR(Transit,1,62) + PADSTR(CheckFormat(FORMAT(UPPERCASE(RegistrationSet."Add. Information Transit"),40)),40,' '); END; IF RegistrationSet."Info Transit unsalable forei." THEN InfoTransitUnsalableForeignL := 'J'; Z := Text1105400025 + PADSTR(RegistrationSet."Itemname Trading Goods",27,' ') + NumToString(RegistrationSet."Capitel No. Goods",2,'0') + PADSTR('',7,'0') + PADSTR(BankCountries."Bank Country Short Name",7,' ') + PADSTR(RegistrationSet."Country Code",3,' ') + NumToString(FORMAT(ROUND(MAmount,1,'<'),12,1),12,'0') + PassagingTransitL + BrokenTransitL + // Add the following line. PADSTR('',1,' ') + InfoTransitUnsalableForeignL + Transit; Exportfile.SEEK(Exportfile.POS-2); ...Kod u funkciji CheckFormat u jedinici koda AZV (5001905) promijenite na sljedeći način:
Postojeći kod... WHILE STRPOS(FieldContent,'š') >0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'š')-1) + Text1105400035 + COPYSTR(FieldContent,STRPOS(FieldContent,'š')+1,MAXSTRLEN(FieldContent)); CheckRec := DELCHR(FieldContent,'=',Text1105400036); ...Zamjenski kôd
... WHILE STRPOS(FieldContent,'š') >0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'š')-1) + Text1105400035 + COPYSTR(FieldContent,STRPOS(FieldContent,'š')+1,MAXSTRLEN(FieldContent)); // Add the following lines. WHILE STRPOS(FieldContent,'&') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'&')-1) + ' ' + COPYSTR(FieldContent,STRPOS(FieldContent,'&')+1,MAXSTRLEN(FieldContent)); WHILE STRPOS(FieldContent,'$') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'$')-1) + ' ' + COPYSTR(FieldContent,STRPOS(FieldContent,'$')+1,MAXSTRLEN(FieldContent)); WHILE STRPOS(FieldContent,'*') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'*')-1) + ' ' + COPYSTR(FieldContent,STRPOS(FieldContent,'*')+1,MAXSTRLEN(FieldContent)); WHILE STRPOS(FieldContent,'%') > 0 DO FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'%')-1) + ' ' + COPYSTR(FieldContent,STRPOS(FieldContent,'%')+1,MAXSTRLEN(FieldContent)); //End of the added lines. CheckRec := DELCHR(FieldContent,'=',Text1105400036); ...Promijenite definiciju parametra pogona u funkciji CheckPaymFile u jedinici koda AZV (5001905) na sljedeći način:
Stara definicija: Dtaus: Pogon: Kod[150];
Nova definicija: Dtaus: Pogon: Kod[250];
Promijenite kod u funkciji TestCompanyInfo u jedinici koda AZV (5001905) na sljedeći način:
Postojeći kod... CompanyInfo.GET; // Delete the following line. CompName := CheckFormat(FORMAT(UPPERCASE(CompanyInfo.Name),27)); BankAccount.GET(Bacc); "Bank Code" := BankAccount."Bank Branch No."; IF STRLEN("Bank Code") = 0 THEN ...Zamjenski kôd
... CompanyInfo.GET; // Add the following line. CompName := COPYSTR(CheckFormat(FORMAT(UPPERCASE(CompanyInfo.Name),27)),1,MAXSTRLEN(CompName)); BankAccount.GET(Bacc); "Bank Code" := BankAccount."Bank Branch No."; IF STRLEN("Bank Code") = 0 THEN ...
Preduvjeti
Da biste primijenili ovaj hitni popravak, morate imati instaliran jedan od sljedećih proizvoda:
- Njemačka verzija sustava Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
- Njemačka verzija sustava Microsoft Dynamics NAV 2009 R2
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“.
Reference
VSTF DynamicsNAV SE: 245257; 254071; 277428
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 .