O valor de NumberOfEntries arquivadas em um arquivo criado do SAF-T é incorreto quando você cria o arquivo SAF-T na versão em português do Microsoft Dynamics NAV

Traduções deste artigo Traduções deste artigo
ID do artigo: 2620645 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo se aplica ao Microsoft Dynamics NAV para a localidade do idioma português (pt).
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Suponha que você crie um arquivo de SAF-T na versão em português do Microsoft Dynamics NAV. Quando você verifica o arquivo. XML criado, observe que o valor do NumberOfEntries arquivado está incorreto. Você espera que o valor a ser o mesmo que o número se as transações no banco de dados.
Esse problema ocorre nos seguintes produtos:
  • A versão em português do Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • A versão em português do Microsoft Dynamics NAV 2009 R2
  • A versão em português do Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)

Resolução

Informações sobre o hotfix

Um hotfix compatível foi disponibilizado pela Microsoft. No entanto, ela é destinada apenas para corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Este hotfix pode receber testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde o próximo service pack do Microsoft Dynamics NAV 2009 ou a próxima versão do Microsoft Dynamics NAV que contém esse hotfix.

Observação Em alguns casos, taxas cobradas para suporte a chamadas podem ser canceladas se um profissional de suporte técnico do Microsoft Dynamics e produtos relacionados determina que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não se qualificam à atualização específica em questão.



Informações sobre a instalação

A Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação um propósito específico. Este artigo presume que você esteja familiarizado com a linguagem de programação que está sendo demonstrada e com as ferramentas usadas para criar e depurar procedimentos. Engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender a necessidades específicas.

Observação Antes de instalar esse hotfix, verifique se todos os usuários do Microsoft Navision cliente fez logoff do sistema. Isso inclui o Microsoft Navision Application Server (NAS) os usuários do cliente. Você deve ser o único usuário do cliente que está conectado ao implementar esse hotfix.

Para implementar esse hotfix, você deve ter uma licença de desenvolvedor.

Recomendamos que a conta de usuário na janela Logins do Windows ou na janela de Logins de banco de dados seja atribuída a ID de função "SUPER". Se a conta de usuário não pode ser atribuída a ID de função "SUPER", você deve verificar se a conta de usuário tem as seguintes permissões:
  • A permissão Modificar para o objeto que você estará alterando.
  • A permissão de execução para o ID de objeto do sistema 5210 objeto e para o ID de objeto de sistema 9015 objeto.


Observação Não é necessário ter direitos para os armazenamentos de dados, a menos que você precise executar o reparo de dados.

Alterações de código

