Ir para conteúdo
  • Cadastre-se

dev botao

erro ao Enviar CCe com ACBrNFeMonitor


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

Recommended Posts

Caros colegas de luta, saudações...

Preciso de ajuda, usando o ACBrNFeMonitor para enviar a CCe, não estou sabendo como passar o comando. Já usei as seguintes estratégias e retorna sempre "ERRO: Comando inválido..."

1 - criei um arquivo texto com o nome de NFEENT.txt contendo os comandos da CCe e gravei na pasta que o ACBrNFeMonitor usa.

2 - alimentei uma variável com os comandos da CCe (Exemplo abaixo).

CMDCCE := '[CCE]';

CMDCCE := CMDCCE + ' idLote=1';

CMDCCE := CMDCCE + ' [EVENTO001]';

CMDCCE := CMDCCE + ' chNFe=' + Copy(QryNotachave_nfe.AsString,1,44) + '';

CMDCCE := CMDCCE + ' cOrgao=35';

CMDCCE := CMDCCE + ' CNPJ=' + CPFCNPJ + '';

CMDCCE := CMDCCE + ' dhEvento=' + FormatDateTime('dd/mm/yy hh:mm:ss',Now) + '';

CMDCCE := CMDCCE + ' nSeqEvento=1';

CMDCCE := CMDCCE + ' xCorrecao=' + Cpo_MotivoCorrecao.Text + '';

msg := '';

ResultMsg := '';

msg := mACBrGravaComando('', 'NFE.CARTADECORRECAO("' + CMDCCE + '")');

ResultMsg := msg;

- Enviando Carta de Correção... Aguarde!

ERRO: Comando inválido (NFE.CARTADECORRECAO("[CCE] idLote=1 [EVENTO001] chNFe=52101103862256000104550040000006029600669831 cOrgao=35 CNPJ=5582870130 dhEvento=12/04/12 11:11:13 nSeqEvento=1 xCorrecao=TTTTTYYYYYYYYYYYYYRRRRRRRRR"))

Por favor, se algum colega souber ou quizer postar um exemplo bem prático de como passar os comandos da CCe para o ACBrNFeMonitor postando inclusive a sintaxe eu ficaria muito grato.

Obrigado a Todos.

César Augusto de Moura

Analista de Sistemas de Informação

Kriar Técnologia

[email protected]

Link para o comentário
Compartilhar em outros sites

cara vc precisa quebrar a linha

assim

AssignFile(arq,m_arq);

Rewrite(arq);

Write(arq,'NFE.CARTADECORRECAO("[CCE]'+chr(13)+chr(10));

Write(arq,'idLote='+seqnfe+ chr(13)+chr(10));

Write(arq,'[EVENTO'+strzero(ibquery46.FieldByName('NSEQEVENTO').asstring,3)+']'+chr(13)+chr(10));

Write(arq,'chNFe='+ibquery46.FieldByName('chave_nfe').asstring+chr(13)+chr(10));

Write(arq,'cOrgao='+ibquery46.FieldByName('corgao').asstring+chr(13)+chr(10));

Write(arq,'CNPJ='+numero(dm.dtsempresa.FieldByName('cgcemp').asstring,'N')+chr(13)+chr(10));

Write(arq,'dhEvento='+ibquery46.FieldByName('DHEVENTO').asstring+chr(13)+chr(10));

Write(arq,'nSeqEvento='+ibquery46.FieldByName('NSEQEVENTO').asstring+chr(13)+chr(10));

Write(arq,'xCorrecao='+ibquery46.FieldByName('xcorrecao').asstring+'")'+chr(13)+chr(10));

System.Close(arq);

nao uso o monitor ,uso o componente porque sou do CE e o monitor nao esta atualizado pra uf CE

abraco

Link para o comentário
Compartilhar em outros sites

:cry: falta pouco...

ok, valeu, fiz a quebra de linhas mas mesmo assim retorna o erro. Publiquei ai em baixo o erro a a procedure, usei as duas opções , gerar o arquivo NFEENT.TXT no diretório do ACBrNFeMonitor e a comentada que monta o comando da CCe numa varialvel com as quebras de linha e chama a procedure "mACBrGravaComando". Nas duas situações retornam o mesmo erro, já comparei com os demais formatos de comando nos post´s aqui do forum e não to achando o erro... se algum colega puder ajudar... Obrigaduuu

Retorna o ERRO:

