CE PLUS - Nota 008959

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 03/09/2009 00:00:00

Data/Hora Última Alteração: 22/02/2011 14:11:11

Descrição da Nota: ADEQUAÇÕES NO PROGRAMA DA ANA

Sintoma

Correções de erro no programa da ANA

 

 

Solução

Corrigir erros em programa da ANA

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

NÃO ESTÁ PREENCHENDO LOCAL DE NEGÓCIOS NA F-05 E F-51

Informações Complementares

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

Nota Número 08959 Data: 03/09/2009 Hora: 17:13:43

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

 

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

Nota Número              : 08959

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00010

Agrupamento              : 00112

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

Referência às notas relacionadas:

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

 

02970  - 00001 - 6.0    - 00026  - NÃO ESTÁ PREENCHENDO LOCAL DE NEGÓCIOS NA F-05 E F-51

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

ADEQUAÇÕES NO PROGRAMA DA ANA

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

Palavras Chave:

ANA - ERRO PROGRAMA

 

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

Objetos da nota:

DYNP /PWS/SAPMZYCI059                        0100

FUNC /PWS/ZYCI_RECLASSIFICACAO_IA

FUNC /PWS/ZYCI_TRANSACAO_F_05

REPS /PWS/LZYCIGF2F01

REPS /PWS/MZYCI059F01

REPS /PWS/MZYCI059F03

REPS /PWS/MZYCI059X01

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI059                        0100

 

MODIFICAR BOTÃO "TAB_ADIC" em tbl.contr./tabstr.

Código função            FC_SUF

 

*Na Table control acrescentar o código de função FC_SUF

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_RECLASSIFICACAO_IA

 

...

    SELECT *

      FROM /pws/zycit100

      INTO TABLE t_zycit100

      WHERE nrseq EQ i_zycit001-nrseq.                  "#EC CI_NOFIRST

  ENDIF.

  READ TABLE t_zycit100 INDEX 1.

  SELECT SINGLE *

    FROM /pws/zycit085

    INTO /pws/zycie085

    WHERE nrseqdi EQ t_zycit100-nrseqdi.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RECLASSIFICACAO_IA

  IF ( sy-tcode EQ '/PWS/ZYCI059_A' OR

       sy-tcode EQ '/PWS/ZYCI059_C' ) .

    IF /pws/zycie085-nana IS INITIAL OR /pws/zycie085-dtreg IS INITIAL.

      RAISE dados_di_inicial.

    ENDIF.

  ELSE.

* << Fim da inclusão

  IF /pws/zycie085-nrdi IS INITIAL OR /pws/zycie085-dtreg IS INITIAL.

    RAISE dados_di_inicial.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RECLASSIFICACAO_IA

    ENDIF.

* << Fim da inclusão

  ENDIF.

  IF NOT t_zycit003[] IS INITIAL.

    SELECT *

      FROM /pws/zycit094

      INTO TABLE itab_zycit094

...

 

 

...

    IF /pws/zycit000-clucro_ia = 'X'.

      PERFORM verifica_centro_l TABLES itab_matuse.

    ENDIF.

    IF NOT itab_di-prctr IS INITIAL

       AND /pws/zycit000-clucro_ia = 'X'.

      CLEAR: itab_di-kostl.

    ENDIF.

    MOVE: itab_matuse_aux-hkont TO itab_di-hkont,

          t_zycit100-vlseg   TO itab_di-vlseg,

          t_zycit100-vlfre   TO itab_di-vlfre.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RECLASSIFICACAO_IA

    IF ( sy-tcode EQ '/PWS/ZYCI059_A' OR

         sy-tcode EQ '/PWS/ZYCI059_C' ) .

      PERFORM taxa_converte(/pws/sapmzyci059)

             USING /pws/zycbt007-waersa

                   /pws/zycie085-dttax

             CHANGING v_taxa.

      itab_di-vlfob = ( t_zycit100-vlfob * v_taxa )

      / t_zycit100-dttaxbem.

    ELSE.

