Ir para conteúdo
  • Cadastre-se

dev botao

Importando XML direto do anexo do email


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

Recommended Posts

Estamos desenvolvendo uma rotina em que o cliente não precise ficar descompactando/salvando/procurando/abrindo arquivos xml para importar e dar entrada em seu estoque.

Importamos perfeitamente arquivos xml no acbr e daí fazemos a leitura dos dados.

Mas quando recebo o arquivo por email, direto no aplicativo, através dos componentes Indy TidPop3 e TIdAttachment salvando o arquivo no hd e depois abrindo no AcBR, este acusa muitos erros.

Descobri que o comp Indy inclui quebras de linhas no xml antes de salvar, inlcuisve quedas dentro das tags.

Tentei remover ou substituir mas os erros continuam.

Exemplo: 4543#$A#$DF>

Neste caso não dá pra substituir porque ficaria assim:

4543F>

Exemplo:

Neste caso não posso remover porque ficaria assim:

Alguem sabe alguma forma de configurar o Indy para não incluir quebras de linha?

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Estamos desenvolvendo uma rotina em que o cliente não precise ficar descompactando/salvando/procurando/abrindo arquivos xml para importar e dar entrada em seu estoque.

Importamos perfeitamente arquivos xml no acbr e daí fazemos a leitura dos dados.

Mas quando recebo o arquivo por email, direto no aplicativo, através dos componentes Indy TidPop3 e TIdAttachment salvando o arquivo no hd e depois abrindo no AcBR, este acusa muitos erros.

Descobri que o comp Indy inclui quebras de linhas no xml antes de salvar, inlcuisve quedas dentro das tags.

Tentei remover ou substituir mas os erros continuam.

Exemplo: 4543#$A#$DF>

Neste caso não dá pra substituir porque ficaria assim:

4543F>

Exemplo:

Neste caso não posso remover porque ficaria assim:

Alguem sabe alguma forma de configurar o Indy para não incluir quebras de linha?

Tente algo parecido conforme a minha rotina

procedure TGerenciar.SalvarNnfeCCe( sNome:String;sDocumento: Widestring );

Var

sArquivo : TextFile;

begin

//

// Cria a pasta em versoes futuras

if not DirectoryExists(PastaNfeCc) then ForceDirectories(PastaNfeCc);

AssignFile(sArquivo, PastaNfeCc + sNome +'-cce.xml');

Rewrite( sArquivo);

Write( sArquivo, AnsiToUTF8(sDocumento) );

CloseFile(sArquivo);

end;

Nos de feed

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

Pessoal, eu descobri.

O Problema está no programa cliente de email, no meu caso no Windows Live Mail.

Tem uma configuração que coloca quebras de linhas automáticas no texto da mensagem.

De alguma forma isto está afetando também os anexos com formato texto.

Basta ir em

Menu/Opções/Email/Aba Enviar/Configurações de texto sem formatação das mensagem

Coloquei o formato da mensagem como MIME e codificar texto usando Base 64.

O Problema é que sempre que isso acontecer vamos ter que informar o remetente do email a mudar essas configurações

caso estejam usando o WLM.

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...
  • 2 meses depois ...

Pessoal, eu descobri.

O Problema está no programa cliente de email, no meu caso no Windows Live Mail.

Tem uma configuração que coloca quebras de linhas automáticas no texto da mensagem.

De alguma forma isto está afetando também os anexos com formato texto.

Basta ir em

Menu/Opções/Email/Aba Enviar/Configurações de texto sem formatação das mensagem

Coloquei o formato da mensagem como MIME e codificar texto usando Base 64.

O Problema é que sempre que isso acontecer vamos ter que informar o remetente do email a mudar essas configurações

caso estejam usando o WLM.

Boa noite, teria como compartilhar como voce salva o seu anexo diretamente do email com delphi?

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Walter

Voce precisa criar um aplicativo básico cliente de email, usando os componentes Indy TIdPOP3 e TIdMessage;

É bem simples de usar, e tem exemplos de uso desses componentes no próprio Delphi.

 

O Algorítmo também é bem simples:

-Checar conta de email

-Receber mensagem

-Verificar se tem anexo

-Verificar se anexo tem extensao XML

-Salvar arquivo XML

-Carregar arquivo XML no AcbrNFe

-Percorrer a propriedades do Acbr e salvar informações no banco de dados.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4010 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.