cancel
Showing results for 
Search instead for 
Did you mean: 

/XNFE/B2BSTATUS - Limpeza de tabela

former_member509118
Participant
0 Kudos

Pessoal, bom dia...

estamos tendo problemas com a tabela em questão pois está num crescimento absurdo e somente em DEV.

Vi algumas discussões no forum inclusive mencionando notas a serem aplicadas porem como estamos no SP14 estas já estão contempladas.

Alguem sabe me dizer o que está acarretando esse problema, alguem abriu chamado na SAP e obteve uma resposta pois apenas aplicar a nota sobre o Report para limpar a tabela vai resolver o problema parcialmente...

Se alguem puder ajudar serei muito grato.

Obrigado.

Rodrigo

Accepted Solutions (1)

Accepted Solutions (1)

rhviana
Active Contributor
0 Kudos

Rodrigo Corol boa tarde,

Pergunta, se estamos falando de DEV, por que você não desativa os adaptadores no PI ?

Não tem necessidade de ficar testando infinitamente o cenário de B2B em DEV - Homologação.

Até busca uma solução, recomendo essa como paliativa.

Chegou a ver essa thread, correto ?

http://scn.sap.com/thread/3341230

Executou o report da nota - 1832269 - unnecessary entries in B2B Status Table ?

Report sugerido pela SAP - Z_NFE_B2B_STATUS_CLEANING - implementa esse report no seu ambiente e executa.

Porém vale salientar o que o Lucas comentou sobre o loop infinito.

Att,

former_member509118
Participant
0 Kudos

Ola Ricardo... obrigado pela ajuda...

Infelizmente não posso desligar o B2B pois estão ocorrendo outros projetos de NF-e alem dos que ja estão em Produção.

Voce chegou a alguma conclusão do problema e aplicou para isso nao ocorrer ou mantem o job desse programa caso seu B2B estiver ativo?

Obrigado.

former_member509118
Participant
0 Kudos

Ricardo... vc chegou a mencionar o codigo que vc utilizou e nao estou conseguindo ve-lo agora... pode envia-lo novamente?

Obrigado.

rhviana
Active Contributor
0 Kudos

Entao grande Rodrigo,

Peguei o código daquela nota, porém, segue abaixo:

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

*& Report  Z_NFE_B2B_STATUS_CLEANING

*&

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

*&

*&

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

REPORT  z_nfe_b2b_status_cleaning.

INCLUDE /xnfe/constants_generic.

INCLUDE /xnfe/constants_nfe.

DATA: lt_acknowledg  TYPE /xnfe/acknowledg_t,

      ls_acknowledg  TYPE /xnfe/acknowledg,

      ls_b2bstatus   TYPE /xnfe/b2bstatus,

      lt_b2bstatus   TYPE /xnfe/b2bstatus_t.

DATA: lv_b2b_status  TYPE /xnfe/b2b_status,

      lv_cursor      TYPE cursor.

CONSTANTS: lc_package_size TYPE i VALUE 100000.

SELECT * FROM /xnfe/acknowledg INTO TABLE lt_acknowledg WHERE message = gc_messtype_pi-ntb2b OR

                                                              message =  gc_messtype_pi-ctb2b OR

                                                              message = gc_messtype_pi-ncb2b OR

                                                              message = gc_messtype_pi-ccb2b.

LOOP AT lt_acknowledg INTO ls_acknowledg.

  IF ls_acknowledg-id IS NOT INITIAL.

    CLEAR lt_b2bstatus.

    IF ls_acknowledg-message = gc_messtype_pi-ntb2b           "NFe/Cancelation to B2B Buyer

      OR ls_acknowledg-message = gc_messtype_pi-ctb2b.

      lv_b2b_status    = gc_b2bstatus-sendb2b.

    ELSE.                                                     "NFe/Cancelation to B2B Carrier

      lv_b2b_status    = gc_b2bstatus-sendb2bcar.

    ENDIF.

    OPEN CURSOR WITH HOLD lv_cursor FOR

        SELECT * FROM /xnfe/b2bstatus

          WHERE id = ls_acknowledg-id

               AND versnum = gc_init_versnum

               AND b2b_status = lv_b2b_status

               AND ( error_status = gc_error-b2b_xiapp OR error_status = gc_error-b2b_xisys )

               AND commtype = gc_b2b_commtype-pi

               AND messageid = ls_acknowledg-messageid

               ORDER BY PRIMARY KEY.

    DO.

      FETCH NEXT CURSOR lv_cursor

       INTO TABLE lt_b2bstatus PACKAGE SIZE lc_package_size.

      IF sy-subrc NE 0.

        CLOSE CURSOR lv_cursor.

        EXIT.

      ENDIF.

      IF sy-index = 1.

        DELETE lt_b2bstatus INDEX 1.

      ENDIF.

      IF lt_b2bstatus IS NOT INITIAL.

        DELETE /xnfe/b2bstatus FROM TABLE lt_b2bstatus.

        CALL FUNCTION 'DB_COMMIT'.

      ENDIF.

    ENDDO.

  ENDIF.

ENDLOOP.

Att

former_member509118
Participant
0 Kudos

Cara... por incrivel que pareça... o codigo que eu tinha baixado da nota era diferente desse que vc me passou... nao continha essa parte de ativação dos job's ... por isso te pedi novamente...rsrsrs

Obrigado.

rhviana
Active Contributor
0 Kudos

Nossa que estranho...

De qualquer forma disponha.

Abra´s

former_member509118
Participant
0 Kudos

Cara... ultima pergunta... vc deixou esse programa em back ou teve outra solução?

rhviana
Active Contributor
0 Kudos

Rodrigo,

Na realidade nem precisei usa-lo até agora, porém o Lucas naquela thread que coloquei acima, falou que teve que fazer um ajuste nesse código, ficou em loop infinito parece.

Da uma lida no que ele escreveu.

Answers (1)

Answers (1)

Former Member
0 Kudos

Oi Rodrigo.

Resolveu o problema? Se for o caso feche a thread qualificando as respostas que lhe foram dadas.

Grato

Eduardo Chagas

former_member509118
Participant
0 Kudos

Ola Eduardo... infelizmente não foi resolvido... o ambiente continua criando registros na tabela.

Desliguei os JOB's de NF-e, estou rodando o programa de limpeza mencionado na nota da SAP e o problema ainda continua...