* << Fim da inclusão

    itab_di-vlfob = t_zycit100-dttaxbem * t_zycit100-vlfob.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RECLASSIFICACAO_IA

    ENDIF.

* << Fim da inclusão

    IF NOT /pws/zycit093-ternacion IS INITIAL.

      READ TABLE t_zycit003 WITH KEY

               nrseq = t_zycit100-nrseq

               ebeln = t_zycit100-ebeln

               ebelp = t_zycit100-ebelp .

      IF NOT v_tntgew IS INITIAL.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_TRANSACAO_F_05

 

...

                                      chave = v_chave.

      IF sy-subrc <> 0 AND

         NOT t_contas-d_sgtxt IS INITIAL.

        PERFORM bdc_field USING 'BSEG-SGTXT' t_contas-d_sgtxt.

      ENDIF.

      PERFORM bdc_field  USING:

           'BDC_SUBSCR'  'SAPLKACB',

           'BDC_OKCODE'  '=ZK'.

      READ TABLE itab_oculto WITH KEY campo = 'BSEG-BUPLA'

                                      chave = v_chave.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_F_05

      IF sy-subrc <> 0.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_F_05

      IF sy-subrc <> 0 AND NOT  t_dados-brnch IS INITIAL.

* << Fim da inclusão

        PERFORM bdc_field  USING: 'BSEG-BUPLA'  t_dados-brnch.

      ENDIF.

      PERFORM bdc_screen USING 'SAPLKACB' '0002'.

      READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER'

                                      chave = v_chave.

      IF sy-subrc <> 0.

        IF t_contas-bschl = 40

        OR t_contas-bschl = 50.

          PERFORM bdc_field USING 'COBL-GSBER' t_contas-d_gsber.

        ELSE.

...

 

 

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

Modificações efetuadas em REPS /PWS/LZYCIGF2F01

 

...

  itab_zycbe033-d_zuonr = itab_zycbe033-c_zuonr = v_zuonr.

  itab_zycbe033-d_sgtxt = itab_zycbe033-c_sgtxt = v_sgtxt.

  itab_zycbe033-xblnr = v_xblnr.

  itab_zycbe033-bktxt = v_bktxt.

  READ TABLE p_zycit003 INDEX 1.

  itab_zycbe033-d_gsber = p_zycit003-gsber.

  itab_zycbe033-c_gsber = p_zycit003-gsber.

  itab_zycbe033-bukrs  = /pws/zycie085-bukrs.

  itab_zycbe033-waers  = p_zycbt007-waersb.

  itab_zycbe033-blart  = itab_zycbt011-blart.

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

  itab_zycbe033-brnch   = /pws/zycie085-j_1bbranch.

* << Fim da exclusão

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

  IF t001-land1 EQ 'BR'.

    itab_zycbe033-brnch = /pws/zycie085-j_1bbranch.

  ELSE.

    CLEAR itab_zycbe033-brnch.

  ENDIF.

* << Fim da inclusão

  APPEND itab_zycbe033.

  LOOP AT p_zycit006 WHERE belnr_p  NE space.

    READ TABLE itab_di INDEX 1.

    IF p_zycit006-tpfatura EQ '02' AND itab_di-vlfre IS INITIAL.

      CONTINUE.

    ELSEIF p_zycit006-tpfatura EQ '03' AND itab_di-vlseg IS INITIAL.

      CONTINUE.

    ENDIF.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

         EXPORTING

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F01

 

...

  ENDIF.

  IF NOT /pws/zycie085-nana  IS INITIAL OR

     NOT /pws/zycie085-dtreg IS INITIAL.

    PERFORM atualiza_status.

  ENDIF.

  DELETE itab_zycit085 WHERE nrseqdi = /pws/zycie085-nrseqdi.

  APPEND /pws/zycie085 TO itab_zycit085.

  SORT itab_zycit085 BY nrseqdi.

  COMMIT WORK.

  MESSAGE i017 WITH text-060.

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

  v_salvou = 'X' .

