cancel
Showing results for 
Search instead for 
Did you mean: 

Inbound - Etapa espera por resposta assíncrona

former_member216168
Active Participant
0 Kudos

Pessoal,

Estou com o erro de "etapa espera por resposta assíncrona" no processo de inbound, só para um determinado emissor:

Alguém tem alguma ideia do que posso fazer..?

Obrigado..!

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member182503
Active Contributor
0 Kudos

Thiago,

No monitor fiscal da NF-e de entrada, selecione a nota e vá na aba Eventos. Veja qual o status do evento. Dependendo do status do evento, pode ser necessário o reenvio do evento.

No exemplo acima, o erro era 999.

Para reenviar, vá ao monitor "Saida - Monitor de Eventos", filtre os eventos do tipo 210210 com Codigo Status Sefaz = 999, buscar, selecionar as linhas relevantes e clicar no botão "Continuar Processo".


Também pode ser que o lote do evento esteja parado, bastando apenas reenviar o mesmo.

[]'s

JN

former_member216168
Active Participant
0 Kudos

Obrigado pela resposta, José

Olha que estranho, não aparece o código de status da SEFAZ:

Alguma ideia?

former_member182503
Active Contributor
0 Kudos

Thiago,

Veja no monitor de "Saida - Monitor de Eventos" se os eventos estão parados lá, como neste exemplo:

Se estiverem assim, pegue o numero do lote e veja no "Monitor Lote Evento" os lotes parados e tente reenvia-los, como no exemplo abaixo:

[]'s

JN

former_member216168
Active Participant
0 Kudos

José,

Tentei reiniciar mas não dá:

Poderia ser algo de permissão? Dei uma olhada na SU53 e deu um erro:

former_member216168
Active Participant
0 Kudos

Um amigo de PI já me passou um procedimento de "marretar" umas tabelas para forçar o reinicio. Desenvolvi um report para fazer isso, talvez ajude quem precisar:


REPORT ynfe_lote NO STANDARD PAGE HEADING.

*----------------------------------------------------------------------*

*                                   *

*----------------------------------------------------------------------*

* Programa : YNFE_LOTE                                                 *

* Transação: YNFE_LOTE                                                 *

* Descrição: Reiniciar lotes parados (NF-e / Evento)                   *

*            1 - Status 103 - Lote recebido com sucesso (não reinicia) *

*            2 - Lote parado que não consegue reiniciar (SEFAZ online) *

*            3 - Rejeição não catalogada – Versão 3.10                 *

*----------------------------------------------------------------------*

*            /sap/bc/webdynpro/xnfe/nfe_batch_monitor                  *

*            /sap/bc/webdynpro/xnfe/event_batch_monitor                *

*----------------------------------------------------------------------*

* Tipo     : Report                                                    *

* Módulo   : GRC                                                       *

* Funcional: -                                                         *

* ABAP     : Thiago Cordeiro Alves                                     *

*----------------------------------------------------------------------*

*                 Descrição das Modificações                           *

*----------------------------------------------------------------------*

* Nome      Data        Descrição                                      *

* ACTHIAGO  18.08.2015  #117757 - Desenvolvimento inicial              *

*----------------------------------------------------------------------*

*----------------------------------------------------------------------*

* Estruturas

*----------------------------------------------------------------------*

TYPES:

  BEGIN OF ty_nfe_header                     ,

    id         TYPE /xnfe/outnfehd-id        , " Chave de acesso de 44 caracteres

    docnum     TYPE /xnfe/outnfehd-docnum    , " Nº do documento NF-e

    batch_guid TYPE /xnfe/outnfehd-batch_guid, " Chave primária como GUID em formato 'RAW'

    batchid    TYPE /xnfe/outnfehd-batchid   , " Nº batch

    statcod    TYPE /xnfe/outnfehd-statcod   , " Código de status do documento junto às autoridades (SEFAZ)

  END OF ty_nfe_header                       .

*----------------------------------------------------------------------*

* Tabelas internas

*----------------------------------------------------------------------*

DATA:

  t_lote_header    TYPE STANDARD TABLE OF /xnfe/batchhd   , " Batch Kopfdaten

  t_lote_status    TYPE STANDARD TABLE OF /xnfe/outbatsta , " Batch Kopfstatus

  t_lote_historico TYPE STANDARD TABLE OF /xnfe/outbathist, " Batch Status-Historie

  t_nfe_header     TYPE STANDARD TABLE OF ty_nfe_header   ,

  t_lote_evento    TYPE STANDARD TABLE OF /xnfe/event_bat .

*----------------------------------------------------------------------*

* Work-Areas

*----------------------------------------------------------------------*

