CE PLUS - Nota 004292

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Agrupamento de Embarque

Data/Hora da Publicação: 27/07/2007 00:00:00

Data/Hora Última Alteração: 21/02/2011 17:21:33

Descrição da Nota: ELIMINAÇÃO DA TRATA_ORDEM NO AGRUPAMENTO DE EMBARQUE

Sintoma

Os programas de agrupamento /PWS/ZYCER089 e /PWS/ZYCER306 ainda usavam a função obsoleta

trata_ordem.

O programa /PWS/ZYCER089 não considerava a empresa na seleção de parâmetros da /PWS/ZYGL011

Os programas /PWS/ZYCER089 e /PWS/ZYCER306 faziam a reclassificação de cambiais mesmo quando o

embarque já havia feito.

A função de reclassificação de cambiais tenta preencher a condição de pagamento, mesmo quando o

campo está fechado.

 

 

Solução

A reclassificação de cambiais e o preenchimento da condição de pagamento foram eliminados.

A função foi substituída e os reports foram adaptados à nova função.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

BUSCA DE TAXA DE CONVERSÃO SEM FATORES EM AGRUPAMENTO DE EMBARQUE

BUSCA DE CONDIÇÃO DE PAGAMENTO PARA AGRUPAMENTO DE EMBARQUE

FUNÇÃO PARA DETERMINAÇÃO DE PERÍODO CONTÁBIL E EXERCÍCIO FISCAL

VERIFICAÇÃO DE EXERCÍCIO FISCAL NO AGRUPAMENTO DO EMBARQUE

VERIFICAÇÃO DE EXERCÍCIO FISCAL NO AGRUPAMENTO DO EMBARQUE

Informações Complementares

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

Nota Número 04292 Data: 27/07/2007 Hora: 14:03:50

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

 

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

Nota Número              : 04292

Categoria                : Melhoria

Prioridade               : Baixa

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00005

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

Referência às notas relacionadas:

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

 

01680  - 00001 - 6.0    - 00024  - BUSCA DE CONDIÇÃO DE PAGAMENTO PARA AGRUPAMENTO DE EMBARQUE

01812  - 00002 - 6.0    - 00024  - BUSCA DE TAXA DE CONVERSÃO SEM FATORES EM AGRUPAMENTO DE EMBARQUE

03560  - 00003 - 7.0    - 00001  - FUNÇÃO PARA DETERMINAÇÃO DE PERÍODO CONTÁBIL E EXERCÍCIO FISCAL

03749  - 00004 - 7.0    - 00001  - VERIFICAÇÃO DE EXERCÍCIO FISCAL NO AGRUPAMENTO DO EMBARQUE

03750  - 00005 - 7.0    - 00001  - VERIFICAÇÃO DE EXERCÍCIO FISCAL NO AGRUPAMENTO DO EMBARQUE

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

ELIMINAÇÃO DA TRATA_ORDEM NO AGRUPAMENTO DE EMBARQUE

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

Palavras Chave:

TRATA_ORDEM EMBARQUE

 

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

Objetos da nota:

DOCU NA/PWS/ZYCEM060

FUGR /PWS/ZYCEGF7

FUNC /PWS/ZYCE_TRANSACAO_FB02

REPS /PWS/ZYCER089

REPS /PWS/ZYCER306

REPT /PWS/ZYCER089

REPT /PWS/ZYCER306

 

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

Modificações efetuadas em DOCU NA/PWS/ZYCEM060

 

Marcar a mensagem 060 da classe /PWS/ZYCEM como auto-explicativa.

 

 

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

Modificações efetuadas em FUGR /PWS/ZYCEGF7

 

Criar o grupo de funções /PWS/ZYCEGF7

Texto breve (PT): CE - Tratamento de itens do embarque

Classe de desenvolvimento: /PWS/ZYCE

 

Criar o módulo de funções /PWS/ZYCE_SEPARA_ITENS_EMB neste grupo

Texto breve: CE - Separa itens do embarque pelo status de venda

Classe de desenvolvimento: /PWS/ZYCE

Segue abaixo o código-fonte

 

FUNCTION /pws/zyce_separa_itens_emb.

*"----------------------------------------------------------------------

*"*"Interface local:

*"  IMPORTING

*"     REFERENCE(NRSEQ) TYPE  /PWS/ZYCET001-NRSEQ

*"     REFERENCE(INCLUI_PAR_DT) TYPE  BOOLE_D DEFAULT SPACE

*"     REFERENCE(INCLUI_ES_SAIDA) TYPE  BOOLE_D DEFAULT SPACE

*"  TABLES

*"      TAB_SAIDA STRUCTURE  /PWS/ZYCET002 OPTIONAL

*"      TAB_COMPLEMENTO STRUCTURE  /PWS/ZYCET002 OPTIONAL

*"      TAB_DEVOLUCAO STRUCTURE  /PWS/ZYCET002 OPTIONAL

*"      TAB_ESTORNO STRUCTURE  /PWS/ZYCET002 OPTIONAL

*"  EXCEPTIONS

*"      ITENS_NAO_ENCONTRADOS

*"----------------------------------------------------------------------

 

  DATA: it_zycet002 TYPE STANDARD TABLE OF /pws/zycet002,

        wa_zycet002 LIKE LINE OF it_zycet002[].

 

  DATA: vbeln TYPE vbeln,

        posnr TYPE posnr.

 

  SELECT *

      FROM /pws/zycet002

      INTO TABLE it_zycet002[]

      WHERE nrseq = nrseq.

 

  IF sy-subrc <> 0.

 

    RAISE itens_nao_encontrados.

 

  ENDIF.

 

  SORT it_zycet002[] BY vbeln_va

                        aupos

                        vbeln_vl

                        posnl

                        vbeln_vf

                        posnr.

 

  LOOP AT it_zycet002[] INTO wa_zycet002.

 

    CASE wa_zycet002-st_vd.

 

      WHEN 'VD'.

 

        IF tab_saida IS REQUESTED.

 

          APPEND wa_zycet002 TO tab_saida[].

 

        ENDIF.

 

      WHEN 'SC'.

 

        IF tab_complemento IS REQUESTED.

 

          APPEND wa_zycet002 TO tab_complemento[].

 

        ENDIF.

 

      WHEN 'DP'.

 

        IF tab_saida IS REQUESTED.

 

          APPEND wa_zycet002 TO tab_saida[].

 

        ENDIF.

 

      WHEN 'DT'.

 

        IF wa_zycet002-shkzg = space.

 

          IF inclui_par_dt = 'X' AND tab_saida IS REQUESTED.

 

            APPEND wa_zycet002 TO tab_saida[].

 

          ELSE.

 

            SELECT SINGLE vbeln posnr

                FROM vbap

                INTO (vbeln, posnr)

                WHERE vgbel = wa_zycet002-vbeln_vf

                  AND vgpos = wa_zycet002-posnr.            "#EC *

 

            IF sy-subrc = 0.

 

              DELETE it_zycet002[] WHERE vbeln_va = vbeln

                                     AND aupos    = posnr.

 

            ENDIF.

 

          ENDIF.

 

        ELSE.

 

          IF tab_devolucao IS REQUESTED.

 

            APPEND wa_zycet002 TO tab_devolucao[].

 

          ENDIF.

 

        ENDIF.

 

      WHEN 'ES'.

 

        IF wa_zycet002-fksto = 'X'.

 

          IF inclui_es_saida = 'X' AND tab_saida IS REQUESTED.

 

            APPEND wa_zycet002 TO tab_saida.

 

          ENDIF.

 

        ELSE.

 

          IF tab_estorno IS REQUESTED.

 

            APPEND wa_zycet002 TO tab_estorno[].

 

          ENDIF.

 

        ENDIF.

 

    ENDCASE.

 

  ENDLOOP.

 

ENDFUNCTION.

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCE_TRANSACAO_FB02

 

...

    DO t_dados-quant TIMES.

      PERFORM bdc_screen USING 'SAPMF05L' '0301'.

      PERFORM bdc_field  USING:

             'BSEG-ZFBDT'  v_bldat,

             'BDC_OKCODE'  '=Z+'.

    ENDDO.

    PERFORM bdc_screen USING 'SAPMF05L' '0301'.

    PERFORM bdc_field  USING:

         'BDC_OKCODE'  '=AB',

           'BSEG-ZFBDT'  v_bldat.

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

    IF NOT t_dados-zterm IS INITIAL.

      PERFORM bdc_field  USING:

             'BSEG-ZTERM'  t_dados-zterm.

    ENDIF.

* << Fim da exclusão

    PERFORM bdc_screen USING 'SAPMF05L' '0700'.

    PERFORM bdc_field  USING:

           'BDC_OKCODE'  '=AE'.

    REFRESH itab_msg.

    CLEAR itab_msg.

    v_transacao = 'FB02'.

    v_update = 'S'.

    IF v_modo IS INITIAL.

      v_mode = 'N'.

    ELSE.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCER089

 

REPORT /pws/zycer089 MESSAGE-ID /pws/zycem.

* >> Início da exclusão:

TABLES: /pws/zycet002,

        /pws/zycet037,

        /pws/zycit054,

        /pws/zycet047,

        /pws/zycet048.

* << Fim da exclusão

* >> Início da inclusão:

TABLES: /pws/zycet037.

* << Fim da inclusão

CONSTANTS: c_x(1) TYPE c VALUE 'X'.

DATA: v_mode(1)   TYPE c,

      v_result(1) TYPE c,

      v_vlme_a    LIKE /pws/zycet062-vlme_a,

* >> Início da exclusão:

      v_dev_tot,

* << Fim da exclusão

      v_ok(1)     TYPE c,

* >> Início da exclusão:

      nrseq       LIKE /pws/zycee085-nrseq,

* << Fim da exclusão

      v_zterm     TYPE /pws/zycet046-zterm.

TYPES: BEGIN OF ty_zycet156,

        codigo   TYPE /pws/zycet156-codigo,

        kschl    TYPE /pws/zycet156-kschl,

        proccond TYPE /pws/zycet156-proccond,

       END OF ty_zycet156.

