CE PLUS - Nota 003954

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 18/06/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 13:42:19

Descrição da Nota: TRATAMENTO PARA CONTA BLOQUEADA NA RECLASSIFICAÇÃO DE IA

Sintoma

Ao realizar a reclassificação de IA caso a conta esteja bloqueada o sistema permite que seja feita a

F-05 mas não permite realizar a F-51 e nem estornar o documento gerado pela F05, perdendo assim o

documento já que este não é salvo na DI.

 

 

Solução

Atualização do programa da DI para no momento de gerar a variação cambial e a conta estiver sendo

utilizada, o sistema salve a F05 e quando a conta estiver liberada ao salvar a DI novamente o

sistema estorne a F05 gerando um novo docuemnto e compensando em seguida.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE PARA LIMPAR AS TABELAS INTERNAS COM LIXO PARA LANÇAR MATUSE

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 03954 Data: 18/06/2007 Hora: 12:09:12

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 03954

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00001

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

03824  - 00001 - 7.0    - 00001  - AJUSTE PARA LIMPAR AS TABELAS INTERNAS COM LIXO PARA LANÇAR MATUS

----------------------------------------------------------------------------------------------------

TRATAMENTO PARA CONTA BLOQUEADA NA RECLASSIFICAÇÃO DE IA

----------------------------------------------------------------------------------------------------

Palavras Chave:

CONTA - BLOQUEADA - RECLASSIFICAÇÃO - IA - DI

/PWS/SAPMZYCI023

----------------------------------------------------------------------------------------------------

Objetos da nota:

FUNC /PWS/ZYCI_RECLASSIFICACAO_IA

REPS /PWS/LZYCIGF2F01

REPS /PWS/MZYCI023F03

REPS /PWS/MZYCI023F04

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em FUNC /PWS/ZYCI_RECLASSIFICACAO_IA

 

...

          INCLUDE STRUCTURE /pws/zycit132.

  DATA: END OF itab_zycit132.

  DATA:

      itab_zycit094    TYPE /pws/zycie094    OCCURS 0 WITH HEADER LINE,

      itab_zycit006    TYPE /pws/zycit006    OCCURS 0 WITH HEADER LINE,

      itab_matuse_aux3 LIKE itab_matuse_aux  OCCURS 0 WITH HEADER LINE,

      itab_zycit263    TYPE /pws/zycit263    OCCURS 0 WITH HEADER LINE,

      v_gjahr          TYPE bsis-gjahr,

      v_tntgew         TYPE /pws/zycie003-ntgew,

      v_rec_ia         TYPE i.

* >> Início da inclusão:

  REFRESH: itab_di, itab_bsis_aux, itab_matuse_aux2, itab_matuse_aux,

           itab_bsis.

  CLEAR: itab_di, itab_bsis_aux, itab_matuse_aux2, itab_matuse_aux,

         itab_bsis.

* << Fim da inclusão

  SELECT SINGLE * FROM /pws/zycit042

     WHERE nrseq EQ i_zycit001-nrseq.

  IF sy-subrc EQ 0.

    SELECT SINGLE * FROM /pws/zycit041 INTO /pws/zycit041

       WHERE nrseq EQ /pws/zycit042-nrseqnf AND

       ( belnr_mr1m  NE space OR

         mblnr_mb01  NE space OR

         belnr_f_51  NE space OR

         belnr_f_02  NE space OR

         belnrf02fre NE space    ).

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/LZYCIGF2F01

 

...

                                          tabela = '/PWS/ZYCIT044'

                                         cpochv = /pws/zycie085-nrseqdi

                                          tpmsg  = 'S'.

        IF sy-subrc = 0.

          CLEAR: v_belnrf05.

          LOOP AT itab_matuse_aux WHERE

                           hkont = itab_matuse_aux2-hkont.

            IF itab_matuse_aux-j_1bmatuse = 0.

              /pws/zycie085-belnr_0_f05 = p_zycbt032-belnr.

              v_belnrf05 = /pws/zycie085-belnr_0_f05.