* << Fim da inclusão

  CLEAR:   v_changed,

           itab_zycit086a,

           itab_zycit087a,

           itab_zycit095a,

           itab_zycit096a,

           itab_zycit100a,

           itab_zycit003a,

           itab_zycit115a,

           itab_zycit200a.

  REFRESH: itab_zycit086a,

...

 

...

           itab_zycit095[] TO itab_zycit095a[],

           itab_zycit096[] TO itab_zycit096a[],

           itab_zycit100[] TO itab_zycit100a[],

           itab_zycit003[] TO itab_zycit003a[],

           itab_zycit115[] TO itab_zycit115a[],

           itab_zycit200[] TO itab_zycit200a[],

           itab_zycit049di2[] TO itab_zycit049di[],

           itab_it[]       TO itab_ita[],

           /pws/zycie085        TO wa_zycit085.

  PERFORM save_especificacao.

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

  PERFORM reclassificacao_ia.

* << Fim da exclusão

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

   PERFORM reclassificacao_ia_funcao.

* << Fim da inclusão

ENDFORM.

...

 

...

                           itab_zycit049di[] NE itab_zycit049di2[] OR

                           itab_zycit086[]   NE itab_zycit086a[]   OR

                           itab_zycit087[]   NE itab_zycit087a[]   OR

                           itab_zycit095[]   NE itab_zycit095a[]   OR

                           itab_zycit096[]   NE itab_zycit096a[]   OR

                           itab_zycit115[]   NE itab_zycit115a[]   OR

                           itab_zycit200[]   NE itab_zycit200a[]   OR

                           itab_zycit100[]   NE itab_zycit100a[]   OR

                           itab_zycit003[]   NE itab_zycit003a[]   OR

                           itab_zycit403[]   NE itab_zycit403a[].

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

    IF sy-tcode NE '/PWS/ZYCI059_E' AND v_salvou EQ ' '.

* << Fim da exclusão

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

    IF sy-tcode NE '/PWS/ZYCI059_E'.

* << Fim da inclusão

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

       nrseq  EQ /pws/zycie085-nrseqdi AND

       cancel EQ space.

      IF sy-subrc EQ 0 AND /pws/zycit041-docnum NE '8888888888'.

        MESSAGE i015 WITH text-028.

        EXIT.

      ELSEIF sy-subrc EQ 0 AND /pws/zycit041-docnum EQ '8888888888'

      AND  NOT /pws/zycit041-belnr_mr1m IS INITIAL.

        MESSAGE i015 WITH text-236.

        EXIT.

...

 

...

FORM fill_itabit.

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

  CLEAR itab_itens_funcao.

  REFRESH itab_itens_funcao.

* << Fim da inclusão

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit013 INTO TABLE itab_zycit013

             FOR ALL ENTRIES IN itab_zycit003

             WHERE ebeln = itab_zycit003-ebeln AND

                   ebelp = itab_zycit003-ebelp.

    SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

             FOR ALL ENTRIES IN itab_zycit003 WHERE

             nrseq = itab_zycit003-nrseq AND

             ebeln = itab_zycit003-ebeln AND

             ebelp = itab_zycit003-ebelp AND

...

 

...

    v_tsegfat = v_tsegfat + itab_it-vlseg_fat.

    IF itab_it-qtd_itencacl IS INITIAL.

      v_tval = v_tval + ( itab_it-qtd_iten * itab_it-vlreal ).

      v_tmle = v_tmle + ( ( itab_it-qtd_iten * itab_it-vlreal )

                      * itab_it-dttaxbem ).

    ELSE.

      v_tval = v_tval + ( itab_it-qtd_itencacl * itab_it-vlreal ).

      v_tmle = v_tmle + ( ( itab_it-qtd_itencacl * itab_it-vlreal )

                      * itab_it-dttaxbem ).

    ENDIF.

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

    MOVE-CORRESPONDING itab_zycit003 TO itab_itens_funcao.

    APPEND itab_itens_funcao.