TYPES: BEGIN OF ty_zycet008.

        INCLUDE STRUCTURE /pws/zycet008.

TYPES: END OF ty_zycet008.

DATA: itab_zycet156 TYPE TABLE OF ty_zycet156,

...

 

...

DATA END OF itab_t052s.

DATA BEGIN OF itab_zycet062 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet062.

DATA END OF itab_zycet062.

DATA: BEGIN OF itab_bkpf OCCURS 0,

        belnr  LIKE  bkpf-belnr,

        gjahr  LIKE  bkpf-gjahr,

        awkey  LIKE  bkpf-awkey,

        budat  LIKE  bkpf-budat,

      END OF itab_bkpf.

* >> Início da exclusão:

DATA BEGIN OF itab_zycee085 OCCURS 10.

        INCLUDE STRUCTURE /pws/zycee085.

DATA END OF itab_zycee085.

DATA BEGIN OF itab_devolucao OCCURS 10.

        INCLUDE STRUCTURE /pws/zycee085.

DATA END OF itab_devolucao.

DATA BEGIN OF itab_complemento OCCURS 10.

        INCLUDE STRUCTURE /pws/zycee085.

DATA END OF itab_complemento.

DATA BEGIN OF itab_estorno OCCURS 10.

        INCLUDE STRUCTURE /pws/zycee085.

DATA END OF itab_estorno.

DATA BEGIN OF itab_saida OCCURS 10.

        INCLUDE STRUCTURE /pws/zycee085.

DATA END OF itab_saida.

* << Fim da exclusão

DATA BEGIN OF itab_zycbt030 OCCURS 10.

        INCLUDE STRUCTURE /pws/zycbt030.

DATA END OF itab_zycbt030.

DATA BEGIN OF itab_zycbt030_aux OCCURS 10.

        INCLUDE STRUCTURE /pws/zycbt030.

DATA END OF itab_zycbt030_aux.

DATA BEGIN OF itab_zycet093 OCCURS 10.

        INCLUDE STRUCTURE /pws/zycet093.

DATA END OF itab_zycet093.

* >> Início da exclusão:

DATA: BEGIN OF it_vbfa OCCURS 0,

        vbelv LIKE vbfa-vbelv,

        posnv LIKE vbfa-posnv,

        vbeln LIKE vbfa-vbeln,

        posnn LIKE vbfa-posnn,

      END OF it_vbfa.

* << Fim da exclusão

DATA: itab_zycbt032 LIKE /pws/zycbt032 OCCURS 10 WITH HEADER LINE,

      itab_zycbt033 LIKE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,

      itab_zycbt034 LIKE /pws/zycbt034 OCCURS 10 WITH HEADER LINE,

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

      itab_zycet005 LIKE /pws/zycet005 OCCURS 10 WITH HEADER LINE,

      itab_zycee005 LIKE /pws/zycee005 OCCURS 10 WITH HEADER LINE,

      itab_zycet004 LIKE /pws/zycet004 OCCURS 10 WITH HEADER LINE,

      itab_zycbt013 LIKE /pws/zycbt013 OCCURS 10 WITH HEADER LINE.

DATA: wa_zycbt011 LIKE /pws/zycbt011,

      wa_zycet008 LIKE /pws/zycet008.

TYPES: BEGIN OF ty_per_fiscal,

       mes TYPE t001b-frpe1,

       ano TYPE t001b-frye1,

      END OF ty_per_fiscal.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

* >> Início da exclusão:

SELECT-OPTIONS: p_nrseq FOR /pws/zycet002-nrseq

                        NO INTERVALS

                        NO-EXTENSION.

* << Fim da exclusão

* >> Início da inclusão:

PARAMETERS: p_nrseq TYPE /pws/zycet001-nrseq.

* << Fim da inclusão

PARAMETERS: p_flag(1) TYPE c.

SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION.

  PERFORM seleciona_dados.

  IF p_flag EQ 'X'.

    CLEAR: v_ok.

* >> Início da exclusão:

    IF /pws/zycet037-agrup_fat_rec = '1'.

      PERFORM executa_f_02.

    ENDIF.

* << Fim da exclusão

    IF /pws/zycet037-centro_dif = '0'.

      PERFORM fill_date_f30.

      PERFORM executa_f30.

    ELSE.

      MOVE itab_zycet002[] TO itab_zycet002_aux2[].

      SORT itab_zycet002_aux2 BY gsber.

      LOOP AT itab_zycet002_aux2.

        PERFORM agrupa_dados.

        PERFORM fill_date_f30.

        PERFORM executa_f30.

        PERFORM clear_data_batch.

      ENDLOOP.

    ENDIF.

  ELSE.

    LOOP AT itab_zycbt030.

      PERFORM fill_date_fbra.

      PERFORM executa_fbra.

    ENDLOOP.

  ENDIF.

END-OF-SELECTION.

FORM seleciona_dados.

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

  DATA: itab_zycet002_sc TYPE STANDARD TABLE OF /pws/zycet002,

        itab_zycet002_d  TYPE STANDARD TABLE OF /pws/zycet002.

* << Fim da inclusão

  SELECT *

      FROM /pws/zycbt013

      INTO TABLE itab_zycbt013

      WHERE tabela = '/PWS/ZYCET001'

        AND cpor3  = 'XBLNR'.

  SELECT SINGLE *

      FROM /pws/zycet001

      INTO wa_zycet001

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

      WHERE nrseq IN p_nrseq.

* << Fim da exclusão

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

      WHERE nrseq = p_nrseq.

* << Fim da inclusão

  IF sy-subrc IS INITIAL.

    SELECT codigo

           kschl

           proccond

     FROM /pws/zycet156

     INTO TABLE itab_zycet156

      WHERE bukrs    EQ wa_zycet001-bukrs

        AND codmod   EQ 'X'

        AND proccond EQ 'FOB'.

    IF sy-subrc IS INITIAL.

...

 

...

       FOR ALL ENTRIES IN itab_zycet156

        WHERE nrseq  EQ wa_zycet001-nrseq

          AND codigo EQ itab_zycet156-codigo.

      READ TABLE itab_zycet008 INTO wa_zycet008 INDEX 1.

    ENDIF.

  ENDIF.

  SELECT SINGLE *

      FROM /pws/zycbt011

      INTO wa_zycbt011

      WHERE codeven = '005'

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

        AND codmod  = 'X'.

* << Fim da exclusão

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

        AND codmod  = 'X'

        AND BUKRS   = wa_zycet001-bukrs.

* << Fim da inclusão

  SELECT *

      FROM /pws/zycet062

      INTO TABLE itab_zycet062

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

      WHERE nrseq IN p_nrseq.

* << Fim da exclusão

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

      WHERE nrseq = p_nrseq.

* << Fim da inclusão

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

  SELECT *

      FROM /pws/zycet002

      INTO TABLE itab_zycet002

      WHERE nrseq IN p_nrseq.

* << Fim da exclusão

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

  CALL FUNCTION '/PWS/ZYCE_SEPARA_ITENS_EMB'

       EXPORTING

            nrseq                 = wa_zycet001-nrseq

            inclui_par_dt         = 'X'

            inclui_es_saida       = ' '

       TABLES

            tab_saida             = itab_zycet002

            tab_complemento       = itab_zycet002_sc

            tab_devolucao         = itab_zycet002_d

       EXCEPTIONS

            itens_nao_encontrados = 0

            OTHERS                = 0.

* << Fim da inclusão

  IF itab_zycet002[] IS INITIAL.

    MESSAGE i008.

    STOP.

  ELSE.

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

    APPEND LINES OF itab_zycet002_sc[] TO itab_zycet002[].

    APPEND LINES OF itab_zycet002_d[]  TO itab_zycet002[].

* << Fim da inclusão

    READ TABLE itab_zycet002 INDEX 1.

    SELECT SINGLE *

        FROM /pws/zycet037

        WHERE bukrs EQ itab_zycet002-bukrs.

  ENDIF.

  IF p_flag = 'X'.

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

    CLEAR nrseq.

    LOOP AT itab_zycet002.

      nrseq = nrseq + 001.

      itab_zycee085-nrseq = nrseq.

      SHIFT itab_zycee085-nrseq RIGHT DELETING TRAILING space.

      DO 9 TIMES.

        REPLACE ' ' WITH '0' INTO itab_zycee085-nrseq.

* << Fim da exclusão

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

    IF /pws/zycet037-agrup_sem_rec NE '1'.

* << Fim da inclusão

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

      ENDDO.

* << Fim da exclusão

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

      LOOP AT itab_zycet002 WHERE status NE 'C'.

* << Fim da inclusão

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

      MOVE: itab_zycet002-mandt    TO itab_zycee085-mandt,

            itab_zycet002-vbeln_va TO itab_zycee085-vbeln_va,

            itab_zycet002-vbeln_vf TO itab_zycee085-vbeln_vf,

            itab_zycet002-vbeln_vl TO itab_zycee085-vbeln_vl,

            itab_zycet002-posnl    TO itab_zycee085-posnl,

            itab_zycet002-aupos    TO itab_zycee085-aupos,

            itab_zycet002-inco1    TO itab_zycee085-inco1,

            itab_zycet002-fkimg    TO itab_zycee085-fkimg,

            itab_zycet002-vrkme    TO itab_zycee085-vrkme,

            itab_zycet002-posnr    TO itab_zycee085-posnr,

            itab_zycet002-vlme     TO itab_zycee085-vlme,

            itab_zycet002-ntgew    TO itab_zycee085-ntgew,

            itab_zycet002-brgew    TO itab_zycee085-brgew,

            itab_zycet002-shkzg    TO itab_zycee085-shkzg,

            itab_zycet002-nfnum    TO itab_zycee085-nfnum,

            itab_zycet002-auart    TO itab_zycee085-auart,

            itab_zycet002-fkart    TO itab_zycee085-fkart,

            itab_zycet002-waers    TO itab_zycee085-waers,

            itab_zycet002-gewei    TO itab_zycee085-gewei,

            itab_zycet002-bukrs    TO itab_zycee085-bukrs,

            itab_zycet002-pstyv    TO itab_zycee085-pstyv.