* >> Início da inclusão: FORM FILL_DATE_F_05_VARIACAO

              /pws/zycie085-budat_0 = sy-datlo.

* << Fim da inclusão

            ELSEIF itab_matuse_aux-j_1bmatuse = 1.

              /pws/zycie085-belnr_1_f05 = p_zycbt032-belnr.

              v_belnrf05 = /pws/zycie085-belnr_1_f05.

* >> Início da inclusão: FORM FILL_DATE_F_05_VARIACAO

              /pws/zycie085-budat_1 = sy-datlo.

* << Fim da inclusão

            ELSEIF itab_matuse_aux-j_1bmatuse = 2.

              /pws/zycie085-belnr_2_f05 = p_zycbt032-belnr.

              v_belnrf05 = /pws/zycie085-belnr_2_f05.

* >> Início da inclusão: FORM FILL_DATE_F_05_VARIACAO

              /pws/zycie085-budat_2 = sy-datlo.

* << Fim da inclusão

            ELSEIF itab_matuse_aux-j_1bmatuse = 3.

              /pws/zycie085-belnr_3_f05 = p_zycbt032-belnr.

              v_belnrf05 = /pws/zycie085-belnr_3_f05.

* >> Início da inclusão: FORM FILL_DATE_F_05_VARIACAO

              /pws/zycie085-budat_3 = sy-datlo.

* << Fim da inclusão

            ENDIF.

          ENDLOOP.

      UPDATE /pws/zycit085 SET  belnr_0_f05 = /pws/zycie085-belnr_0_f05

                                belnr_1_f05 = /pws/zycie085-belnr_1_f05

                                belnr_2_f05 = /pws/zycie085-belnr_2_f05

                                belnr_3_f05 = /pws/zycie085-belnr_3_f05

* >> Início da inclusão: FORM FILL_DATE_F_05_VARIACAO

                                    budat_0 = /pws/zycie085-budat_0

                                    budat_1 = /pws/zycie085-budat_1

                                    budat_2 = /pws/zycie085-budat_2

                                    budat_3 = /pws/zycie085-budat_3

* << Fim da inclusão

                                  WHERE nrseqdi = /pws/zycie085-nrseqdi.

          COMMIT WORK.

        ELSE.

          LOOP AT p_zycbt032.

          ENDLOOP.

        ENDIF.

      ELSE.

        LOOP AT p_zycbt032.

        ENDLOOP.

      ENDIF.

...

 

...

                                    p_zycit003 STRUCTURE /pws/zycit003

                                    p_zycit006 STRUCTURE /pws/zycit006

                             USING  p_zycbt007 STRUCTURE /pws/zycbt007

                                    p_zycit001 STRUCTURE /pws/zycit001

                                    v_modo.

  .

  DATA: itab_zycbe033  TYPE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,

        itab_zycbt011  TYPE /pws/zycbt011 OCCURS 10 WITH HEADER LINE,

        itab_zycbt036  TYPE /pws/zycbt036 OCCURS 10 WITH HEADER LINE,

        v_ano          TYPE t001b-frye1,

* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO

        v_estorno TYPE c,

* << Fim da inclusão

        v_sgtxt        TYPE bseg-sgtxt,

        v_zuonr        TYPE bseg-zuonr,

        v_xblnr        TYPE bkpf-xblnr,

        v_bktxt        TYPE bkpf-bktxt.

  FREE: itab_zycbe033, itab_contas, itab_zycbt036.

  CLEAR: itab_zycbe033, itab_contas, itab_zycbt036.

  SELECT SINGLE * FROM /pws/zycbt011 INTO itab_zycbt011

                WHERE codmod  = 'D'.

  READ TABLE itab_zycbt011 WITH KEY codeven = '001VM'.

  itab_zycbe033-mandt = sy-mandt.

...

 