DATA:

  w_lote_header    LIKE LINE OF t_lote_header   ,

  w_lote_status    LIKE LINE OF t_lote_status   ,

  w_lote_historico LIKE LINE OF t_lote_historico,

  w_nfe_header     LIKE LINE OF t_nfe_header    ,

  w_lote_evento    LIKE LINE OF t_lote_evento   .

*----------------------------------------------------------------------*

* Estruturas

*----------------------------------------------------------------------*

DATA:

  v_lote_nfe      TYPE /xnfe/batchid      , " Nº batch

  v_contador_step TYPE /xnfe/out_stepcount,

  v_contador_hist TYPE /xnfe/out_histcount,

  v_mensagem      TYPE string             ,

  v_indice        TYPE sy-tabix           .

*----------------------------------------------------------------------*

* Constantes

*----------------------------------------------------------------------*

CONSTANTS:

  c_erro_status    TYPE /xnfe/out_stepstatus VALUE '02' ,

  c_nfe_autorizada TYPE /xnfe/tstat-statcode VALUE '100'.

*----------------------------------------------------------------------*

* Tela de seleção

*----------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK bl01 WITH FRAME TITLE t000          .

PARAMETERS: p_nfe RADIOBUTTON GROUP r1 DEFAULT 'X' USER-COMMAND rusr,

            p_evt RADIOBUTTON GROUP r1                              .

SELECTION-SCREEN END OF BLOCK bl01                                  .

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE t001            .

SELECT-OPTIONS: s_batch FOR v_lote_nfe NO INTERVALS                 . " Nº do lote da NF-e

SELECTION-SCREEN END OF BLOCK b1                                    .

*----------------------------------------------------------------------*

* Process Before Output

*----------------------------------------------------------------------*

INITIALIZATION.

  t000 = 'Tipo de lote'  .                                  "#EC NOTEXT

  t001 = 'Número do lote'.                                  "#EC NOTEXT

*----------------------------------------------------------------------*

* Início

*----------------------------------------------------------------------*

START-OF-SELECTION.

  IF s_batch-low IS INITIAL.

    MESSAGE 'Informe o número do lote' TYPE 'S' DISPLAY LIKE 'E'. "#EC NOTEXT

    EXIT.

  ENDIF.

  IF p_nfe IS NOT INITIAL.

    PERFORM f_reiniciar_lote_nfe.

  ELSEIF p_evt IS NOT INITIAL.

    PERFORM f_reiniciar_lote_evento.

  ENDIF.

*&---------------------------------------------------------------------*

*&      Form  f_reiniciar_lote_nfe

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM f_reiniciar_lote_nfe.

* Cabeçalho do lote

  SELECT * FROM /xnfe/batchhd

    INTO TABLE t_lote_header

    WHERE batchid IN s_batch.

  SORT t_lote_header BY guid ASCENDING.

  IF t_lote_header IS INITIAL.

    MESSAGE 'Lote não foi encontrado' TYPE 'S' DISPLAY LIKE 'E'. "#EC NOTEXT

    EXIT.

  ENDIF.

  SORT t_lote_header BY batchid ASCENDING.

  SELECT id docnum batch_guid batchid statcod

   FROM /xnfe/outnfehd

   INTO TABLE t_nfe_header

   FOR ALL ENTRIES IN t_lote_header

   WHERE batchid = t_lote_header-batchid.

* Verifica se as notas fiscais já foram validadas na SEFAZ

  LOOP AT t_nfe_header INTO w_nfe_header.

    IF w_nfe_header-statcod <> c_nfe_autorizada.

      CLEAR w_lote_header.

      READ TABLE t_lote_header

      INTO w_lote_header

      WITH KEY batchid = w_nfe_header-batchid.

      IF sy-subrc = 0.

        DELETE t_lote_header INDEX sy-tabix.

        CLEAR v_mensagem.

        v_mensagem = 'Nota &1 do lote &2 não está liberada na SEFAZ'.

        CONDENSE: w_lote_header-batchid, w_nfe_header-id NO-GAPS.

        REPLACE '&1' WITH w_nfe_header-id       INTO v_mensagem.

        REPLACE '&2' WITH w_lote_header-batchid INTO v_mensagem.

        WRITE: v_mensagem.

      ENDIF.

    ENDIF.

  ENDLOOP.

  IF t_lote_header IS INITIAL.

    EXIT.

  ENDIF.

  LOOP AT t_lote_header INTO w_lote_header.

    CLEAR: v_contador_step, v_contador_hist.

*   Maior contador de saída do status do lote

    SELECT MAX( stepcount )

      FROM /xnfe/outbatsta

      INTO v_contador_step

      WHERE guid = w_lote_header-guid.