* << Fim da exclusão

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

        EXIT.

* << Fim da inclusão

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

      APPEND itab_zycee085.

* << Fim da exclusão

    ENDLOOP.

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

    EXPORT itab_zycee085 TO MEMORY ID 'ODOC'.

* << Fim da exclusão

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

      IF sy-subrc = 0.

* << Fim da inclusão

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

    IF /pws/zycet037-agrup_sem_rec NE '1'.

      LOOP AT itab_zycet002 WHERE status NE 'C'.

        EXIT.

      ENDLOOP.

      IF sy-subrc = 0.

* << Fim da exclusão

        MESSAGE i001 WITH text-002 text-009.

        v_result = 'N'.

        EXPORT v_result TO MEMORY ID '031'.

        STOP.

      ENDIF.

    ENDIF.

    SORT itab_zycet002 BY vbeln_va posnr.

    LOOP AT itab_zycet002.

      IF itab_zycet002-vbeln_vf IS INITIAL.

        CONTINUE.

...

 

...

             INTO TABLE itab_bkpf

             FOR ALL ENTRIES IN itab_zycet002_temp

             WHERE awtyp = 'VBRK'

               AND awkey = itab_zycet002_temp-vbeln_vf

               AND awsys = ' '.

    ENDIF.

  ELSE.

    SELECT *

        FROM /pws/zycbt030

        INTO TABLE itab_zycbt030_aux

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

        WHERE nrinvoic IN p_nrseq.

* << Fim da exclusão

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

        WHERE nrinvoic = p_nrseq.

* << Fim da inclusão

    IF sy-subrc NE 0 AND /pws/zycet037-agrup_fat_rec = '1'.

      SELECT *

          FROM /pws/zycet093

          INTO TABLE itab_zycet093

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

          WHERE nrseq IN p_nrseq.

* << Fim da exclusão

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

          WHERE nrseq = p_nrseq.

* << Fim da inclusão

      IF sy-subrc EQ 0.

        LOOP AT itab_zycet093.

          CLEAR itab_zycbt030.

          itab_zycbt030-nrinvoic = itab_zycet093-nrseq.

          itab_zycbt030-belnr    = itab_zycet093-belnr_i.

          COLLECT itab_zycbt030.

        ENDLOOP.

      ENDIF.

    ELSE.

      LOOP AT itab_zycbt030_aux.

...

 

...

        COLLECT itab_zycbt030.

      ENDLOOP.

    ENDIF.

  ENDIF.

  SELECT SINGLE zterm

      INTO v_zterm

      FROM /pws/zycet046

      WHERE nrseq = wa_zycet001-nrseq.

ENDFORM.

FORM fill_date_f30.

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

  DATA: wa_zycee085     LIKE /pws/zycee085,

        v_moeda_destino TYPE t001-waers,

* << Fim da exclusão

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

  DATA: v_moeda_destino TYPE t001-waers,

* << Fim da inclusão

        v_categoria     TYPE /pws/zycbt011-ctmoed.

  CLEAR: itab_zycbt032,

         itab_zycbt033,

         itab_zycbt034,

         itab_zycbt036.

  REFRESH: itab_zycbt032,

           itab_zycbt033,

           itab_zycbt034,

           itab_zycbt036.

  IF v_mode IS INITIAL.

...

 

...

    CALL FUNCTION '/PWS/ZYGL_MONTANTE_CONVERTE'

         EXPORTING

              i_montante                   = 1

              i_demoeda                    = itab_zycet002-waers

              i_paramoeda                  = v_moeda_destino

              i_ctmoeda                    = v_categoria

              i_dtbase                     = itab_zycbt033-dtdocto

         IMPORTING

              e_txc                        = itab_zycbt033-kursf

         EXCEPTIONS

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

              i_demoeda_nao_encontrado     = 1

              i_paramoeda_nao_encontrado   = 2

              i_ctmoeda_nao_encontrado     = 3

              i_dtbase_nao_encontrada      = 4

              taxa_nao_encontrada          = 5

              fator_nao_encontrado         = 6

              i_montante_nao_encontrado    = 7

              tabela_categ_nao_configurada = 8

              OTHERS                       = 9.

* << Fim da exclusão

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

              i_demoeda_nao_encontrado     = 0

              i_paramoeda_nao_encontrado   = 0

              i_ctmoeda_nao_encontrado     = 0

              i_dtbase_nao_encontrada      = 0

              taxa_nao_encontrada          = 0

              fator_nao_encontrado         = 0

              i_montante_nao_encontrado    = 0

              tabela_categ_nao_configurada = 0

              OTHERS                       = 0.

* << Fim da inclusão

  ENDIF.

  IF /pws/zycet037-alt_cond = '1'.

    APPEND itab_zycbt033.

  ELSE.

    SELECT * FROM t052s

        INTO TABLE itab_t052s

        WHERE zterm = v_zterm.

    IF sy-subrc EQ 0.

      LOOP AT itab_t052s.

        itab_zycbt033-zterm = itab_t052s-ratzt.

        itab_zycbt033-mwskz = 'X'.

        APPEND itab_zycbt033.

      ENDLOOP.

    ELSE.

      itab_zycbt033-zterm = v_zterm.

      APPEND itab_zycbt033.

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

    ENDIF.

* << Fim da exclusão

  ENDIF.

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

  CLEAR itab_saida.

  REFRESH itab_saida.

  CALL FUNCTION '/PWS/ZYCE_TRATA_ORDEM'

       EXPORTING

            nrseq         = wa_zycet001-nrseq

       TABLES

            t_saida       = itab_saida

            t_estorno     = itab_estorno

            t_devolucao   = itab_devolucao

            t_complemento = itab_complemento.

  IF NOT itab_saida[] IS INITIAL.

    SELECT vbelv posnv vbeln posnn

           FROM vbfa

           INTO TABLE it_vbfa

           FOR ALL ENTRIES IN itab_saida

           WHERE vbelv = itab_saida-vbeln_vf AND

                 posnv = itab_saida-posnr.

* << Fim da exclusão

  ENDIF.

  LOOP AT itab_zycet002.

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

    CLEAR v_dev_tot.

    READ TABLE itab_saida WITH KEY

                               vbeln_va = itab_zycet002-vbeln_va

                               vbeln_vf = itab_zycet002-vbeln_vf

                               posnr    = itab_zycet002-posnr.

    IF sy-subrc = 0.

      MOVE itab_saida TO wa_zycee085.

    ELSE.

      READ TABLE itab_devolucao WITH KEY

                                 vbeln_va = itab_zycet002-vbeln_va

                                 vbeln_vf = itab_zycet002-vbeln_vf

                                 posnr    = itab_zycet002-posnr.

      IF sy-subrc = 0.

        MOVE itab_devolucao TO wa_zycee085.

* << Fim da exclusão

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

    READ TABLE itab_bkpf WITH KEY awkey = itab_zycet002-vbeln_vf.

* << Fim da inclusão

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

      ELSE.

        READ TABLE itab_complemento WITH KEY

                                    vbeln_va = itab_zycet002-vbeln_va

                                    vbeln_vf = itab_zycet002-vbeln_vf

                                    posnr    = itab_zycet002-posnr.

* << Fim da exclusão

        IF sy-subrc EQ 0.

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

          MOVE itab_complemento TO wa_zycee085.

        ELSE.

          CONTINUE.

        ENDIF.

      ENDIF.

    ENDIF.

    READ TABLE itab_estorno

               WITH KEY vbeln_va = itab_zycet002-vbeln_va

                        vbeln_vf = itab_zycet002-vbeln_vf

                        posnr    = itab_zycet002-posnr.

    IF sy-subrc NE 0.

      PERFORM verifica_dev_total USING wa_zycee085.

      IF v_dev_tot IS INITIAL.

        READ TABLE itab_estorno

                   WITH KEY vbeln_va = itab_zycet002-vbeln_va

                            vbeln_vf = itab_zycet002-vbeln_vf

                            posnr    = itab_zycet002-posnr.

        IF sy-subrc NE 0.

          READ TABLE itab_bkpf WITH KEY awkey = itab_zycet002-vbeln_vf.

          IF sy-subrc EQ 0.

* << Fim da exclusão

            itab_zycbt036-mandt   = sy-mandt.

            itab_zycbt036-tcode   = 'F-30'.

            itab_zycbt036-tabela  = '/PWS/ZYCET002'.

            itab_zycbt036-cpochv  = wa_zycet001-nrseq.

            itab_zycbt036-belnr   = itab_bkpf-belnr.

            itab_zycbt036-residuo = itab_zycet002-vlme.

            itab_zycbt036-waers   = itab_zycet002-waers.

            itab_zycbt036-dtdocto = itab_bkpf-budat.

            COLLECT itab_zycbt036.

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

          ENDIF.

        ENDIF.

      ENDIF.

* << Fim da exclusão

    ENDIF.

    CLEAR itab_zycbt036.

  ENDLOOP.

  DESCRIBE TABLE itab_zycbt036.

  IF NOT sy-tfill IS INITIAL.

    v_ok = c_x.

  ENDIF.

ENDFORM.

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

FORM verify_null_field USING value(p_field)

                             value(p_fieldname)

                             value(p_description).

* << Fim da exclusão

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

FORM verify_null_field

     USING

         p_field       TYPE any

         p_fieldname   TYPE /pws/zycbt034-campo

         p_description TYPE /pws/zycbt034-descricao.

* << Fim da inclusão

  IF p_field IS INITIAL.

    itab_zycbt034-campo     = p_fieldname.

    itab_zycbt034-descricao = p_description.

    APPEND itab_zycbt034.

  ENDIF.

ENDFORM.

FORM get_parameters.

  PERFORM verify_null_field USING wa_zycet001-bukrs

                                  'BUKRS'

                                  text-006.

...

 