Comando inválido (NFE.CARTADECORRECAO("[CCE]

idLote=1

[EVENTO001]

chNFe=52101103862256000104550040000006029600669831

cOrgao=35

CNPJ=5582870130

dhEvento=12/04/12 15:47:47

nSeqEvento=1

xCorrecao=FDKJGHDKJGHURHRSHI)

procedure TFrmConsultaNotaFiscal.BitBtn3Click(Sender: TObject);

Var CPFCNPJ, CMDCCE, NomeArquivo, NomeArquivoCCe: string;

Arq : TextFile;

seqnfe, seqeve, orgao, lote: integer;

begin

If Length(Cpo_MotivoCorrecao.Text) = 0 Then

Begin

ShowMessage('Informe o Motivo da Correção.');

Exit;

End;

PathWRK := 'C:\DANFE-Nfe' + IntToStr(CodEmpresa);

SoDANFE := 9; // Informa que o ACBrNFeMonitor a ser executado é o do DANFE

AtivaAcbr; //Ativar ACBrNFeMonitor

SoDANFE := 0;

ListaErrosPCN.Clear;

ListaErrosPCN.Color := ClYellow;

tbCadastro.Enabled := False;

GroupBox4.Enabled := False;

BitBtn1.Enabled := False;

//ACBrNFeMonitor - Status do Serviço

msg := '';

ResultMsg := '';

ListaErrosPCN.Lines.add('- Verificando Status Serviço... Aguarde!');

Application.ProcessMessages;

// mACBrStsServico(msg, PathWRKARQ);

// If Copy(trim(ResultMsg),1,3) = 'OK:' then

Begin

//ACBrNFeMonitor - Enviar Carta de Correção

CPFCNPJ := '';

If QryNotaind_tipo_ident.Value = 'J' Then

CPFCNPJ := '' +IntToStr(QryNotanum_base_cpf_cnpj.Value) + '' + IntToStr(QryNotaseq_filial_cliente.Value) + '' + IntToStr(QryNotanum_dv_cpf_cnpj.Value);

If QryNotaind_tipo_ident.Value = 'F' Then

CPFCNPJ := '' +IntToStr(QryNotanum_base_cpf_cnpj.Value) + '' + IntToStr(QryNotanum_dv_cpf_cnpj.Value);

lote := 1;

seqnfe := 1;

seqeve := 1;

orgao := 35;

ListaErrosPCN.Lines.add('- Enviando Carta de Correção... Aguarde!');

Application.ProcessMessages;

//-----------------------------------------------------

NomeArquivo := '' + PathWRK + '\CCE.TXT';

NomeArquivoCCe := '' + PathWRK + '\ENTNFE.TXT';

Screen.Cursor := CrHourGlass;

AssignFile(arq, NomeArquivo);

Rewrite(arq);

Write(arq,'NFE.CARTADECORRECAO("[CCE]'+chr(13)+chr(10));

Write(arq,'idLote=' + FormatFloat('0',lote) + chr(13)+chr(10));

Write(arq,'[EVENTO' + FormatFloat('000',seqeve) + ']'+chr(13)+chr(10));

Write(arq,'chNFe=' + Copy(QryNotachave_nfe.AsString,1,44) + chr(13)+chr(10));

Write(arq,'cOrgao=' + FormatFloat('0',orgao) + chr(13)+chr(10));

Write(arq,'CNPJ=' + CPFCNPJ + chr(13)+chr(10));

Write(arq,'dhEvento=' + FormatDateTime('dd/mm/yy hh:mm:ss',Now) + chr(13)+chr(10));

Write(arq,'nSeqEvento=' + FormatFloat('0',seqeve) + chr(13)+chr(10));

Write(arq,'xCorrecao=' + Cpo_MotivoCorrecao.Text + chr(13)+chr(10));

Screen.Cursor := CrDefault;

System.Close(arq);

If Not (copyfile(pchar(NomeArquivo), pchar(NomeArquivoCCe), false)) then

Begin

showmessage('Não copiou' + NomeArquivo + ' para ' + NomeArquivoCCe + '');

Exit;

End

Else

DeleteFile(NomeArquivo);

//-----------------------------------------------------

{CMDCCE := '[CCE]'+chr(13)+chr(10);

CMDCCE := CMDCCE + ' idLote=1'+chr(13)+chr(10);

CMDCCE := CMDCCE + ' [EVENTO001]'+chr(13)+chr(10);

CMDCCE := CMDCCE + ' chNFe=' + Copy(QryNotachave_nfe.AsString,1,44) + ''+chr(13)+chr(10);

CMDCCE := CMDCCE + ' cOrgao=35'+chr(13)+chr(10);

CMDCCE := CMDCCE + ' CNPJ=' + CPFCNPJ + ''+chr(13)+chr(10);

CMDCCE := CMDCCE + ' dhEvento=' + FormatDateTime('dd/mm/yy hh:mm:ss',Now) + ''+chr(13)+chr(10);

CMDCCE := CMDCCE + ' nSeqEvento=1'+chr(13)+chr(10);

CMDCCE := CMDCCE + ' xCorrecao=' + Cpo_MotivoCorrecao.Text + '")' +chr(13)+chr(10);

msg := '';

ResultMsg := '';

msg := mACBrGravaComando('', 'NFE.CARTADECORRECAO("' + CMDCCE + '');

ResultMsg := msg;

ListaErrosPCN.Lines.add(msg);}

//-----------------------------------------------------

End;

ListaErrosPCN.Color := ClWindow;

tbCadastro.Enabled := True;

BitBtn1.Enabled := True;

GroupBox4.Enabled := True;

end;

César Augusto de Moura

Analista de Sistemas de Informação

Kriar Técnologia

[email protected]

Link para o comentário
Compartilhar em outros sites

bem observado, o CNPJ estava sendo passado errado mas nesse caso, o registro é de um CPF. Mas ainda não é esse o problema. O que acho estranho é o ACBrNFeMonitor retornar "COMANDO ERRADO", isso que não entendo, mesmo gerando o arquivo ENTNFE.TXT com a sintaxe correta ele retorna esse erro, se fosse algum parâmetro passado errado, deveria retornar outra mensagem não acha ???

César Augusto de Moura

Analista de Sistemas de Informação

Kriar Técnologia

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Moderadores

xCorrecao=FDKJGHDKJGHURHRSHI)

