Pri ustvarjanju datoteke s tujimi plačili v nemški različici programa Microsoft Dynamics NAV z vključenim dodatkom Plačila naletite na težave z nepravilnim izvozom

Velja za
Dynamics NAV 2009 Service Pack 1 Dynamics NAV 2009 R2

Ta članek velja za Microsoft Dynamics NAV za nemške (de) jezikovne nastavitve.

Znaki

V nemški različici programa Microsoft Dynamics NAV z vključenim dodatkom Plačila pri ustvarjanju datoteke za plačila v tujini naletite na te nepravilne težave pri izvozu:

  • Predpostavimo, da ustvarite datoteko s plačili v tujini, ki ima račun bremenitev. Če se račun bremenitev razlikuje od bančnega računa, ki je bil uporabljen za plačilo, opazite, da je v datoteko s plačilom zapisana napačna številka bančnega računa.
  • Polje V-Satz (10) v datoteki se nepričakovano zapolni z »N«. Pričakujete, da bodo podatki v polju prazni.
  • Polje T-Satz (10a) v datoteki se nepričakovano zapolni z »DE«. Pričakujete, da bodo podatki v polju »ZDA«, ker je prodajalec iz ZDA in je samo bančni račun v DE.

Ta težava se pojavi v teh izdelkih:

  • Nemška različica servisnega paketa SP1 za Microsoft Dynamics NAV 2009
  • Nemška različica programa Microsoft Dynamics NAV 2009 R2

Rešitev

Informacije o sprotnem popravku

Podprt sprotni popravek je zdaj na voljo pri Microsoftu. Vendar pa je namenjen le odpravljanju težave, ki je opisana v tem članku. Uporabite ga samo za sisteme, ki imajo to težavo. Ta sprotni popravek bo morda dodatno preučen. Če vas ta težava ne prizadene, priporočamo, da počakate na naslednji servisni paket za Microsoft Dynamics NAV 2009 ali naslednjo različico storitve Microsoft Dynamics NAV, ki vsebuje ta sprotni popravek.

Opomba V posebnih primerih se lahko stroški, ki običajno nastanejo za klice podpore, prekličejo, če strokovnjak za tehnično podporo za Microsoft Dynamics in sorodne izdelke ugotovi, da bo določena posodobitev odpravila vašo težavo. Običajni stroški podpore bodo veljali za dodatna vprašanja o podpori in težave, ki ne izpolnjujejo pogojev za določeno zadevno posodobitev.

            
          

Informacije o namestitvi

Microsoft ponuja primere programiranja samo za ponazoritev, brez izrecnega ali implicitnega jamstva. To vključuje, vendar ni omejeno na, implicitna jamstva primernosti za prodajo ali primernost za določen namen. V tem članku je predvideno, da ste seznanjeni s programskim jezikom, ki je prikazan, in z orodji, ki se uporabljajo za ustvarjanje in odpravljanje napak v postopkih. Microsoftovi inženirji za podporo vam lahko pomagajo razložiti funkcionalnost določenega postopka, vendar teh primerov ne bodo spremenili, da bi zagotovili dodano funkcionalnost ali ustvarili postopke, ki ustrezajo vašim posebnim zahtevam.

Opomba Preden namestite ta sprotni popravek, preverite, ali so vsi uporabniki odjemalca Microsoft Navision odjavljeni iz sistema. To vključuje uporabnike odjemalcev Microsoft Navision Application Services (NAS). Pri uvedbi tega sprotnega popravka bi morali biti edini uporabnik odjemalca, ki je prijavljen.

Če želite izvesti ta sprotni popravek, morate imeti licenco za razvijalce.

Priporočamo, da se uporabniškemu računu v oknu »Prijave v sistem Windows« ali v oknu »Prijave v zbirko podatkov« dodeli ID vloge »SUPER«. Če uporabniškemu računu ni mogoče dodeliti ID-ja vloge »SUPER«, morate preveriti, ali ima uporabniški račun ta dovoljenja:

  • Dovoljenje »Spremeni« za predmet, ki ga boste spremenili.
  • Dovoljenje za izvajanje za predmet ID sistemskega objekta 5210 in za predmet ID sistemskega objekta 9015.

                
Opomba Ni vam treba imeti pravic do shramb podatkov, razen če morate opraviti popravilo podatkov.

Spremembe kode