...

    IMPORT v_mode FROM MEMORY ID '035'.

    CALL FUNCTION '/PWS/ZYCE_TRANSACAO_F_30C'

         EXPORTING

              v_modo          = v_mode

         TABLES

              t_dados         = itab_zycbt033

              t_campo         = itab_zycbt034

              t_zycbt032      = itab_zycbt032

              t_zycbt036      = itab_zycbt036

         EXCEPTIONS

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

              campo_em_branco = 1

              periodo_fechado = 2

              OTHERS          = 3.

* << Fim da exclusão

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

              campo_em_branco = 0

              periodo_fechado = 0

              OTHERS          = 0.

* << Fim da inclusão

    FREE MEMORY ID '031'.

    READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCET002'

                                      cpochv = wa_zycet001-nrseq

                                      tpmsg  = 'S'.

    IF sy-subrc EQ 0.

      v_result = 'Y'.

    ELSE.

      LOOP AT itab_zycbt032.

        MESSAGE i001 WITH itab_zycbt032-msg.

      ENDLOOP.

...

 

...

  ELSE.

    READ TABLE itab_zycet093 WITH KEY belnr_i = itab_zycbt030-belnr.

    IF sy-subrc = 0.

      itab_zycbt033-budat = itab_zycet093-dtfat.

      itab_zycbt033-bldat = itab_zycet093-dtfat.

    ENDIF.

  ENDIF.

  APPEND itab_zycbt033.

ENDFORM.

FORM fill_date_fb08.

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

  DATA: wa_per_fiscal TYPE ty_per_fiscal,

        v_retorno(2)  TYPE c,

* << Fim da exclusão

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

  DATA: v_retorno(2)  TYPE c,

* << Fim da inclusão

        v_gjahr       TYPE t001b-frye1.

  CLEAR: itab_zycbt033,

         itab_zycbt032,

         itab_zycee005.

  REFRESH: itab_zycbt033,

           itab_zycbt032,

           itab_zycee005.

  itab_zycbt033-mandt  = sy-mandt.

  itab_zycbt033-tcode  = 'FB08'.

  itab_zycbt033-cpochv = wa_zycet001-nrseq.

...

 

...

  ENDIF.

  CALL FUNCTION '/PWS/ZYCE_CHECA_PERIODO_FISCAL'

       EXPORTING

            v_bukrs                = itab_zycee005-bukrs

            v_date                 = itab_zycee005-budat

            v_koart                = '+'

       IMPORTING

            v_year                 = v_gjahr

            v_stgrd                = v_retorno

       EXCEPTIONS

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

            variante_de_exercicio  = 1

            data_nao_encontrada    = 2

            empresa_nao_encontrada = 3

            period_in_not_valid    = 4

            period_not_assigned    = 5

            version_undefined      = 6

            OTHERS                 = 7.

* << Fim da exclusão

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

            variante_de_exercicio  = 0

            data_nao_encontrada    = 0

            empresa_nao_encontrada = 0

            period_in_not_valid    = 0

            period_not_assigned    = 0

            version_undefined      = 0

            OTHERS                 = 0.

* << Fim da inclusão

  itab_zycee005-gjahs = v_gjahr.

  IF v_retorno = '01'.

    CALL FUNCTION '/PWS/ZYCE_CHECA_PERIODO_FISCAL'

         EXPORTING

              v_bukrs                = itab_zycee005-bukrs

              v_date                 = itab_zycee005-budat

              v_koart                = 'D'

         IMPORTING

              v_year                 = v_gjahr

              v_stgrd                = v_retorno

         EXCEPTIONS

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

              variante_de_exercicio  = 1

              data_nao_encontrada    = 2

              empresa_nao_encontrada = 3

              period_in_not_valid    = 4

              period_not_assigned    = 5

              version_undefined      = 6

              OTHERS                 = 7.

* << Fim da exclusão

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

              variante_de_exercicio  = 0

              data_nao_encontrada    = 0

              empresa_nao_encontrada = 0

              period_in_not_valid    = 0

              period_not_assigned    = 0

              version_undefined      = 0

              OTHERS                 = 0.

* << Fim da inclusão

    IF v_retorno = '01'.

      itab_zycee005-stgrd = '01'.

    ELSE.

      itab_zycee005-stgrd = '02'.

      itab_zycee005-budat = sy-datlo.

    ENDIF.

  ELSE.

    itab_zycee005-stgrd = '02'.

    itab_zycee005-budat = sy-datlo.

  ENDIF.

...

 

...

FORM executa_fbra.

  IMPORT v_mode FROM MEMORY ID '035'.

  FREE MEMORY ID '035'.

  CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FBRA'

       EXPORTING

            v_modo          = v_mode

       TABLES

            t_dados         = itab_zycbt033

            t_zycbt032      = itab_zycbt032

       EXCEPTIONS

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

            campo_em_branco = 1

            OTHERS          = 2.

* << Fim da exclusão

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

            campo_em_branco = 0

            OTHERS          = 0.

* << Fim da inclusão

  READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCBT030'

                                    cpochv = wa_zycet001-nrseq

                                    tpmsg  = 'S'.

  IF sy-subrc EQ 0.

    PERFORM fill_date_fb08.

    PERFORM executa_fb08.

  ELSE.

    LOOP AT itab_zycbt032.

      MESSAGE i001 WITH itab_zycbt032-msg.

    ENDLOOP.

...

 

...

ENDFORM.

FORM executa_fb08.

  CALL FUNCTION '/PWS/ZYCE_TRANSACAO_FB08'

       EXPORTING

            v_modo          = v_mode

       TABLES

            t_dados         = itab_zycee005

            t_campo         = itab_zycet004

            t_zycet005      = itab_zycet005

       EXCEPTIONS

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

            campo_em_branco = 1

            OTHERS          = 2.

* << Fim da exclusão

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

            campo_em_branco = 0

            OTHERS          = 0.

* << Fim da inclusão

  FREE MEMORY ID '031'.

  READ TABLE itab_zycet005 WITH KEY tabela = '/PWS/ZYCBT030'

                                    cpochv = wa_zycet001-nrseq

                                    tpmsg  = 'S'.

  IF sy-subrc EQ 0.

    v_result = 'Y'.

  ELSE.

    LOOP AT itab_zycbt032.

      MESSAGE i001 WITH itab_zycbt032-msg.

    ENDLOOP.

...

 

...

FORM clear_data_batch.

  CLEAR: itab_zycbt032,

         itab_zycbt033,

         itab_zycbt034,

         itab_zycbt036.

  REFRESH: itab_zycbt032,

           itab_zycbt033,

           itab_zycbt034,

           itab_zycbt036.

ENDFORM.

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

FORM executa_f_02.

  DATA v_modo LIKE /pws/zycbt039-modo.

  DATA: BEGIN OF it_dados OCCURS 0,

          belnr LIKE /pws/zycee005-belnr,

          bukrs LIKE /pws/zycee005-bukrs,

          gjahr LIKE /pws/zycee005-gjahr,

          zterm LIKE /pws/zycee005-zterm,

          dtemb LIKE /pws/zycee001-dtemb,

        END OF it_dados.

  LOOP AT itab_bkpf.

    MOVE: itab_bkpf-belnr      TO it_dados-belnr,

          itab_zycet002-bukrs  TO it_dados-bukrs,

          itab_bkpf-gjahr      TO it_dados-gjahr,

          v_zterm              TO it_dados-zterm,

          wa_zycet001-dtemb    TO it_dados-dtemb.

    APPEND it_dados.

  ENDLOOP.

  IMPORT v_mode FROM MEMORY ID '035'.

  v_modo = v_mode.

  EXPORT: it_dados TO MEMORY ID 'FB02',

          v_modo   TO MEMORY ID '035'.

  AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD '/PWS/ZYCER217'.

  IF sy-subrc EQ 0.

    SUBMIT /pws/zycer217 AND RETURN.

    IMPORT v_result FROM MEMORY ID '031'.

    IF v_result = 'Y'.

      MESSAGE s001 WITH text-012 text-013.

    ELSE.

      MESSAGE e001 WITH text-014 text-015.

    ENDIF.

  ELSE.

    MESSAGE e261(sf) WITH '/PWS/ZYCER217'.

  ENDIF.

  FREE MEMORY ID: '031',

                  'FB02'.

  EXPORT v_mode TO MEMORY ID '035'.

ENDFORM.

FORM verifica_dev_total USING wa_zycee085 LIKE /pws/zycee085.

  LOOP AT it_vbfa WHERE vbelv = wa_zycee085-vbeln_vf AND

                        posnv = wa_zycee085-posnr.

    READ TABLE itab_devolucao WITH KEY vbeln_vf = it_vbfa-vbeln

                                       posnr    = it_vbfa-posnn.

    IF sy-subrc EQ 0.

      IF itab_devolucao-shkzg EQ 'X'.

        IF wa_zycee085-vlme EQ 0.

          DELETE itab_devolucao WHERE vbeln_vf = it_vbfa-vbeln

                                  AND posnr    = it_vbfa-posnn.

          v_dev_tot = 'X'.

          EXIT.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDFORM.

* << Fim da exclusão

FORM determina_dtdocto

     USING

         p_wa_zycet001 TYPE /pws/zycet001

     CHANGING

         p_dtdocto TYPE d.

  CASE p_wa_zycet001-modo_venc.

    WHEN 'E'.

      p_dtdocto = p_wa_zycet001-dtemb.

    WHEN 'B'.

      SELECT SINGLE dtbl

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCER306

 

REPORT /pws/zycer306 MESSAGE-ID /pws/zycem.

* >> Início da exclusão:

TABLES: /pws/zycet001,

        /pws/zycet002,

        /pws/zycbt011,

        /pws/zycet008,

        /pws/zycbt030,

        /pws/zycbt036,

        /pws/zycet037,

        /pws/zycit054,

        /pws/zycet047,

        /pws/zycet048,

        vbrk,

        t001b.

* << Fim da exclusão

* >> Início da inclusão:

TABLES: /pws/zycet037.

