Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado (editado)

Boa tarde,

Programo a maior parte do sistema em delphi 2010 e não utilizo o componente ACBr, mas peguei como base algumas rotinas do componente, que aliás estão bem organizadas. Porém, com relação ao Bloco X, ao comunicar com o webservice (seja de redução z ou estoque), sempre retorna "Arquivo ZIP inválido". O campo "pXmlZipado" ao enviar o xml, peguei como base no componente, unit ACBrBlocoX_WebServices.pas. Como uso mais delphi 2010, e ele não tem suporte nativo p/ zip, tentei de diversas formas, transformar o XML em zip (string) e depois converter p/ base64, igual ao fonte do acbr, e nada, sempre retorna erro no webservice.

Então resolvi testar no delphi XE5, copiando as rotinas ZipFile e EncodeBase64, mesmo assim retorna o erro "Arquivo ZIP inválido". Faço parte do grupo do google da sefaz SC, mas até o momento não consiga uma ajuda por lá também.

Alguém conseguiu enviar com sucesso?

Obs: o arquivo é validado com sucesso.

Editado por MTeste
Postado
16 minutos atrás, Anderson Eccker disse:

Bom dia,

Utilizo a classe TAbZipper no Delphi 7, e funciona muito bem.

 

Anderson,

Você conseguiu com que o webservice retornasse sucesso, com recibo e tudo mais?

  • 1 mês depois ...
Postado

Bom dia,

Estou usando o TAbZipper no Delphi 7 e estou com o mesmo erro. 

Eu zipo o arquivo e depois passo o caminho para a variável AZip.  Segue fonte para melhor entendimento.

Obs: Sou novo no uso dos componentes. Desculpa qualquer erro besta.

function TEnviarBlocoX.GetXMLZipado: AnsiString;
var
  AZip: AnsiString;
begin
  if FXMLZipado = '' then
  begin
    if FXML <> '' then
    begin
      AZip := 'C:\EnviarEstoque.zip';
      if AZip = '' then
        raise Exception.Create('O seu compilador não tem suporte nativo a ZipFile.'+sLineBreak+
                               'Informe o XML já Zipado + Base64 em "XMLZipado"');

      FXMLZipado := EncodeBase64(AZip);
    end;
  end;

  Result := FXMLZipado;
end;

 

  • Consultores
Postado

O que você pretende com essa linha?

 AZip := 'C:\EnviarEstoque.zip';

Você está atribuindo uma string pra variável AZip. Você não está carregando o arquivo.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Estou tentando enviar um arquivo (Bloco X - Estoque), porém, não estou conseguindo.

Passos seguidos:

- Gero o XML com os dados do estoque, conforme layout.

- Zipo o arquivo

- Converto para base64

