Izveidojot ārvalstu maksājumu failu Microsoft Dynamics NAV vācu versijā, kurā iekļauti pievienojumprogrammas Maksājumi, rodas nepareizas eksportēšanas problēmas

Attiecas uz
Dynamics NAV 2009 Service Pack 1 Dynamics NAV 2009 R2

Šis raksts attiecas uz Microsoft Dynamics NAV vācu (de) valodas lokalizācijai.

Pazīmes

Microsoft Dynamics NAV vācu versijā, kurā iekļauti papildu Maksājumi, izveidojot ārvalstu maksājumu failu, rodas šādas nepareizas eksportēšanas problēmas:

  • Pieņemsim, ka izveidojat ārvalstu maksājumu failu, kuram ir maksas konts. Ja maksājumu konts atšķiras no maksājumam izmantotā bankas konta, ievērojat, ka maksājumu failā ir ierakstīts nepareizs bankas konta numurs.
  • Lauks V-Satz (10) failā negaidīti tiek aizpildīts ar "N". Jūs sagaidāt, ka dati laukā būs tukši.
  • Lauks T-Satz (10a) failā negaidīti tiek aizpildīts ar "DE". Jūs sagaidāt, lai laukā būtu "ASV", jo piegādātājs ir no ASV un tikai bankas konts atrodas DE.

Šī problēma rodas šādos produktos:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) vācu valodas versija
  • Microsoft Dynamics NAV 2009 R2 vācu valodas versija

Risinājums

Informācija par labojumfailu

Atbalstīts labojumfails tagad ir pieejams no Microsoft. Tomēr tas ir paredzēts tikai šajā rakstā aprakstītās problēmas novēršanai. Lietojiet to tikai sistēmām, kurās rodas šī konkrētā problēma. Šim labojumfailam var tikt veiktas papildu pārbaudes. Tāpēc, ja šī problēma jūs nopietni neietekmē, ieteicams gaidīt nākamo Microsoft Dynamics NAV 2009 servisa pakotni vai nākamo Microsoft Dynamics NAV versiju, kurā ir šis labojumfails.

Piezīme Īpašos gadījumos maksa, kas parasti tiek piemērota par atbalsta zvaniem, var tikt atcelta, ja Microsoft Dynamics un saistīto produktu tehniskā atbalsta speciālists nosaka, ka problēma tiks novērsta, instalējot noteiktu atjauninājumu. Parasti atbalsta izmaksas attiecas uz jautājumiem par papildu atbalstu un problēmām, kas neskar specifisko atjauninājumu apspriešanu.

            
          

Informācija par instalāciju

Microsoft sniedz programmēšanas piemērus tikai ilustrācijai, bez tiešas vai netiešas garantijas. Tas ietver, bet neaprobežojas ar netiešām garantijām par piemērotību pārdošanai vai piemērotībai noteiktam mērķim. Šajā rakstā tiek pieņemts, ka pārzināt demonstrējamo programmēšanas valodu un rīkus, kas tiek izmantoti procedūru izveidei un atkļūdošanai. Microsoft atbalsta inženieri var palīdzēt izskaidrot konkrētās procedūras funkcionalitāti, bet viņi šos piemērus nemodificēs, lai nodrošinātu papildu funkcionalitāti vai veidotu procedūras, kas atbilst jūsu specifiskajām prasībām.

Piezīme Pirms šī labojumfaila instalēšanas pārliecinieties, vai visi Microsoft Navision klienta lietotāji ir atteikušies no sistēmas. Tas ietver Microsoft Navision lietojumprogrammu pakalpojumu (NAS) klienta lietotājus. Jūs esat vienīgais klienta lietotājs, kurš ir pieteicies, ieviešot šo labojumfailu.

Lai ieviestu šo labojumfailu, ir nepieciešama izstrādātāja licence.