...

                             belnr_3 = /pws/zycie085-belnr_3

                             budat_0 = /pws/zycie085-budat_0

                             budat_1 = /pws/zycie085-budat_1

                             budat_2 = /pws/zycie085-budat_2

                             budat_3 = /pws/zycie085-budat_3

                     WHERE nrseqdi = /pws/zycie085-nrseqdi.

        COMMIT WORK.

        v_rec_ia_1 = v_rec_ia_1 + 1.

        DELETE itab_bsis_aux WHERE hkont = itab_matuse_aux2-hkont.

      ELSE.

* >> Início da exclusão: FORM FILL_DATE_F_51_VARIACAO

        READ TABLE p_zycbt032 WITH KEY  tpmsg  = 'E'.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO

        READ TABLE p_zycbt032 WITH KEY  tcode  = 'F-51'

                                        tpmsg  = 'E'.

* << Fim da inclusão

        IF sy-subrc EQ 0.

* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO

          MESSAGE i015(/pws/zycim) WITH p_zycbt032-msg+0(50)

                            p_zycbt032-msg+50(50).

          CLEAR: v_estorno.

* << Fim da inclusão

          PERFORM executa_fb08 TABLES p_zycbt032

                               USING  v_belnrf05

                                      sy-datlo

                                      p_zycbt007

* >> Início da exclusão: FORM FILL_DATE_F_51_VARIACAO

                                      v_modo.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO

                                      v_modo

                              CHANGING v_estorno.

          IF v_estorno EQ 'X'.

* << Fim da inclusão

          LOOP AT itab_matuse_aux WHERE  hkont = itab_matuse_aux2-hkont.

            IF itab_matuse_aux-j_1bmatuse = 0.

              CLEAR /pws/zycie085-belnr_0_f05.

            ELSEIF itab_matuse_aux-j_1bmatuse = 1.

              CLEAR /pws/zycie085-belnr_1_f05.

            ELSEIF itab_matuse_aux-j_1bmatuse = 2.

              CLEAR /pws/zycie085-belnr_2_f05.

            ELSEIF itab_matuse_aux-j_1bmatuse = 3.

              CLEAR /pws/zycie085-belnr_3_f05.

            ENDIF.

          ENDLOOP.

* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO

          ENDIF..

* << Fim da inclusão

          UPDATE /pws/zycit085

                   SET   belnr_0_f05 = /pws/zycie085-belnr_0_f05

                         belnr_1_f05 = /pws/zycie085-belnr_1_f05

                         belnr_2_f05 = /pws/zycie085-belnr_2_f05

                         belnr_3_f05 = /pws/zycie085-belnr_3_f05

                   WHERE nrseqdi = /pws/zycie085-nrseqdi.

          COMMIT WORK.

        ENDIF.

      ENDIF.

    ELSE.

      READ TABLE p_zycbt032 WITH KEY  tpmsg  = 'E'.

      IF sy-subrc EQ 0.

* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO

        MESSAGE i015(/pws/zycim) WITH p_zycbt032-msg+0(50)

                          p_zycbt032-msg+50(50).

        CLEAR: v_estorno.

* << Fim da inclusão

        PERFORM executa_fb08 TABLES p_zycbt032

                             USING  v_belnrf05

                                    sy-datlo

                                    p_zycbt007

* >> Início da exclusão: FORM FILL_DATE_F_51_VARIACAO

                                    v_modo.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO

                        v_modo

               CHANGING v_estorno.

        IF v_estorno EQ 'X'.

* << Fim da inclusão

        LOOP AT itab_matuse_aux WHERE  hkont = itab_matuse_aux2-hkont.

          IF itab_matuse_aux-j_1bmatuse = 0.

            CLEAR /pws/zycie085-belnr_0_f05.

          ELSEIF itab_matuse_aux-j_1bmatuse = 1.

            CLEAR /pws/zycie085-belnr_1_f05.

          ELSEIF itab_matuse_aux-j_1bmatuse = 2.

            CLEAR /pws/zycie085-belnr_2_f05.

          ELSEIF itab_matuse_aux-j_1bmatuse = 3.

            CLEAR /pws/zycie085-belnr_3_f05.

          ENDIF.

        ENDLOOP.

