Ir para conteúdo
  • Cadastre-se

dev botao

ERRO: ID Inválido. Impossível Salvar XML


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

Recommended Posts

  • Membros Pro

Boa noite,

Pessoal, estou gerando a GNRE em ambiente de homologação via AcbrMonitor e está retornando essa mensagem abaixo:

GNRE.GerarGuia([Emitente]
tipo=1
id=08.797.179/0001-61
RazaoSocial=DSG Distribuidora de Alimentos Ltda
IE=
Endereco=Rua Salatiel Marques Fontes, 695
Cidade=Sousa
UF=PB
Cep=58806470
Telefone=8335212697

[Complemento]
detalhamentoReceita=1
produto=1
tipoDocOrigem=10
docOrigem=001001161098

[Referencia]
ufFavorecida=RN
receita=100099
ValorPrincipal=406,61
dataVencimento=01/03/2018
convenio=PROTOCOLO 50/2015
dataPagamento=01/03/2018
referenciaMes=02
referenciaAno=2018
referenciaParcela=1

[Destinatario]
tipo=1
id=04.982.974/0001-79
IE=200911724
RazaoSocial=Gilson Gomes de Medeiros - Me
cidade=Jucurutu

)
ERRO: ID Inválido. Impossível Salvar XML

 

O meu código está assim:

procedure TfrmDIS_AcompCarga.btnGnreClick(Sender: TObject);
var
  {sPathGNRe,} MvNFeAmbiente, MvNfeTpEmis: String;
  i, nLote: Integer;
  cmdGNRe: TComandoMonitor;
  IniGNRE: TMemIniMonitor;
  QA1s: TDefDataSet;
