Ir para conteúdo
  • Cadastre-se

dev botao

Erro : O Identificador Não Está No Estado Correto Para A Operação Solicitada - Url:https://producao.ginfes.com.br/serviceginfesimpl - Soapaction:""


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

Recommended Posts

Postado

Este problema esta ocorrendo varias vezes ao enviar os dados para o PRovedor GINFES .

 

 

Alguem sabe o que pode ser ?

 

O provedor é o GINFES

 

 

Obrigado

 

Postado

Tentei verificar com mais detalhes o problema que ocorre e verifiquei que esta ocorrendo erro em uma rotina do enviaLote, veja a tela anexo  Listofbound(-1), 

 

Conforme tela anexa.

 

Se algum puder ajudar..

 

ERRO ACBR.pdf

Postado

E este erro 

 O Identificador Não Está No Estado Correto Para A Operação Solicitada - Url:https://producao.ginfes.com.br/serviceginfesimpl - Soapaction:""

 

Vc sabe o que pode ser ??, 

 

Tenho 3 pessoas enviando notas fiscais de servico no emissor, porem para empresas diferentes, e cada empresa tem sua estrutura de diretorio..., porem percebi quando ocorre este erro, se todo mundo sair do sistema e deixar apenas um usuario o sistema nao da este erro, mas quando 3 pessoas estao enviando o erro fica cronico.....

 

Sao empresas, diferentes, certificados diferentes....,  e o erro ocorre no enviar.

 

Se puder me dar uma luz agradeço, 

 

Marcio

  • Consultores
Postado

Boa tarde Marcio,

 

Você já deve ter percebido que o WebService da Ginfes é lento, quando você envia um lote, mesmo com apenas um RPS, até ocorrer o retorno do XML da NFS-e é possível tomar uma xicara de café.

 

E pelo que entendi os 3 usuários estão enviando através de uma unica máquina, um servidor por exemplo, estou correto?

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

Postado (editado)

Estamos utilizando terminal server, 

 

E cada usuario na sua sessao,   o sistema e as pastas de controle estão em uma pasta Ex.   F:\NFSE\PRODUCAO\........

 

Fiz teste no homologação com mais de 1000 notas e não tive problemas,   mas agora na producao esta toda hora ocorrendo este erro, não consegui identificar se o problema esta com o GINFES, ou com a aplicacao, mas quando comeca acontecer estes erro, se todo mundo sair da aplicacao e uma unico usuario comecar a enviar percebi que o problema não ocorre....

 

Ainda não consegui identificar o problema..

Editado por medreis
Postado (editado)

Italo, atualizei os fontes mas o erro continua, para o provedor GINFES veja o erro no mesmo local onde informei acima .

 

O erro ocorre no retorno do lote e o erro é na funcao abaix

 

unit pcnLeitor;

 

function TLeitor.rExtrai(const nivel: integer; const TagInicio: string; TagFim: string = ''; const item: integer = 1): AnsiString;
var
  Texto: AnsiString;
  i,j: integer;
begin
  //NOTA: Extrai um grupo de dentro do nivel informado
  FNivel.strings[0] := FArquivo;
  if Trim(TagFim) = '' then
    TagFim := TagInicio;
  Texto := FNivel.Strings[nivel - 1];                    <<<<<<<---------Aqui ocorre o erro porque a variavel NIVEL esta com o valor 0 
 
a chamada esta aqui  
 
 
unit pnfsEnvLoteRpsResposta;
 

function TretEnvLote.LerXml: boolean;
var
  i: Integer;
  iNivel: Integer;
begin
...
...

      // Ler a Lista de Mensagens
      iNivel := 0;                                                                                         <<<<<<<<<<<<<<<<<<<<<<<<-----------------------------Ele sempre zera o inivel,  mas quando nao tem mensagem o inivel fica 0 ai da erro
      if leitor.rExtrai(2, 'ListaMensagemRetorno') <> '' then
        iNivel := 3
      else if leitor.rExtrai(1, 'ListaMensagemRetorno') <> '' then
        iNivel := 2;
 

//Colocado pelo Eduardo para testes erro listbound -1
//if iNivel > 0  then
//begin
        i := 0;
        while Leitor.rExtrai(iNivel, 'MensagemRetorno', '', i + 1) <> '' do        <<<<<<<<<<<<<<<<<<<----Aqui em momento de retorno de mensagem do lote a variavel inivel  = 0 ao charmar a rotina da erro
        begin
          InfRec.FMsgRetorno.Add;
          InfRec.FMsgRetorno.FCodigo   := Leitor.rCampo(tcStr, 'Codigo');
          InfRec.FMsgRetorno.FMensagem := Leitor.rCampo(tcStr, 'Mensagem');
          InfRec.FMsgRetorno.FCorrecao := Leitor.rCampo(tcStr, 'Correcao');
 
          inc(i);
        end;
 
        if i = 0 then
          InfRec.FMsgRetorno.Add;
