CE PLUS - Nota 002349

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Mercadoria

Data/Hora da Publicação: 30/10/2006 00:00:00

Data/Hora Última Alteração: 20/06/2011 13:29:45

Descrição da Nota: ESTORNOS DA FATURA ATRAVÉS DE EXIT, PARA ATENDER ESPECÍFICO DO CLIENTE.

Sintoma

Necessário fazer estornos da fatura através de exit, para atender desenvolvimento específico do

cliente.

 

 

Solução

Abertura de Exit no estorno da fatura em vários pontos do programa /PWS/SAPMZYCI003.

 

 

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

TRATAMENTO PARA MOTIVO DE ESTORNO DA FB08 NA FATURA

ESTORNAR A FATURA E DAR ERRO ESTÁ APARECENDO A MENSAGEM DESEJA ESTORNAR

FATURA DE SERVIÇO COM DUMP NO ESTORNO

Informações Complementares

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

Nota Número 02349 Data: 30/10/2006 Hora: 16:13:38

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

 

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

Nota Número              : 02349

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00025

Agrupamento              : 00138

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

Referência às notas relacionadas:

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

 

02200  - 00001 - 6.0    - 00025  - TRATAMENTO PARA MOTIVO DE ESTORNO DA FB08 NA FATURA

02290  - 00002 - 6.0    - 00025  - FATURA DE SERVIÇO COM DUMP NO ESTORNO

02294  - 00003 - 6.0    - 00025  - ESTORNAR A FATURA E DAR ERRO ESTÁ APARECENDO A MENSAGEM DESEJA ES

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

ESTORNOS DA FATURA ATRAVÉS DE EXIT, PARA ATENDER ESPECÍFICO DO CLIENTE.

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

Palavras Chave:

EXIT - FATURA - ESTORNO DA FATURA - PROGRAMA ESPECÍFICO

 

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

Objetos da nota:

REPS /PWS/MZYCI003F01

REPS /PWS/MZYCI003F02

REPS /PWS/MZYCI003X01

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F01

 

...

 

FORM reverse_document_fb08.

  DATA:

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

        v_monat LIKE bsis-monat,

        v_belnr_ant LIKE /pws/zycie006-belnr_p.

* << Fim da exclusão

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

        v_monat LIKE bsis-monat.

* << Fim da inclusão

  CLEAR v_erro.

  IF v_parcela = 'X'.

    itab_zycbe033-tabela = '/PWS/ZYCIT132'.

    itab_zycbe033-cpochv = itab_zycit132-nrseq.

    itab_zycbe033-belnr  = itab_zycit132-belnr_p.

...

 