Observação Sempre teste código corrige em um ambiente controlado antes de aplicar as correções para os computadores de produção.
Para resolver esse problema, siga estas etapas:
  1. Altere o código a Elementos no SAF-T PT XMLPort (13301) da seguinte maneira:

    Código existente
    ...
            { [{2FBD739B-4063-4410-80DA-15187CE38CB6}];5 ;CreditAmount        ;Element ;Text    ;
                                                        VariableName=EntriesSalesLnCreditAmount }
      
          { [{158561B4-B3C1-4D40-9FE8-2260247EFFE4}];1 ;SourceDocuments     ;Element ;Text    ;
                                                        Export::OnBeforePassVariable=BEGIN
                                                                                       IF TotalDocs = 0 THEN 
    ...
    Código de substituição
    ...
           { [{2FBD739B-4063-4410-80DA-15187CE38CB6}];5 ;CreditAmount        ;Element ;Text    ;
                                                        VariableName=EntriesSalesLnCreditAmount }
      
    // Add the following lines.
         { [{3CD38B38-F1FA-494A-9863-2B919BF4B14B}];2 ;Journal             ;Element ;Table   ;
                                                       VariableName=EntriesBlankSourceCode;
                                                       SourceTable=Table2000000026;
                                                       Export::OnPreXMLItem=BEGIN
                                                                              EntriesBlankSourceCode.SETRANGE(Number,1,1);
                                                                              Window.UPDATE(1,Text1110008);
                                                                            END;
     
                                                       Export::OnAfterGetRecord=BEGIN
                                                                                  IF NOT CheckGLRegBlankSourceCode THEN
                                                                                    currXMLport.SKIP;
     
                                                                                  ClearTempRec;
     
                                                                                  REPEAT
                                                                                    GetGLEntries;
                                                                                  UNTIL TempGLReg.NEXT = 0;
     
                                                                                  EntriesBlankJnlID := 'VAZIO';
                                                                                  EntriesBlankJnlDescription := 'VAZIO';
                                                                                  Window.UPDATE(2,'');
                                                                                END;
                                                                                 }
     
         { [{4829023A-4C43-4746-B15E-55BE1C8A77BC}];3 ;JournalID           ;Element ;Text    ;
                                                       VariableName=EntriesBlankJnlID }
     
         { [{AC925688-8EBD-4477-BE49-731F4647CF75}];3 ;Description         ;Element ;Text    ;
                                                       VariableName=EntriesBlankJnlDescription }
     
         { [{EA486FCE-6103-4895-AE4A-A970D1AA69E5}];3 ;Transaction         ;Element ;Table   ;
                                                       VariableName=EntriesBlankTr;
                                                       SourceTable=Table2000000026;
                                                       Export::OnPreXMLItem=BEGIN
                                                                              TempGLEntry.RESET;
                                                                              EntriesBlankTr.SETRANGE(Number,1,TempGLEntry.COUNT);
                                                                              TempGLEntry.FINDFIRST;
                                                                            END;
     
                                                       Export::OnAfterGetRecord=BEGIN
                                                                                  ApplyFilters;
                                                                                  EntriesBlankTrID := FORMAT(FORMAT(TempGLEntry."Posting Date",0,9) + ' ' + EntriesBlankJnlID + ' ' + TempGLEntry."Document No.");
                                                                                  EntriesBlankDocArchivalNumber := TempGLEntry."Document No.";
                                                                                  EntriesBlankTrPeriod := FORMAT(GetPeriod(TempGLEntry."Posting Date"),0,9);
                                                                                  EntriesBlankTrDate := FORMAT(NORMALDATE(TempGLEntry."Posting Date"),0,9);
                                                                                  IF CLOSINGDATE(TempGLEntry."Posting Date") = TempGLEntry."Posting Date" THEN
                                                                                    EntriesBlankTransactionType := 'A'
                                                                                  ELSE
                                                                                    EntriesBlankTransactionType := 'N';
                                                                                  EntriesBlankTrDescription := EntriesBlankJnlDescription;
                                                                                  EntriesBlankGLPostingDate := GetGLentryCreationDateTime(TempGLEntry."Entry No.");
                                                                                  TempGLEntry.NEXT;
                                                                                END;
                                                                                 }
     
         { [{1A2E1328-2281-4276-B7F2-93032558BF4D}];4 ;TransactionID       ;Element ;Text    ;
                                                       VariableName=EntriesBlankTrID }
     
         { [{7238FAE0-4177-49F2-88D7-322E3479BEDF}];4 ;Period              ;Element ;Text    ;
                                                       VariableName=EntriesBlankTrPeriod }
     
         { [{CB2AE9CA-4533-4F21-A5F0-9DB125CCE6A7}];4 ;TransactionDate     ;Element ;Text    ;
                                                       VariableName=EntriesBlankTrDate }
     
         { [{06565DE9-009E-4CD1-9567-F869ADD6AF09}];4 ;Description         ;Element ;Text    ;
                                                       VariableName=EntriesBlankTrDescription }
     
         { [{FC7AF546-FDA6-4409-9A11-E8C3F08B0245}];4 ;DocArchivalNumber   ;Element ;Text    ;
                                                       VariableName=EntriesBlankDocArchivalNumber }
     
         { [{0D9858E8-71B7-4730-ACD3-208CB18E55D5}];4 ;TransactionType     ;Element ;Text    ;
                                                       VariableName=EntriesBlankTransactionType }
     
         { [{7A0CC2BE-C3C8-4EDA-A616-C17000B3631C}];4 ;GLPostingDate       ;Element ;Text    ;
                                                       VariableName=EntriesBlankGLPostingDate }
     
         { [{F7668B87-49B8-4CB6-8316-D1440A5E3ABA}];4 ;Line                ;Element ;Table   ;
                                                       VariableName=EntriesLinedBlankDbtAmt;
                                                       SourceTable=Table2000000026;
                                                       Export::OnPreXMLItem=BEGIN
                                                                              TempGLEntry2.SETFILTER("Debit Amount",'<>% 1',0);
                                                                              IF NOT TempGLEntry2.FINDFIRST THEN
                                                                                currXMLport.BREAK;
                                                                              EntriesLinedBlankDbtAmt.SETRANGE(Number,1,TempGLEntry2.COUNT);
                                                                            END;
     
                                                       Export::OnAfterGetRecord=BEGIN
                                                                                  EntriesLnBlankDbtAmtRecordID := FORMAT(TempGLEntry2."Entry No.",0,9);
                                                                                  EntriesLnBlankDbtAmtAccountID := TempGLEntry2."G/L Account No.";
                                                                                  EntriesLnBlankDbtAmtSysEntDate := GetGLentryCreationDateTime(TempGLEntry2."Entry No.");
                                                                                  EntriesLnBlankDbtAmtDescr := TempGLEntry2.Description;
                                                                                  EntriesLnBlankDebitAmount := FORMAT(TempGLEntry2."Debit Amount",0,9);
                                                                                  TempGLEntry2.NEXT;
                                                                                END;
                                                                                 }
     
         { [{455ABAA5-310A-4999-B349-FF32D14A1968}];5 ;RecordID            ;Element ;Text    ;
                                                       VariableName=EntriesLnBlankDbtAmtRecordID }
     
         { [{82412AE1-E33F-4DC9-837E-8E7AAEEFE2ED}];5 ;AccountID           ;Element ;Text    ;
                                                       VariableName=EntriesLnBlankDbtAmtAccountID }
     
         { [{448EE384-AF3E-4A02-AC66-373591BC28CD}];5 ;SystemEntryDate     ;Element ;Text    ;
                                                       VariableName=EntriesLnBlankDbtAmtSysEntDate }
     
         { [{9F8171F0-A12E-49B6-A00D-93745204EB23}];5 ;Description         ;Element ;Text    ;
                                                       VariableName=EntriesLnBlankDbtAmtDescr }
     
         { [{1BD67E80-3CC3-41DF-86B7-7A9FF3514B36}];5 ;DebitAmount         ;Element ;Text    ;
                                                       VariableName=EntriesLnBlankDebitAmount }
     
         { [{35FC60AD-0217-4D95-978A-FFAD08D66558}];4 ;Line                ;Element ;Table   ;
                                                       VariableName=EntriesLinedBlankCrAmt;
                                                       SourceTable=Table2000000026;
                                                       Export::OnPreXMLItem=BEGIN
                                                                              TempGLEntry2.SETRANGE("Debit Amount");
                                                                              TempGLEntry2.SETFILTER("Credit Amount",' <>%1',0);
                                                                              IF NOT TempGLEntry2.FINDFIRST THEN
                                                                                currXMLport.BREAK;
                                                                              EntriesLinedBlankCrAmt.SETRANGE(Number,1,TempGLEntry2.COUNT);
                                                                            END;
     
                                                       Export::OnAfterGetRecord=BEGIN
                                                                                  EntriesLnBlankCrAmtRecordID := FORMAT(TempGLEntry2."Entry No.",0,9);
                                                                                  EntriesLnBlankCrAmtAccountID := TempGLEntry2."G/L Account No.";
                                                                                  EntriesLnBlankCrAmtSysEntrDate := GetGLentryCreationDateTime(TempGLEntry2."Entry No.");
                                                                                  EntriesLnBlankCrAmtDescr := TempGLEntry2.Description;
                                                                                  EntriesLnBlankCreditAmount := FORMAT(TempGLEntry2."Credit Amount",0,9);
                                                                                  TempGLEntry2.NEXT;
                                                                                END;
                                                                                 }
     
         { [{42970CEB-47B1-4737-9067-5D8310FCFA39}];5 ;RecordID            ;Element ;Text    ;
                                                       VariableName=EntriesLnBlankCrAmtRecordID }
     
         { [{C236B36C-53F0-4FD1-ABCF-28828E216114}];5 ;AccountID           ;Element ;Text    ;
                                                       VariableName=EntriesLnBlankCrAmtAccountID }
     
         { [{AEC885C8-FCE9-4C04-BBFB-B1A6B7540DDA}];5 ;SystemEntryDate     ;Element ;Text    ;
                                                       VariableName=EntriesLnBlankCrAmtSysEntrDate }
     
         { [{D2F54DEF-3BF6-4F7F-BCB9-384A96BE514D}];5 ;Description         ;Element ;Text    ;
                                                       VariableName=EntriesLnBlankCrAmtDescr }
     
         { [{F1DA085A-9AC4-4DB4-AC54-DA77AFE7CCAD}];5 ;CreditAmount        ;Element ;Text    ;
                                                       VariableName=EntriesLnBlankCreditAmount }
    // End of the added lines.
     
          { [{158561B4-B3C1-4D40-9FE8-2260247EFFE4}];1 ;SourceDocuments     ;Element ;Text    ;
                                                        Export::OnBeforePassVariable=BEGIN
                                                                                       IF TotalDocs = 0 THEN
    ...
  2. Altere o código a SetData funcionar a SAF-T PT XMLPort (13301) da seguinte maneira:

    Código existente
    ...
              GLEntry.RESET;
            // No. of transactions
            GetOpenGLRegister;
    // Delete the following lines.
           IF SourceCode.FINDSET THEN
             REPEAT
               IF CheckGLReg THEN
                 REPEAT
                   TempGLEntry3.DELETEALL;
                   GLEntry2.RESET;
                   GLEntry2.SETRANGE("Entry No.",TempGLReg."From Entry No.",TempGLReg."To Entry No.");
                   IF GLEntry2.FINDSET THEN
                     REPEAT
                       TempGLEntry3.RESET;
                       TempGLEntry3.SETCURRENTKEY("Document No.","Posting Date");
                       TempGLEntry3.SETRANGE("Document No.",GLEntry2."Document No.");
                       TempGLEntry3.SETRANGE("Posting Date",GLEntry2."Posting Date");
                       IF NOT TempGLEntry3.FINDFIRST THEN BEGIN
                         NoOfTransactions += 1;
                         TempGLEntry3.INIT;
                         TempGLEntry3.TRANSFERFIELDS(GLEntry2);
                         TempGLEntry3.INSERT;
                       END;
                     UNTIL GLEntry2.NEXT=0;
                 UNTIL TempGLReg.NEXT = 0;
             UNTIL SourceCode.NEXT = 0;
    // End of the deleted lines.
     
            // Sales Invoice Docs
            SalesInvoice.RESET;
            SalesInvoice.SETFILTER("Posting Date",'%1..%2',StartDate3,EndDate2);
    ...
    Código de substituição
    ...
              GLEntry.RESET;
            // No. of transactions
            GetOpenGLRegister;
    // Add the following lines.
           TempGLEntry3.DELETEALL;
           IF SourceCode.FINDSET THEN
             REPEAT
               IF CheckGLReg THEN
                 REPEAT
                   CalcNoOfTransactions(TempGLReg."From Entry No.",TempGLReg."To Entry No.",TempGLEntry3);
                 UNTIL TempGLReg.NEXT = 0;
             UNTIL SourceCode.NEXT = 0;
     
           IF CheckGLRegBlankSourceCode THEN
             REPEAT
               CalcNoOfTransactions(TempGLReg."From Entry No.",TempGLReg."To Entry No.",TempGLEntry3);
             UNTIL TempGLReg.NEXT = 0;
    // End of the added lines.
    
            // Sales Invoice Docs
            SalesInvoice.RESET;
            SalesInvoice.SETFILTER("Posting Date",'%1..%2',StartDate3,EndDate2);
    ...
  3. Altere o código a Documentação no SAF-T PT XMLPort (13301) da seguinte maneira:

    Código existente
    ...
           EXIT(FORMAT(DateParam,0,9) + 'T' + FORMAT(TimeParam,0,'<Hours24,2><Filler Character,0>:<Minutes,2>:<Seconds,2>'));
          END;
      
    // Delete the following lines.
         BEGIN
         END.
       }
     }
    // End of the deleted lines.
    ...
    Código de substituição
    ...
           EXIT(FORMAT(DateParam,0,9) + 'T' + FORMAT(TimeParam,0,'<Hours24,2><Filler Character,0>:<Minutes,2>:<Seconds,2>'));
          END;
    // Add the following lines.
         LOCAL PROCEDURE CalcNoOfTransactions@1110021(FromEntryNo@1110000 : Integer;ToEntryNo@1110001 : Integer;VAR TempGLEntry@1110002 : Record 17);
         VAR
           GLEntry@1110003 : Record 17;
         BEGIN
           GLEntry.RESET;
           GLEntry.SETRANGE("Entry No.",TempGLReg."From Entry No.",TempGLReg."To Entry No.");
           IF GLEntry.FINDSET THEN
             REPEAT
               TempGLEntry.RESET;
               TempGLEntry.SETCURRENTKEY("Document No.","Posting Date");
               TempGLEntry.SETRANGE("Document No.",GLEntry."Document No.");
               TempGLEntry.SETRANGE("Posting Date",GLEntry."Posting Date");
               TempGLEntry.SETRANGE("Source Code",GLEntry."Source Code");
               IF NOT TempGLEntry.FINDFIRST THEN BEGIN
                 NoOfTransactions += 1;
                 TempGLEntry.INIT;
                 TempGLEntry.TRANSFERFIELDS(GLEntry);
                 TempGLEntry.INSERT;
               END;
             UNTIL GLEntry.NEXT=0;
         END;
     
         LOCAL PROCEDURE CheckGLRegBlankSourceCode@1110022() : Boolean;
         BEGIN
           TempGLReg.RESET;
           TempGLReg.SETFILTER("Posting Date",'%1..%2',StartDate3,CLOSINGDATE(EndDate2));
           TempGLReg.SETRANGE("Source Code",'');
           EXIT(TempGLReg.FINDFIRST);
         END;
     
         BEGIN
         END.
       }
     } 
    // End of the added lines.
    ...

Pré-requisitos

Você deve ter um dos seguintes produtos instalados para aplicar esse hotfix:
  • A versão em português do Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • A versão em português do Microsoft Dynamics NAV 2009 R2
  • A versão em português do Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)


Informações sobre a remoção

Você não pode remover esse hotfix.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Referências

VSTF DynamicsNAV SE: 263721; 263722
Observação Este é um artigo "FAST publicar" criado diretamente de dentro da organização de suporte da Microsoft. As informações contidas neste documento são fornecidas como-está em resposta aos problemas emergentes. Como resultado de velocidade em disponibilizá-lo, os materiais podem incluir erros tipográficos e podem ser revisados a qualquer momento sem prévio aviso. Consulte Termos de uso Para obter outras considerações.

Propriedades

ID do artigo: 2620645 - Última revisão: sexta-feira, 28 de outubro de 2011 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0
Palavras-chave: 
kbqfe kbmbsmigrate kbsurveynew kbmbscodefix kbmt KB2620645 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 2620645

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com