//      end;
 
 
Se puder ajudar.
 
Obrigado.
Editado por medreis
Postado

O erro de listofbound, nos testes iniciais não mais, mas o erro : O Identificador Não Está No Estado Correto Para A Operação Solicitada - Url:https://producao.ginfes.com.br/serviceginfesimpl - Soapaction:"".

 

Este eu ainda nao consegui identificar , abri um chamado até no GINFES,  tem hora que transmite, tem hora que não transmite... não sei se é instabilidade mas esta muito frequente... praticamente toda hora.

 

 

Se tiver alguma informação que possa me ajudar, desde já muito obrigado.

 

Marcio

Postado (editado)

Italo,

 

Segue anexo o log que guardo dos processos da de envio da NFSE, neste processo seleciono varias notas fiscais,  e Gero o RPS, e depois envio , e deixo marcado a opção de consulta retorno lote, veja que o sistema enviou e apresentou uma mensagem de erro sem conteudo, mas veja que o lote foi sendo consultado, até o final do limite das consultas..., depois gerou o erro de Soapaction...., apos a geração desta erro acho que ficou alguma coisa sem detruir no componente, com todas as demais notas houve erro de access violation, pelo que verifiquei nas rotinas, de erro, poderiamos identificar as mensagem de erro com um codigo  ERRO ENVLOT: , ou ERRO 001:  pois desta forma fica mais facil identificar onde a mensagem se originou e tentar verificar o processo e tratar os erros.

 

Para as demais notas eu apenas acbrnfse.notasfiscais.clear;   e inicio o processo de geracao do RPS e envio, mas como alguma coisa ficou pendente, nas demais gera o acess violation,

 

Mas mesmo com o erro ainda tinha retorno ACBrNFSe1.WebServices.Enviar.Protocolo;  , pois o sistema salvou o numero do protocolo, para as demais, acho que quando ocorre erro, o componente deveria zerar estas informações

 

 

Obrigado
 
MArcio 

Detalhes do Log.zip

Editado por medreis
Postado

Outro detalhe que vi, mas não sei se pode ajudar... no codigo do envioLote e consultaLote e demais...

 

function TNFSeEnviarLoteRPS.Executar: Boolean;
var
 aMsg        : String;
 Texto       : String;
 Acao        : TStringList;
 Stream      : TMemoryStream;
 StrStream   : TStringStream;
 i           : Integer;
 
 {$IFDEF ACBrNFSeOpenSSL}
   HTTP    : THTTPSend;
 {$ELSE}
   ReqResp : THTTPReqResp;
 {$ENDIF}
begin
 {Result :=} inherited Executar;
 
 if Assigned(NFSeRetorno)
  then NFSeRetorno.Free;
 
 Texto := TiraAcentos(FProvedorClass.GeraEnvelopeRecepcionarLoteRPS(URLNS1, FCabMSg, FDadosMsg, FDadosSenha));
 
 Acao      := TStringList.Create;
 Stream    := TMemoryStream.Create;                              <<<<<<<<<<<<<<<<<<< ------Esta variavel é liberada no Finally do bloco 
 Acao.Text := Texto;
 
 {$IFDEF ACBrNFSeOpenSSL}
   Acao.SaveToStream(Stream);
   HTTP := THTTPSend.Create;
 {$ELSE}
   ReqResp := THTTPReqResp.Create(nil);
   ConfiguraReqResp( ReqResp );
   ReqResp.URL := FURL;
   ReqResp.UseUTF8InHeader := True;
 
   ReqResp.SoapAction := FProvedorClass.GetSoapAction(acRecepcionar, FNomeCidade);
 {$ENDIF}
 
 try
  TACBrNFSe( FACBrNFSe ).SetStatus( stNFSeRecepcao );
 
  if FConfiguracoes.WebServices.Salvar
   then FConfiguracoes.Geral.Save(NumeroLote+'-env-lot-c.xml', Texto, FConfiguracoes.Arquivos.GetPathGer);
 
  if FConfiguracoes.Geral.Salvar
   then FConfiguracoes.Geral.Save(NumeroLote+'-env-lot.xml', FDadosMsg, FConfiguracoes.Arquivos.GetPathGer);
 
  try
    {$IFDEF ACBrNFSeOpenSSL}
      HTTP.Document.LoadFromStream(Stream);
      ConfiguraHTTP(HTTP, 'SOAPAction: "'+ FProvedorClass.GetSoapAction(acRecepcionar, FNomeCidade) +'"');
      HTTP.HTTPMethod('POST', FURL);
 
      StrStream := TStringStream.Create('');
      StrStream.CopyFrom(HTTP.Document, 0);
 
      FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
      FRetWS     := FProvedorClass.GetRetornoWS(acRecepcionar, FRetornoWS);
 
      StrStream.Free;                                                                                                                 
    {$ELSE}
      ReqResp.Execute(Acao.Text, Stream);
      StrStream := TStringStream.Create('');
      StrStream.CopyFrom(Stream, 0);
 
      FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
      FRetWS     := FProvedorClass.GetRetornoWS(acRecepcionar, FRetornoWS);                   <<<<<<<<<<<<<<<<<<---AQUI
 
      StrStream.Free;                                                                     <<<<<<<<<<<<<<<<<<<<<<---------------------Como estou tendo erro de SOAPACTION  ---imagino que o erro esta linha anterior pois estou utilizando capicom...
                                                                                                    ai como o erro pode ocorrer, sai pelo finally, e nao libera a variavel aqui.....pode ser isso o access violation.....
    {$ENDIF}
  • 9 meses depois ...
  • 5 meses depois ...
  • Membros Pro