...

  itab_zycbe033-tcode  = 'FB08'.

  itab_zycbe033-bukrs  = /pws/zycie006-bukrs.

  itab_zycbe033-gjahs  = itab_zycbe033-budat+0(4).

  v_monat = itab_zycbe033-budat+4(2).

  APPEND itab_zycbe033.

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

  e_subrc = '0' .

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT009'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY

                   zexit = 'FAT009' BINARY SEARCH.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      e_estorno = 'FAT_FB08' .

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa) IF FOUND.

    ENDIF.

  ENDIF.

  IF e_subrc EQ 0.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCI_TRANSACAO_FB08_A'

       EXPORTING

            v_modo          = v_modo_bi

       TABLES

            t_dados         = itab_zycbe033

            t_campo         = itab_zycbt034

            t_zycbt032      = itab_zycbt032

       EXCEPTIONS

            campo_em_branco = 1

            OTHERS          = 2.

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

  IF sy-subrc = 0.

    IF v_parcela = 'X'.

      READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB08'

                                        tabela = '/PWS/ZYCIT132'

                                        cpochv = /pws/zycie006-nrseq

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

        MESSAGE i030 WITH v_belnr_ant.

        IF okcode NE 'DELE'.

          CLEAR: /pws/zycie006-statusp , /pws/zycie006-belnr_p.

          MODIFY /pws/zycit006 FROM /pws/zycie006.

          v_rev = 'X'.

          PERFORM clear_date_batch.

          IF v_estorno IS INITIAL.

           IF itab_zycit132-mark NE 'X' AND itab_zycit132-status NE 'X'.

              PERFORM dele_custo USING /pws/zycit031-inco1_ci space.

              PERFORM fill_date_f-43_f-02.

            ELSE.

              itab_zycit132-status = 'X'.

              MODIFY itab_zycit132.

              UPDATE /pws/zycbt108 SET status   = 'E'

                  WHERE bukrs    = /pws/zycie006-bukrs

                    AND belnr    = /pws/zycie006-nrseq

                    AND gjahr    = /pws/zycie006-dtincl+0(4)

                    AND belnr_co = itab_zycit132-belnr_p.

              UPDATE /pws/zycbt119 SET status   = 'E'

                 WHERE nrseq   = itab_zycit132-nrseq_pgfat.

            ENDIF.

          ENDIF.

        ELSE.

          itab_zycit132-status = 'X'.

          itab_zycit132-eliminado = 'X'.

          MODIFY itab_zycit132.

        ENDIF.

      ELSE.

        LOOP AT itab_zycbt032.

          MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                            itab_zycbt032-msg+50(50).

        ENDLOOP.

        PERFORM clear_date_batch.

        v_erro = 'X'.

      ENDIF.

    ELSE.

      READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB08'

                                        tabela = '/PWS/ZYCIT006'

                                        cpochv = /pws/zycie006-nrseq

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

        MESSAGE i030 WITH v_belnr_ant.

        IF okcode NE 'DELE'.

          CLEAR: /pws/zycie006-statusp , /pws/zycie006-belnr_p.

          MODIFY /pws/zycit006 FROM /pws/zycie006.

          PERFORM clear_date_batch.

          IF v_estorno IS INITIAL.

            PERFORM dele_custo USING /pws/zycit031-inco1_ci space.

            PERFORM fill_date_f-43_f-02.

          ENDIF.

        ENDIF.

      ELSE.

        LOOP AT itab_zycbt032.

          MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                            itab_zycbt032-msg+50(50).

        ENDLOOP.

        PERFORM clear_date_batch.

        v_erro = 'X'.

        /pws/zycie006 = wa_zycie006_ini.

      ENDIF.

* << Fim da exclusão

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

    IF sy-subrc = 0.

      PERFORM atualiza_fb08_fat.

* << Fim da inclusão

    ENDIF.

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

  ELSEIF sy-subrc EQ '4'.

    PERFORM atualiza_fb08_fat.

* << Fim da inclusão

  ENDIF.

ENDFORM.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

  itab_zycie033-mblnr  = /pws/zycie006-mblnr_mb01.

  itab_zycie033-gjahr  = /pws/zycie006-dt_mb01+0(4).

  v_belnr_ant          = /pws/zycie006-mblnr_mb01.

  itab_zycie033-budat  = /pws/zycie006-dt_mb01.

  APPEND itab_zycie033.

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

 e_subrc = '0' .

    PERFORM verifica_exit USING 'D'

                                '/PWS/SAPMZYCI003'

                                'FAT009'.

    CLEAR itab_zyglt100 .

    READ TABLE itab_zyglt100 WITH KEY

                     zexit = 'FAT009' BINARY SEARCH.

    IF sy-subrc EQ 0.

      IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

        e_estorno = 'REC_MBST' .

        PERFORM (itab_zyglt100-formulario) IN PROGRAM

            (itab_zyglt100-programa) IF FOUND.

      ENDIF.

    ENDIF.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MBST'

       EXPORTING

            v_modo          = v_modo_bi

       TABLES

            t_dados         = itab_zycie033

...

 