* >> Início da inclusão: FORM FILL_DATE_F_51_VARIACAO

        ENDIF.

* << Fim da inclusão

        UPDATE /pws/zycit085

                 SET   belnr_0_f05 = /pws/zycie085-belnr_0_f05

                       belnr_1_f05 = /pws/zycie085-belnr_1_f05

                       belnr_2_f05 = /pws/zycie085-belnr_2_f05

                       belnr_3_f05 = /pws/zycie085-belnr_3_f05

                 WHERE nrseqdi = /pws/zycie085-nrseqdi.

        COMMIT WORK.

      ENDIF.

    ENDIF.

  ENDIF.

...

 

...

 

FORM executa_fb08 TABLES p_zycbt032 STRUCTURE /pws/zycbt032

                  USING  p_belnr

                         p_budat

                         p_zycbt007 STRUCTURE /pws/zycbt007

* >> Início da exclusão: FORM EXECUTA_FB08

                         v_modo.

* << Fim da exclusão

* >> Início da inclusão: FORM EXECUTA_FB08

                         v_modo

                CHANGING p_estorno.

* << Fim da inclusão

  DATA: itab_zycbe033  TYPE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,

        vsubrc         TYPE sy-subrc.

  FREE: itab_zycbe033, p_zycbt032.

  CLEAR: p_zycbt032, itab_zycbe033, itab_contas, itab_zycbt036.

  itab_zycbe033-tcode  = 'FB08'.

  itab_zycbe033-tabela = '/PWS/ZYCIE085'.

  itab_zycbe033-cpochv = /pws/zycie085-nrseqdi.

  itab_zycbe033-belnr  = p_belnr.

  itab_zycbe033-bukrs  = /pws/zycie085-bukrs.

  itab_zycbe033-bldat  = p_budat.

...

 

...

         TABLES

              t_dados         = itab_zycbe033

              t_zycbt032      = p_zycbt032

         EXCEPTIONS

              campo_em_branco = 1

              OTHERS          = 2.

    IF sy-subrc = 0.

      READ TABLE p_zycbt032 WITH KEY tcode  = 'FB08'

                                        tabela = '/PWS/ZYCIE085'

                                        tpmsg  = 'S'.

* >> Início da inclusão: FORM EXECUTA_FB08

      IF sy-subrc EQ 0.

        p_estorno = 'X'.

      ENDIF.

* << Fim da inclusão

    ELSE.

    ENDIF.

  ELSE.

    READ TABLE p_zycbt032 WITH KEY tcode  = 'FB08'

                                      tabela = '/PWS/ZYCIE085'

                                      tpmsg  = 'S'.

  ENDIF.

ENDFORM.

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI023F03

 

...

 

FORM comm_dele.

* >> Início da inclusão: FORM COMM_DELE

  CLEAR: v_dele.

* << Fim da inclusão

  IF NOT /pws/zycie085-dtuserc IS INITIAL.

    IF NOT /pws/zycie085-nrdi IS INITIAL.

      MESSAGE i015 WITH text-029.

    ELSE.

      SELECT SINGLE * FROM /pws/zycit041 INTO /pws/zycit041 WHERE

             nrseq  EQ /pws/zycie085-nrseqdi AND

             cancel EQ space.

      IF sy-subrc EQ 0.

        MESSAGE i015 WITH text-028.

      ELSE.

...

 

...

         EXCEPTIONS

              campo_em_branco = 1

              OTHERS          = 2.

    IF sy-subrc = 0.

      READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB08'

                                        tabela = '/PWS/ZYCIE085'

                                        cpochv = /pws/zycie100a-nrseq

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

        MESSAGE i030 WITH v_belnr_ant.