* << Fim da inclusão

  ENDLOOP.

  v_tmle_d2 = v_tmle.

  PERFORM data_sort.

  IF /pws/zycie085-mdadicao = 'S'.

    /pws/zycie085-waersfob = v_waers.

    LOOP AT itab_it.

      itab_it-dttaxbem = /pws/zycie085-ukursfob.

      itab_it-waersbem = /pws/zycie085-waersfob.

      MODIFY itab_it INDEX sy-tabix TRANSPORTING dttaxbem waersbem.

    ENDLOOP.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F03

 

...

 

FORM comm_save.

  PERFORM verify_changes.

  IF v_changed EQ '1'.

    PERFORM save_data.

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

    v_salvou = 'X'.

* << Fim da exclusão

  ELSE.

    MESSAGE s015 WITH text-027.

  ENDIF.

ENDFORM.

...

 

...

 

 

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

FORM reclassificacao_ia.

  CLEAR: itab_matuse_aux, itab_matuse_aux2, itab_bsis, itab_bsis_aux,

         itab_di.

  REFRESH: itab_matuse_aux, itab_matuse_aux2, itab_bsis, itab_bsis_aux,

           itab_di.

  SELECT SINGLE * FROM /pws/zycit042 INTO /pws/zycit042

     WHERE nrseq EQ /pws/zycie003-nrseq.                "#EC CI_NOFIRST

  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    ).

  ENDIF.

  IF sy-subrc EQ 0.

    MESSAGE w015 WITH text-214 text-215.

    EXIT.

  ENDIF.

  SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie001-bukrs.

  SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.

  CHECK NOT /pws/zycit000-flag_reclass IS INITIAL.

  CHECK /pws/zycit000-provseg IS INITIAL.

  CHECK /pws/zycit000-provfre IS INITIAL.

  CHECK NOT /pws/zycie085-dtreg IS INITIAL AND

        NOT /pws/zycie085-nana  IS INITIAL.

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit094 INTO TABLE itab_zycit094

              FOR ALL ENTRIES IN itab_zycit003

              WHERE nrseq = itab_zycit003-nrseq.        "#EC CI_NOFIRST

  ENDIF.

  READ TABLE itab_zycit094 INDEX 1.

  SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006

                WHERE nrseqce = itab_zycit094-nrseqce AND

                      eliminado = space.                "#EC CI_NOFIELD

  REFRESH itab_zycit132. CLEAR itab_zycit132.

  LOOP AT itab_zycit006 WHERE belnr_p IS initial AND

                              tpfatura = '01'.

    SELECT * FROM /pws/zycit132 APPENDING TABLE itab_zycit132

      WHERE nrseq = itab_zycit006-nrseq AND

            eliminado = space.

  ENDLOOP.

  LOOP AT itab_zycit132.

    READ TABLE itab_zycit006 WITH KEY nrseq = itab_zycit132-nrseq.

    IF sy-subrc = 0.

      MOVE: itab_zycit132-belnr_p TO itab_zycit006-belnr_p.

      APPEND itab_zycit006.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycit006 WHERE belnr_p IS initial.

    DELETE itab_zycit006.

  ENDLOOP.

  CLEAR: itab_matuse.

  REFRESH: itab_matuse.

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT ebeln ebelp matnr bwtar j_1bmatuse knttp werks

           FROM ekpo INTO TABLE itab_matuse

           FOR ALL ENTRIES IN itab_zycit003

           WHERE ebeln = itab_zycit003-ebeln

             AND ebelp = itab_zycit003-ebelp.

  ENDIF.

  LOOP AT itab_matuse.

    READ TABLE itab_zycit003 WITH KEY ebeln = itab_matuse-ebeln

                                      ebelp = itab_matuse-ebelp.

    IF t001-land1 EQ 'AR' OR t001-land1 EQ 'CL'.

      IF itab_matuse-knttp EQ 'F' OR itab_matuse-knttp EQ 'K'.

        v_matuse = 3.

      ELSE.

        v_matuse = 1.

      ENDIF.

    ENDIF.

    IF v_matuse IS INITIAL.

      v_matuse = itab_matuse-j_1bmatuse.

    ENDIF.

    CLEAR itab_cta. REFRESH itab_cta.

    PERFORM seek_account_number

            TABLES itab_cta

            USING /pws/zycie085-bukrs

                  'IPA'

                  itab_zycit003-werks

                  space

                  v_matuse

                  space

                  space.

    READ TABLE itab_cta INDEX 1.

    READ TABLE itab_matuse_aux INTO wa_matuse_aux WITH KEY

                           hkont = itab_cta-konth.

    IF sy-subrc NE 0.

      MOVE: itab_matuse-j_1bmatuse TO itab_matuse_aux-j_1bmatuse,

            itab_cta-konth          TO itab_matuse_aux-hkont .

      APPEND itab_matuse_aux.

      CLEAR itab_matuse_aux.

    ENDIF.

  ENDLOOP.

  SORT itab_zycit006 BY belnr_p.

  LOOP AT itab_zycit006.

    IF NOT itab_matuse_aux[] IS INITIAL.

      SELECT hkont dmbtr wrbtr belnr FROM bsis INTO itab_bsis

                FOR ALL ENTRIES IN itab_matuse_aux

                WHERE bukrs EQ /pws/zycie085-bukrs       AND

                  hkont     EQ itab_matuse_aux-hkont     AND

                  gjahr     EQ itab_zycit006-dtlanc+0(4) AND

                  belnr     EQ itab_zycit006-belnr_p.

        MOVE itab_zycit006-tpfatura TO itab_bsis-tpfatura.

        APPEND itab_bsis.

      ENDSELECT.

    ENDIF.

  ENDLOOP.

  IF NOT /pws/zycit000-provfre IS INITIAL.

    DELETE itab_bsis WHERE tpfatura = '02'.

  ENDIF.

  IF NOT /pws/zycit000-provseg IS INITIAL.

    DELETE itab_bsis WHERE tpfatura = '03'.

  ENDIF.

  LOOP AT itab_bsis.

    MOVE: itab_bsis-hkont TO itab_bsis_aux-hkont      ,

          itab_bsis-wrbtr TO itab_bsis_aux-wrbtr      ,

          itab_bsis-dmbtr TO itab_bsis_aux-dmbtr      ,

          itab_bsis-tpfatura TO itab_bsis_aux-tpfatura.

    COLLECT itab_bsis_aux.

  ENDLOOP.

  MOVE itab_matuse_aux[] TO itab_matuse_aux2[].

  CLEAR itab_matuse.

  REFRESH itab_matuse.

  IF NOT itab_zycit100[] IS INITIAL.

    SELECT ebeln ebelp matnr bwtar j_1bmatuse knttp werks

           FROM ekpo INTO TABLE itab_matuse

           FOR ALL ENTRIES IN itab_zycit100

           WHERE ebeln = itab_zycit100-ebeln

             AND ebelp = itab_zycit100-ebelp.

  ENDIF.

  LOOP AT itab_matuse.

    READ TABLE itab_zycit003 WITH KEY ebeln = itab_matuse-ebeln

                                      ebelp = itab_matuse-ebelp.

    READ TABLE itab_zycit094 WITH KEY nrseq = itab_zycit003-nrseq.

    READ TABLE itab_zycit006 WITH KEY nrseqce = itab_zycit094-nrseqce.

    READ TABLE itab_matuse_aux INTO wa_matuse_aux WITH KEY

                          j_1bmatuse = itab_matuse-j_1bmatuse.

    IF sy-subrc NE 0.

      MOVE: itab_matuse-j_1bmatuse TO itab_matuse_aux-j_1bmatuse.

      CLEAR itab_cta. REFRESH itab_cta.

      PERFORM seek_account_number

              TABLES itab_cta

              USING /pws/zycie001-bukrs

                    'VCI'

                    itab_zycit003-werks

                    space

                    wa_matuse_aux-hkont

                    itab_zycit006-tpfatura

                    space.

      READ TABLE itab_cta INDEX 1.

      IF itab_cta-konts IS INITIAL.

        CLEAR itab_cta. REFRESH itab_cta.

        PERFORM seek_account_number

                TABLES itab_cta

                USING /pws/zycie001-bukrs

                      'VCI'

                      itab_zycit003-werks

                      space

                      wa_matuse_aux-hkont

                      space

                      space.

      ENDIF.

      APPEND itab_matuse_aux.

      CLEAR itab_matuse_aux.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycit100.

    CLEAR: itab_matuse, itab_matuse_aux.

    READ TABLE itab_matuse WITH KEY ebeln = itab_zycit100-ebeln

                                      ebelp = itab_zycit100-ebelp.

    READ TABLE itab_matuse_aux WITH KEY

                  j_1bmatuse = itab_matuse-j_1bmatuse.

    MOVE: itab_matuse_aux-hkont TO itab_di-hkont,

          itab_zycit100-vlseg   TO itab_di-vlseg,

          itab_zycit100-vlfre   TO itab_di-vlfre.

    itab_di-vlfob = /pws/zycie085-ukursfob * itab_zycit100-vlfob .

    itab_di-vlfre = v_usd * itab_di-vlfre.

    itab_di-vlseg = v_usd * itab_di-vlseg.

    itab_di-vldi = itab_di-vlfob + itab_di-vlseg + itab_di-vlfre.

    COLLECT itab_di.

    CLEAR   itab_di.

  ENDLOOP.

  CLEAR: v_rec_ia, v_rec_ia_1.

  LOOP AT itab_matuse_aux2.

    READ TABLE itab_bsis_aux WITH KEY hkont = itab_matuse_aux2-hkont.

    IF sy-subrc NE 0.

      CONTINUE.

    ENDIF.

    IF itab_matuse_aux2-j_1bmatuse = 0.

      IF /pws/zycie085-belnr_0 IS INITIAL OR

         /pws/zycie085-flag_reclass IS INITIAL.

        IF /pws/zycie085-belnr_0_f05 IS INITIAL.

          v_rec_ia = v_rec_ia + 1.

          PERFORM fill_date_f_05_variacao.

          IF NOT v_belnrf05 IS INITIAL.

            PERFORM fill_date_f_51_variacao.

          ELSE.

            MESSAGE i015 WITH text-218.

          ENDIF.

        ENDIF.

      ENDIF.

    ELSEIF itab_matuse_aux2-j_1bmatuse = 1.

      IF /pws/zycie085-belnr_1 IS INITIAL OR

         /pws/zycie085-flag_reclass IS INITIAL.

        IF /pws/zycie085-belnr_1_f05 IS INITIAL.

          v_rec_ia = v_rec_ia + 1.

          PERFORM fill_date_f_05_variacao.

          IF NOT v_belnrf05 IS INITIAL.

            v_belnr = v_belnrf05.

            PERFORM fill_date_f_51_variacao.

          ELSE.

            MESSAGE i015 WITH text-218.

          ENDIF.

        ENDIF.

      ENDIF.

    ELSEIF itab_matuse_aux2-j_1bmatuse = 2.

      IF /pws/zycie085-belnr_2 IS INITIAL OR

         /pws/zycie085-flag_reclass IS INITIAL.

        IF /pws/zycie085-belnr_2_f05 IS INITIAL.

          v_rec_ia = v_rec_ia + 1.

          PERFORM fill_date_f_05_variacao.

          IF NOT v_belnrf05 IS INITIAL.

            v_belnr = v_belnrf05.

            PERFORM fill_date_f_51_variacao.

          ELSE.

            MESSAGE i015 WITH text-218.

          ENDIF.

        ENDIF.

      ENDIF.

    ELSEIF itab_matuse_aux2-j_1bmatuse = 3.

      IF /pws/zycie085-belnr_3 IS INITIAL OR

         /pws/zycie085-flag_reclass IS INITIAL.

        IF /pws/zycie085-belnr_3_f05 IS INITIAL.

          v_rec_ia = v_rec_ia + 1.

          PERFORM fill_date_f_05_variacao.

          IF NOT v_belnrf05 IS INITIAL.

            v_belnr = v_belnrf05.

            PERFORM fill_date_f_51_variacao.

          ELSE.

            MESSAGE i015 WITH text-218.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDLOOP.

  IF NOT v_rec_ia IS INITIAL AND v_rec_ia = v_rec_ia_1.

    UPDATE /pws/zycit085 SET  flag_reclass = 'X'

                 WHERE nrseqdi = /pws/zycie085-nrseqdi.

  ENDIF.