...

            t_zycit032      = itab_zycit032

            t_itens_nf      = itab_zycit003

       EXCEPTIONS

            campo_em_branco = 1

            OTHERS          = 2.

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

  IF sy-subrc = 0.

* << Fim da exclusão

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

  IF sy-subrc = 0 OR E_SUBRC EQ 0.

* << Fim da inclusão

    READ TABLE itab_zycit032 WITH KEY tcode  = 'MBST'

                                      tabela = '/PWS/ZYCIT006'

                                      cpochv = /pws/zycie006-nrseq

                                      tpmsg  = 'S'.

    IF sy-subrc EQ 0.

...

 

...

  itab_zycie033-budat  = /pws/zycie006-dt_mr1m.

  itab_zycie033-gjahr  = /pws/zycie006-dt_mr1m+0(4).

  v_belnr_ant          = /pws/zycie006-belnr_mr1m.

  itab_zycbe033-stgrd  = /pws/zycbt007-percorr.

  APPEND itab_zycie033.

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

 e_subrc = '0' .

    PERFORM verifica_exit USING 'D'

                                '/PWS/SAPMZYCI003'

                                'FAT009'.

    CLEAR itab_zyglt100 .

    READ TABLE itab_zyglt100 WITH KEY

                     zexit = 'FAT009' BINARY SEARCH.

    IF sy-subrc EQ 0.

      IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

        e_estorno = 'REC_MR8M' .

        PERFORM (itab_zyglt100-formulario) IN PROGRAM

            (itab_zyglt100-programa) IF FOUND.

      ENDIF.

    ENDIF.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MR8M'

       EXPORTING

            v_modo          = v_modo_bi

       TABLES

            t_dados         = itab_zycie033

            t_campo         = itab_zycit034

            t_zycit032      = itab_zycit032

       EXCEPTIONS

            campo_em_branco = 1

            OTHERS          = 2.

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

  IF sy-subrc = 0.

* << Fim da exclusão

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

  IF sy-subrc = 0 OR E_SUBRC = 0.

* << Fim da inclusão

    READ TABLE itab_zycit032 WITH KEY tcode  = 'MR8M'

                                      tabela = '/PWS/ZYCIT006'

                                      cpochv = /pws/zycie006-nrseq

                                      tpmsg  = 'S'.

    IF sy-subrc EQ 0.

...

 

...

  itab_zycbe033-bldat  = /pws/zycie006-dt_f_51.

  itab_zycie033-budat  = /pws/zycie006-dt_f_51.

  v_belnr_ant          = /pws/zycie006-belnr_f_51.

  itab_zycbe033-stgrd  = /pws/zycbt007-percorr.

  APPEND itab_zycbe033.

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

  e_subrc = '0' .

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT009'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY

                   zexit = 'FAT009' BINARY SEARCH.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      e_estorno = 'FBRA_REC' .

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa) IF FOUND.

    ENDIF.

  ENDIF.

  IF e_subrc EQ 0.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCI_TRANSACAO_FBRA'

       EXPORTING

            v_modo          = v_modo_bi

       TABLES

            t_dados         = itab_zycbe033

...

 

...

            t_zycbt032      = itab_zycbt032

       EXCEPTIONS

            campo_em_branco = 1

            OTHERS          = 2.

  IF sy-subrc = 0.

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

    READ TABLE itab_zycbt032 WITH KEY tcode  = 'FBRA'

                                      tabela = '/PWS/ZYCIT006'

                                      cpochv = /pws/zycie006-nrseq

                                      tpmsg  = 'S'.

    IF sy-subrc EQ 0.

      MESSAGE i030 WITH v_belnr_ant.

      PERFORM historico_recebimento USING /pws/zycie006-belnr_f_51

                                          'F-51'.

      CLEAR: /pws/zycie006-statusp_f_51 , /pws/zycie006-belnr_f_51,

             /pws/zycie006-dt_f_51.

      v_fbra_ok = 'S'.