Vc fechou aspas " ou só no teu exemplo que está sem?

xCorrecao=FDKJGHDKJGHURHRSHI")


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Kiko, estava usando a versão errada do ACBrNFeMonitor. Mas mesmo depois que corrigi apareceu essa mensagem de erro, vc sabe o que pode ser isso ???

NFE.CARTADECORRECAO("[CCE]

idLote=1

[EVENTO001]

chNFe=52101103862256000104550040000006029600669831

cOrgao=35

CNPJ=558287000130

dhEvento=13/04/12 16:20:25

nSeqEvento=1

xCorrecao=RAZAO SOCIAL GUIMARAES E MOURA LTDA")

ERRO: Falha na validação dos dados da carta de correção

1871 - Element '{http://www.portalfiscal.inf.br/nfe}chNFe': This element is not expected. Expected is one of ( {http://www.portalfiscal.inf.br/nfe}CNPJ, {http://www.portalfiscal.inf.br/nfe}CPF ).

César Augusto de Moura

Analista de Sistemas de Informação

Kriar Técnologia

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Moderadores

chNFe=52101103862256000104550040000006029600669831

cOrgao=35

cORGAO=??

Código do órgão de recepção do Evento. Utilizar a Tabela do IBGE, utilizar 90 para identificar o Ambiente Nacional.

Se a nota está na UF 52 "GO" o cOrgao tem que ser igual a 52.

CNPJ=558287000130

Acho que você desejou informar este CNPJ mas deixou faltando digito 05582870000130

Porém se for isto, este CNPJ é do destinatário, vc deve informar o CNPJ do autor.

Nt2011.003 - Pag. 9

A Carta de Correção é um evento para corrigir as informações da NF-e.

O autor do evento é o emissor da NF-e. A mensagem XML do evento será assinada com o certificado digital que tenha o CNPJ base do Emissor da NF-e.

NT2011.003 - Pag. 10

HP10 CNPJ - Informar o CNPJ ou

HP11 CPF - o CPF do autor do Evento

E quanto a esta mensagem de erro, se deve ao fato de que o CNPJ que vc informou é inválido, faltou 2 dígitos. Porém o CNPJ a ser informado é o do autor do evento. Ok!

1871 - Element '{http://www.portalfiscal.inf.br/nfe}chNFe': This element is not expected. Expected is one of ( {http://www.portalfiscal.inf.br/nfe}CNPJ, {http://www.portalfiscal.inf.br/nfe}CPF ).


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Kiko, como já disse nosso companheiro Wagner Aragão você é o kara :lol: mesmo...

o Problema era o CNPJ e o Cod. do Orgão. Agora a dúvida em relação a mandar mais de um evento na mesma Carta de Correção, sei que tenho que repetir os eventos anteriores para informar uma nova correção, já tentei de tudo, se tiver um exemplo de um XML que deu certo eu agradeço.

Gostaria de concluir a CCe usando o ACBrNFeMoinitor V7 para postar a solução COMPLETA de forma a ajudar os demais companheiros.

Abraço.

César Augusto de Moura

Analista de Sistemas de Informação

Kriar Técnologia

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Moderadores

se tiver um exemplo de um XML que deu certo eu agradeço.

Cesar, eu ainda não implementei a CCE. Tenho clientes apenas no PR que até o momento ainda não disponibilizou o endereço para a recepção deste evento.


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link para o comentário
Compartilhar em outros sites

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