* << Fim da inclusão

DATA: v_cpochv    LIKE /pws/zycbe033-cpochv,

      v_mode(1)   TYPE c,

      v_result(1) TYPE c,

* >> Início da exclusão:

      v_valor30   LIKE /pws/zycbt030-kwert,

* << Fim da exclusão

      v_vlme_a    LIKE /pws/zycet062-vlme_a,

* >> Início da exclusão:

      v_belnr     LIKE /pws/zycbt032-belnr,

      v_nfnum     LIKE /pws/zycet002-nfnum,

* << Fim da exclusão

      v_kunrg     LIKE /pws/zycet002-kunrg,

* >> Início da exclusão:

      v_dev_tot,

* << Fim da exclusão

      v_subrc     LIKE sy-subrc,

      v_ok(1)     TYPE c.

CONSTANTS: c_x(1) TYPE c VALUE 'X'.

TYPES: BEGIN OF ty_zycet156,

        codigo   TYPE /pws/zycet156-codigo,

        kschl    TYPE /pws/zycet156-kschl,

...

 

...

DATA: BEGIN OF wa_zycet001.

        INCLUDE STRUCTURE /pws/zycet001.

DATA: END OF   wa_zycet001.

DATA: BEGIN OF itab_zycet002_temp OCCURS 100,

      vbeln_vf(20),

      fkdat   LIKE /pws/zycet002-fkdat,

      END OF itab_zycet002_temp.

DATA: BEGIN OF itab_zycet002 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: END OF   itab_zycet002.

* >> Início da exclusão:

DATA: BEGIN OF itab_zycet002_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: END OF   itab_zycet002_aux.

* << Fim da exclusão

* >> Início da inclusão:

DATA: itab_zycet002_aux TYPE STANDARD TABLE OF /pws/zycet002.

* << Fim da inclusão

DATA: BEGIN OF itab_zycet002_aux2 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: END OF   itab_zycet002_aux2.

DATA: BEGIN OF itab_t052s OCCURS 0.

        INCLUDE STRUCTURE t052s.

DATA: END OF   itab_t052s.

DATA: BEGIN OF itab_zycet062 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet062.

DATA: END OF   itab_zycet062.

DATA: BEGIN OF itab_bkpf OCCURS 0,

        belnr  LIKE  bkpf-belnr,

        gjahr  LIKE  bkpf-gjahr,

        awkey  LIKE  bkpf-awkey,

        budat  LIKE  bkpf-budat,

      END OF itab_bkpf.

* >> Início da exclusão:

DATA: BEGIN OF itab_vbrk OCCURS 0.

        INCLUDE STRUCTURE vbrk.

DATA: END OF   itab_vbrk.

* << Fim da exclusão

DATA: BEGIN OF itab_zycbt012 OCCURS 2.

        INCLUDE STRUCTURE /pws/zycbt012.

DATA: END OF   itab_zycbt012.

* >> Início da exclusão:

DATA: BEGIN OF itab_zycee085 OCCURS 10.

        INCLUDE STRUCTURE /pws/zycee085.

DATA: END OF itab_zycee085.

DATA: BEGIN OF itab_devolucao OCCURS 10.

        INCLUDE STRUCTURE /pws/zycee085.

DATA: END OF itab_devolucao.

DATA: BEGIN OF itab_complemento OCCURS 10.

        INCLUDE STRUCTURE /pws/zycee085.

DATA: END OF itab_complemento.

DATA: BEGIN OF itab_estorno OCCURS 10.

        INCLUDE STRUCTURE /pws/zycee085.

DATA: END OF itab_estorno.

DATA: BEGIN OF itab_saida OCCURS 10.

        INCLUDE STRUCTURE /pws/zycee085.

DATA: END OF itab_saida.

* << Fim da exclusão

DATA: BEGIN OF itab_zycbt030 OCCURS 10.

        INCLUDE STRUCTURE /pws/zycbt030.

DATA: END OF itab_zycbt030.

DATA: BEGIN OF itab_zycbt030_aux OCCURS 10.

        INCLUDE STRUCTURE /pws/zycbt030.

DATA: END OF itab_zycbt030_aux.

DATA: BEGIN OF itab_zycet093 OCCURS 10.

        INCLUDE STRUCTURE /pws/zycet093.

DATA: END OF itab_zycet093.

* >> Início da exclusão:

DATA: BEGIN OF it_vbfa OCCURS 0,

      vbelv    LIKE vbfa-vbelv,

      posnv    LIKE vbfa-posnv,

      vbeln    LIKE vbfa-vbeln,

      posnn    LIKE vbfa-posnn,

      END OF it_vbfa.

* << Fim da exclusão

DATA: BEGIN OF itab_bsad OCCURS 0.

* >> Início da exclusão:

DATA: bukrs LIKE bsad-bukrs,

* << Fim da exclusão

* >> Início da inclusão:

DATA:   bukrs LIKE bsad-bukrs,

* << Fim da inclusão

      kunnr LIKE bsad-kunnr,

      augdt LIKE bsad-augdt,

      augbl LIKE bsad-augbl,

      gjahr LIKE bsad-gjahr,

      belnr LIKE bsad-belnr.

DATA: END OF itab_bsad.

* >> Início da exclusão:

DATA: nrseq LIKE /pws/zycee085-nrseq.

* << Fim da exclusão

DATA: itab_zycbt032 LIKE /pws/zycbt032 OCCURS 10 WITH HEADER LINE,

      itab_zycbt033 LIKE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,

      itab_zycbt034 LIKE /pws/zycbt034 OCCURS 10 WITH HEADER LINE,

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

* >> Início da exclusão:

      itab_zycet005  LIKE /pws/zycet005 OCCURS 10 WITH HEADER LINE,

      itab_zycee005  LIKE /pws/zycee005 OCCURS 10 WITH HEADER LINE,

      itab_zycet004  LIKE /pws/zycet004 OCCURS 10 WITH HEADER LINE,

      itab_zycbt013  LIKE /pws/zycbt013  OCCURS 10 WITH HEADER LINE,

      wa_zycbt011    LIKE /pws/zycbt011,

      wa_zycet008    LIKE /pws/zycet008.

* << Fim da exclusão

* >> Início da inclusão:

      itab_zycet005 LIKE /pws/zycet005 OCCURS 10 WITH HEADER LINE,

      itab_zycee005 LIKE /pws/zycee005 OCCURS 10 WITH HEADER LINE,

      itab_zycet004 LIKE /pws/zycet004 OCCURS 10 WITH HEADER LINE,

      itab_zycbt013 LIKE /pws/zycbt013 OCCURS 10 WITH HEADER LINE,

      wa_zycbt011   LIKE /pws/zycbt011,

      wa_zycet008   LIKE /pws/zycet008.

* << Fim da inclusão

TYPES: BEGIN OF ty_per_fiscal,

       mes TYPE t001b-frpe1,

       ano TYPE t001b-frye1,

      END OF ty_per_fiscal.

START-OF-SELECTION.

  SELECTION-SCREEN BEGIN OF BLOCK -1 WITH FRAME TITLE text-001.

* >> Início da exclusão:

  SELECT-OPTIONS: p_nrseq FOR /pws/zycet002-nrseq NO INTERVALS

   NO-EXTENSION.

  PARAMETERS:     p_flag(1) TYPE c.

* << Fim da exclusão

* >> Início da inclusão:

  PARAMETERS: p_nrseq TYPE /pws/zycet001-nrseq.

  PARAMETERS: p_flag(1) TYPE c.

* << Fim da inclusão

  SELECTION-SCREEN END OF BLOCK -1.

END-OF-SELECTION.

  PERFORM seleciona_dados.

  IF p_flag EQ 'X'.

    CLEAR: v_ok.

* >> Início da exclusão:

    IF /pws/zycet037-agrup_fat_rec = '1'.

      PERFORM executa_f_02.

    ENDIF.

* << Fim da exclusão

    IF /pws/zycet037-centro_dif = '0'.

      PERFORM fill_date_f30.

      PERFORM executa_f30.

    ELSE.

      MOVE itab_zycet002[] TO itab_zycet002_aux2[].

      SORT itab_zycet002_aux2 BY gsber.

      LOOP AT itab_zycet002_aux2.

        PERFORM agrupa_dados.

        PERFORM fill_date_f30.

        PERFORM executa_f30.

        PERFORM clear_data_batch.

      ENDLOOP.

    ENDIF.

  ELSE.

* >> Início da exclusão:

    CLEAR:   itab_bsad,

* << Fim da exclusão

* >> Início da inclusão:

    CLEAR: itab_bsad,

* << Fim da inclusão

              v_kunrg.

    REFRESH: itab_bsad.

    LOOP AT itab_zycet002 WHERE kunrg NE space.

      v_kunrg = itab_zycet002-kunrg.

      EXIT.

    ENDLOOP.

    SELECT bukrs kunnr augdt augbl gjahr belnr

      FROM bsad

      INTO TABLE itab_bsad

      FOR ALL ENTRIES IN itab_zycbt030

...

 

...

        AND augbl NE itab_zycbt030-belnr.

    LOOP AT itab_zycbt030.

      PERFORM estorna_cambio.

      IF v_subrc EQ 0.

        PERFORM fill_date_fbra.

        PERFORM executa_fbra.

      ENDIF.

    ENDLOOP.

  ENDIF.

FORM seleciona_dados.

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

  DATA: itab_zycet002_sc TYPE STANDARD TABLE OF /pws/zycet002,

        itab_zycet002_d  TYPE STANDARD TABLE OF /pws/zycet002.

* << Fim da inclusão

  SELECT * FROM /pws/zycbt013 INTO TABLE itab_zycbt013

        WHERE tabela = '/PWS/ZYCET001'

        AND   cpor3  = 'XBLNR'.

  SELECT SINGLE * FROM /pws/zycet001 INTO wa_zycet001

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

        WHERE nrseq IN p_nrseq.

* << Fim da exclusão

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

        WHERE nrseq = p_nrseq.

