Ir para conteúdo
  • Cadastre-se

dev botao

Envio blocox - Alteração campo Quantidade


  • Este tópico foi criado há 2742 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde Pessoal.

  Estive fazendo testes para o envio do 'Arquivo com Informações da Redução Z do PAF-ECF' presente no BlocoX. Nos testes que efetuei o arquivo estava retornando erro na validação 'Erro na validação do schema: O elemento 'Quantidade' é inválido'. Verifiquei que no layout do arquivo consta 2 decimais para o campo quantidade e o componente estava gerando com 3.

  No arquivo ACBrBlocoX_ReducaoZ na procedure TACBrBlocoX_ReducaoZ.GerarXML(const Assinar: Boolean); alterei a linha 

 FGerador.wCampo(tcStr, '', 'Quantidade',    0, 0, 1, FormatFloat('0.000',Produtos[X].Quantidade));

para

FGerador.wCampo(tcStr, '', 'Quantidade',    0, 0, 1, FormatFloat('0.00',Produtos[X].Quantidade));

Com essa modificação o problema foi resolvido.

Outra questão é a seguinte, estou conseguindo efetuar a validação e o envio do arquivo com o código abaixo:

                    ACBrBlocoX.WebServices.EnviarBlocoX.XML := ACBrBlocoX.ReducoesZ.XMLAssinado;
                    ACBrBlocoX.WebServices.ValidarBlocoX.ValidarEcf := False;
                    ACBrBlocoX.WebServices.ValidarBlocoX.ValidarPafEcf := False;
                    ACBrBlocoX.WebServices.EnviarBlocoX.Executar;

                    showmessage(ACBrBlocoX.WebServices.EnviarBlocoX.RetWS);

A duvida seria, tem algo pronto para extrair o Recibo desse retorno?

 

Desde já agradeço.

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa tarde

sugere correção que tenha validado favor anexar!

sobre a ultima pergunta não tem nada implementado somente

o retorno do webservice

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Bom dia,

  Tive que fazer a mesma alteração no elemento quantidade do arquivo de estoques também, onde passei o formatfloat de 3 para 2 casas decimais. Em anexo o .pas.

  Quanto ao tratamento do retorno do envio dos arquivos para capturar o Recibo, não sei se esta seria a melhor forma mais vou compartilhar a solução que encontrei.

Primeiro o envio..

                    ACBrBlocoX.WebServices.EnviarBlocoX.XML := ACBrBlocoX.Estoque.XMLAssinado;
                    ACBrBlocoX.WebServices.ValidarBlocoX.ValidarEcf := True;
                    ACBrBlocoX.WebServices.ValidarBlocoX.ValidarPafEcf := True;
                    ACBrBlocoX.WebServices.EnviarBlocoX.Executar;


Depois para pegar o retorno..

                    vXMLDoc := TXMLDocument.Create(self);
                    vXMLDoc.LoadFromXML(StringReplace( StringReplace(ACBrBlocoX.WebServices.EnviarBlocoX.RetWS, '<EnviarResult>', '', [rfReplaceAll, rfIgnoreCase]), '</EnviarResult>', '', [rfReplaceAll, rfIgnoreCase]));
                    With vXMLDoc.DocumentElement do
                      begin
                         codigoRetorno := ChildNodes['Codigo'].text;
                         reciboRetorno := ChildNodes['Recibo'].text;
                         mensagemRetorno := ChildNodes['Mensagem'].text;
                      end;

ai é só trabalhar com as variáveis codigoRetorno, reciboRetorno e mensagemRetorno. É necessário declarar  vXMLDoc: TXMLDocument; e NodeRec: IXMLNode;

Até mais.

ACBrBlocoX_Estoque.pas

Editado por douglas_k
Link para o comentário
Compartilhar em outros sites

Esta sim Juliomar, nesse link https://www.confaz.fazenda.gov.br/legislacao/despacho/2016/dp154_16 é possível verificar que o campo quantidade esta com duas casas decimais tanto no arquivo de redução z como no de estoque. Eu tentei fazer o envio e validação com 3 casas e retornava rejeição, depois que ajustei para 2 foi tranquilo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...
Em 30/09/2016 at 13:31, douglas_k disse:

Boa tarde Pessoal.

  Estive fazendo testes para o envio do 'Arquivo com Informações da Redução Z do PAF-ECF' presente no BlocoX. Nos testes que efetuei o arquivo estava retornando erro na validação 'Erro na validação do schema: O elemento 'Quantidade' é inválido'. Verifiquei que no layout do arquivo consta 2 decimais para o campo quantidade e o componente estava gerando com 3.

  No arquivo ACBrBlocoX_ReducaoZ na procedure TACBrBlocoX_ReducaoZ.GerarXML(const Assinar: Boolean); alterei a linha 

 FGerador.wCampo(tcStr, '', 'Quantidade',    0, 0, 1, FormatFloat('0.000',Produtos[X].Quantidade));

para

FGerador.wCampo(tcStr, '', 'Quantidade',    0, 0, 1, FormatFloat('0.00',Produtos[X].Quantidade));

Com essa modificação o problema foi resolvido.

Outra questão é a seguinte, estou conseguindo efetuar a validação e o envio do arquivo com o código abaixo:

                    ACBrBlocoX.WebServices.EnviarBlocoX.XML := ACBrBlocoX.ReducoesZ.XMLAssinado;
                    ACBrBlocoX.WebServices.ValidarBlocoX.ValidarEcf := False;
                    ACBrBlocoX.WebServices.ValidarBlocoX.ValidarPafEcf := False;
                    ACBrBlocoX.WebServices.EnviarBlocoX.Executar;

                    showmessage(ACBrBlocoX.WebServices.EnviarBlocoX.RetWS);

A duvida seria, tem algo pronto para extrair o Recibo desse retorno?

 

Desde já agradeço.

 

 

Além disto a property RetWS contém um xml com defeito...

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2742 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.