ENDFORM.

* << Fim da exclusão

...

 

...

 

FORM visualiza_rateio.

  DATA: v_programa LIKE /pws/zycit036-origem VALUE 'DI'.

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

  IF sy-ucomm EQ 'VISUA'.

    v_visualiza = 'X'.

  ENDIF.

* << Fim da inclusão

  FREE: itab_desp_funcao, itab_zycit036.

  CLEAR: itab_desp_funcao, itab_zycit036.

  LOOP AT itab_zycit049.

    MOVE: itab_zycit049-tpdesp  TO itab_desp_funcao-tpdesp,

          itab_zycit049-vlreal TO itab_desp_funcao-netpr,

          /pws/zycbt007-waersb  TO itab_desp_funcao-waers.

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

    READ TABLE itab_zycit100 WITH KEY nrseqdi = itab_zycit049-nrseq.

    MOVE: itab_zycit100-nrseq  TO itab_desp_funcao-nrseq,

          itab_zycit100-ebeln  TO itab_desp_funcao-ebeln,

          itab_zycit100-ebelp  TO itab_desp_funcao-ebelp.

* << Fim da exclusão

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

    READ TABLE itab_it WITH KEY nrseqdi = itab_zycit049-nrseq.

    MOVE: itab_it-nrseq  TO itab_desp_funcao-nrseq,

          itab_it-ebeln  TO itab_desp_funcao-ebeln,

          itab_it-ebelp  TO itab_desp_funcao-ebelp.