begin
  MvNFeAmbiente := Copy(sLeParametro('MV_NFeAMBIENTE'), 1, 1);
  if MvNFeAmbiente = '' then
    MvNFeAmbiente := '2';   // Homologação

  //Cria diretorio para armazenar localmente os arquivos INI de eventos
  sDir := CriaPastaLocalINI('GNRe', '');

  //Configura UF, Doc. fiscal, ambiente, versão e forma de emissão
  pConfiguraMonitor(StrToInt(MvNFeAmbiente), 'NFE', MvNfeTpEmis);

  if MvNFeAmbiente = '2' then
    InfoMessageBox('Você está em ambiente de HOMOLOGAÇÃO, sem efeito fiscal.' + #13#10
      + 'Quando quiser alterar para o ambiente de PRODUÇÃO, basta informar a opção "1" no parâmetro "MV_NFeAMBIENTE" no módulo "Configurador".', Application.Title, [smbOK], smsInformation);

  pNewDataSet(QA1s);
  QA1s.CommandText := 'select A1_CIDADE, A1_IE from TA1 '
    + 'where (A1_FILIAL = :TA1_FILIAL) '
    + 'and (A1_CODIGO = :cod) and (A1_LOJA = :loj)';

  //Cria arquivo INI para carregar dados da GNRE
  nLote := fnc_CriaLote('LOT', 'GNRE');
  IniGNRE := TMemIniMonitor.Create(sDir + '\AddGNRE_' + IntTostr(nLote) + '.ini');

  with dbgNotas do
    for i := FixedRows to (RowCount - 1) do
    begin

      QA1s.Close;
      QA1s.ParamByName('cod').AsString := Cells[nColCli, i];
      QA1s.ParamByName('loj').AsString := Cells[nColLoj, i];
      QA1s.Open;

      // emitente
      if Length(RemoveInvalid('0123456789', Cells[nColDOC, i])) > 11 then
        IniGNRE.WriteString('Emitente', 'tipo', '1')
      else
        IniGNRE.WriteString('Emitente', 'tipo', '2');
      IniGNRE.WriteString('Emitente', 'id', xTransform(RemoveInvalid('0123456789', App_Var_CNPJ), '99.999.999/9999-99'));
      IniGNRE.WriteString('Emitente', 'RazaoSocial', App_Var_NomeCliente);
      //IniGNRE.WriteString('Emitente', 'IE', RemoveInvalid('0123456789', App_Var_IE));
      IniGNRE.WriteString('Emitente', 'IE', '');
      IniGNRE.WriteString('Emitente', 'Endereco', App_Var_EndTipoLogra + ' ' + App_Var_EndLogra + ', ' + App_Var_EndNumero);
      IniGNRE.WriteString('Emitente', 'Cidade', App_Var_EndCidade);
      IniGNRE.WriteString('Emitente', 'UF', App_Var_EndUF);
      IniGNRE.WriteString('Emitente', 'Cep', App_Var_EndCEP);
      IniGNRE.WriteString('Emitente', 'Telefone', App_Var_EndTel1);

      IniGNRE.WriteString('Complemento', 'detalhamentoReceita', '1');
      IniGNRE.WriteString('Complemento', 'produto', '1');
      IniGNRE.WriteString('Complemento', 'tipoDocOrigem', '10');
      IniGNRE.WriteString('Complemento', 'docOrigem', Cells[nColNfs, i] + Cells[nColNfn, i]);

      IniGNRE.WriteString('Referencia', 'ufFavorecida', Cells[nColUF, i]);
      IniGNRE.WriteString('Referencia', 'receita', '100099');
      IniGNRE.WriteString('Referencia', 'ValorPrincipal', Cells[nColVlr, i]);
      //c10_valorTotal := StrToReal(dbgNotas.Cells[nColVlr, ARow]);
      IniGNRE.WriteString('Referencia', 'dataVencimento', DateToStr(Now + 1));
      IniGNRE.WriteString('Referencia', 'convenio', 'PROTOCOLO 50/2015');
      IniGNRE.WriteString('Referencia', 'dataPagamento', DateToStr(Now + 1));
      IniGNRE.WriteString('Referencia', 'referenciaMes', StrZero(MonthOf(Now), 2));
      IniGNRE.WriteString('Referencia', 'referenciaAno', IntToStr(YearOf(Now)));
      IniGNRE.WriteString('Referencia', 'referenciaParcela', '1');

      // destinatário
      if Length(RemoveInvalid('0123456789', Cells[nColDOC, i])) > 11 then
        IniGNRE.WriteString('Destinatario', 'tipo', '1')
      else
        IniGNRE.WriteString('Destinatario', 'tipo', '2');
      IniGNRE.WriteString('Destinatario', 'id', Cells[nColDOC, i]);
      IniGNRE.WriteString('Destinatario', 'IE', QA1s.FieldByName('A1_IE').AsString);
      IniGNRE.WriteString('Destinatario', 'RazaoSocial', Cells[nColFan, i]);
      IniGNRE.WriteString('Destinatario', 'cidade', RemoveAcento(QA1s.FieldByName('A1_CIDADE').AsString));

      // Campos Extras
      //camposExtras.Add;
      //camposExtras.Items[0].CampoExtra.codigo := 45;  // minas gerais, ler manual GNR-e

      cmdGNRe := Monitor_Exec('GNRE.GerarGuia(' + IniGNRE.TextoIni + ')');

      if cmdGNRE.OK then
      begin
        cmdGNRE.CriaIniRet;
        showmessage('recibo:' + cmdGNRE.ReadChaveSolta('recibo') );
      end;

      //limpa ini para adicionar nova GNRE
      IniGNRe.Clear;
    end;

  QA1s.Close;
  FreeAndNil(QA1s);

end;
 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Josenildo,

Desculpa não entendi, você esta usando o ACBrMonitor, mas esta gerando o arquivo INI através de uma aplicação feita em Delphi é isso?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
8 minutos atrás, Italo Jurisato Junior disse:

Bom dia Josenildo,

Desculpa não entendi, você esta usando o ACBrMonitor, mas esta gerando o arquivo INI através de uma aplicação feita em Delphi é isso?

Isso Mesmo. Diretamente de minha aplicação que é Delphi.

Em 28/02/2018 at 21:26, josenildo.bandeira disse:

Boa noite,

Pessoal, estou gerando a GNRE em ambiente de homologação via AcbrMonitor e está retornando essa mensagem abaixo:

GNRE.GerarGuia([Emitente]
tipo=1
id=08.797.179/0001-61
RazaoSocial=DSG Distribuidora de Alimentos Ltda
IE=
Endereco=Rua Salatiel Marques Fontes, 695
Cidade=Sousa
UF=PB
Cep=58806470
Telefone=8335212697

[Complemento]
detalhamentoReceita=1
produto=1
tipoDocOrigem=10
docOrigem=001001161098

[Referencia]
ufFavorecida=RN
receita=100099
ValorPrincipal=406,61
dataVencimento=01/03/2018
convenio=PROTOCOLO 50/2015
dataPagamento=01/03/2018
referenciaMes=02
referenciaAno=2018
referenciaParcela=1

[Destinatario]
tipo=1
id=04.982.974/0001-79
IE=200911724
RazaoSocial=Gilson Gomes de Medeiros - Me
cidade=Jucurutu

)
ERRO: ID Inválido. Impossível Salvar XML

 