*   Maior contador do histórico

    SELECT MAX( histcount )

      FROM /xnfe/outbathist

      INTO v_contador_hist

      WHERE guid = w_lote_header-guid.

*   Status do lote

    SELECT * FROM /xnfe/outbatsta

     APPENDING TABLE t_lote_status

     WHERE guid     = w_lote_header-guid

       AND stepcount = v_contador_step.

*   Histórico do lote

    SELECT * FROM /xnfe/outbathist

     APPENDING TABLE t_lote_historico

     WHERE guid     = w_lote_header-guid

       AND histcount = v_contador_hist.

  ENDLOOP.

  IF t_lote_status IS INITIAL

    AND t_lote_historico IS INITIAL.

    MESSAGE 'Não foram encontrados históricos e status para o lote' TYPE 'S' DISPLAY LIKE 'E'. "#EC NOTEXT

    EXIT.

  ENDIF.

* Reinicia o status do cabeçalho

  LOOP AT t_lote_header INTO w_lote_header                      .

    v_indice                     = sy-tabix                    .

    w_lote_header-actstat        = c_erro_status               .

    w_lote_header-last_stepstatus = c_erro_status               .

    MODIFY t_lote_header FROM w_lote_header INDEX v_indice      .

  ENDLOOP                                                       .

* Reinicia o status do lote

  LOOP AT t_lote_status INTO w_lote_status                      .

    v_indice                = sy-tabix                         .

    w_lote_status-stepstatus = c_erro_status                    .

    MODIFY t_lote_status FROM w_lote_status INDEX v_indice      .

  ENDLOOP                                                       .

* Reinicia o status do histórico

  LOOP AT t_lote_historico INTO w_lote_historico                .

    v_indice                   = sy-tabix                      .

    w_lote_historico-stepstatus = c_erro_status                 .

    MODIFY t_lote_historico FROM w_lote_historico INDEX v_indice.

  ENDLOOP                                                       .

  IF t_lote_header IS NOT INITIAL.

    MODIFY /xnfe/batchhd FROM TABLE t_lote_header.

  ENDIF.

  IF t_lote_status IS NOT INITIAL.

    MODIFY /xnfe/outbatsta FROM TABLE t_lote_status.

  ENDIF.

  IF t_lote_historico IS NOT INITIAL.

    MODIFY /xnfe/outbathist FROM TABLE t_lote_historico.

  ENDIF.

  LOOP AT t_lote_header INTO w_lote_header.

    v_mensagem = 'Lote & reiniciado(s) com sucesso'.

    CONDENSE w_lote_header-batchid NO-GAPS.

    REPLACE '&' WITH w_lote_header-batchid INTO v_mensagem.

    WRITE: v_mensagem.

  ENDLOOP.

ENDFORM.                    "f_reiniciar_lote_nfe

*&---------------------------------------------------------------------*

*&      Form  f_reiniciar_lote_evento

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM f_reiniciar_lote_evento.

  SELECT * FROM /xnfe/event_bat

   INTO TABLE t_lote_evento

   WHERE batchid IN s_batch.

  LOOP AT t_lote_evento INTO w_lote_evento.

    v_indice = sy-tabix.

    w_lote_evento-step_status = c_erro_status.

    w_lote_evento-actstat    = c_erro_status.

    MODIFY t_lote_evento FROM w_lote_evento INDEX v_indice.

  ENDLOOP.

  IF t_lote_evento IS NOT INITIAL.

    MODIFY /xnfe/event_bat FROM TABLE t_lote_evento.

  ENDIF.

ENDFORM.                    "f_reiniciar_lote_evento

Depois de rodar ele, consegui reiniciar o lote:

O problema é que essas notas são de dezembro, e agora está dando erro no monitor:

Tem alguma ideia do que posso fazer agora?

former_member182503
Active Contributor
0 Kudos

Thiago,

O evento 210210 já existe para essa nota em questão, foi aprovado no dia 02.12.2015 as 16:25.

  • Vocês precisam receber essas notas via NF-e inbound, é isso?
  • Quantas notas estão nesta situação?
  • Essas notas se encontram no monitor de NF-e no processo PREPRSUM?
  • Houve troca/atualização do certificado digital entre o dia 02.12.2015 e hoje? Isso justificaria o erro 291, motivo rejeição: certificado assinatura data validade

O que eu faria:

Se o fornecedor enviou o XML destas notas para vocês e vocês tem esses XML's em seu poder(conforme manda a lei), eu tentaria excluir os XML's do GRC(via report /XNFE/DELETE_INBOUND_NFE) e carregá-los novamente (via interface ou SPROXY).

PS: teste este cenário em ambiente de teste antes de fazer em produção e só faça se você tiver o XML completo das notas.

[]'s

JN