* << Fim da inclusão

    APPEND itab_desp_funcao.

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

  ENDLOOP.

  IF itab_zycit100[] IS INITIAL.

    LOOP AT itab_it.

      MOVE-CORRESPONDING itab_it TO itab_zycit100.

      APPEND itab_zycit100.

    ENDLOOP.

  ELSE.

    LOOP AT itab_it.

      READ TABLE itab_zycit100 WITH KEY nrseq = itab_it-nrseq

                                        ebeln = itab_it-ebeln

                                        ebelp = itab_it-ebelp.

      IF sy-subrc = 0 .

        MOVE-CORRESPONDING itab_it TO itab_zycit100.

        MODIFY itab_zycit100 INDEX sy-tabix.

      ENDIF.

* << Fim da inclusão

  ENDLOOP.

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

  ENDIF.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCI_RATEIO_CUSTO'

       EXPORTING

            v_programa    = v_programa

            v_visualiza   = v_visualiza

            v_bukrs       = /pws/zycie085-bukrs

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

            /pws/zycie085 = /pws/zycie085

* << Fim da inclusão

       IMPORTING

            v_resposta    = v_resp

       TABLES

            itab_zycit036 = itab_zycit036

            itab_despesa  = itab_desp_funcao

            itab_zycit003 = itab_zycit003

            itab_zycit100 = itab_zycit100

       CHANGING

            v_taxa_usd    = v_usd.

  IF v_resp EQ 'S'.