* << Fim da inclusão

  IF sy-subrc IS INITIAL.

    SELECT codigo

           kschl

           proccond

     FROM /pws/zycet156

     INTO TABLE itab_zycet156

      WHERE bukrs    EQ wa_zycet001-bukrs

        AND codmod   EQ 'X'

        AND proccond EQ 'FOB'.

    IF sy-subrc IS INITIAL.

...

 

...

    ENDIF.

  ENDIF.

  SELECT SINGLE * FROM /pws/zycbt011 INTO wa_zycbt011

         WHERE codeven = '005'

           AND codmod  = 'X'

           AND bukrs   = wa_zycet001-bukrs.

  SELECT * FROM /pws/zycbt012 INTO TABLE itab_zycbt012

         WHERE codeven = '005'

           AND codmod  = 'X'.

  SELECT * FROM /pws/zycet062 INTO TABLE itab_zycet062

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

         WHERE nrseq IN p_nrseq.

* << Fim da exclusão

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

         WHERE nrseq = p_nrseq.

  CALL FUNCTION '/PWS/ZYCE_SEPARA_ITENS_EMB'

       EXPORTING

            nrseq                 = wa_zycet001-nrseq

            inclui_par_dt         = 'X'

            inclui_es_saida       = ' '

       TABLES

            tab_saida             = itab_zycet002

            tab_complemento       = itab_zycet002_sc[]

            tab_devolucao         = itab_zycet002_d[]

       EXCEPTIONS

            itens_nao_encontrados = 1

            OTHERS                = 2.

  IF sy-subrc <> 0.

* << Fim da inclusão

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

  SELECT * FROM /pws/zycet002 INTO TABLE itab_zycet002

        WHERE nrseq IN p_nrseq.

  IF itab_zycet002[] IS INITIAL.

* << Fim da exclusão

    MESSAGE i008.

    STOP.

  ELSE.

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

    READ TABLE itab_zycet002 INDEX 1.

* << Fim da exclusão

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

    APPEND LINES OF itab_zycet002_sc[] TO itab_zycet002[].

    APPEND LINES OF itab_zycet002_d[]  TO itab_zycet002[].

* << Fim da inclusão

    SELECT SINGLE * FROM /pws/zycet037

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

                     WHERE bukrs EQ itab_zycet002-bukrs.

* << Fim da exclusão

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

                     WHERE bukrs EQ wa_zycet001-bukrs.

* << Fim da inclusão

  ENDIF.

  IF p_flag = 'X'.

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

    CLEAR nrseq.

    LOOP AT itab_zycet002.

      nrseq = nrseq + 001.

      itab_zycee085-nrseq = nrseq.

      SHIFT itab_zycee085-nrseq RIGHT DELETING TRAILING space.

      DO 9 TIMES.

        REPLACE ' ' WITH '0' INTO itab_zycee085-nrseq.

      ENDDO.

      MOVE : itab_zycet002-mandt TO itab_zycee085-mandt,

             itab_zycet002-vbeln_va TO itab_zycee085-vbeln_va,

             itab_zycet002-vbeln_vf TO itab_zycee085-vbeln_vf,

             itab_zycet002-vbeln_vl TO itab_zycee085-vbeln_vl,

             itab_zycet002-posnl    TO itab_zycee085-posnl,

             itab_zycet002-aupos    TO itab_zycee085-aupos,

             itab_zycet002-inco1    TO itab_zycee085-inco1,

             itab_zycet002-fkimg    TO itab_zycee085-fkimg,

             itab_zycet002-vrkme    TO itab_zycee085-vrkme,

             itab_zycet002-posnr TO itab_zycee085-posnr,

             itab_zycet002-vlme  TO itab_zycee085-vlme,

             itab_zycet002-ntgew TO itab_zycee085-ntgew,

             itab_zycet002-brgew TO itab_zycee085-brgew,

             itab_zycet002-shkzg TO itab_zycee085-shkzg,

             itab_zycet002-nfnum TO itab_zycee085-nfnum,

             itab_zycet002-auart TO itab_zycee085-auart,

             itab_zycet002-fkart TO itab_zycee085-fkart,

             itab_zycet002-waers TO itab_zycee085-waers,

             itab_zycet002-gewei TO itab_zycee085-gewei,

             itab_zycet002-bukrs TO itab_zycee085-bukrs,

             itab_zycet002-pstyv    TO itab_zycee085-pstyv.

      APPEND itab_zycee085.

    ENDLOOP.

    EXPORT itab_zycee085 TO MEMORY ID 'ODOC'.

* << Fim da exclusão

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

    IF /pws/zycet037-agrup_sem_rec NE '1'.

* << Fim da inclusão

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

    IF /pws/zycet037-agrup_sem_rec NE '1'.

* << Fim da exclusão

      LOOP AT itab_zycet002 WHERE status NE 'C'.

      ENDLOOP.

      IF sy-subrc = 0.

        MESSAGE i001 WITH text-002 text-009.

        v_result = 'N'.

        EXPORT v_result TO MEMORY ID '031'.

        STOP.

      ENDIF.

    ENDIF.

    SORT itab_zycet002 BY vbeln_va posnr.

    LOOP AT itab_zycet002.

      IF itab_zycet002-vbeln_vf IS INITIAL.

        CONTINUE.

      ENDIF.

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

      MOVE itab_zycet002-vbeln_vf TO

 itab_zycet002_temp-vbeln_vf.

      MOVE: itab_zycet002-fkdat   TO itab_zycet002_temp-fkdat.

* << Fim da exclusão

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

      MOVE itab_zycet002-vbeln_vf TO itab_zycet002_temp-vbeln_vf.

      MOVE itab_zycet002-fkdat    TO itab_zycet002_temp-fkdat.

* << Fim da inclusão

      APPEND itab_zycet002_temp.

    ENDLOOP.

    IF NOT itab_zycet002_temp[] IS INITIAL.

      SELECT belnr gjahr awkey budat

               FROM bkpf

               INTO TABLE itab_bkpf

               FOR ALL ENTRIES IN itab_zycet002_temp

               WHERE awtyp = 'VBRK'

                 AND awkey  = itab_zycet002_temp-vbeln_vf

                 AND awsys = ' '.

    ENDIF.

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

  ELSE.

* << Fim da inclusão

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

  ELSE.

* << Fim da exclusão

    SELECT * FROM /pws/zycbt030

    INTO TABLE itab_zycbt030_aux

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

    WHERE nrinvoic IN p_nrseq.

* << Fim da exclusão

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

      WHERE nrinvoic = p_nrseq.

* << Fim da inclusão

    IF sy-subrc NE 0 AND /pws/zycet037-agrup_fat_rec = '1'.

      SELECT * FROM /pws/zycet093

      INTO TABLE itab_zycet093

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

      WHERE nrseq IN p_nrseq.

* << Fim da exclusão

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

        WHERE nrseq = p_nrseq.

* << Fim da inclusão

      IF sy-subrc EQ 0.

        LOOP AT itab_zycet093.

          CLEAR itab_zycbt030.

          itab_zycbt030-nrinvoic = itab_zycet093-nrseq.

          itab_zycbt030-belnr    = itab_zycet093-belnr_i.

          COLLECT itab_zycbt030.

        ENDLOOP.

      ENDIF.

    ELSE.

      LOOP AT itab_zycbt030_aux.

...

 

...

         itab_zycbt033,

         itab_zycbt034,

         itab_zycbt036.

  REFRESH: itab_zycbt032,

           itab_zycbt033,

           itab_zycbt034,

           itab_zycbt036.

  IF v_mode IS INITIAL.

    v_mode = 'E'.

  ENDIF.

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

  DATA: wa_zycee085 LIKE /pws/zycee085.

* << Fim da exclusão

  IF /pws/zycet037-centro_dif = '1'.

    MOVE itab_zycet002_aux[] TO itab_zycet002[].

  ENDIF.

  itab_zycbt033-mandt  = sy-mandt.

  itab_zycbt033-tcode  = 'F-30'.

  itab_zycbt033-tabela = '/PWS/ZYCET002'.

  itab_zycbt033-cpochv = wa_zycet001-nrseq.

  IF /pws/zycet037-dtlct EQ 'N' OR

     /pws/zycet037-dtlct EQ 'E'.

    itab_zycbt033-budat = wa_zycet001-dtemb.

  ELSE.

...

 

...

  itab_zycbt033-c_valut = sy-datlo.

  itab_zycbt033-bktxt   = text-004.

  PERFORM determina_dtdocto

          USING

              wa_zycet001

          CHANGING

              itab_zycbt033-dtdocto.

  PERFORM verify_null_field USING itab_zycbt033-dtdocto

                             'ZFBDT'

                             text-018.

  READ TABLE itab_zycbt013 INDEX 1.

  IF itab_zycbt013-cpocb = 'NRSEQ'.

    itab_zycbt033-xblnr   = wa_zycet001-nrseq.

  ELSEIF itab_zycbt013-cpocb = 'NREMB'.

    itab_zycbt033-xblnr   = wa_zycet001-nremb.

  ENDIF.

  CONCATENATE wa_zycbt011-txtdesc wa_zycet001-nrseq

  INTO itab_zycbt033-augtx SEPARATED BY space.

  itab_zycbt033-d_sgtxt = itab_zycbt033-augtx.

  itab_zycbt033-c_sgtxt = itab_zycbt033-augtx.

  PERFORM get_parameters.

...

 

...

    CALL FUNCTION '/PWS/ZYGL_MONTANTE_CONVERTE'

         EXPORTING

              i_montante                   = 1

              i_demoeda                    = itab_zycet002-waers

              i_paramoeda                  = v_moeda_destino

              i_ctmoeda                    = v_categoria

              i_dtbase                     = itab_zycbt033-dtdocto

         IMPORTING

              e_txc                        = itab_zycbt033-kursf

         EXCEPTIONS

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

              i_demoeda_nao_encontrado     = 1

              i_paramoeda_nao_encontrado   = 2

              i_ctmoeda_nao_encontrado     = 3

              i_dtbase_nao_encontrada      = 4

              taxa_nao_encontrada          = 5

              fator_nao_encontrado         = 6

              i_montante_nao_encontrado    = 7

              tabela_categ_nao_configurada = 8

              OTHERS                       = 9.

