Jump to content

dev botao

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


Infolight
  • Este tópico foi criado há 2402 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 to comment
Share on other 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 / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other 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 to comment
Share on other 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 / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other 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 to comment
Share on other 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

Edited by Ernaniw
Link to comment
Share on other 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 to comment
Share on other 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 / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other 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 to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.