Iesakām lietotāja kontam logā Windows pieteikšanās vai datu bāzes pieteikšanās logā piešķirt lomas ID "SUPER". Ja lietotāja kontam nevar piešķirt "SUPER" lomas ID, jums ir jāpārbauda, vai lietotāja kontam ir šādas atļaujas:

  • Modificēt objektu, kuru mainīsit.
  • Izpildes atļauja sistēmas objekta ID 5210 un sistēmas objekta ID 9015.

                
Piezīme. Jums nav tiesību uz datu krātuvēm, ja vien jums nav jāveic datu labošana.

Koda izmaiņas

Piezīme Pirms labojumu lietošanas ražošanas datoros vienmēr pārbaudiet koda labojumus kontrolētā vidē.
Lai atrisinātu šo problēmu, veiciet tālāk norādītās darbības.

  1. Mainiet kodu funkcijā Open Exportfile AZV koda vienībā (5001905) šādi:
    Mainiet globālā mainīgā definīciju šādi

    • Vecā definīcija: Dtaus: Kods[150];

    • Jauna definīcija: Dtaus: Kods[260];

    Esošais kods

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

    Aizstāšanas kods

    ...
       CompanyInfo.GET;
    // Add the following line. 
      NameOfCompany := COPYSTR(CheckFormat(FORMAT(UPPERCASE(CompanyInfo.Name),27)),1,MAXSTRLEN(NameOfCompany));
    
      FormatAddr.BankAcc(AddrArray,BankAccount);
    ...
    
  2. Mainiet funkcijas FormatBankAcc kodu AZV koda vienībā (5001905) šādi:
    Izveidojiet jaunu lokālo mainīgo BankAccount3 šādi:

    BankAccount3@ : Ieraksts 270

    Esošais kods

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

    Aizstāšanas kods

    ...
       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. Mainiet kodu funkcijas VendBankFormat AZV koda vienībā (5001905) šādi:
    Esošais kods

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

    Aizstāšanas kods

    ...
             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. Mainiet kodu funkcijā PaymFileHeader AZV koda vienībā (5001905) šādi:
    Esošais kods

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

    Aizstāšanas kods

    ...
           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. Mainiet kodu funkcijā CreateRegistration AZV koda vienībā (5001905) šādi:
    Izdzēsiet lokālo mainīgo InfoTransitUnsalableInvL: Kods[1]

    Esošais kods

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

    Aizstāšanas kods

    ...
        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. Mainiet kodu funkcijā CheckFormat AZV koda vienībā (5001905) šādi:
    Esošais kods

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

    Aizstāšanas kods

    ...
         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. Mainiet diska parametra definīciju funkcijā CheckPaymFile AZV koda vienībā (5001905) šādi:

    • Vecā definīcija: Dtaus: Disks: Kods [150];

    • Jauna definīcija: Dtaus: Disks: Kods[250];

  8. Mainiet kodu funkcijas TestCompanyInfo AZV koda vienībā (5001905) šādi:
    Esošais kods

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

    Aizstāšanas kods

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

          

Priekšnosacījumi

Lai lietotu šo labojumfailu, jābūt instalētam vienam no tālāk norādītajiem produktiem:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) vācu valodas versija
  • Microsoft Dynamics NAV 2009 R2 vācu valodas versija

                
              

Noņemšanas informācija

Šo labojumfailu nevar noņemt.

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".

Atsauces

VSTF DynamicsNAV SE: 245257; 254071; 277428

Piezīme Šis ir "ĀTRĀS PUBLICĒŠANAS" raksts, kas izveidots tieši Microsoft atbalsta organizācijā. Šeit ietvertā informācija tiek sniegta tāda, kāda tā ir, reaģējot uz jauniem jautājumiem. Ātrās pieejamības rezultātā materiālos var būt drukas kļūdas, un tos var pārskatīt jebkurā laikā bez iepriekšēja brīdinājuma. Citus apsvērumus skatiet lietošanas nosacījumos .