* << Fim da exclusão

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

              i_demoeda_nao_encontrado     = 0

              i_paramoeda_nao_encontrado   = 0

              i_ctmoeda_nao_encontrado     = 0

              i_dtbase_nao_encontrada      = 0

              taxa_nao_encontrada          = 0

              fator_nao_encontrado         = 0

              i_montante_nao_encontrado    = 0

              tabela_categ_nao_configurada = 0

              OTHERS                       = 0.

* << Fim da inclusão

  ENDIF.

  IF /pws/zycet037-alt_cond = '1'.

    APPEND itab_zycbt033.

  ELSE.

    SELECT * FROM t052s

    INTO TABLE itab_t052s

    WHERE zterm = itab_zycet002-zterm.

    IF sy-subrc EQ 0.

      LOOP AT itab_t052s.

        itab_zycbt033-zterm = itab_t052s-ratzt.

        itab_zycbt033-mwskz = 'X'.

        APPEND itab_zycbt033.

      ENDLOOP.

    ELSE.

      itab_zycbt033-zterm = itab_zycet002-zterm.

      APPEND itab_zycbt033.

    ENDIF.

  ENDIF.

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

  CLEAR itab_saida.

  REFRESH itab_saida.

  CALL FUNCTION '/PWS/ZYCE_TRATA_ORDEM'

       EXPORTING

            nrseq         = wa_zycet001-nrseq

       TABLES

            t_saida       = itab_saida

            t_estorno     = itab_estorno

            t_devolucao   = itab_devolucao

            t_complemento = itab_complemento.

  IF NOT itab_saida[] IS INITIAL.

    SELECT vbelv posnv vbeln posnn

           FROM vbfa

           INTO TABLE it_vbfa

           FOR ALL ENTRIES IN itab_saida

           WHERE vbelv = itab_saida-vbeln_vf AND

                 posnv = itab_saida-posnr.

  ENDIF.

* << Fim da exclusão

  LOOP AT itab_zycet002 .

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

    CLEAR v_dev_tot.

    READ TABLE itab_saida WITH KEY

                               vbeln_va = itab_zycet002-vbeln_va

                               vbeln_vf = itab_zycet002-vbeln_vf

                               posnr    = itab_zycet002-posnr.

    IF sy-subrc = 0.

      MOVE itab_saida TO wa_zycee085.

    ELSE.

      READ TABLE itab_devolucao WITH KEY

                                 vbeln_va = itab_zycet002-vbeln_va

                                 vbeln_vf = itab_zycet002-vbeln_vf

                                 posnr    = itab_zycet002-posnr.

      IF sy-subrc = 0.

        MOVE itab_devolucao TO wa_zycee085.

      ELSE.

        READ TABLE itab_complemento WITH KEY

                                    vbeln_va = itab_zycet002-vbeln_va

                                    vbeln_vf = itab_zycet002-vbeln_vf

                                    posnr    = itab_zycet002-posnr.

        IF sy-subrc EQ 0.

          MOVE itab_complemento TO wa_zycee085.

        ELSE.

          CONTINUE.

        ENDIF.

      ENDIF.

    ENDIF.

    READ TABLE itab_estorno WITH KEY

                             vbeln_va = itab_zycet002-vbeln_va

                             vbeln_vf = itab_zycet002-vbeln_vf

                             posnr    = itab_zycet002-posnr.

    IF sy-subrc NE 0.

      PERFORM verifica_dev_total USING wa_zycee085.

      IF v_dev_tot IS INITIAL.

        READ TABLE itab_estorno WITH KEY

                                 vbeln_va = itab_zycet002-vbeln_va

                                 vbeln_vf = itab_zycet002-vbeln_vf

                                 posnr    = itab_zycet002-posnr.

        IF sy-subrc NE 0.

* << Fim da exclusão

          READ TABLE itab_bkpf

            WITH KEY awkey = itab_zycet002-vbeln_vf.

          IF sy-subrc EQ 0.

            itab_zycbt036-mandt   = sy-mandt.

            itab_zycbt036-tcode   = 'F-30'.

            itab_zycbt036-tabela  = '/PWS/ZYCET002'.

            itab_zycbt036-cpochv  = wa_zycet001-nrseq.

            itab_zycbt036-belnr   = itab_bkpf-belnr.

            itab_zycbt036-residuo = itab_zycet002-vlme.

            itab_zycbt036-waers   = itab_zycet002-waers.

            itab_zycbt036-dtdocto = itab_bkpf-budat.

            COLLECT itab_zycbt036.

          ENDIF.

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

        ENDIF.

      ENDIF.

    ENDIF.

* << Fim da exclusão

    CLEAR itab_zycbt036.

  ENDLOOP.

  DESCRIBE TABLE itab_zycbt036.

  IF NOT sy-tfill IS INITIAL.

    v_ok = c_x.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM verify_null_field

     USING

         p_field       TYPE any

         p_fieldname   TYPE /pws/zycbt034-campo

         p_description TYPE /pws/zycbt034-descricao.

* << Fim da inclusão

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

FORM verify_null_field USING value(p_field)

                             value(p_fieldname)

                             value(p_description).

* << Fim da exclusão

  IF p_field IS INITIAL.

    itab_zycbt034-campo     = p_fieldname.

    itab_zycbt034-descricao = p_description.

    APPEND itab_zycbt034.

  ENDIF.

ENDFORM.

FORM get_parameters.

  PERFORM verify_null_field USING wa_zycet001-bukrs

                                  'BUKRS'

                                  text-006.

...

 

...

    IMPORT v_mode FROM MEMORY ID '035'.

    CALL FUNCTION '/PWS/ZYCE_TRANSACAO_F_30C'

         EXPORTING

              v_modo          = v_mode

         TABLES

              t_dados         = itab_zycbt033

              t_campo         = itab_zycbt034

              t_zycbt032      = itab_zycbt032

              t_zycbt036      = itab_zycbt036

         EXCEPTIONS

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

              campo_em_branco = 1

              periodo_fechado = 2

              OTHERS          = 3.

    IF sy-subrc <> 0.

    ENDIF.

* << Fim da exclusão

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

              campo_em_branco = 0

              periodo_fechado = 0

              OTHERS          = 0.

* << Fim da inclusão

    FREE MEMORY ID '031'.

    READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCET002'

                                      cpochv = wa_zycet001-nrseq

                                      tpmsg  = 'S'.

    IF sy-subrc EQ 0.

      v_result = 'Y'.

    ELSE.

      LOOP AT itab_zycbt032.

        MESSAGE i001 WITH itab_zycbt032-msg.

      ENDLOOP.

...

 

...

      WITH KEY belnr = itab_zycbt030-belnr.

  ELSE.

    READ TABLE itab_zycet093 WITH KEY belnr_i = itab_zycbt030-belnr.

    IF sy-subrc = 0.

      itab_zycbt033-budat = itab_zycet093-dtfat.

    ENDIF.

  ENDIF.

  APPEND itab_zycbt033.

ENDFORM.

FORM fill_date_fb08.

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

  DATA: wa_per_fiscal TYPE ty_per_fiscal,

* << Fim da exclusão

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

  DATA:

* << Fim da inclusão

        v_retorno(2)  TYPE c,

        v_gjahr       TYPE t001b-frye1.

  CLEAR: itab_zycbt033, itab_zycbt032.

  REFRESH: itab_zycbt033, itab_zycbt032.

  CLEAR: itab_zycee005.

  REFRESH: itab_zycee005.

  itab_zycbt033-mandt  = sy-mandt.

  itab_zycbt033-tcode  = 'FB08'.

  itab_zycbt033-cpochv = wa_zycet001-nrseq.

  itab_zycbt033-belnr  = itab_zycbt030-belnr.

...

 

...

  ENDIF.

  CALL FUNCTION '/PWS/ZYCE_CHECA_PERIODO_FISCAL'

       EXPORTING

            v_bukrs                = itab_zycee005-bukrs

            v_date                 = itab_zycee005-budat

            v_koart                = '+'

       IMPORTING

            v_year                 = v_gjahr

            v_stgrd                = v_retorno

       EXCEPTIONS

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

            variante_de_exercicio  = 1

            data_nao_encontrada    = 2

            empresa_nao_encontrada = 3

            period_in_not_valid    = 4

            period_not_assigned    = 5

            version_undefined      = 6

            OTHERS                 = 7.

* << Fim da exclusão

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

            variante_de_exercicio  = 0

            data_nao_encontrada    = 0

            empresa_nao_encontrada = 0

            period_in_not_valid    = 0

            period_not_assigned    = 0

            version_undefined      = 0

            OTHERS                 = 0.

* << Fim da inclusão

  itab_zycee005-gjahs = v_gjahr.

  IF v_retorno = '01'.

    itab_zycee005-stgrd = '01'.

  ELSE.

    itab_zycee005-stgrd = '02'.

    itab_zycee005-budat = sy-datlo.

  ENDIF.

  APPEND itab_zycee005.

ENDFORM.

FORM executa_fbra.

  IMPORT v_mode FROM MEMORY ID '035'.

  FREE MEMORY ID '035'.

  CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FBRA'

       EXPORTING

            v_modo          = v_mode

       TABLES

            t_dados         = itab_zycbt033

            t_zycbt032      = itab_zycbt032

       EXCEPTIONS

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

            campo_em_branco = 1

            OTHERS          = 2.

* << Fim da exclusão

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

            campo_em_branco = 0

            OTHERS          = 0.

* << Fim da inclusão

  READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCBT030'

                                   cpochv = wa_zycet001-nrseq

                                   tpmsg  = 'S'.

  IF sy-subrc EQ 0.

    PERFORM fill_date_fb08.

    PERFORM executa_fb08.

  ELSE.

    LOOP AT itab_zycbt032.

      MESSAGE i001 WITH itab_zycbt032-msg.

    ENDLOOP.