O meu código está assim:

procedure TfrmDIS_AcompCarga.btnGnreClick(Sender: TObject);
var
  {sPathGNRe,} MvNFeAmbiente, MvNfeTpEmis: String;
  i, nLote: Integer;
  cmdGNRe: TComandoMonitor;
  IniGNRE: TMemIniMonitor;
  QA1s: TDefDataSet;
begin
  MvNFeAmbiente := Copy(sLeParametro('MV_NFeAMBIENTE'), 1, 1);
  if MvNFeAmbiente = '' then
    MvNFeAmbiente := '2';   // Homologação

  //Cria diretorio para armazenar localmente os arquivos INI de eventos
  sDir := CriaPastaLocalINI('GNRe', '');

  //Configura UF, Doc. fiscal, ambiente, versão e forma de emissão
  pConfiguraMonitor(StrToInt(MvNFeAmbiente), 'NFE', MvNfeTpEmis);

  if MvNFeAmbiente = '2' then
    InfoMessageBox('Você está em ambiente de HOMOLOGAÇÃO, sem efeito fiscal.' + #13#10
      + 'Quando quiser alterar para o ambiente de PRODUÇÃO, basta informar a opção "1" no parâmetro "MV_NFeAMBIENTE" no módulo "Configurador".', Application.Title, [smbOK], smsInformation);

  pNewDataSet(QA1s);
  QA1s.CommandText := 'select A1_CIDADE, A1_IE from TA1 '
    + 'where (A1_FILIAL = :TA1_FILIAL) '
    + 'and (A1_CODIGO = :cod) and (A1_LOJA = :loj)';

  //Cria arquivo INI para carregar dados da GNRE
  nLote := fnc_CriaLote('LOT', 'GNRE');
  IniGNRE := TMemIniMonitor.Create(sDir + '\AddGNRE_' + IntTostr(nLote) + '.ini');

  with dbgNotas do
    for i := FixedRows to (RowCount - 1) do
    begin

      QA1s.Close;
      QA1s.ParamByName('cod').AsString := Cells[nColCli, i];
      QA1s.ParamByName('loj').AsString := Cells[nColLoj, i];
      QA1s.Open;

      // emitente
      if Length(RemoveInvalid('0123456789', Cells[nColDOC, i])) > 11 then
        IniGNRE.WriteString('Emitente', 'tipo', '1')
      else
        IniGNRE.WriteString('Emitente', 'tipo', '2');
      IniGNRE.WriteString('Emitente', 'id', xTransform(RemoveInvalid('0123456789', App_Var_CNPJ), '99.999.999/9999-99'));
      IniGNRE.WriteString('Emitente', 'RazaoSocial', App_Var_NomeCliente);
      //IniGNRE.WriteString('Emitente', 'IE', RemoveInvalid('0123456789', App_Var_IE));
      IniGNRE.WriteString('Emitente', 'IE', '');
      IniGNRE.WriteString('Emitente', 'Endereco', App_Var_EndTipoLogra + ' ' + App_Var_EndLogra + ', ' + App_Var_EndNumero);
      IniGNRE.WriteString('Emitente', 'Cidade', App_Var_EndCidade);
      IniGNRE.WriteString('Emitente', 'UF', App_Var_EndUF);
      IniGNRE.WriteString('Emitente', 'Cep', App_Var_EndCEP);
      IniGNRE.WriteString('Emitente', 'Telefone', App_Var_EndTel1);

      IniGNRE.WriteString('Complemento', 'detalhamentoReceita', '1');
      IniGNRE.WriteString('Complemento', 'produto', '1');
      IniGNRE.WriteString('Complemento', 'tipoDocOrigem', '10');
      IniGNRE.WriteString('Complemento', 'docOrigem', Cells[nColNfs, i] + Cells[nColNfn, i]);

      IniGNRE.WriteString('Referencia', 'ufFavorecida', Cells[nColUF, i]);
      IniGNRE.WriteString('Referencia', 'receita', '100099');
      IniGNRE.WriteString('Referencia', 'ValorPrincipal', Cells[nColVlr, i]);
      //c10_valorTotal := StrToReal(dbgNotas.Cells[nColVlr, ARow]);
      IniGNRE.WriteString('Referencia', 'dataVencimento', DateToStr(Now + 1));
      IniGNRE.WriteString('Referencia', 'convenio', 'PROTOCOLO 50/2015');
      IniGNRE.WriteString('Referencia', 'dataPagamento', DateToStr(Now + 1));
      IniGNRE.WriteString('Referencia', 'referenciaMes', StrZero(MonthOf(Now), 2));
      IniGNRE.WriteString('Referencia', 'referenciaAno', IntToStr(YearOf(Now)));
      IniGNRE.WriteString('Referencia', 'referenciaParcela', '1');

      // destinatário
      if Length(RemoveInvalid('0123456789', Cells[nColDOC, i])) > 11 then
        IniGNRE.WriteString('Destinatario', 'tipo', '1')
      else
        IniGNRE.WriteString('Destinatario', 'tipo', '2');
      IniGNRE.WriteString('Destinatario', 'id', Cells[nColDOC, i]);
      IniGNRE.WriteString('Destinatario', 'IE', QA1s.FieldByName('A1_IE').AsString);
      IniGNRE.WriteString('Destinatario', 'RazaoSocial', Cells[nColFan, i]);
      IniGNRE.WriteString('Destinatario', 'cidade', RemoveAcento(QA1s.FieldByName('A1_CIDADE').AsString));

      // Campos Extras
      //camposExtras.Add;
      //camposExtras.Items[0].CampoExtra.codigo := 45;  // minas gerais, ler manual GNR-e

      cmdGNRe := Monitor_Exec('GNRE.GerarGuia(' + IniGNRE.TextoIni + ')');

      if cmdGNRE.OK then
      begin
        cmdGNRE.CriaIniRet;
        showmessage('recibo:' + cmdGNRE.ReadChaveSolta('recibo') );
      end;

      //limpa ini para adicionar nova GNRE
      IniGNRe.Clear;
    end;

  QA1s.Close;
  FreeAndNil(QA1s);