* << Fim da exclusão

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

      PERFORM atualiza_fbra_rec.

* << Fim da inclusão

    ELSE.

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

      LOOP AT itab_zycbt032.

        MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                                            itab_zycbt032-msg+50(50).

* << Fim da exclusão

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

      LOOP AT itab_zycbt034.

        MESSAGE i016 WITH itab_zycbt034-descricao.

* << Fim da inclusão

      ENDLOOP.

      PERFORM popup_message USING text-026 text-025.

      IF v_answer = 'J'.

        PERFORM historico_recebimento USING /pws/zycie006-belnr_f_51

                                            'F-51'.

...

 

...

               /pws/zycie006-belnr_f_51  ,

               /pws/zycie006-dt_f_51     .

        v_fbra_ok = 'S'.

      ENDIF.

    ENDIF.

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

  ELSEIF e_subrc EQ '4'.

    PERFORM atualiza_fbra_rec.

* << Fim da inclusão

  ELSE.

    LOOP AT itab_zycbt034.

      MESSAGE i016 WITH itab_zycbt034-descricao.

    ENDLOOP.

    PERFORM popup_message USING text-026 text-025.

...

 

...

            v_data  = v_bldat_fb08

            v_bukrs = /pws/zycie006-bukrs

            v_koart = 'K'

       IMPORTING

            v_subrc = v_subrc

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

            v_gjahr = itab_zycbe033-gjahr .

* << Fim da exclusão

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

            v_gjahr = itab_zycbe033-gjahr.

* << Fim da inclusão

  IF v_subrc  = 0.

    itab_zycbe033-budat  = v_bldat_fb08.

    itab_zycbe033-stgrd  = /pws/zycbt007-percorr.

  ELSE.

    itab_zycbe033-budat  = sy-datum.

    itab_zycbe033-stgrd  = /pws/zycbt007-perencer .

  ENDIF.

  APPEND itab_zycbe033.

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

  e_subrc = '0' .

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT009'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY

                   zexit = 'FAT009' BINARY SEARCH.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      e_estorno = 'REC_FB08' .

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa) IF FOUND.

    ENDIF.

  ENDIF.

  IF e_subrc EQ 0.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCI_TRANSACAO_FB08_A'

       EXPORTING

            v_modo          = v_modo_bi

       TABLES

            t_dados         = itab_zycbe033

...

 

...

            t_zycbt032      = itab_zycbt032

       EXCEPTIONS

            campo_em_branco = 1

            OTHERS          = 2.

  IF sy-subrc = 0.

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

    READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB08'

                                      tabela = '/PWS/ZYCIT006'

                                      cpochv = v_cpochv_fb08

                                      tpmsg  = 'S'.

    IF sy-subrc EQ 0.

      MESSAGE i030 WITH v_belnr_ant.

      CLEAR: /pws/zycie006-statusp_f_51,

             /pws/zycie006-belnr_f_51  ,

             /pws/zycie006-dt_f_51     .

      v_fb08_ok = 'S'.

    ELSE.

      LOOP AT itab_zycbt032.

        MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                                            itab_zycbt032-msg+50(50).

      ENDLOOP.

       PERFORM clear_date_batch.

       MODIFY /pws/zycit006 FROM /pws/zycie006.

    ENDIF.

* << Fim da exclusão

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

      PERFORM atualiza_fb08_rec.

    ELSE.

      LOOP AT itab_zycbt034.

        MESSAGE i016 WITH itab_zycbt034-descricao.

      ENDLOOP.

      PERFORM clear_date_batch.

* << Fim da inclusão

    ELSE.

       PERFORM clear_date_batch.

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

    ENDIF.

  ELSEIF e_subrc EQ '4'.

    PERFORM atualiza_fb08_rec.

 

  ELSE.

    LOOP AT itab_zycbt034.

      MESSAGE i016 WITH itab_zycbt034-descricao.

    ENDLOOP.

    PERFORM clear_date_batch.