...

 

...

ENDFORM.

FORM executa_fb08.

  CALL FUNCTION '/PWS/ZYCE_TRANSACAO_FB08'

       EXPORTING

            v_modo          = v_mode

       TABLES

            t_dados         = itab_zycee005

            t_campo         = itab_zycet004

            t_zycet005      = itab_zycet005

       EXCEPTIONS

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

            campo_em_branco = 1

            OTHERS          = 2.

* << Fim da exclusão

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

            campo_em_branco = 0

            OTHERS          = 0.

* << Fim da inclusão

  FREE MEMORY ID '031'.

  READ TABLE itab_zycet005 WITH KEY tabela = '/PWS/ZYCBT030'

                                    cpochv = wa_zycet001-nrseq

                                    tpmsg  = 'S'.

  IF sy-subrc EQ 0.

    v_result = 'Y'.

  ELSE.

    LOOP AT itab_zycbt032.

      MESSAGE i001 WITH itab_zycbt032-msg.

    ENDLOOP.

...

 

...

FORM clear_data_batch.

  CLEAR: itab_zycbt032,

         itab_zycbt033,

         itab_zycbt034,

         itab_zycbt036.

  REFRESH: itab_zycbt032,

           itab_zycbt033,

           itab_zycbt034,

           itab_zycbt036.

ENDFORM.

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

FORM executa_f_02.

* << Fim da exclusão

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

FORM estorna_cambio.

* << Fim da inclusão

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

  DATA: v_modo LIKE /pws/zycbt039-modo.

* << Fim da exclusão

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

  READ TABLE itab_bsad WITH KEY belnr = itab_zycbt030-belnr.

* << Fim da inclusão

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

  DATA: BEGIN OF it_dados OCCURS 0,

          belnr LIKE /pws/zycee005-belnr,

          bukrs LIKE /pws/zycee005-bukrs,

          gjahr LIKE /pws/zycee005-gjahr,

          zterm LIKE /pws/zycee005-zterm,

          dtemb LIKE /pws/zycee001-dtemb,

        END OF it_dados,

        v_resultado(1) TYPE c.

* << Fim da exclusão

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

  IF sy-subrc EQ 0.

* << Fim da inclusão

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

  LOOP AT itab_bkpf.

    MOVE: itab_bkpf-belnr      TO it_dados-belnr,

          itab_zycet002-bukrs  TO it_dados-bukrs,

          itab_bkpf-gjahr      TO it_dados-gjahr,

          itab_zycet002-zterm  TO it_dados-zterm,

          wa_zycet001-dtemb    TO it_dados-dtemb.

* << Fim da exclusão

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

    PERFORM anula_desmembramento.

* << Fim da inclusão

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

    APPEND it_dados.

* << Fim da exclusão

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

    IF v_subrc EQ 0.

      PERFORM clearing.

* << Fim da inclusão

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

  ENDLOOP.

  IMPORT v_mode FROM MEMORY ID '035'.

  v_modo = v_mode.

  EXPORT: it_dados TO MEMORY ID 'FB02',

          v_modo   TO MEMORY ID '035'.

  AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD '/PWS/ZYCER217'.

  IF sy-subrc EQ 0.

    SUBMIT /pws/zycer217 AND RETURN.

    IMPORT v_result FROM MEMORY ID '031'.

    IF v_result = 'Y'.

      MESSAGE s001 WITH text-012 text-013.

    ELSE.

      MESSAGE e001 WITH text-014 text-015.

* << Fim da exclusão

    ENDIF.

  ELSE.

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

    MESSAGE e261(sf) WITH '/PWS/ZYCER217'.

  ENDIF.

* << Fim da exclusão

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

    v_subrc = 0.

* << Fim da inclusão

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

  FREE MEMORY ID: '031',

                  'FB02'.

  EXPORT v_mode TO MEMORY ID '035'.

ENDFORM.

FORM verifica_dev_total USING wa_zycee085 LIKE /pws/zycee085.

  LOOP AT it_vbfa WHERE vbelv = wa_zycee085-vbeln_vf AND

                        posnv = wa_zycee085-posnr.

    READ TABLE itab_devolucao WITH KEY vbeln_vf = it_vbfa-vbeln

                                       posnr    = it_vbfa-posnn.

    IF sy-subrc EQ 0.

      IF itab_devolucao-shkzg EQ 'X'.

        IF itab_zycee085-vlme EQ 0.

          DELETE itab_devolucao WHERE vbeln_vf = it_vbfa-vbeln

                                  AND posnr    = it_vbfa-posnn.

          v_dev_tot = 'X'.

          EXIT.

* << Fim da exclusão

        ENDIF.

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

      ENDIF.

* << Fim da exclusão

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

ENDFORM.

* << Fim da inclusão

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

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM estorna_cambio.

  READ TABLE itab_bsad WITH KEY belnr = itab_zycbt030-belnr.

  IF sy-subrc EQ 0.

    PERFORM anula_desmembramento.

    IF v_subrc EQ 0.

      PERFORM clearing.

    ENDIF.

  ELSE.

    v_subrc = 0.

  ENDIF.

ENDFORM.

* << Fim da exclusão

FORM anula_desmembramento.

  CLEAR: itab_zycbt033, itab_zycbt032.

  REFRESH: itab_zycbt033, itab_zycbt032.

  itab_zycbt033-mandt  = sy-mandt.

  itab_zycbt033-tcode  = 'FBRA'.

  itab_zycbt033-tabela = '/PWS/ZYCBT030'.

  itab_zycbt033-cpochv = wa_zycet001-nrseq.

  itab_zycbt033-belnr  = itab_bsad-augbl.

  itab_zycbt033-bukrs  = wa_zycet001-bukrs.

  itab_zycbt033-budat  = itab_bsad-augdt.

  itab_zycbt033-bldat  = itab_bsad-augdt.

  APPEND itab_zycbt033.

  IMPORT v_mode FROM MEMORY ID '035'.

  CALL FUNCTION '/PWS/ZYCB_TRANSACAO_FBRA'

       EXPORTING

            v_modo          = v_mode

       TABLES

            t_dados         = itab_zycbt033

            t_zycbt032      = itab_zycbt032

       EXCEPTIONS

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

            campo_em_branco = 1

            OTHERS          = 2.

* << Fim da exclusão

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

            campo_em_branco = 0

            OTHERS          = 0.

* << Fim da inclusão

  READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCBT030'

                                   cpochv = wa_zycet001-nrseq

                                   tpmsg  = 'S'.

  IF sy-subrc NE 0.

    LOOP AT itab_zycbt032 WHERE tcode  = 'F-30'

                            AND tabela = 'ZYCBT006'

                            AND cpochv = v_cpochv.

      MESSAGE i001 WITH itab_zycbt032-msg.

    ENDLOOP.

    sy-subrc = 4.

...

 

...

  itab_zycbt033-zfbdt   = wa_zycet001-dtvencto.

  itab_zycbt033-d_valut = sy-datlo.

  itab_zycbt033-c_valut = sy-datlo.

  itab_zycbt033-bktxt   = text-004.

  PERFORM get_parameters.

  PERFORM determina_dtdocto

          USING

              wa_zycet001

          CHANGING

              itab_zycbt033-dtdocto.

  READ TABLE itab_zycbt013 INDEX 1.

  IF itab_zycbt013-cpocb = 'NRSEQ'.

    itab_zycbt033-xblnr   = wa_zycet001-nrseq.

  ELSEIF itab_zycbt013-cpocb = 'NREMB'.

    itab_zycbt033-xblnr   = wa_zycet001-nremb.

  ENDIF.

  CONCATENATE wa_zycbt011-txtdesc wa_zycet001-nremb

  INTO itab_zycbt033-augtx SEPARATED BY space.

  itab_zycbt033-d_sgtxt = itab_zycbt033-augtx.

  itab_zycbt033-c_sgtxt = itab_zycbt033-augtx.

  itab_zycbt033-agkon   = itab_bsad-kunnr.

...

 

...

  CALL FUNCTION '/PWS/ZYCE_TRANSACAO_F_30C'

       EXPORTING

            v_modo          = v_mode

            v_clearing      = 'X'

       TABLES

            t_dados         = itab_zycbt033

            t_campo         = itab_zycbt034

            t_zycbt032      = itab_zycbt032

            t_zycbt036      = itab_zycbt036

       EXCEPTIONS

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

            campo_em_branco = 1

            periodo_fechado = 2

            OTHERS          = 3.

* << Fim da exclusão

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

            campo_em_branco = 0

            periodo_fechado = 0

            OTHERS          = 0.

* << Fim da inclusão

  READ TABLE itab_zycbt032 WITH KEY tabela = '/PWS/ZYCET002'

                                    cpochv = wa_zycet001-nrseq

                                    tpmsg  = 'S'.

  IF sy-subrc EQ 0.

    v_subrc = 0.

  ELSE.

    LOOP AT itab_zycbt032.

      MESSAGE i001 WITH itab_zycbt032-msg.

    ENDLOOP.

    v_subrc = 4.

...

 

 

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

Modificações efetuadas em REPT /PWS/ZYCER089

 

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

Excluído símbolo de texto:

 

Símbolo: 012

Símbolo: 013

Símbolo: 014

Símbolo: 015

 

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

Modificações efetuadas em REPT /PWS/ZYCER306

 

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

Excluído símbolo de texto:

 

Símbolo: 003

Símbolo: 010

Símbolo: 011

Símbolo: 012

Símbolo: 013

Símbolo: 014

Símbolo: 015

 

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

Incluído texto de seleção:

 

Idioma: PT

 

Variável (SELECT-OPTION / PARAMETER): P_FLAG

 

Texto: (32 caracteres)

"'X'=Agrupar,' '=Estornar"

 

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

Incluído texto de seleção:

 

Idioma: PT

 

Variável (SELECT-OPTION / PARAMETER): P_NRSEQ

 

Referência ao Dictionary: SIM