end;
 

Acredito que esse erro " ERRO: ID Inválido. Impossível Salvar XML" se deve a montagem do arquivo INI que não está completa.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Josenildo,

Neste caso porque você não utiliza o componente ACBrGNRe na sua aplicação Delphi?

Temos um programa exemplo que você pode estudar para poder usar o componente na sua aplicação.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
8 horas atrás, Italo Jurisato Junior disse:

Josenildo,

Neste caso porque você não utiliza o componente ACBrGNRe na sua aplicação Delphi?

Temos um programa exemplo que você pode estudar para poder usar o componente na sua aplicação.

Estou utilizando via Monitor e por mais que li o código exemplo no acbr não encontrei as tags da chave de acesso da NF-e que tem que constar na GNR-e por exemplo.

Link para o comentário
Compartilhar em outros sites

Olá Josenildo essa tag da NFE tem que ir no CampoExtra seria na extrutura      ACBrGNRE.Guias.Items[0].GNRE.camposExtras

Nesse camarada você tem a opção do código solicitado na GNRE / Tipo / Valor que seria a chave da NF-e ou CT-e

Pode até ter mais de uma chave de NF-e ok?

O ID que está reclamando o ACBR utiliza o campo c42_identificadorGuia para gravar o nome do arquivo

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

  • Membros Pro
Em 13/03/2018 at 07:38, Ernaniw disse:

Olá Josenildo essa tag da NFE tem que ir no CampoExtra seria na extrutura      ACBrGNRE.Guias.Items[0].GNRE.camposExtras

Nesse camarada você tem a opção do código solicitado na GNRE / Tipo / Valor que seria a chave da NF-e ou CT-e

Pode até ter mais de uma chave de NF-e ok?

O ID que está reclamando o ACBR utiliza o campo c42_identificadorGuia para gravar o nome do arquivo

Alguém poderia pelo menos postar um XML completo de uma GNR-e pra eu me basear, pois repito, o manual está desatualizado.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Josenildo,

Eu não utilizo o GNRE, caso contrario arrumaria pra você.

Mas acredito que o programa exemplo do componente ACBrGNRE seja capaz de gerar o XML que você deseja.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Moderadores
Em 14/03/2018 at 11:44, josenildo.bandeira disse:

Alguém poderia pelo menos postar um XML completo de uma GNR-e pra eu me basear, pois repito, o manual está desatualizado.

Boa tarde. Veja no manual (Tecla F1) que na tag "Complemento" tem o o campo "IdentificadorGuia", no seu arquivo não tem esse campo. Deve ser informado um número de controle.

 

ENT.txt

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

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