Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia.

Estou tentando enviar o arquivo da Redução Z utilizando o AcbrBlocoX porém o WS está me retornando um erro de Arquivo Zip Inválido.

Utilizo o Delphi 2010 para desenvolvimento o estou usando o componente ZipMaster para compactar o meu arquivo XML.

Já está funcionando no componente essa parte de envio de arquivos?

Se sim, alguém pode me mostrar um exemplo de como carregar o xml compactado na propriedade AcbrBlocoX1.WebServices.EnviarReducaoZ.XMLZipado no Delphi 2010?

Abaixo está o código que tentei fazer mas está dando o erro citado no post:       

//Compactar arquivo XML
        stlArquivoXML.LoadFromFile(ExtractFilePath(Application.ExeName) + sArquivo);
        with zmBlocoX do
        begin
          zmBlocoX.ZipFileName := StringReplace(ExtractFilePath(Application.ExeName) + sArquivo, '.xml', '.zip', [rfReplaceAll]);
          FSpecArgs.Add(ExtractFilePath(Application.ExeName) + sArquivo);
          Add;
          ConvertToZIP;
        end;

        if sTipo = 'Z' then
        begin
          //Carrega XML (Não Zipado) na propriedade XML
          WebServices.EnviarReducaoZ.XML := stlArquivoXML.Text;

          //Carrega XML Zipado em uma StringStream
          vStream.LoadFromFile(StringReplace(ExtractFilePath(Application.ExeName) + sArquivo, '.xml', '.zip', [rfReplaceAll]));
          WebServices.EnviarReducaoZ.XMLZipado := base64Encode(vStream.DataString);
          if WebServices.EnviarReducaoZ.Executar then
          begin
            //Trato o retorno aqui...
          end;
        end;


 

Muito obrigado!!!

  • Consultores
Postado

Olá, 

Verifique que já existe uma função para a compactação do arquivo no componente (chamada "ZipFile()" e localizada em ACBrBlocoX_WebServices.pas).
Caso seja informado o apenas xml na propriedade "XML", o próprio ACBr irá compactar o arquivo no momento do envio.

Consultor SAC ACBr

Elias César Vieira
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Assine o
SAC

 
Postado

Olá EliasCesar.

Esse componente que o AcbrBlocoX utiliza para compactação (TZipFile) me parece que só tem à partir do Delphi XE2.

Pelo que entendi no código do componente, na unit ACBrBlocoX_WebServices.pas, me parece que tem uma diretiva que verifica se o Delphi utilizado é XE2 ou superior e compacta o arquivo, caso contrário, simplesmente não faz nada.

Esse é o meu problema, estou usando o Delphi 2010 e por isso o componente não esta compactando meu arquivo sozinho.

Acredito eu, que tenho que compactar de outra forma e passar de algum jeito na propriedade XMLZipado, mas como fazer é que não sei.

Por favor me corrija se estiver errado.

E muito obrigado pela ajuda.

  • Consultores
Postado

 

[]'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

Ok EMBarbosa, eu já havia lido esse post.

Mas queria saber como fazer no Delphi 2010, que não tem esse componente TFileZip nativo.

Alguém sabe como fazer? Será que poderia me ajudar?

O que será que tem de errado com meu código? Você chegou a ver como estou tentando fazer?

Agradeço a atenção Galera!!!

  • Solution
Postado

Resolvido Pessoal.

O problema estava no WebService de SC.

Mandei meu arquivo Zip para o pessoal do desenvolvimento da Sefaz/SC e me retornaram que o arquivo estava ok, para tentar novamente.

Hoje enviei um arquivo com esse mesmo código que postei aqui e funcionou perfeitamente.

Valew pela Atenção.

  • Curtir 1
  • Consultores
Postado

Obrigado pelo retorno.

[]'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.
×
×
  • 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.