* << Fim da inclusão

    ENDIF.

  CLEAR: v_cpochv_fb08, v_belnr_fb08,

         v_bukrs_fb08 , v_bldat_fb08,

         v_docant_fb08.

 

ENDFORM.                    " reverse_cocumento_contab_fb08

...

 

...

  itab_zycie033-budat  = /pws/zycie006-dt_mr1m.

  itab_zycie033-gjahr  = /pws/zycie006-dt_mr1m+0(4).

  v_belnr_ant          = /pws/zycie006-belnr_mr1m.

  itab_zycie033-stgrd = /pws/zycbt007-percorr.

  APPEND itab_zycie033.

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

 e_subrc = '0' .

    PERFORM verifica_exit USING 'D'

                                '/PWS/SAPMZYCI003'

                                'FAT009'.

    CLEAR itab_zyglt100 .

    READ TABLE itab_zyglt100 WITH KEY

                     zexit = 'FAT009' BINARY SEARCH.

    IF sy-subrc EQ 0.

      IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

        e_estorno = 'FAT_MR8M' .

        PERFORM (itab_zyglt100-formulario) IN PROGRAM

            (itab_zyglt100-programa) IF FOUND.

      ENDIF.

    ENDIF.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MR8M'

       EXPORTING

            v_modo          = v_modo_bi

       TABLES

            t_dados         = itab_zycie033

            t_campo         = itab_zycit034

            t_zycit032      = itab_zycit032

       EXCEPTIONS

            campo_em_branco = 1

            OTHERS          = 2.

 

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

  IF sy-subrc = 0.

    READ TABLE itab_zycit032 WITH KEY tcode  = 'MR8M'

                                      tabela = '/PWS/ZYCIT006'

                                      cpochv = /pws/zycie006-nrseq

                                      tpmsg  = 'S'.

    IF sy-subrc EQ 0.

      PERFORM fill_date_f_51_docs_miro.

      MESSAGE i030 WITH v_belnr_ant.

      PERFORM historico_recebimento USING /pws/zycie006-belnr_mr1m

                                          'MIRO'.

      CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,

             /pws/zycie006-dt_mr1m.

 

      MODIFY /pws/zycit006 FROM /pws/zycie006.

      v_mr8m_ok = 'S'.                    "MR8M estorna com sucesso

      CLEAR v_mr1m_ok.

    ELSE.

      LOOP AT itab_zycit032.

        MESSAGE i015 WITH itab_zycit032-msg+0(50)

                          itab_zycit032-msg+50(50).

      ENDLOOP.

      PERFORM popup_message USING text-026 text-025.

      IF v_answer = 'J'.

        PERFORM historico_recebimento USING /pws/zycie006-belnr_mr1m

                                            'MIRO'.

        CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,

        CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,

               /pws/zycie006-dt_mr1m.

        MODIFY /pws/zycit006 FROM /pws/zycie006.

        v_mr8m_ok = 'S'.                  "MR8M ja tinha sido estornada

      ENDIF.

   ENDIF.

* << Fim da exclusão

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

  IF sy-subrc = 0 OR E_SUBRC EQ 0.

     PERFORM ATUALIZA_MR8M_FAT.

* << Fim da inclusão

  ENDIF.

ENDFORM.

...

 

...

  LOOP AT itab_zycit003.

    MOVE : itab_zycit003-ebeln TO itab_itens_nf-ebeln,

           itab_zycit003-ebelp TO itab_itens_nf-ebelp.

    APPEND itab_itens_nf.

  ENDLOOP .

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

  e_subrc = '0' .

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT009'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY

                   zexit = 'FAT009' BINARY SEARCH.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      e_estorno = 'REC_MBST' .

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa) IF FOUND.

    ENDIF.

  ENDIF.

  IF e_subrc EQ 0.