Ao enviar o arquivo (loSoapClient.EnviarEstoque(pCnpjEstabelecimento, pDataReferencia, pXmlZipado), recebo o erro:

OLE IDispatch exception code 0 from Client: Client:Type conversion failure for element pXmlZipado  HRESULT=0x80020005: Tipo não correspondente.
 - Client:Unspecified client error. HRESULT=0x80020005: Tipo não correspondente.
 

Já enviei o próprio XML, sem converter para base64, no lugar de pXmlZipado, o erro persiste.

Já enviei o próprio XML zipado, sem converter para base64, o erro persiste.

Já enviei o próprio XML, convertido para base64, sem zipar, o erro persiste.

Alguém pode me ajudar a enxergar o que estou fazendo de errado?

Obrigado.

Postado

Mudei para zipmaster e estou usando uma função que achei em outro tópico. Porem o problema continua. Segue fonte.

 

function ZipFile(const DadosXML: AnsiString; const NomeArquivo: String): AnsiString;
var
  Z     : TZipMaster;
  SSIn  : TStringList;
  sFile : string;
  ssOut : TFileStream;

  function EncodeBase64(Arquivo: TFileStream): String;
  Var
  Encoder64 : TIDEncoderMime;
  lstFile: TStringList;
  Begin
    try
      try
        Encoder64 := TIDEncoderMime.Create (Nil);
        lstFile := TStringList.Create;
        lstFile.LoadFromStream(Arquivo);
        Result := Encoder64.Encode(lstFile.Text);
      finally
        Encoder64.Free;
        lstFile.Free;
      end;
    except on E: Exception do
      //Nada
    end;
  end;

begin
   try
      Z := TZipMaster.Create(nil);
      SSIn  := TStringList.Create;
      sFile := ApplicationPath + NomeArquivo;
      SSIn.Text := DadosXML;
      SSIn.SaveToFile(sFile);

      //Ver se Precisa
      Z.ZipFileName := Copy(sFile,1,Pos('.',sFile)-1) + '.zip';
      Z.FSpecArgs.Clear;
      Z.FSpecArgs.Add(sFile);
      Z.Add;

      ssOut := TFileStream.Create(Copy(sFile,1,Pos('.',sFile)-1) + '.zip',fmOpenRead);
      Result := EncodeBase64(ssOut);
   finally
      Z.Free;
      SSIn.Free;
   end;
end;

Onde é usado:

function TEnviarBlocoX.GetXMLZipado: AnsiString;
var
  AZip: AnsiString;
begin
  if FXMLZipado = '' then
  begin
    if FXML <> '' then
    begin
      AZip := ZipFile(FXML, FPBodyElement+'.xml');
      
      if AZip = '' then
        raise Exception.Create('O seu compilador não tem suporte nativo a ZipFile.'+sLineBreak+
                               'Informe o XML já Zipado + Base64 em "XMLZipado"');

      FXMLZipado := AZip;// EncodeBase64(AZip);
    end;
  end;

  Result := FXMLZipado;
end;

Fico no aguardo de uma luz.

  • Moderadores
Postado
55 minutos atrás, jmcamargos disse:

Estou tentando enviar um arquivo (Bloco X - Estoque), porém, não estou conseguindo.

Passos seguidos:

- Gero o XML com os dados do estoque, conforme layout.

- Zipo o arquivo

- Converto para base64

Ao enviar o arquivo (loSoapClient.EnviarEstoque(pCnpjEstabelecimento, pDataReferencia, pXmlZipado), recebo o erro:

OLE IDispatch exception code 0 from Client: Client:Type conversion failure for element pXmlZipado  HRESULT=0x80020005: Tipo não correspondente.
 - Client:Unspecified client error. HRESULT=0x80020005: Tipo não correspondente.
 

Já enviei o próprio XML, sem converter para base64, no lugar de pXmlZipado, o erro persiste.

Já enviei o próprio XML zipado, sem converter para base64, o erro persiste.

Já enviei o próprio XML, convertido para base64, sem zipar, o erro persiste.

Alguém pode me ajudar a enxergar o que estou fazendo de errado?

Obrigado.

caso não tenha lido as regras do fórum leia

poste em um local e aguarde.

26 minutos atrás, Gean Tonet disse:

Mudei para zipmaster e estou usando uma função que achei em outro tópico. Porem o problema continua. Segue fonte.

 


function ZipFile(const DadosXML: AnsiString; const NomeArquivo: String): AnsiString;
var
  Z     : TZipMaster;
  SSIn  : TStringList;
  sFile : string;
  ssOut : TFileStream;

  function EncodeBase64(Arquivo: TFileStream): String;
  Var
  Encoder64 : TIDEncoderMime;
  lstFile: TStringList;
  Begin
    try
      try
        Encoder64 := TIDEncoderMime.Create (Nil);
        lstFile := TStringList.Create;
        lstFile.LoadFromStream(Arquivo);
        Result := Encoder64.Encode(lstFile.Text);
      finally
        Encoder64.Free;
        lstFile.Free;
      end;
    except on E: Exception do
      //Nada
    end;
  end;

begin
   try
      Z := TZipMaster.Create(nil);
      SSIn  := TStringList.Create;
      sFile := ApplicationPath + NomeArquivo;
      SSIn.Text := DadosXML;
      SSIn.SaveToFile(sFile);

      //Ver se Precisa
      Z.ZipFileName := Copy(sFile,1,Pos('.',sFile)-1) + '.zip';
      Z.FSpecArgs.Clear;
      Z.FSpecArgs.Add(sFile);
      Z.Add;

      ssOut := TFileStream.Create(Copy(sFile,1,Pos('.',sFile)-1) + '.zip',fmOpenRead);
      Result := EncodeBase64(ssOut);
   finally
      Z.Free;
      SSIn.Free;
   end;
end;

Onde é usado:


function TEnviarBlocoX.GetXMLZipado: AnsiString;
var
  AZip: AnsiString;
begin
  if FXMLZipado = '' then
  begin
    if FXML <> '' then
    begin
      AZip := ZipFile(FXML, FPBodyElement+'.xml');
      
      if AZip = '' then
        raise Exception.Create('O seu compilador não tem suporte nativo a ZipFile.'+sLineBreak+
                               'Informe o XML já Zipado + Base64 em "XMLZipado"');

      FXMLZipado := AZip;// EncodeBase64(AZip);
    end;
  end;

  Result := FXMLZipado;
end;

Fico no aguardo de uma luz.

Favor ler as regras do fórum postar em um local e aguardar

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Postado

Desculpa, comentei aqui primeiro e por falta de atenção acabei comentando no outro tópico.

Estou usando o componente ACBrBlocoX e até então estava tudo perfeito. Instalei ele essa semana. O único problema é que uso o delphi 7 e não tem suporte para zipfile.

E infelizmente não estou conseguindo utilizar o zipmaster ou o TAbZipper para fazer o papel do zipfile.

Postado

Bom dia,

 

Descomentei a linha abaixo no arquivo ACBr.inc:

 

// Descomente essa linha, para usar ZLibExGZ de \ACBr\Fontes\Terceiros\ZLibExGZ
// ZLib de D7 contém bugs e está incompleta. Caso contrário usará compactação nativa, unit "ZLib"
{.$DEFINE USE_ZLibExGZ}

 

de

{.$DEFINE USE_ZLibExGZ}

para

{$DEFINE USE_ZLibExGZ}

O erro que apresenta agora é "O seu compilador não tem suporte nativo a ZipFile."

Faltou eu fazer alguma coisa?

Obs: Atualizei os fontes hoje.

 

Postado

Bom dia, acredito que o erro que passei acima seja por isso:

 

De forma resumida:

 
Até 16/09/2017 – Possibilidade enviar Redução Z ou Estoque ao ambiente de produção, na forma de teste
17/09/2017 a 30/09/2017  Não enviem informação ao web service de produção
01/10/2017 – Início da obrigatoriedade. Qualquer informação recebida será considerada verídica para fins de auditoria e cruzamento de dados.

 

http://bell.unochapeco.edu.br/lts/?p=3129

 

Obrigado.

  • Moderadores
Postado
13 minutos atrás, Gean Tonet disse:

Bom dia, acredito que o erro que passei acima seja por isso:

 

De forma resumida:

 
Até 16/09/2017 – Possibilidade enviar Redução Z ou Estoque ao ambiente de produção, na forma de teste
17/09/2017 a 30/09/2017  Não enviem informação ao web service de produção
01/10/2017 – Início da obrigatoriedade. Qualquer informação recebida será considerada verídica para fins de auditoria e cruzamento de dados.

 

http://bell.unochapeco.edu.br/lts/?p=3129

 

Obrigado.

Bom dia

mudou todo esse cenário.

produção somente em janeiro então até lá pode mandar testes para produção .

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Postado

Achei essas informações no link http://legislacao.sef.sc.gov.br/html/atos_diat/2017/atodiat_17_017.htm:

 

I – ALTERADO – Ato Diat 025/17, art. 1º – Efeitos a partir de 18.09.17:

I – a partir de 8 de janeiro de 2018, os estabelecimentos enquadrados nos Códigos da Classificação Nacional de Atividades Econômicas (CNAE) 4731800 - Comércio varejista de combustíveis para veículos automotores;

I – Redação original – vigente até 17.09.17:

I – a partir de 1º de outubro de 2017, os estabelecimentos enquadrados nos códigos da Classificação Nacional de Atividades Econômicas (CNAE) 4731800 - Comércio varejista de combustíveis para veículos automotores;

II – a partir de 1º de março de 2018, os estabelecimentos enquadrados nos códigos da Classificação Nacional de Atividades Econômicas (CNAE) 4713001 – Lojas de Departamentos ou Magazines;

III – a partir de 1º de junho de 2018, os estabelecimentos enquadrados nos seguintes códigos da Classificação Nacional de Atividades Econômicas (CNAE):

 

Isso é valido?

  • 2 anos depois...
  • Administradores
Postado

Boa tarde.

Veja neste tópico que houveram mudanças recentes quanto ao Bloco X, certifique-se de estar utilizando os métodos corretos.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Postado

ola sim eu observei que houve mudanças.

inclusive estou com todos os componentes atualizados e recompilados.

tudo funcionando. inclusive ja mudei as formas de transmissão conforme 

consta no acbr.

    ACBrBlocoX1.WebServices.TransmitirArquivoBlocoX.Clear;
    ACBrBlocoX1.WebServices.TransmitirArquivoBlocoX.XML := Arquivo.Text;

mesmo assim ocorre o erro arquivo zip invalido. ate aparece a msg arquivo transmitido com sucesso 

mas o erro persiste.

 

Postado

na verdade no demo acbr esta desta forma

   ACBrBlocoX1.WebServices.TransmitirArquivoBlocoX.Clear;
    ACBrBlocoX1.WebServices.TransmitirArquivoBlocoX.XML := Arquivo.Text;

mudei para esta outra e deu certo pois o arquivo gerado esta em textoarquivo. e nao em arquivo.txt

    ACBrBlocoX1.WebServices.TransmitirArquivoBlocoX.Clear;
    ACBrBlocoX1.WebServices.TransmitirArquivoBlocoX.XML := TextoArquivo;

deu certo se alguem puder corrigir la no exemplo acbr agradeço.

obrigado.

  • Curtir 1
  • Administradores
Postado

Boa tarde.

Anexe aqui a unit alterada e já adicionamos ao svn.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 1830 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...