Postado

Olá pessoal, tudo bem?

 

Estou enviando um lote para o provedor Ginfes e está dando a mesma mensagem de erro. Os componentes estão atualizados no meu PC.

 

Alguém tem algum ideia de como resolver este problema?

 

Obrigado,

 

Rogério.

  • 3 semanas depois ...
  • Membros Pro
Postado

Olá pessoal, tudo bem?

 

Estou quebrando cabeça aqui com este erro ao enviar um lote com 50 registros no ambiente de homologação. Erro: “O identificador não está no estado correto para a operação solicitada.”

 

No meu PC os componentes estão atualizados.

 

O que pode ocasionar este erro?

 

Obrigado,

 

Rogério.

  • Membros Pro
Postado

Somente complementando, o erro que mencionei na mensagem acima ocorre em:

 

 

function TNFSeEnviarLoteRPS.Executar: Boolean; 

 

linha 3183: ReqResp.Execute(Acao.Text, Stream);

 

Que identificador é esse?

  • Membros Pro
Postado

Sim, já entrei em contato com eles e eles disseram que "a mensagem não pertence a ferramenta Ginfes".

 

Foram essas as palavras deles.

 

Rogério.

  • Membros Pro
Postado

Italo,

 

O meu certificado está em dia. Estou emitindo NFe normalmente com ele. Desta forma, entendo que o anti-virus também não está bloqueando. De qualquer forma, desativei o anti-virus e fiz um teste e o problema persiste. Aqui também não tem proteção por proxy.

 

Mistério esse erro, hein!!!

 

Obrigado,

 

Rogério.

  • Membros Pro
Postado

Italo,

 

Estava pensando aqui.

 

Meu CNPJ está habilitado para emitir NFSe na prefeitura de Guarulhos e funciona perfeitamente utilizando o ACBrNFSe.

 

Emito NFSe uma a uma, ou seja, emissão de NFSe de cliente por cliente. Também emito NFe para a Sefaz perfeitamente utilizando o ACBrNFe.

 

Agora, pintou a necessidade de emitir NFSe em lote. Então, além de emitir uma a uma, também irei emitir em lote. Serão duas modalidades.

 

Minha dúvida é: Existe alguma diferença no meu cadastro junto à prefeitura ou à Ginfes que me habilita emitir NFSe apenas uma a uma ou a emitir em lote?

 

Quero dizer, se existe algum parâmetro na configuração da empresa que deixa emitir NFSe em lote ou não?!

 

Será que falei besteira?

 

Obrigado,

 

Rogério.

  • Consultores
Postado

Rogério,

 

No caso do provedor Ginfes, o envio já é por lote, a unica diferença é que você alimenta o componente com apenas uma nota e a envia.

Sendo assim o lote enviado para o provedor contem apenas uma nota.

Portanto se você ADD duas ou mais notas (máximo de 50) o componente vai montar o lote com todas as notas ADD e enviará para o provedor.

 

Existem provedores que possui duas funcionalidades distintas, uma permite o envio de lotes como explicado acima, e outra onde só pode ser ADD uma nota no componente, pois esta segunda funcionalidade só envia uma nota para o provedor.

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

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