* << Fim da inclusão

     CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MBST'

          EXPORTING

               v_modo          = v_modo_bi

          TABLES

               t_dados         = itab_zycie033

               t_campo         = itab_zycit034

               t_zycit032      = itab_zycit032

               t_itens_nf      = itab_itens_nf

 *chamado 282417 fim

          EXCEPTIONS

               campo_em_branco = 1

               OTHERS          = 2.

 

 

  IF sy-subrc = 0.

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

    READ TABLE itab_zycit032 WITH KEY tcode  = 'MBST'

                                      tabela = '/PWS/ZYCIT006'

                                      cpochv = /pws/zycie006-nrseq

                                     tpmsg  = 'S'.

 

    IF sy-subrc EQ 0.

      MESSAGE i030 WITH v_belnr_ant.

      PERFORM historico_recebimento USING /pws/zycie006-mblnr_mb01

                                          'MIGO'.

      CLEAR: /pws/zycie006-statusp_mb01, /pws/zycie006-mblnr_mb01,

             /pws/zycie006-dt_mb01.

      v_mbst_ok = 'S'.                    "MR8M estorna com sucesso

    ELSE.

      LOOP AT itab_zycit032.

        MESSAGE i015 WITH itab_zycit032-msg+0(50)

                          itab_zycit032-msg+50(50).

      ENDLOOP.

      PERFORM clear_date_batch.

* << Fim da exclusão

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

      PERFORM atualiza_mbst_rec.

    ELSE.

      LOOP AT itab_zycbt034.

        MESSAGE i016 WITH itab_zycbt034-descricao.

 

      ENDLOOP.

* << Fim da inclusão

      PERFORM popup_message USING text-026 text-025.

      IF v_answer = 'J'.

        PERFORM historico_recebimento USING /pws/zycie006-mblnr_mb01

                                            'MIGO'.

        CLEAR: /pws/zycie006-statusp_mb01, /pws/zycie006-mblnr_mb01,

               /pws/zycie006-dt_mb01.

        v_mbst_ok = 'S'.

      ENDIF.

    ENDIF.

 

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

    IF sy-subrc EQ 0.

      MESSAGE i030 WITH v_belnr_ant.

      PERFORM historico_recebimento USING /pws/zycie006-mblnr_mb01

                                          'MIGO'.

      CLEAR: /pws/zycie006-statusp_mb01, /pws/zycie006-mblnr_mb01,

             /pws/zycie006-dt_mb01.

      v_mbst_ok = 'S'.

* << Fim da exclusão

      ENDIF.

    ENDIF.

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

  ELSEIF e_subrc EQ '4'.

    PERFORM atualiza_mbst_rec.

* << Fim da inlusão

   ELSE.

     LOOP AT itab_zycbt034.

       MESSAGE i016 WITH itab_zycbt034-descricao.

     ENDLOOP.

     " Verifica se usuário deseja criar novo documento sem estornar

     " antigo

     PERFORM popup_message USING text-026 text-025.

     IF v_answer = 'J'.

       PERFORM historico_recebimento USING /pws/zycie006-mblnr_mb01

                                           'MIGO'.

       CLEAR: /pws/zycie006-statusp_mb01, /pws/zycie006-mblnr_mb01,

              /pws/zycie006-dt_mb01.

 * depois de gerado o batch input com sucesso move atualizações.

       v_mbst_ok = 'S'.

     ENDIF.

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

   ENDIF.

* << Fim da inclusão

 ENDFORM.                    " reverse_documento_fisico_fbra

 

...

 

...

 

* >> Início da inclusão:

FORM atualiza_fb08_fat.

  IF v_parcela = 'X'.

    READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB08'

                                      tabela = '/PWS/ZYCIT132'

                                      cpochv = /pws/zycie006-nrseq

                                      tpmsg  = 'S'.

    IF sy-subrc EQ 0.

      MESSAGE i030 WITH v_belnr_ant.

      IF okcode NE 'DELE'.

        CLEAR: /pws/zycie006-statusp , /pws/zycie006-belnr_p.

        MODIFY /pws/zycit006 FROM /pws/zycie006.

        v_rev = 'X'.

        PERFORM clear_date_batch.

        IF v_estorno IS INITIAL.

          IF itab_zycit132-mark NE 'X' AND itab_zycit132-status NE 'X'.

            PERFORM dele_custo USING /pws/zycit031-inco1_ci space.

            PERFORM fill_date_f-43_f-02.

          ELSE.

            itab_zycit132-status = 'X'.

            MODIFY itab_zycit132.

            UPDATE /pws/zycbt108 SET status   = 'E'

                WHERE bukrs    = /pws/zycie006-bukrs

                  AND belnr    = /pws/zycie006-nrseq

                  AND gjahr    = /pws/zycie006-dtincl+0(4)

                  AND belnr_co = itab_zycit132-belnr_p.

            UPDATE /pws/zycbt119 SET status   = 'E'

               WHERE nrseq   = itab_zycit132-nrseq_pgfat.

          ENDIF.

        ENDIF.

      ELSE.

        itab_zycit132-status = 'X'.

        itab_zycit132-eliminado = 'X'.

        MODIFY itab_zycit132.

      ENDIF.

    ELSE.

      LOOP AT itab_zycbt032.

        MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                          itab_zycbt032-msg+50(50).

      ENDLOOP.

      PERFORM clear_date_batch.

      v_erro = 'X'.

    ENDIF.

  ELSE.

    READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB08'

                                      tabela = '/PWS/ZYCIT006'

                                      cpochv = /pws/zycie006-nrseq

                                      tpmsg  = 'S'.

    IF sy-subrc EQ 0.

      MESSAGE i030 WITH v_belnr_ant.

      IF okcode NE 'DELE'.

        CLEAR: /pws/zycie006-statusp , /pws/zycie006-belnr_p.

        MODIFY /pws/zycit006 FROM /pws/zycie006.

        PERFORM clear_date_batch.

        IF v_estorno IS INITIAL.

          PERFORM dele_custo USING /pws/zycit031-inco1_ci space.

          PERFORM fill_date_f-43_f-02.

        ENDIF.

      ENDIF.

    ELSE.

      LOOP AT itab_zycbt032.

        MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                          itab_zycbt032-msg+50(50).

      ENDLOOP.

      PERFORM clear_date_batch.

      v_erro = 'X'.

      /pws/zycie006 = wa_zycie006_ini.

    ENDIF.

  ENDIF.

ENDFORM.

FORM atualiza_fbra_rec.

  READ TABLE itab_zycbt032 WITH KEY tcode  = 'FBRA'

                                    tabela = '/PWS/ZYCIT006'

                                    cpochv = /pws/zycie006-nrseq

                                    tpmsg  = 'S'.

  IF sy-subrc EQ 0.

    MESSAGE i030 WITH v_belnr_ant.

    PERFORM historico_recebimento USING /pws/zycie006-belnr_f_51

                                        'F-51'.

    CLEAR: /pws/zycie006-statusp_f_51 , /pws/zycie006-belnr_f_51,

           /pws/zycie006-dt_f_51.

    v_fbra_ok = 'S'.

  ELSE.

    LOOP AT itab_zycbt032.

      MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                                          itab_zycbt032-msg+50(50).

    ENDLOOP.

    PERFORM popup_message USING text-026 text-025.

    IF v_answer = 'J'.

      PERFORM historico_recebimento USING /pws/zycie006-belnr_f_51

                                          'F-51'.

      CLEAR: /pws/zycie006-statusp_f_51,

             /pws/zycie006-belnr_f_51  ,

             /pws/zycie006-dt_f_51     .

      v_fbra_ok = 'S'.

    ENDIF.

  ENDIF.