Opomba Popravke kode vedno preskusite v nadzorovanem okolju, preden jih uporabite v proizvodnih računalnikih.
Če želite odpraviti to težavo, sledite tem korakom:

  1. Spremenite kodo v funkciji Odpri datoteko izvoza v kodni enoti AZV (5001905) na naslednji način:
    Spremenite definicijo globalne spremenljivke, kot sledi

    • Stara definicija: Dtaus: Koda[150];

    • Nova opredelitev: Dtaus: Koda[260];

    Obstoječa koda

    ...
         CompanyInfo.GET;
    // Delete the following line.  
      NameOfCompany := CheckFormat(FORMAT(UPPERCASE(CompanyInfo.Name),27));
    
      FormatAddr.BankAcc(AddrArray,BankAccount); 
    ...
    

    Nadomestna koda

    ...
       CompanyInfo.GET;
    // Add the following line. 
      NameOfCompany := COPYSTR(CheckFormat(FORMAT(UPPERCASE(CompanyInfo.Name),27)),1,MAXSTRLEN(NameOfCompany));
    
      FormatAddr.BankAcc(AddrArray,BankAccount);
    ...
    
  2. Kodo v funkciji FormatBankAcc v kodni enoti AZV (5001905) spremenite na naslednji način:
    Ustvarite novo lokalno spremenljivko BankAccount3, kot sledi:

    BankAccount3@ : Rekord 270

    Obstoječa koda

    ...
       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; 
    ...
    

    Nadomestna koda

    ...
       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;
    ...
    
  3. Kodo v funkciji VendBankFormat v kodni enoti AZV (5001905) spremenite na naslednji način:
    Obstoječa koda

    ...
            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,' ')));  
    ...
    

    Nadomestna koda

    ...
             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,' ')));
    ...
    
  4. Kodo v funkciji PaymFileHeader v kodni enoti AZV (5001905) spremenite na naslednji način:
    Obstoječa koda

    ...
         IF STRLEN(CompanyNo) <>8 THEN
          ERROR(Text1105400137,BankAccount."No.");
      END;
    
      Account := BankAccount."Bank Account No.";
      IF STRLEN(Account) = 0 THEN  
    ...
    

    Nadomestna koda

    ...
           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
    ...
    
  5. Spremenite kodo v funkciji CreateRegistration v kodni enoti AZV (5001905) na naslednji način:
    Izbriši lokalno spremenljivko InfoTransitUnsalableInvL: Code[1]

    Obstoječa koda

    ...
           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);
    ...
    

    Nadomestna koda

    ...
        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);  
    ...
    
  6. Kodo v funkciji CheckFormat v kodni enoti AZV (5001905) spremenite na naslednji način:
    Obstoječa koda

    ...
        WHILE STRPOS(FieldContent,'š') >0 DO
        FieldContent := COPYSTR(FieldContent,1,STRPOS(FieldContent,'š')-1) + Text1105400035 +
                      COPYSTR(FieldContent,STRPOS(FieldContent,'š')+1,MAXSTRLEN(FieldContent));
    
      CheckRec := DELCHR(FieldContent,'=',Text1105400036); 
    ...
    

    Nadomestna koda

    ...
         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);
    ...
    
  7. Spremenite definicijo parametra Drive v funkciji CheckPaymFile v kodni enoti AZV (5001905) na naslednji način:

    • Stara definicija: Dtaus: pogon: koda[150];

    • Nova definicija: Dtaus: pogon: koda[250];

  8. Kodo v funkciji TestCompanyInfo v kodni enoti AZV (5001905) spremenite na naslednji način:
    Obstoječa koda

    ...
        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 
    ...
    

    Nadomestna koda

    ...
       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  
    ...
    

          

Pogoji

Če želite uporabiti ta sprotni popravek, morate imeti nameščenega enega od teh izdelkov:

  • Nemška različica servisnega paketa SP1 za Microsoft Dynamics NAV 2009
  • Nemška različica programa Microsoft Dynamics NAV 2009 R2

                
              

Podatki o odstranitvi

Tega sprotnega popravka ne morete odstraniti.

Stanje

Microsoft je potrdil, da gre za težavo v Microsoftovih izdelkih, ki so navedeni v razdelku »Velja za«.

Sklici

VSTF DynamicsNAV SE: 245257; 254071; 277428

Opomba To je članek »FAST PUBLISH«, ustvarjen neposredno v Microsoftovi organizaciji za podporo. Informacije, ki jih vsebuje ta dokument, so na voljo kot odgovor na nastajajoča vprašanja. Zaradi hitrosti dajanja na voljo lahko gradivo vsebuje tipografske napake in jih je mogoče kadar koli brez predhodnega obvestila revidirati. Za druge pomisleke glejte Pogoje uporabe .