...

 

...

 

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

  CLEAR v_visualiza.

* << Fim da inclusão

ENDFORM.

...

 

...

 

* >> Início da inclusão:

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-nana IS INITIAL.

  LOOP AT itab_zycit006.

    IF itab_zycit006-frpagto EQ 'P' OR

       itab_zycit006-frpagto EQ 'A' .

      DELETE itab_zycit006.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycit006.

  ENDLOOP.

  IF sy-subrc NE 0 .

    EXIT.

  ENDIF.

  IF v_modo_bi IS INITIAL .

    v_modo_bi = 'N'.

  ENDIF.

  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.

  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_itens_funcao[]

            t_zycbt032           = itab_zycbt032[]

            itab_variacao        = itab_variacao[]

       EXCEPTIONS

            table_initial        = 1

            existe_recebimento   = 2

            flag_reclassificacao = 3

            dados_di_inicial     = 4

            OTHERS               = 5.

  IF sy-subrc <> 0.

    CLEAR itab_variacao.

  ENDIF.

  READ TABLE itab_variacao INDEX 1.

 IF sy-subrc EQ 0.

    IF NOT itab_variacao-belnr_0_f05 IS INITIAL OR

       NOT itab_variacao-belnr_1_f05 IS INITIAL OR

       NOT itab_variacao-belnr_2_f05 IS INITIAL OR

       NOT itab_variacao-belnr_3_f05 IS INITIAL OR

       NOT itab_variacao-belnr_0     IS INITIAL OR

       NOT itab_variacao-belnr_1     IS INITIAL OR

       NOT itab_variacao-belnr_2     IS INITIAL OR

       NOT itab_variacao-belnr_3     IS INITIAL.

      MOVE :

        itab_variacao-belnr_0 TO /pws/zycie085-belnr_0 ,

        itab_variacao-belnr_1  TO /pws/zycie085-belnr_1,

        itab_variacao-belnr_2  TO /pws/zycie085-belnr_2,

        itab_variacao-belnr_3  TO /pws/zycie085-belnr_3,

        itab_variacao-budat_0  TO /pws/zycie085-budat_0,

        itab_variacao-budat_1  TO /pws/zycie085-budat_1,

        itab_variacao-budat_2  TO /pws/zycie085-budat_2,

        itab_variacao-budat_3  TO /pws/zycie085-budat_3,

        itab_variacao-belnr_0_f05  TO /pws/zycie085-belnr_0_f05,

        itab_variacao-belnr_1_f05  TO /pws/zycie085-belnr_1_f05,

        itab_variacao-belnr_2_f05  TO /pws/zycie085-belnr_2_f05,

        itab_variacao-belnr_3_f05  TO /pws/zycie085-belnr_3_f05.

    ELSE.

      CLEAR itab_zycbt032.

      READ TABLE itab_zycbt032 WITH KEY

                               tcode = 'F-51'

                               tpmsg = 'E'.

      IF sy-subrc IS INITIAL.

        MESSAGE i015(/pws/zycim) WITH

                                 itab_zycbt032-tcode

                                 itab_zycbt032-msg(50)

                                 itab_zycbt032-msg+50(50).

      ELSE.

        CLEAR itab_zycbt032.

        READ TABLE itab_zycbt032 WITH KEY

                                 tcode = 'F-05'

                                 tpmsg = 'E'.

        IF sy-subrc IS INITIAL.

          MESSAGE i015(/pws/zycim) WITH

                                   itab_zycbt032-tcode

                                   itab_zycbt032-msg(50)

                                   itab_zycbt032-msg+50(50).

        ENDIF.

      ENDIF.

    ENDIF.

  ELSE.

    CLEAR itab_zycbt032.

    READ TABLE itab_zycbt032 WITH KEY

                             tcode = 'F-51'

                             tpmsg = 'E'.

    IF sy-subrc IS INITIAL.

      MESSAGE i015(/pws/zycim) WITH

                               itab_zycbt032-tcode

                               itab_zycbt032-msg(50)

                               itab_zycbt032-msg+50(50).

    ELSE.

      CLEAR itab_zycbt032.

      READ TABLE itab_zycbt032 WITH KEY

                               tcode = 'F-05'

                               tpmsg = 'E'.

      IF sy-subrc IS INITIAL.

        MESSAGE i015(/pws/zycim) WITH

                                 itab_zycbt032-tcode

                                 itab_zycbt032-msg(50)

                                 itab_zycbt032-msg+50(50).

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI059X01

 

...

 

DATA: BEGIN OF COMMON PART a.

* >> Início da inclusão:

DATA: BEGIN OF itab_itens_funcao OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie003.

DATA: END   OF itab_itens_funcao.

* << Fim da inclusão

...