ENDFORM.

FORM atualiza_fb08_rec.

  READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB08'

                                    tabela = '/PWS/ZYCIT006'

                                    cpochv = v_cpochv_fb08

                                    tpmsg  = 'S'.

  IF sy-subrc EQ 0.

    MESSAGE i030 WITH v_belnr_ant.

    CLEAR: /pws/zycie006-statusp_f_51,

           /pws/zycie006-belnr_f_51  ,

           /pws/zycie006-dt_f_51     .

    v_fb08_ok = 'S'.

  ELSE.

    LOOP AT itab_zycbt032.

      MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                                          itab_zycbt032-msg+50(50).

    ENDLOOP.

    PERFORM clear_date_batch.

    MODIFY /pws/zycit006 FROM /pws/zycie006.

  ENDIF.

ENDFORM.

FORM atualiza_mbst_rec.

  READ TABLE itab_zycit032 WITH KEY tcode  = 'MBST'

                                    tabela = '/PWS/ZYCIT006'

                                    cpochv = /pws/zycie006-nrseq

                                   tpmsg  = 'S'.

  IF sy-subrc EQ 0.

    MESSAGE i030 WITH v_belnr_ant.

    PERFORM historico_recebimento USING /pws/zycie006-mblnr_mb01

                                        'MIGO'.

    CLEAR: /pws/zycie006-statusp_mb01, /pws/zycie006-mblnr_mb01,

           /pws/zycie006-dt_mb01.

    v_mbst_ok = 'S'.

  ELSE.

    LOOP AT itab_zycit032.

      MESSAGE i015 WITH itab_zycit032-msg+0(50)

                        itab_zycit032-msg+50(50).

    ENDLOOP.

    PERFORM clear_date_batch.

    PERFORM popup_message USING text-026 text-025.

    IF v_answer = 'J'.

      PERFORM historico_recebimento USING /pws/zycie006-mblnr_mb01

                                          'MIGO'.

      CLEAR: /pws/zycie006-statusp_mb01, /pws/zycie006-mblnr_mb01,

             /pws/zycie006-dt_mb01.

      v_mbst_ok = 'S'.

    ENDIF.

  ENDIF.

ENDFORM.

form ATUALIZA_MR8M_FAT.

    READ TABLE itab_zycit032 WITH KEY tcode  = 'MR8M'

                                      tabela = '/PWS/ZYCIT006'

                                      cpochv = /pws/zycie006-nrseq

                                      tpmsg  = 'S'.

    IF sy-subrc EQ 0.

      PERFORM fill_date_f_51_docs_miro.

      MESSAGE i030 WITH v_belnr_ant.

      PERFORM historico_recebimento USING /pws/zycie006-belnr_mr1m

                                          'MIRO'.

      CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,

             /pws/zycie006-dt_mr1m.

      MODIFY /pws/zycit006 FROM /pws/zycie006.

      v_mr8m_ok = 'S'.

      CLEAR v_mr1m_ok.

    ELSE.

      LOOP AT itab_zycit032.

        MESSAGE i015 WITH itab_zycit032-msg+0(50)

                          itab_zycit032-msg+50(50).

      ENDLOOP.

      PERFORM popup_message USING text-026 text-025.

      IF v_answer = 'J'.

        PERFORM historico_recebimento USING /pws/zycie006-belnr_mr1m

                                            'MIRO'.

        CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,

               /pws/zycie006-dt_mr1m.

        MODIFY /pws/zycit006 FROM /pws/zycie006.

        v_mr8m_ok = 'S'.

      ENDIF.

    ENDIF.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI003X01

 

...

 

* >> Início da inclusão:

data:  v_belnr_ant LIKE /pws/zycie006-belnr_p.

data:  e_estorno(10).

* << Fim da inclusão

 

.....

 

 

 

DATA: END OF COMMON PART.