* >> Início da inclusão: FORM EXECUTA_FB08

      ELSE.

        READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB08'

                                          tabela = '/PWS/ZYCIE085'

                                          cpochv = /pws/zycie100a-nrseq

                                          tpmsg  = 'E'.

        IF sy-subrc EQ 0.

          MESSAGE i015 WITH itab_zycbt032-msg.

          v_dele = 'S'.

          EXIT.

        ENDIF.

* << Fim da inclusão

      ENDIF.

      PERFORM preenche_hist_contabil USING v_belnr_ant

                                           p_budat(4).

    ELSE.

      v_dele = 'S'.

    ENDIF.

  ELSE.

    READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB08'

                                      tabela = '/PWS/ZYCIE085'

                                      cpochv = /pws/zycie100a-nrseq

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI023F04

 

...

 

FORM reclassificacao_ia_funcao.

  DATA: BEGIN OF itab_variacao OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit085.

  DATA: END OF itab_variacao.

  CHECK NOT /pws/zycie085-dtreg IS INITIAL AND

        NOT /pws/zycie085-nrdi  IS INITIAL.

  IF v_modo_bi IS INITIAL .

    v_modo_bi = 'N'.

  ENDIF.

* >> Início da inclusão: FORM RECLASSIFICACAO_IA_FUNCAO

  CLEAR: v_dele.

  IF /pws/zycie085-belnr_0 IS INITIAL AND

     NOT /pws/zycie085-belnr_0_f05 IS INITIAL.

    v_text = text-208.

    PERFORM executa_fb08 USING /pws/zycie085-belnr_0_f05

       /pws/zycie085-budat_0.

    IF v_dele IS INITIAL.

      CLEAR: /pws/zycie085-belnr_0_f05.

    ENDIF.

  ENDIF.

  IF  /pws/zycie085-belnr_1 IS INITIAL AND

     NOT /pws/zycie085-belnr_1_f05 IS INITIAL.

    v_text = text-208.

    PERFORM executa_fb08 USING /pws/zycie085-belnr_1_f05

       /pws/zycie085-budat_1.

    IF v_dele IS INITIAL.

      CLEAR: /pws/zycie085-belnr_1_f05.

    ENDIF.

  ENDIF.

  IF /pws/zycie085-belnr_2 IS INITIAL AND

     NOT /pws/zycie085-belnr_2_f05 IS INITIAL.

    v_text = text-208.

    PERFORM executa_fb08 USING /pws/zycie085-belnr_2_f05

       /pws/zycie085-budat_2.

    IF v_dele IS INITIAL.

      CLEAR: /pws/zycie085-belnr_2_f05.

    ENDIF.

  ENDIF.

  IF /pws/zycie085-belnr_3 IS INITIAL AND

     NOT /pws/zycie085-belnr_3_f05 IS INITIAL.

    v_text = text-208.

    PERFORM executa_fb08 USING /pws/zycie085-belnr_3_f05

       /pws/zycie085-budat_3.

    IF v_dele IS INITIAL.

      CLEAR: /pws/zycie085-belnr_3_f05.

    ENDIF.

  ENDIF.

  UPDATE /pws/zycit085 SET  belnr_0_f05 = /pws/zycie085-belnr_0_f05

                            belnr_1_f05 = /pws/zycie085-belnr_1_f05

                            belnr_2_f05 = /pws/zycie085-belnr_2_f05

                            belnr_3_f05 = /pws/zycie085-belnr_3_f05

                              WHERE nrseqdi = /pws/zycie085-nrseqdi.

  PERFORM clear_date_batch.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCI_RECLASSIFICACAO_IA'

    EXPORTING

      i_zycit001                 = itab_zycit001

      v_modo                     = v_modo_bi

      i_programa                 = 'DI'

   TABLES

     t_zycit100                 = itab_zycit100[]

     t_zycit003                 = itab_zycit003[]

     t_zycbt032                 = itab_zycbt032[]

     itab_variacao              = itab_variacao[]

...