ERP - eDocs Download - Como efetuar o Download e gravação de um arquivo XML de um Documento de forma personalizada através do ERP
Dúvida
Como efetuar o Download e gravação de um arquivo XML de um Documento de forma personalizada através do ERP?
Solução
Importante: As informações presentes nesta solução podem ser usadas como base para desenvolvimento de uma customização com as funcionalidades/ferramentas disponibilizadas atualmente nos sistemas ERP/eDocs para atender a necessidade descrita. Como não é escopo do Suporte da Senior apoiar no desenvolvimento/manutenção de customizações, caso haja dúvidas ou necessidade de apoio para construção dessa customização, as solicitações poderão ser direcionadas para nossa área de Vendas para alocação de Consultoria para apoio no desenvolvimento do processo.
- Criação de um WebService de Terceiros no ERP vinculado ao WebService de Download do eDocs (o arquivo .SSF está anexado à esta solução - depois de importado o WebService, é necessário revisá-lo para que fique adequado ao ambiente onde foi importado e adequado ás funcionalidades atuais do eDocs);
- Chamada do WebService do eDocs através de uma rotina customizada do ERP que faça o Download do XML do eDocs, decodifique-o (porque ele vem em Base64) e faça gravação de um arquivo XML.
Abaixo segue exemplo de uma regra para efetuar a chamada do WebService de Download do eDocs com posterior gravação do arquivo utilizando a função GravarNL.
Definir eDocs.Download.BaixarXmlv2 BaixarXmlv2;
Definir Alfa xCodigoRetorno;
Definir Alfa xMensagemRetorno;
Definir Alfa xSucessoRetorno;
Definir Alfa xXmlRetorno;
Definir Alfa xXmlDecodificado;
Definir alfa aChaveNota;
Definir alfa vaNomeArq;
aChaveNota = "42201180680093000181553290008047321641434269";
BaixarXmlv2.usuario="sde1";
BaixarXmlv2.senha="sde1";
BaixarXmlv2.cnpjCpfFilial="80680093000181";
BaixarXmlv2.tipodocumento=1;
BaixarXmlv2.tipoProcessamento=1;
BaixarXmlv2.chave=aChaveNota;
BaixarXmlv2.gerarManifestacao=0;
BaixarXmlv2.marcarRetorno=0;
@MarcarEnvioEmail.ModoExecucao = 1;@
BaixarXmlv2.Executar();
xCodigoRetorno = BaixarXmlv2.BaixarXmlv2Result.Codigo;
xSucessoRetorno = BaixarXmlv2.BaixarXmlv2Result.Sucesso;
xMensagemRetorno = BaixarXmlv2.BaixarXmlv2Result.Mensagem;
xXmlRetorno = BaixarXmlv2.BaixarXmlv2Result.Xmls.String;
Se(xSucessoRetorno="true")
inicio
Base64DEcode(xXmlRetorno,xXmlDecodificado);
Mensagem(Retorna, xXmlDecodificado);
vaNomeArq = "D:\\Senior5104\\temp\\";
vaNomeArq = vaNomeArq+aChaveNota+".xml";
nArq = Abrir(vaNomeArq,GravarNL);
GravarNL(nArq, xXmlDecodificado);
Fechar(nArq);
fim;
x=y;
Atenção
Deve-se criar personalizações para eliminar arquivos gravados em diretório posteriormente, pois um diretório que contenha diversos arquivos pode causar lentidão em diversos processos.