CE PLUS - Nota 011569

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 16/08/2012 15:43:05

Data/Hora Última Alteração: 16/08/2012 15:43:05

Descrição da Nota: CRIAÇÃO DE TRILHA DE AUDITORIA: EMBARQUE

Sintoma

Criação de trilha de auditoria: Embarque

 

 

Solução

Novo tratamento para inclusão de trilha de auditoria, que registrará cada alteração no banco de

dados: inserção, modificação,deleção.

 

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

TRILHA DE AUDITORIA

Informações Complementares

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

Nota Número 11569 Data: 21/10/2011 Hora: 15:17:11

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

 

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

Nota Número              : 11569

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 8.0

Pacote                   : 00009

Agrupamento              : 00090

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

Referência às notas relacionadas:

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

 

11506  - 00001 - 8.0    - 00009  - TRILHA DE AUDITORIA

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

CRIAÇÃO DE TRILHA DE AUDITORIA: EMBARQUE

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

Palavras Chave:

ALTERAÇÃO - TRILHA DE AUDITORIA - CONTROLE - LOG

 

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

Objetos da nota:

FUGR /PWS/CI_BAPI_GF001

MESS /PWS/ZYCIM138

REPS /PWS/MZYCI001F01

REPS /PWS/MZYCI001F02

REPS /PWS/MZYCI001F03

REPS /PWS/MZYCI001I01

REPS /PWS/MZYCI001X01

 

 

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

Modificações efetuadas em FUGR /PWS/CI_BAPI_GF001

 

*Criar a BAPI /PWS/CIBAPI_EMBARQUE_UPDATE

 

MODIFICAR MÓDULO DE FUNÇÃO: /PWS/CIBAPI_EMBARQUE_UPDATE

CARACTERÍSTICAS

 

CLASSIFICAÇÃO:

GRUPO DE FUNÇÕES: /PWS/CI_BAPI_GF001

TEXTO BREVE: Grava Embarque

 

TIPO DE EXECUÇÃO:

(X) - MÓDULO DE FUNÇÃO NORMAL

     (X) - INÍCIO IMEDIATO

 

 

IMPORTAÇÃO:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  VL. PROPOSTO OPCIONAL TRANSF.

ZYCIT001 TYPE /PWS/ZYCIT001                      

OKCODE       TYPE SY-UCOMM                      X

ZYCIT133 TYPE /PWS/ZYCIT133                X

ZYCIT134 TYPE /PWS/ZYCIT134                X

ZYCIT133A TYPE /PWS/ZYCIT133                X

 

 

EXPORTAÇÃO:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA   TRANSF.

 

ZYCIT001E TYPE /PWS/ZYCIT001

ZYCIT133E TYPE /PWS/ZYCIT133

ZYCIT134E TYPE /PWS/ZYCIT134

ZYCIT133AE TYPE /PWS/ZYCIT133

V_SAIR

 

MODIFIC.:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  VL. PROPOSTO OPCIONAL TRANSF. TEXT

 

TABELAS:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  OPCIONAL TEXTO BREVE

 

T_ZYCIT003 LIKE /PWS/ZYCIT003

T_RETURN LIKE BAPIRET2

T_ZYCIT125 LIKE /PWS/ZYCIT125

T_ZYCIT503 LIKE /PWS/ZYCIT503    X

T_ZYCIT374 LIKE /PWS/ZYCIT374    X

T_ZYCIT396 LIKE /PWS/ZYCIT396    X

T_ZYCIT463 LIKE /PWS/ZYCIT463     X

T_ZYCIT467 LIKE /PWS/ZYCIT467     X

T_ZYCIT354 LIKE /PWS/ZYCIT354     X

 

Sem Exceções

 

 

*CÓDIGO FONTE

 

FUNCTION /pws/cibapi_embarque_update.

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

*"*"Interface local:

*"  IMPORTING

*"     REFERENCE(ZYCIT001) TYPE  /PWS/ZYCIT001

*"     REFERENCE(OKCODE) TYPE  SY-UCOMM OPTIONAL

*"     REFERENCE(ZYCIT133) TYPE  /PWS/ZYCIT133 OPTIONAL

*"     REFERENCE(ZYCIT134) TYPE  /PWS/ZYCIT134 OPTIONAL

*"     REFERENCE(ZYCIT133A) TYPE  /PWS/ZYCIT133 OPTIONAL

*"  EXPORTING

*"     REFERENCE(ZYCIT001E) TYPE  /PWS/ZYCIT001

*"     REFERENCE(ZYCIT133E) TYPE  /PWS/ZYCIT133

*"     REFERENCE(ZYCIT134E) TYPE  /PWS/ZYCIT134

*"     REFERENCE(ZYCIT133AE) TYPE  /PWS/ZYCIT133

*"     REFERENCE(V_SAIR)

*"  TABLES

*"      T_ZYCIT003 STRUCTURE  /PWS/ZYCIT003

*"      T_RETURN STRUCTURE  BAPIRET2

*"      T_ZYCIT125 STRUCTURE  /PWS/ZYCIT125

*"      T_ZYCIT503 STRUCTURE  /PWS/ZYCIT503 OPTIONAL

*"      T_ZYCIT374 STRUCTURE  /PWS/ZYCIT374 OPTIONAL

*"      T_ZYCIT396 STRUCTURE  /PWS/ZYCIT396 OPTIONAL

*"      T_ZYCIT463 STRUCTURE  /PWS/ZYCIT463 OPTIONAL

*"      T_ZYCIT467 STRUCTURE  /PWS/ZYCIT467 OPTIONAL

*"      T_ZYCIT354 STRUCTURE  /PWS/ZYCIT354 OPTIONAL

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

  DATA: it_zycit003     TYPE TABLE OF /pws/zycit003 WITH HEADER LINE,

        it_zycit003_ini TYPE TABLE OF /pws/zycit003 WITH HEADER LINE,

        it_zycit003_del TYPE TABLE OF /pws/zycit003 WITH HEADER LINE,

        it_zycit503     TYPE TABLE OF /pws/zycit503 WITH HEADER LINE,

        it_zycit503_ini TYPE TABLE OF /pws/zycit503 WITH HEADER LINE,

        it_zycit503_del TYPE TABLE OF /pws/zycit503 WITH HEADER LINE,

        it_zycit125     TYPE TABLE OF /pws/zycit125 WITH HEADER LINE,

        it_zycit125_ini TYPE TABLE OF /pws/zycit125 WITH HEADER LINE,

        it_zycit125_del TYPE TABLE OF /pws/zycit125 WITH HEADER LINE,

        it_zycit354     TYPE TABLE OF /pws/zycit354 WITH HEADER LINE,

        it_zycit354_ini TYPE TABLE OF /pws/zycit354 WITH HEADER LINE,

        it_zycit354_del TYPE TABLE OF /pws/zycit354 WITH HEADER LINE,

        it_zycit374     TYPE TABLE OF /pws/zycit374 WITH HEADER LINE,

        it_zycit374_ini TYPE TABLE OF /pws/zycit374 WITH HEADER LINE,

        it_zycit374_del TYPE TABLE OF /pws/zycit374 WITH HEADER LINE,

        it_zycit396     TYPE TABLE OF /pws/zycit396 WITH HEADER LINE,

        it_zycit396_ini TYPE TABLE OF /pws/zycit396 WITH HEADER LINE,

        it_zycit396_del TYPE TABLE OF /pws/zycit396 WITH HEADER LINE

     .

 

  DATA: w_zycit001  TYPE /pws/zycit001,

        w_zycit001_ini TYPE /pws/zycit001,

        w_zycit133  TYPE /pws/zycit133,

        w_zycit133_ini  TYPE /pws/zycit133,

        w_zycit133a  TYPE /pws/zycit133,

        w_zycit133a_ini  TYPE /pws/zycit133,

        w_zycit134  TYPE /pws/zycit134,

        w_zycit134_ini  TYPE /pws/zycit134,

        w_zycit000  TYPE /pws/zycit000,

        w_t001      TYPE t001,

        w_zycbt007  TYPE /pws/zycbt007,

        v_changed.

 

  REFRESH t_return.

 

  w_zycit001 = zycit001.

  w_zycit133 = zycit133.

  w_zycit133a = zycit133a.

  w_zycit134 = zycit134.

 

* Não trabalha com a tabela passada, somente com a tabela interna da

*funcão, após, devolve o conteúdo para a tabela original

 

  it_zycit003[] = t_zycit003[].

  it_zycit125[] = t_zycit125[].

  it_zycit503[] = t_zycit503[].

  it_zycit374[] = t_zycit374[].

  it_zycit396[] = t_zycit396[].

  it_zycit354[] = t_zycit354[].

 

  IF okcode NE 'SAVE' AND w_zycit001-nrseq IS INITIAL.

    EXIT.

  ENDIF.

 

  PERFORM check_aut_emp TABLES t_return

                         USING w_zycit001-bukrs

                               '01'.

 

  CHECK t_return[] IS INITIAL.

 

 

  PERFORM sel_parametros USING w_zycit001-bukrs

                      CHANGING w_zycit000

                               w_zycbt007

                               w_t001.

 

  IF NOT w_zycit001-nrseq IS INITIAL.

    PERFORM sel_ini TABLES it_zycit003_ini

                           it_zycit125_ini

                           it_zycit503_ini

                           it_zycit374_ini

                           it_zycit396_ini

                           it_zycit354_ini

                    USING w_zycit001-nrseq

                    CHANGING w_zycit001_ini

                             w_zycit133_ini

                             w_zycit133a_ini

                             w_zycit134_ini.

 

  ENDIF.

 

  PERFORM check_data_save TABLES t_return

                                 it_zycit003

                                 it_zycit125

                                 it_zycit503

                           USING w_zycit001.

 

  CHECK t_return[] IS INITIAL.

 

  IF w_zycit001-nrseq IS INITIAL.

    PERFORM find_nrseq   TABLES t_return

                       CHANGING w_zycit001.

 

    CHECK t_return[] IS INITIAL.

 

    PERFORM insert TABLES t_return

                        it_zycit003

                        it_zycit125

                        it_zycit503

                        it_zycit374

                        it_zycit396

                        it_zycit354

               CHANGING w_zycit001

                        w_zycit133

                        w_zycit133a

                        w_zycit134.

 

  ELSE.

    PERFORM check_alteracoes TABLES

                             t_return

                             it_zycit003

                             it_zycit003_ini

                             it_zycit003_del

                             it_zycit125

                             it_zycit125_ini

                             it_zycit125_del

                             it_zycit503

                             it_zycit503_ini

                             it_zycit503_del

                             it_zycit374

                             it_zycit374_ini

                             it_zycit374_del

                             it_zycit396

                             it_zycit396_ini

                             it_zycit396_del

                             it_zycit354

                             it_zycit354_ini

                             it_zycit354_del

                             USING w_zycit001

                                   w_zycit001_ini

                                   w_zycit133

                                   w_zycit133_ini

                                   w_zycit133a

                                   w_zycit133a_ini

                                   w_zycit134

                                   w_zycit134_ini

                                   okcode

                             CHANGING

                              v_changed

                              v_sair.

 

 

 

    CHECK t_return[] IS INITIAL.

    IF v_changed = 'X'.

 

      PERFORM save TABLES t_return

                          it_zycit003

                          it_zycit003_del

                          it_zycit003_ini

                          it_zycit125

                          it_zycit125_del

                          it_zycit503

                          it_zycit503_del

                          it_zycit374

                          it_zycit374_del

                          it_zycit396

                          it_zycit396_del

                          it_zycit354

                          it_zycit354_del

                  using    w_zycit000

                 CHANGING w_zycit001

                          w_zycit133

                          w_zycit133a

                          w_zycit134.

    ENDIF.

 

  ENDIF.

 

  zycit001e    = w_zycit001.

  zycit133e    = w_zycit133.

  zycit133ae    = w_zycit133a.

  zycit134e    = w_zycit134.

  t_zycit003[] = it_zycit003[].

  t_zycit125[] = it_zycit125[].

  t_zycit503[] = it_zycit503[].

  t_zycit374[] = it_zycit374[].

  t_zycit396[] = it_zycit396[].

  t_zycit354[] = it_zycit354[].

 

  if v_sair is initial and v_changed = 'X'.

    PERFORM fill_message TABLES t_return

                          USING c_messag

                                'S'

                                '017'

                                zycit001e-nrseq

                                space

                                space

                                space.

  endif.

ENDFUNCTION.

 

 

 

*INCLUDE /PWS/LCI_BAPI_GF001F01

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F01 .

*----------------------------------------------------------------------*

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

*&      Form  check_aut_emp

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

*       Verifica Autorização para a Empresa utilizada

*----------------------------------------------------------------------*

FORM check_aut_emp TABLES   t_return

                   USING    p_bukrs

                            p_ACTVT.

  AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' "field

                                      DUMMY

                                      ID 'ACTVT' FIELD p_ACTVT.

  IF sy-subrc NE 0.

    AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

                                        p_bukrs

                                        ID 'ACTVT' FIELD p_ACTVT.

    IF sy-subrc NE 0.

      PERFORM fill_message TABLES t_return

                            USING c_messag

                                  'E'

                                  '083'

                                  p_bukrs

                                  space

                                  space

                                  space.

    ENDIF.

  ELSE.

    AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

                                        p_bukrs

                                        ID 'ACTVT' FIELD p_ACTVT.

    IF sy-subrc NE 0.

      PERFORM fill_message TABLES t_return

                            USING c_messag

                                  'E'

                                  '083'

                                  p_bukrs

                                  space

                                  space

                                  space.

    ENDIF.

  ENDIF.

 

ENDFORM.                    " check_aut_emp

 

*INCLUDE /PWS/LCI_BAPI_GF001F02

 

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F02 .

*----------------------------------------------------------------------*

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

*&      Form  fill_message

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

FORM fill_message TABLES t_return STRUCTURE bapiret2

                   USING p_msgid

                         p_msgty

                         p_msgno

                         p_msgv1

                         p_msgv2

                         p_msgv3

                         p_msgv4.

 

  DATA: w_return TYPE bapiret2.

 

  DATA:  v_msgid  TYPE sy-msgid,

         v_msgty  TYPE sy-msgty,

         v_msgno  TYPE sy-msgno,

         v_msgv1  TYPE sy-msgv1,

         v_msgv2  TYPE sy-msgv2,

         v_msgv3  TYPE sy-msgv3,

         v_msgv4  TYPE sy-msgv4.

 

  MOVE:  p_msgid TO v_msgid,

         p_msgty TO v_msgty,

         p_msgno TO v_msgno,

         p_msgv1 TO v_msgv1,

         p_msgv2 TO v_msgv2,

         p_msgv3 TO v_msgv3,

         p_msgv4 TO v_msgv4.

 

  CALL FUNCTION 'BALW_BAPIRETURN_GET2'

       EXPORTING

            type   = v_msgty

            cl     = v_msgid

            number = v_msgno

            par1   = v_msgv1

            par2   = v_msgv2

            par3   = v_msgv3

            par4   = v_msgv4

       IMPORTING

            return = w_return.

  COLLECT w_return INTO t_return.

 

ENDFORM.                    " fill_message

 

*INCLUDE /PWS/LCI_BAPI_GF001F03

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F03 .

*----------------------------------------------------------------------*

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

*&      Form  sel_parametros

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

FORM sel_parametros USING    p_bukrs

                    CHANGING p_zycit000

                             p_zycbt007

                             p_t001   TYPE t001.

 

  SELECT SINGLE * FROM /pws/zycbt007 INTO p_zycbt007

      WHERE bukrs EQ p_bukrs.

 

  SELECT SINGLE * FROM t001 INTO p_t001

      WHERE bukrs EQ p_bukrs.

 

  SELECT SINGLE * FROM /pws/zycit000 INTO p_zycit000

      WHERE land1 EQ p_t001-land1.

 

ENDFORM.                    " sel_parametros

 

 

*INCLUDE /PWS/LCI_BAPI_GF001F04

 

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F04 .

*----------------------------------------------------------------------*

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

*&      Form  find_nrseq

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

*       text

*----------------------------------------------------------------------*

*      -->P_T_RETURN  text

*      -->P_T_ZYCIT027  text

*      -->P_T_ZYCIT026  text

*      -->P_W_ZYCIT026  text

*      -->P_W_ZYCIT001  text

*      <--P_ZYCIT026E  text

*----------------------------------------------------------------------*

FORM find_nrseq TABLES   t_return STRUCTURE bapiret2

                CHANGING

                         p_zycit001 TYPE /pws/zycit001.

 

  DATA: it_zyglt006     TYPE TABLE OF /pws/zyglt006 WITH HEADER LINE.

 

* Nova Metodologia de busca do Nrseq por Empresa e filial

  IF NOT p_zycit001-bukrs IS INITIAL.

    SELECT * FROM /pws/zyglt006 into table it_zyglt006

       WHERE codmod EQ 'D'.

    IF sy-subrc EQ 0.

      READ TABLE it_zyglt006 WITH KEY bukrs = p_zycit001-bukrs

                              j_1bbranch = p_zycit001-j_1bbranch.

      IF sy-subrc EQ 0.

        PERFORM find_nrseq_emp USING it_zyglt006-range

                          CHANGING p_zycit001-nrseq.

 

      ELSE.

        LOOP AT it_zyglt006 WHERE bukrs EQ p_zycit001-bukrs

                              AND j_1bbranch NE p_zycit001-j_1bbranch

                              AND j_1bbranch NE space.

          PERFORM fill_message TABLES t_return

                                USING c_messag

                                      'E'

                                      '061'

                                      text-005

                                      space

                                      space

                                      space.

*          v_nrseqerro = 'X'.

          EXIT.

        ENDLOOP.

        READ TABLE it_zyglt006 WITH KEY bukrs = p_zycit001-bukrs

                                      j_1bbranch = space.

        IF sy-subrc EQ 0.

          PERFORM find_nrseq_emp USING it_zyglt006-range

                                 CHANGING p_zycit001-nrseq.

        ELSE.

          PERFORM fill_message TABLES t_return

                                USING c_messag

                                      'E'

                                      '061'

                                      text-006

                                      space

                                      space

                                      space.

*          v_nrseqerro = 'X'.

          EXIT.

        ENDIF.

      ENDIF.

    ELSE.

      PERFORM find_nrseqc CHANGING p_zycit001-nrseq.

    ENDIF.

  ENDIF.

 

 

ENDFORM.                    " find_nrseq

 

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

*&      Form  find_nrseq_emp

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

FORM find_nrseq_emp USING    p_range

                    CHANGING v_nrseq_emp.

  DATA: v_ano_emp LIKE /pws/zycie001-nrseq,

        v_count(6)  TYPE n,

        v_tam       TYPE i,

        v_tam_2     TYPE i.

  CONCATENATE p_range '%' 'I' sy-datlo+2(2) INTO v_ano_emp.

 

 

  SELECT MAX( nrseq ) INTO (v_nrseq_emp)

      FROM /pws/zycit001

      WHERE nrseq LIKE v_ano_emp.

 

  v_tam = strlen( p_range ).

  v_tam_2 = ( 7 - v_tam ).

  v_count(v_tam_2) = v_nrseq_emp+v_tam(v_tam_2) + 1.

 

  CONCATENATE p_range v_count(v_tam_2) 'I' sy-datlo+2(2)

              INTO v_nrseq_emp.

 

 

ENDFORM.                    " find_nrseq_emp

 

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

*&      Form  FIND_NRSEQC

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

*       Gerando novo número sequencial.

*----------------------------------------------------------------------*

FORM find_nrseqc CHANGING p_zycit001-nrseq.

  DATA:

    v_nrseqc   LIKE /pws/zycit001-nrseq,       " Último sequencial usado

    v_count(7) TYPE n,                    " Contador p/ próximo seq.

    v_ano(4).

 

  CONCATENATE '%' 'I' sy-datlo+2(2) INTO v_ano.

 

  SELECT MAX( nrseq ) INTO (v_nrseqc) FROM /pws/zycit001

                                       WHERE nrseq LIKE v_ano.

  v_count = v_nrseqc+0(7) + 1.

 

  CONCATENATE v_count+0(7) 'I' sy-datlo+2(2) INTO p_zycit001-nrseq.

 

ENDFORM.                    " FIND_NRSEQC

 

 

*INCLUDE /PWS/LCI_BAPI_GF001F05

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F05 .

*----------------------------------------------------------------------*

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

*&      Form  check_data_save

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

*       text

*----------------------------------------------------------------------*

*      -->P_T_RETURN  text

*      -->P_P_ZYCIT026  text

*----------------------------------------------------------------------*

FORM check_data_save TABLES   t_return

                              it_zycit003 structure /pws/zycit003

                              it_zycit125 structure /pws/zycit125

                              it_zycit503 structure /pws/zycit503

                     USING    p_zycit001 TYPE /pws/zycit001.

 

*    PERFORM fill_message TABLES t_return

*                          USING c_messag

*                                'E'

*                                '015'

*                                text-021

*                                text-026

*                                space

*                                space.

*    EXIT.

 

ENDFORM.                    " check_data_save

 

*INCLUDE /PWS/LCI_BAPI_GF001F06

 

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F06 .

*----------------------------------------------------------------------*

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

*&      Form  save

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

FORM save TABLES   t_return STRUCTURE bapiret2

                   t_zycit003 STRUCTURE /pws/zycit003

                   t_zycit003_del STRUCTURE /pws/zycit003

                   t_zycit003_ini STRUCTURE /pws/zycit003

                   t_zycit125 STRUCTURE /pws/zycit125

                   t_zycit125_del STRUCTURE /pws/zycit125

                   t_zycit503 STRUCTURE /pws/zycit503

                   t_zycit503_del STRUCTURE /pws/zycit503

                   t_zycit374 STRUCTURE /pws/zycit374

                   t_zycit374_del STRUCTURE /pws/zycit374

                   t_zycit396 STRUCTURE /pws/zycit396

                   t_zycit396_del STRUCTURE /pws/zycit396

                   t_zycit354 STRUCTURE /pws/zycit354

                   t_zycit354_del STRUCTURE /pws/zycit354

          USING    w_zycit000 STRUCTURE /pws/zycit000

          CHANGING p_zycit001 TYPE /pws/zycit001

                   p_zycit133 TYPE /pws/zycit133

                   p_zycit133a TYPE /pws/zycit133

                   p_zycit134 TYPE /pws/zycit134.

 

 

  p_zycit001-dtusera   = sy-datlo.

  p_zycit001-usernamea = sy-uname.

 

  MODIFY /pws/zycit001 FROM p_zycit001.

 

  MOVE p_zycit001 TO /pws/zycit001.

  PERFORM carrega_log USING '/PWS/ZYCIT001' 'U'

   '' '/PWS/SAPMZYCI001'  p_zycit001-nrseq.

 

  IF NOT p_zycit133 IS INITIAL.

    MODIFY /pws/zycit133 FROM p_zycit133.

 

    MOVE p_zycit133 TO /pws/zycit133.

    PERFORM carrega_log USING '/PWS/ZYCIT133' 'U'

    '' '/PWS/SAPMZYCI001'  p_zycit001-nrseq.

  ENDIF.

 

  IF NOT p_zycit133a IS INITIAL.

    MODIFY /pws/zycit133 FROM p_zycit133a.

 

    MOVE p_zycit133a TO /pws/zycit133.

    PERFORM carrega_log USING '/PWS/ZYCIT133' 'U'

     '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

  ENDIF.

 

  IF NOT p_zycit134 IS INITIAL.

    MODIFY /pws/zycit134 FROM p_zycit134.

 

    MOVE p_zycit134 TO /pws/zycit134.

    PERFORM carrega_log USING '/PWS/ZYCIT134' 'U'

     '' '/PWS/SAPMZYCI001'  p_zycit001-nrseq.

  ENDIF.

 

  IF NOT t_zycit003_del[] IS INITIAL.

    LOOP AT t_zycit003_del.

      CLEAR /pws/zycit003.

      MOVE t_zycit003_del TO /pws/zycit003.

      PERFORM carrega_log USING '/PWS/ZYCIT003' 'D'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

    DELETE /pws/zycit003 FROM TABLE t_zycit003_del.

  ENDIF.

 

  IF NOT t_zycit003[] IS INITIAL.

    MODIFY /pws/zycit003 FROM TABLE t_zycit003.

    LOOP AT t_zycit003.

      CLEAR /pws/zycit003.

      MOVE t_zycit003 TO /pws/zycit003.

      PERFORM carrega_log USING '/PWS/ZYCIT003' 'U'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

  IF NOT t_zycit125_del[] IS INITIAL.

    LOOP AT t_zycit125_del.

      CLEAR /pws/zycit125.

      MOVE t_zycit125_del TO /pws/zycit125.

      PERFORM carrega_log USING '/PWS/ZYCIT125' 'D'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

    DELETE /pws/zycit125 FROM TABLE t_zycit125_del.

  ENDIF.

 

 

  IF NOT t_zycit125[] IS INITIAL.

    MODIFY /pws/zycit125 FROM TABLE t_zycit125.

    LOOP AT t_zycit125.

      CLEAR /pws/zycit125.

      MOVE t_zycit125 TO /pws/zycit125.

      PERFORM carrega_log USING '/PWS/ZYCIT125' 'U'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

 

  IF NOT t_zycit503_del[] IS INITIAL.

    LOOP AT t_zycit503_del.

      CLEAR /pws/zycit503.

      MOVE t_zycit503_del TO /pws/zycit503.

      PERFORM carrega_log USING '/PWS/ZYCIT503' 'D'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

    DELETE /pws/zycit503 FROM TABLE t_zycit503_del.

  ENDIF.

 

 

  IF NOT t_zycit503[] IS INITIAL.

    MODIFY /pws/zycit503 FROM TABLE t_zycit503.

    LOOP AT t_zycit503.

      CLEAR /pws/zycit503.

      MOVE t_zycit503 TO /pws/zycit503.

      PERFORM carrega_log USING '/PWS/ZYCIT503' 'U'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

  IF NOT t_zycit374_del[] IS INITIAL.

    LOOP AT t_zycit374_del.

      CLEAR /pws/zycit374.

      MOVE t_zycit374_del TO /pws/zycit374.

      PERFORM carrega_log USING '/PWS/ZYCIT374' 'D'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq .

    ENDLOOP.

    DELETE /pws/zycit374 FROM TABLE t_zycit374_del.

  ENDIF.

 

 

  IF NOT t_zycit374[] IS INITIAL.

    MODIFY /pws/zycit374 FROM TABLE t_zycit374.

    LOOP AT t_zycit374.

      CLEAR /pws/zycit374.

      MOVE t_zycit374 TO /pws/zycit374.

      PERFORM carrega_log USING '/PWS/ZYCIT374' 'U'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

  IF NOT t_zycit396_del[] IS INITIAL.

    LOOP AT t_zycit396_del.

      CLEAR /pws/zycit396.

      MOVE t_zycit396_del TO /pws/zycit396.

      PERFORM carrega_log USING '/PWS/ZYCIT396' 'D'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq .

    ENDLOOP.

    DELETE /pws/zycit396 FROM TABLE t_zycit396_del.

  ENDIF.

 

 

  IF NOT t_zycit396[] IS INITIAL.

    MODIFY /pws/zycit396 FROM TABLE t_zycit396.

    LOOP AT t_zycit396.

      CLEAR /pws/zycit396.

      MOVE t_zycit396 TO /pws/zycit396.

      PERFORM carrega_log USING '/PWS/ZYCIT396' 'U'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

  IF NOT t_zycit354_del[] IS INITIAL.

    LOOP AT t_zycit354_del.

      CLEAR /pws/zycit354.

      MOVE t_zycit354_del TO /pws/zycit354.

      PERFORM carrega_log USING '/PWS/ZYCIT354' 'D'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

    DELETE /pws/zycit354 FROM TABLE t_zycit354_del.

  ENDIF.

 

 

  IF NOT t_zycit354[] IS INITIAL.

    MODIFY /pws/zycit354 FROM TABLE t_zycit354.

    LOOP AT t_zycit354.

      CLEAR /pws/zycit354.

      MOVE t_zycit354 TO /pws/zycit354.

      PERFORM carrega_log USING '/PWS/ZYCIT354' 'U'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

  PERFORM trata_vinculacao_li TABLES t_zycit003.

 

  PERFORM trata_desvinculacao_li TABLES t_zycit003

                                        t_zycit003_ini.

 

  SELECT SINGLE * FROM /pws/zycit094                    "#EC CI_NOFIRST

      INTO /pws/zycit094

       WHERE nrseq = p_zycit001-nrseq.

  IF sy-subrc = 0.

    SELECT SINGLE * FROM

    /pws/zycit093 INTO /pws/zycit093

      WHERE nrseqce = /pws/zycit094-nrseqce.

    IF sy-subrc = 0.

      /pws/zycit093-meiotransp = p_zycit001-meioemba.

      /pws/zycit093-embarca = p_zycit001-navio.

      IF w_zycit000-flagbl IS INITIAL.

        /pws/zycit093-paemb      = p_zycit001-paorigem.

        /pws/zycit093-padest     = p_zycit001-padest.

        /pws/zycit093-paispae    = p_zycit001-paispao.

      ENDIF.

      MODIFY /pws/zycit093.

      PERFORM carrega_log USING '/PWS/ZYCIT093' 'U'

      '' '/PWS/SAPMZYCI002' /pws/zycit093-nrseqce .

    ENDIF.

  ENDIF.

 

  COMMIT WORK.

 

  PERFORM fill_message TABLES t_return

                        USING c_messag

                              'S'

                              '017'

                              p_zycit001-nrseq

                              space

                              space

                              space.

 

ENDFORM.                    " save

*INCLUDE /PWS/LCI_BAPI_GF001F07

 

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F07 .

*----------------------------------------------------------------------*

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

*&      Form  insert

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

FORM insert TABLES   t_return STRUCTURE bapiret2

                   t_zycit003 STRUCTURE /pws/zycit003

                   t_zycit125 STRUCTURE /pws/zycit125

                   t_zycit503 STRUCTURE /pws/zycit503

                   t_zycit374 STRUCTURE /pws/zycit374

                   t_zycit396 STRUCTURE /pws/zycit396

                   t_zycit354 STRUCTURE /pws/zycit354

          CHANGING p_zycit001 TYPE /pws/zycit001

                   p_zycit133 TYPE /pws/zycit133

                   p_zycit133a TYPE /pws/zycit133

                   p_zycit134 TYPE /pws/zycit134.

 

  p_zycit001-dtuserc   = sy-datlo.

  p_zycit001-usernamec = sy-uname.

  p_zycit001-status_e = 'A'.

 

  INSERT INTO /pws/zycit001 VALUES p_zycit001.

  WHILE sy-subrc NE 0.

    PERFORM find_nrseq   TABLES t_return

                       CHANGING p_zycit001.

    INSERT INTO /pws/zycit001 VALUES p_zycit001.

  ENDWHILE.

 

  MOVE p_zycit001 TO /pws/zycit001.

  PERFORM carrega_log USING '/PWS/ZYCIT001' 'I'

                           '' '/PWS/SAPMZYCI001' p_zycit001-nrseq .

 

  PERFORM set_nrseq  TABLES t_zycit003

                            t_zycit125

                            t_zycit503

                            t_zycit374

                            t_zycit396

                            t_zycit354

                     USING  p_zycit001-nrseq

                     changing p_zycit134.

 

  IF NOT p_zycit134 IS INITIAL.

    INSERT INTO /pws/zycit134 VALUES p_zycit134.

    MOVE p_zycit134 TO /pws/zycit134.

    PERFORM carrega_log USING '/PWS/ZYCIT134' 'I'

                             '' '/PWS/SAPMZYCI001' p_zycit001-nrseq .

  ENDIF.

 

  IF NOT p_zycit133 IS INITIAL.

    INSERT INTO /pws/zycit133 VALUES p_zycit133.

    IF sy-subrc = 0.

      MOVE p_zycit133 TO /pws/zycit133.

      PERFORM carrega_log USING '/PWS/ZYCIT133' 'I'

                               '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDIF.

  ENDIF.

 

  IF NOT p_zycit133a IS INITIAL.

    INSERT INTO /pws/zycit133 VALUES p_zycit133a.

    IF sy-subrc = 0.

      MOVE p_zycit133a TO /pws/zycit133.

      PERFORM carrega_log USING '/PWS/ZYCIT133' 'I'

                               '' '/PWS/SAPMZYCI001' p_zycit001-nrseq .

    ENDIF.

  ENDIF.

 

  IF NOT t_zycit003[] IS INITIAL.

    INSERT /pws/zycit003 FROM TABLE t_zycit003 .

    LOOP AT t_zycit003.

      CLEAR /pws/zycit003.

      MOVE t_zycit003 TO /pws/zycit003.

      PERFORM carrega_log USING '/PWS/ZYCIT003' 'I'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

  IF NOT t_zycit125[] IS INITIAL.

    INSERT /pws/zycit125 FROM TABLE t_zycit125 .

    LOOP AT t_zycit125.

      CLEAR /pws/zycit125.

      MOVE t_zycit125 TO /pws/zycit125.

      PERFORM carrega_log USING '/PWS/ZYCIT125' 'I'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

  IF NOT t_zycit503[] IS INITIAL.

    INSERT /pws/zycit503 FROM TABLE t_zycit503 .

    LOOP AT t_zycit503.

      CLEAR /pws/zycit503.

      MOVE t_zycit503 TO /pws/zycit503.

      PERFORM carrega_log USING '/PWS/ZYCIT503' 'I'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

  IF NOT t_zycit374[] IS INITIAL.

    INSERT /pws/zycit374 FROM TABLE t_zycit374 .

    LOOP AT t_zycit374.

      CLEAR /pws/zycit374.

      MOVE t_zycit374 TO /pws/zycit374.

      PERFORM carrega_log USING '/PWS/ZYCIT374' 'I'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

  IF NOT t_zycit396[] IS INITIAL.

    INSERT /pws/zycit396 FROM TABLE t_zycit396 .

    LOOP AT t_zycit396.

      CLEAR /pws/zycit396.

      MOVE t_zycit396 TO /pws/zycit396.

      PERFORM carrega_log USING '/PWS/ZYCIT396' 'I'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

  IF NOT t_zycit354[] IS INITIAL.

    INSERT /pws/zycit354 FROM TABLE t_zycit354 .

    LOOP AT t_zycit354.

      CLEAR /pws/zycit354.

      MOVE t_zycit354 TO /pws/zycit354.

      PERFORM carrega_log USING '/PWS/ZYCIT354' 'I'

      '' '/PWS/SAPMZYCI001' p_zycit001-nrseq.

    ENDLOOP.

  ENDIF.

 

  Perform trata_vinculacao_LI tables t_zycit003.

 

    PERFORM fill_message TABLES t_return

                          USING c_messag

                                'S'

                                '017'

                                p_zycit001-nrseq

                                space

                                space

                                space.

 

  COMMIT WORK.

 

ENDFORM.                    " insert

 

 

*INCLUDE /PWS/LCI_BAPI_GF001F08

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F08 .

*----------------------------------------------------------------------*

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

*&      Form  SET_NRSEQ

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

 

FORM set_nrseq TABLES  it_zycit003 STRUCTURE /pws/zycit003

                       it_zycit125 STRUCTURE /pws/zycit125

                       it_zycit503 STRUCTURE /pws/zycit503

                       it_zycit374 STRUCTURE /pws/zycit374

                       it_zycit396 STRUCTURE /pws/zycit396

                       it_zycit354 STRUCTURE /pws/zycit354

               USING p_nrseq

               CHANGING p_zycit134 STRUCTURE /pws/zycit134.

 

  IF NOT it_zycit003[] IS INITIAL.

    LOOP AT it_zycit003.

      it_zycit003-nrseq = p_nrseq.

      MODIFY it_zycit003 .

    ENDLOOP.

  ENDIF.

 

  IF NOT it_zycit125[] IS INITIAL.

    LOOP AT it_zycit125.

      it_zycit125-nrseq = p_nrseq.

      MODIFY it_zycit125.

    ENDLOOP.

  ENDIF.

 

  IF NOT it_zycit503[] IS INITIAL.

    LOOP AT it_zycit503.

      it_zycit503-nrseq = p_nrseq.

      MODIFY it_zycit503 .

    ENDLOOP.

  ENDIF.

 

  IF NOT it_zycit374[] IS INITIAL.

    LOOP AT it_zycit374.

      it_zycit374-nrseq = p_nrseq.

      MODIFY it_zycit374 .

    ENDLOOP.

  ENDIF.

 

  IF NOT it_zycit396[] IS INITIAL.

    LOOP AT it_zycit396.

      it_zycit396-nrseq = p_nrseq.

      MODIFY it_zycit396 .

    ENDLOOP.

  ENDIF.

 

  IF NOT it_zycit354[] IS INITIAL.

    LOOP AT it_zycit354.

      it_zycit354-nrseq = p_nrseq.

      MODIFY it_zycit354 .

    ENDLOOP.

  ENDIF.

 

  IF NOT p_zycit134 IS INITIAL.

    p_zycit134-nrseq = p_nrseq.

  ENDIF.

ENDFORM.                    " SET_NRSEQ

 

*INCLUDE /PWS/LCI_BAPI_GF001F09

 

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F09 .

*----------------------------------------------------------------------*

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

*&      Form  SEL_INI

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

*       text

*----------------------------------------------------------------------*

*      -->P_IT_ZYCIT003_INI  text

*      -->P_W_ZYCIT001_NRSEQ  text

*----------------------------------------------------------------------*

FORM sel_ini TABLES   it_zycit003_ini STRUCTURE /pws/zycit003

                      it_zycit125_ini STRUCTURE /pws/zycit125

                      it_zycit503_ini STRUCTURE /pws/zycit503

                      it_zycit374_ini STRUCTURE /pws/zycit374

                      it_zycit396_ini STRUCTURE /pws/zycit396

                      it_zycit354_ini STRUCTURE /pws/zycit354

             USING    p_nrseq

             CHANGING w_zycit001_ini STRUCTURE /pws/zycit001

                      w_zycit133_ini STRUCTURE /pws/zycit133

                      w_zycit133a_ini STRUCTURE /pws/zycit133

                      w_zycit134_ini STRUCTURE /pws/zycit134.

 

  SELECT SINGLE * FROM /pws/zycit001 INTO w_zycit001_ini

      WHERE nrseq EQ p_nrseq.

 

  SELECT SINGLE * FROM /pws/zycit134 INTO w_zycit134_ini

      WHERE nrseq EQ p_nrseq.

 

  IF sy-subrc = 0.

 

    IF NOT w_zycit134_ini-cpfproc IS INITIAL.

 

      SELECT SINGLE * FROM /pws/zycit133 INTO w_zycit133_ini

      WHERE cpf EQ w_zycit134_ini-cpfproc.

    ENDIF.

    IF NOT w_zycit134_ini-cpfproc2 IS INITIAL.

 

      SELECT SINGLE * FROM /pws/zycit133 INTO w_zycit133a_ini

      WHERE cpf EQ w_zycit134_ini-cpfproc2.

 

    ENDIF.

  ENDIF.

 

  SELECT * FROM /pws/zycit003 INTO TABLE it_zycit003_ini

      WHERE nrseq EQ p_nrseq.

 

  SELECT * FROM /pws/zycit125 INTO TABLE it_zycit125_ini

      WHERE nrseq EQ p_nrseq.

 

  SELECT * FROM /pws/zycit503 INTO TABLE it_zycit503_ini

      WHERE nrseq EQ p_nrseq.

 

  SELECT * FROM /pws/zycit374 INTO TABLE it_zycit374_ini

      WHERE nrseq EQ p_nrseq.

 

  SELECT * FROM /pws/zycit396 INTO TABLE it_zycit396_ini

      WHERE nrseq EQ p_nrseq.

 

  SELECT * FROM /pws/zycit354 INTO TABLE it_zycit354_ini

      WHERE nrseq EQ p_nrseq.

 

ENDFORM.                    " SEL_INI

 

*INCLUDE /PWS/LCI_BAPI_GF001F10

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F10 .

*----------------------------------------------------------------------*

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

*&      Form  check_alteracoes

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

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM check_alteracoes TABLES t_return STRUCTURE bapiret2

                             it_zycit003 STRUCTURE /pws/zycit003

                             it_zycit003_ini STRUCTURE /pws/zycit003

                             it_zycit003_del STRUCTURE /pws/zycit003

                             it_zycit125 STRUCTURE /pws/zycit125

                             it_zycit125_ini STRUCTURE /pws/zycit125

                             it_zycit125_del STRUCTURE /pws/zycit125

                             it_zycit503 STRUCTURE /pws/zycit503

                             it_zycit503_ini STRUCTURE /pws/zycit503

                             it_zycit503_del STRUCTURE /pws/zycit503

                             it_zycit374 STRUCTURE /pws/zycit374

                             it_zycit374_ini STRUCTURE /pws/zycit374

                             it_zycit374_del STRUCTURE /pws/zycit374

                             it_zycit396 STRUCTURE /pws/zycit396

                             it_zycit396_ini STRUCTURE /pws/zycit396

                             it_zycit396_del STRUCTURE /pws/zycit396

                             it_zycit354 STRUCTURE /pws/zycit354

                             it_zycit354_ini STRUCTURE /pws/zycit354

                             it_zycit354_del STRUCTURE /pws/zycit354

                             USING w_zycit001 STRUCTURE /pws/zycit001

                                 w_zycit001_ini STRUCTURE /pws/zycit001

                                 w_zycit133 STRUCTURE /pws/zycit133

                                 w_zycit133_ini STRUCTURE /pws/zycit133

                                 w_zycit133a STRUCTURE /pws/zycit133

                                 w_zycit133a_ini STRUCTURE /pws/zycit133

                                 w_zycit134 STRUCTURE /pws/zycit134

                                 w_zycit134_ini STRUCTURE /pws/zycit134

                                 okcode

                             changing v_changed

                             v_sair.

 

  DATA:

        v_resposta.

 

  sort:  it_zycit003, it_zycit003_ini,

         it_zycit125, it_zycit125_ini,

         it_zycit503, it_zycit503_ini,

         it_zycit374, it_zycit374_ini,

         it_zycit396, it_zycit396_ini,

         it_zycit354, it_zycit354_ini.

 

  loop at it_zycit003.

    it_zycit003-mandt = sy-mandt.

    modify it_zycit003.

  endloop.

  loop at it_zycit003_ini.

    it_zycit003_ini-mandt = sy-mandt.

    modify it_zycit003_ini.

  endloop.

  loop at it_zycit354.

    it_zycit354-mandt = sy-mandt.

    modify it_zycit354.

  endloop.

  loop at it_zycit354_ini.

    it_zycit354_ini-mandt = sy-mandt.

    modify it_zycit354_ini.

  endloop.

  loop at it_zycit125.

    it_zycit125-mandt = sy-mandt.

    modify it_zycit125.

  endloop.

  loop at it_zycit125_ini.

    it_zycit125_ini-mandt = sy-mandt.

    modify it_zycit125_ini.

  endloop.

  loop at it_zycit503.

    it_zycit503-mandt = sy-mandt.

    modify it_zycit503.

  endloop.

  loop at it_zycit503_ini.

    it_zycit503_ini-mandt = sy-mandt.

    modify it_zycit503_ini.

  endloop.

  loop at it_zycit374.

    it_zycit374-mandt = sy-mandt.

    modify it_zycit374.

  endloop.

  loop at it_zycit374_ini.

    it_zycit374_ini-mandt = sy-mandt.

    modify it_zycit374_ini.

  endloop.

  loop at it_zycit396.

    it_zycit396-mandt = sy-mandt.

    modify it_zycit396.

  endloop.

  loop at it_zycit396_ini.

    it_zycit396_ini-mandt = sy-mandt.

    modify it_zycit396_ini.

  endloop.

 

  IF w_zycit001 NE w_zycit001_ini.

    v_changed = 'X'.

  ENDIF.

 

  IF w_zycit133 NE w_zycit133_ini.

    v_changed = 'X'.

  ENDIF.

 

  IF w_zycit133a NE w_zycit133a_ini.

    v_changed = 'X'.

  ENDIF.

 

  IF w_zycit134 NE w_zycit134_ini.

    v_changed = 'X'.

  ENDIF.

 

  IF it_zycit003[] NE it_zycit003_ini[].

    LOOP AT it_zycit003_ini.

      READ TABLE it_zycit003 WITH KEY nrseq = it_zycit003_ini-nrseq

                                      ebeln = it_zycit003_ini-ebeln

                                      ebelp = it_zycit003_ini-ebelp.

      IF sy-subrc NE 0.

        MOVE it_zycit003_ini TO it_zycit003_del.

        APPEND it_zycit003_del.

* Quando apaga o item apaga das demais tabelas

        perform delete_dependentes tables it_zycit503

                                          it_zycit374

                                          it_zycit396

                                          it_zycit354

                                   using  it_zycit003.

      ENDIF.

    ENDLOOP.

    v_changed = 'X'.

  ENDIF.

 

  IF it_zycit125[] NE it_zycit125_ini[].

    LOOP AT it_zycit125_ini.

      READ TABLE it_zycit125 WITH KEY nrseq = it_zycit125_ini-nrseq

                                      lifnr = it_zycit125_ini-lifnr.

      IF sy-subrc NE 0.

        MOVE it_zycit125_ini TO it_zycit125_del.

        APPEND it_zycit125_del.

      ENDIF.

    ENDLOOP.

    v_changed = 'X'.

  ENDIF.

 

 

  IF it_zycit503[] NE it_zycit503_ini[].

    LOOP AT it_zycit503_ini.

      READ TABLE it_zycit503 WITH KEY nrseq = it_zycit503_ini-nrseq

                                      EBELN = it_zycit503_ini-EBELN

                                      EBELP = it_zycit503_ini-EBELP

                                      J_1BNBM = it_zycit503_ini-J_1BNBM

                                      MATNR = it_zycit503_ini-MATNR

                                   NIVEL_NVE = it_zycit503_ini-NIVEL_NVE

                            ATRIBUTO_NVE = It_zycit503_ini-ATRIBUTO_NVE

                            ESPECIF_NVE = it_zycit503_ini-ESPECIF_NVE.

      IF sy-subrc NE 0.

        MOVE it_zycit503_ini TO it_zycit503_del.

        APPEND it_zycit503_del.

      ENDIF.

    ENDLOOP.

    v_changed = 'X'.

  ENDIF.

 

  IF it_zycit374[] NE it_zycit374_ini[].

    LOOP AT it_zycit374_ini.

      READ TABLE it_zycit374 WITH KEY nrseq = it_zycit374_ini-nrseq

                                      ebeln = it_zycit374_ini-ebeln

                                      ebelp = it_zycit374_ini-ebelp.

      IF sy-subrc NE 0.

        MOVE it_zycit374_ini TO it_zycit374_del.

        APPEND it_zycit374_del.

      ENDIF.

    ENDLOOP.

    v_changed = 'X'.

  ENDIF.

 

  IF it_zycit396[] NE it_zycit396_ini[].

    LOOP AT it_zycit396_ini.

      READ TABLE it_zycit396 WITH KEY nrseq = it_zycit396_ini-nrseq

                                      ebeln = it_zycit396_ini-ebeln

                                      ebelp = it_zycit396_ini-ebelp

                                      indice = it_zycit396_ini-indice.

      IF sy-subrc NE 0.

        MOVE it_zycit396_ini TO it_zycit396_del.

        APPEND it_zycit396_del.

      ENDIF.

    ENDLOOP.

    v_changed = 'X'.

  ENDIF.

 

  IF it_zycit354[] NE it_zycit354_ini[].

    LOOP AT it_zycit354_ini.

      READ TABLE it_zycit354 WITH KEY nrseq = it_zycit354_ini-nrseq

                                      ebeln = it_zycit354_ini-ebeln

                                      ebelp = it_zycit354_ini-ebelp.

      IF sy-subrc NE 0.

        MOVE it_zycit354_ini TO it_zycit354_del.

        APPEND it_zycit354_del.

      ENDIF.

    ENDLOOP.

    v_changed = 'X'.

  ENDIF.

 

  IF okcode NE 'SAVE' AND v_changed = 'X'.

    CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'

         EXPORTING

              defaultoption = 'Y'

              diagnosetext1 = text-001

              textline1     = text-002

              titel         = text-003

         IMPORTING

              answer        = v_resposta

         EXCEPTIONS

              OTHERS        = 1.

    IF sy-subrc EQ 0 AND v_resposta EQ 'A'.

      PERFORM fill_message TABLES t_return

                            USING c_messag

                                  'E'

                                  '138'

                                  space

                                  space

                                  space

                                  space.

 

    ELSEIF sy-subrc EQ 0 AND v_resposta EQ 'N'.

      CLEAR v_changed.

      v_sair = 'X'.

      W_zycit001   = W_zycit001_ini.

      w_zycit133    = W_zycit133_ini.

      w_zycit133a    = W_zycit133a_ini.

      w_zycit134    = W_zycit134_ini.

      it_zycit003[] = it_zycit003_ini[].

      it_zycit125[] = it_zycit125_ini[].

      it_zycit503[] = it_zycit503_ini[].

      it_zycit374[] = it_zycit374_ini[].

      it_zycit396[] = it_zycit396_ini[].

      it_zycit354[] = it_zycit354_ini[].

    ENDIF.

  ENDIF.

 

ENDFORM.                    " check_alteracoes

 

*INCLUDE /PWS/LCI_BAPI_GF001F11

 

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F11 .

*----------------------------------------------------------------------*

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

*&      Form  delete_dependentes

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

form delete_dependentes tables

                             it_zycit503 STRUCTURE /pws/zycit503

                             it_zycit374 STRUCTURE /pws/zycit374

                             it_zycit396 STRUCTURE /pws/zycit396

                             it_zycit354 STRUCTURE /pws/zycit354

                        using    p_zycit003 structure /pws/zycit003.

 

delete it_zycit503 where nrseq = p_zycit003-nrseq

                     and ebeln = p_zycit003-ebeln

                     and ebelp = p_zycit003-ebelp.

 

delete it_zycit374 where nrseq = p_zycit003-nrseq

                     and ebeln = p_zycit003-ebeln

                     and ebelp = p_zycit003-ebelp.

 

delete it_zycit396 where nrseq = p_zycit003-nrseq

                     and ebeln = p_zycit003-ebeln

                     and ebelp = p_zycit003-ebelp.

 

delete it_zycit354 where nrseq = p_zycit003-nrseq

                     and ebeln = p_zycit003-ebeln

                     and ebelp = p_zycit003-ebelp.

endform.                    " delete_dependentes

 

 

 

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F11 .

*----------------------------------------------------------------------*

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

*&      Form  delete_dependentes

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

form delete_dependentes tables

                             it_zycit503 STRUCTURE /pws/zycit503

                             it_zycit374 STRUCTURE /pws/zycit374

                             it_zycit396 STRUCTURE /pws/zycit396

                             it_zycit354 STRUCTURE /pws/zycit354

                        using    p_zycit003 structure /pws/zycit003.

 

delete it_zycit503 where nrseq = p_zycit003-nrseq

                     and ebeln = p_zycit003-ebeln

                     and ebelp = p_zycit003-ebelp.

 

delete it_zycit374 where nrseq = p_zycit003-nrseq

                     and ebeln = p_zycit003-ebeln

                     and ebelp = p_zycit003-ebelp.

 

delete it_zycit396 where nrseq = p_zycit003-nrseq

                     and ebeln = p_zycit003-ebeln

                     and ebelp = p_zycit003-ebelp.

 

delete it_zycit354 where nrseq = p_zycit003-nrseq

                     and ebeln = p_zycit003-ebeln

                     and ebelp = p_zycit003-ebelp.

endform.                    " delete_dependentes

 

 

 

 

*INCLUDE /PWS/LCI_BAPI_GF001F12

 

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F12 .

*----------------------------------------------------------------------*

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

*&      Form  trata_vinculacao_LI

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

FORM trata_vinculacao_li TABLES   t_zycit003 STRUCTURE /pws/zycit003.

 

  DATA: t_zycit079 TYPE TABLE OF /pws/zycit079 WITH HEADER LINE.

 

  loop at t_zycit003.

 

  IF NOT t_zycit003-nrseqli IS INITIAL.

 

    UPDATE /pws/zycit079 SET nrseq = t_zycit003-nrseq

                    WHERE ebeln = t_zycit003-ebeln

                      AND ebelp = t_zycit003-ebelp

                      AND nrseqli = t_zycit003-nrseqli.

 

    SELECT SINGLE * FROM /pws/zycit079

            WHERE ebeln = t_zycit003-ebeln

              AND ebelp = t_zycit003-ebelp

              AND nrseqli = t_zycit003-nrseqli.

    IF sy-subrc = 0.

      /pws/zycit079-nrseq = t_zycit003-nrseq.

      PERFORM carrega_log USING '/PWS/ZYCIT079' 'U'

      '' '/PWS/SAPMZYCI020' /pws/zycit079-nrseqli.

    ENDIF.

 

    SELECT * FROM /pws/zycit079 INTO TABLE t_zycit079

           WHERE nrseqli EQ t_zycit003-nrseqli

           AND   nrseq   EQ space.

    IF sy-subrc NE 0.

      UPDATE /pws/zycit078 SET status = 'VIN'

*                        nrseq  = t_zycit003-nrseq

                      WHERE nrseqli = t_zycit003-nrseqli

                        AND nrli    = t_zycit003-nrli

                        AND tpli    = 'N'.

 

      SELECT SINGLE * FROM /pws/zycit078

              WHERE nrseqli = t_zycit003-nrseqli

                  AND nrli    = t_zycit003-nrli

                          AND tpli    = 'N'.

      IF sy-subrc = 0.

        /pws/zycit078-status = 'VIN'.

        PERFORM carrega_log USING '/PWS/ZYCIT078' 'U'

        '' '/PWS/SAPMZYCI020' /pws/zycit078-nrseqli.

      ENDIF.

    ENDIF.

  ELSEIF NOT t_zycit003-nrseqlsi IS INITIAL.

 

    UPDATE /pws/zycit079 SET nrseq = t_zycit003-nrseq

                    WHERE ebeln = t_zycit003-ebeln

                      AND ebelp = t_zycit003-ebelp

                      AND nrseqli = t_zycit003-nrseqlsi.

 

    SELECT SINGLE * FROM /pws/zycit079

            WHERE ebeln = t_zycit003-ebeln

              AND ebelp = t_zycit003-ebelp

              AND nrseqli = t_zycit003-nrseqlsi.

    IF sy-subrc = 0.

      /pws/zycit079-nrseq = t_zycit003-nrseq.

      PERFORM carrega_log USING '/PWS/ZYCIT079' 'U'

      '' '/PWS/SAPMZYCI020' /pws/zycit079-nrseqli.

    ENDIF.

 

    SELECT * FROM /pws/zycit079 INTO TABLE t_zycit079

           WHERE nrseqli EQ t_zycit003-nrseqlsi

           AND   nrseq   EQ space.

    IF sy-subrc NE 0.

      UPDATE /pws/zycit078 SET status = 'VIN'

*                        nrseq  = t_zycit003-nrseq

                      WHERE nrseqli = t_zycit003-nrseqlsi

                        AND nrli    = t_zycit003-nrlsi

                        AND tpli    = 'S'.

 

      SELECT SINGLE * FROM /pws/zycit078

                        WHERE nrseqli = t_zycit003-nrseqlsi

                          AND nrli    = t_zycit003-nrlsi

                          AND tpli    = 'S'.

      IF sy-subrc = 0.

        /pws/zycit078-status = 'VIN'.

        PERFORM carrega_log USING '/PWS/ZYCIT078' 'U'

        '' '/PWS/SAPMZYCI020' /pws/zycit078-nrseqli.

      ENDIF.

    ENDIF.

  ENDIF.

  endloop.

 

ENDFORM.                    " trata_vinculacao_LI

 

 

*INCLUDE /PWS/LCI_BAPI_GF001F13

 

*----------------------------------------------------------------------*

***INCLUDE /PWS/LCI_BAPI_GF001F13 .

*----------------------------------------------------------------------*

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

*&      Form  trata_desvinculacao_li

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

FORM trata_desvinculacao_li TABLES   t_zycit003 STRUCTURE /pws/zycit003

                                 t_zycit003_ini STRUCTURE /pws/zycit003.

 

  LOOP AT t_zycit003_ini.

    READ TABLE t_zycit003 WITH KEY nrseq = t_zycit003_ini-nrseq

                                   ebeln = t_zycit003_ini-ebeln

                                   ebelp = t_zycit003_ini-ebelp.

    IF NOT t_zycit003_ini-nrseqli IS INITIAL AND

       t_zycit003-nrseqli IS INITIAL.

 

      UPDATE /pws/zycit079 SET nrseq = space

                    WHERE nrseqli = t_zycit003_ini-nrseqli

                      AND ebeln = t_zycit003_ini-ebeln

                      AND ebelp = t_zycit003_ini-ebelp.

 

      SELECT SINGLE * FROM /pws/zycit079

              WHERE ebeln = t_zycit003_ini-ebeln

                AND ebelp = t_zycit003_ini-ebelp

                AND nrseqli = t_zycit003_ini-nrseqli.

      IF sy-subrc = 0.

        CLEAR /pws/zycit079-nrseq .

        PERFORM carrega_log USING '/PWS/ZYCIT079' 'U'

        '' '/PWS/SAPMZYCI020' /pws/zycit079-nrseqli.

      ENDIF.

 

 

      IF t_zycit003_ini-nrli IS INITIAL.

        UPDATE /pws/zycit078 SET status = 'COM'

                            nrseq  = space

                        WHERE nrseqli = t_zycit003_ini-nrseqli

                          AND nrli    = t_zycit003_ini-nrli

                          AND tpli    = 'N'.

 

 

        SELECT SINGLE * FROM /pws/zycit078

                          WHERE nrseqli = t_zycit003_ini-nrseqli

                            AND nrli    = t_zycit003_ini-nrli

                            AND tpli    = 'N'.

        IF sy-subrc = 0.

          CLEAR /pws/zycit078-nrseq .

          /pws/zycit078-status = 'COM'.

          PERFORM carrega_log USING '/PWS/ZYCIT078' 'U'

          '' '/PWS/SAPMZYCI020' /pws/zycit078-nrseqli.

        ENDIF.

 

 

      ELSE.

        UPDATE /pws/zycit078 SET status = 'VAL'

                            nrseq  = space

                        WHERE nrseqli = t_zycit003_ini-nrseqli

                          AND nrli    = t_zycit003_ini-nrli

                          AND tpli    = 'N'.

        SELECT SINGLE * FROM /pws/zycit078

                          WHERE nrseqli = t_zycit003_ini-nrseqli

                            AND nrli    = t_zycit003_ini-nrli

                            AND tpli    = 'N'.

        IF sy-subrc = 0.

          CLEAR /pws/zycit078-nrseq .

          /pws/zycit078-status = 'VAL'.

          PERFORM carrega_log USING '/PWS/ZYCIT078' 'U'

          '' '/PWS/SAPMZYCI020' /pws/zycit078-nrseqli.

        ENDIF.

      ENDIF.

*- Atualiza LI Substitutiva--------------------------------------------*

      SELECT SINGLE * FROM /pws/zycit078

      WHERE nrseqli EQ t_zycit003_ini-nrseqli.

      IF NOT /pws/zycit078-nrseqlisub IS INITIAL.

        UPDATE /pws/zycit079 SET nrseq = space

                      WHERE nrseqli = /pws/zycit078-nrseqlisub

                        AND ebeln = t_zycit003_ini-ebeln

                        AND ebelp = t_zycit003_ini-ebelp.

 

        SELECT SINGLE * FROM /pws/zycit079

                WHERE ebeln = t_zycit003_ini-ebeln

                  AND ebelp = t_zycit003_ini-ebelp

                  AND nrseqli = /pws/zycit078-nrseqlisub.

        IF sy-subrc = 0.

          CLEAR /pws/zycit079-nrseq .

          PERFORM carrega_log USING '/PWS/ZYCIT079' 'U'

          '' '/PWS/SAPMZYCI020' /pws/zycit079-nrseqli.

        ENDIF.

 

        IF t_zycit003_ini-nrli IS INITIAL.

          UPDATE /pws/zycit078 SET status = 'COM'

                              nrseq  = space

                          WHERE nrseqli = /pws/zycit078-nrseqlisub

                            AND tpli    = 'N'.

 

          SELECT SINGLE * FROM /pws/zycit078

                              WHERE nrseqli = /pws/zycit078-nrseqlisub

                                AND tpli    = 'N'.

          IF sy-subrc = 0.

            CLEAR /pws/zycit078-nrseq .

            /pws/zycit078-status = 'COM'.

            PERFORM carrega_log USING '/PWS/ZYCIT078' 'U'

            '' '/PWS/SAPMZYCI020' /pws/zycit078-nrseqli.

          ENDIF.

 

 

        ELSE.

 

          UPDATE /pws/zycit078 SET status = 'VAL'

                              nrseq  = space

                          WHERE nrseqli = /pws/zycit078-nrseqlisub

                            AND tpli    = 'N'.

          SELECT SINGLE * FROM /pws/zycit078

                              WHERE nrseqli = /pws/zycit078-nrseqlisub

                                AND tpli    = 'N'.

          IF sy-subrc = 0.

            CLEAR /pws/zycit078-nrseq .

            /pws/zycit078-status = 'VAL'.

            PERFORM carrega_log USING '/PWS/ZYCIT078' 'U'

            '' '/PWS/SAPMZYCI020' /pws/zycit078-nrseqli.

          ENDIF.

        ENDIF.

      ENDIF.

    ELSEIF NOT t_zycit003_ini-nrseqlsi IS INITIAL AND

       t_zycit003-nrseqlsi IS INITIAL.

 

 

 

      UPDATE /pws/zycit079 SET nrseq = space

                    WHERE nrseqli = t_zycit003_ini-nrseqlsi

                      AND ebeln = t_zycit003_ini-ebeln

                      AND ebelp = t_zycit003_ini-ebelp.

 

      SELECT SINGLE * FROM /pws/zycit079

              WHERE ebeln = t_zycit003_ini-ebeln

                AND ebelp = t_zycit003_ini-ebelp

                AND nrseqli = t_zycit003_ini-nrseqlsi.

      IF sy-subrc = 0.

        CLEAR /pws/zycit079-nrseq .

        PERFORM carrega_log USING '/PWS/ZYCIT079' 'U'

        '' '/PWS/SAPMZYCI020' /pws/zycit079-nrseqli.

      ENDIF.

      IF t_zycit003_ini-nrlsi IS INITIAL.

        UPDATE /pws/zycit078 SET status = 'COM'

                            nrseq  = space

                        WHERE nrseqli = t_zycit003_ini-nrseqlsi

                          AND nrli    = t_zycit003_ini-nrlsi

                          AND tpli    = 'S'.

 

        SELECT SINGLE * FROM /pws/zycit078

                          WHERE nrseqli = t_zycit003_ini-nrseqlsi

                            AND nrli    = t_zycit003_ini-nrlsi

                            AND tpli    = 'S'.

        IF sy-subrc = 0.

          CLEAR /pws/zycit078-nrseq .

          /pws/zycit078-status = 'COM'.

          PERFORM carrega_log USING '/PWS/ZYCIT078' 'U'

          '' '/PWS/SAPMZYCI020' /pws/zycit078-nrseqli.

        ENDIF.

 

      ELSE.

        UPDATE /pws/zycit078 SET status = 'VAL'

                            nrseq  = space

                        WHERE nrseqli = t_zycit003_ini-nrseqlsi

                          AND nrli    = t_zycit003_ini-nrlsi

                          AND tpli    = 'S'.

 

        SELECT SINGLE * FROM /pws/zycit078

                          WHERE nrseqli = t_zycit003_ini-nrseqlsi

                            AND nrli    = t_zycit003_ini-nrlsi

                            AND tpli    = 'S'.

        IF sy-subrc = 0.

          CLEAR /pws/zycit078-nrseq .

          /pws/zycit078-status = 'VAL'.

          PERFORM carrega_log USING '/PWS/ZYCIT078' 'U'

          '' '/PWS/SAPMZYCI020' /pws/zycit078-nrseqli.

        ENDIF.

      ENDIF.

*- Atualiza LI Substitutiva--------------------------------------------*

      SELECT SINGLE * FROM /pws/zycit078

      WHERE nrseqli EQ t_zycit003_ini-nrseqlsi.

      IF NOT /pws/zycit078-nrseqlisub IS INITIAL.

        UPDATE /pws/zycit079 SET nrseq = space

                      WHERE nrseqli = /pws/zycit078-nrseqlisub

                        AND ebeln = t_zycit003_ini-ebeln

                        AND ebelp = t_zycit003_ini-ebelp.

 

        SELECT SINGLE * FROM /pws/zycit079

                WHERE ebeln = t_zycit003_ini-ebeln

                  AND ebelp = t_zycit003_ini-ebelp

                  AND nrseqli = /pws/zycit078-nrseqlisub.

        IF sy-subrc = 0.

          CLEAR /pws/zycit079-nrseq .

          PERFORM carrega_log USING '/PWS/ZYCIT079' 'U'

          '' '/PWS/SAPMZYCI020' /pws/zycit079-nrseqli.

        ENDIF.

 

        IF t_zycit003_ini-nrlsi IS INITIAL.

          UPDATE /pws/zycit078 SET status = 'COM'

                              nrseq  = space

                          WHERE nrseqli = /pws/zycit078-nrseqlisub

                            AND tpli    = 'S'.

          SELECT SINGLE * FROM /pws/zycit078

                              WHERE nrseqli = /pws/zycit078-nrseqlisub

                                AND tpli    = 'S'.

          IF sy-subrc = 0.

            CLEAR /pws/zycit078-nrseq .

            /pws/zycit078-status = 'COM'.

            PERFORM carrega_log USING '/PWS/ZYCIT078' 'U'

            '' '/PWS/SAPMZYCI020' /pws/zycit078-nrseqli.

          ENDIF.

 

        ELSE.

 

          UPDATE /pws/zycit078 SET status = 'VAL'

                              nrseq  = space

                          WHERE nrseqli = /pws/zycit078-nrseqlisub

                            AND tpli    = 'S'.

          SELECT SINGLE * FROM /pws/zycit078

                              WHERE nrseqli = /pws/zycit078-nrseqlisub

                                AND tpli    = 'S'.

          IF sy-subrc = 0.

            CLEAR /pws/zycit078-nrseq .

            /pws/zycit078-status = 'VAL'.

            PERFORM carrega_log USING '/PWS/ZYCIT078' 'U'

            '' '/PWS/SAPMZYCI020' /pws/zycit078-nrseqli.

          ENDIF.

        ENDIF.

      ENDIF.

 

    ENDIF.

  ENDLOOP.

 

ENDFORM.                    " trata_desvinculacao_li

 

 

*INCLUDE /PWS/LCI_BAPI_GF001TOP

FUNCTION-POOL /PWS/CI_BAPI_GF001.           "MESSAGE-ID ..

 

INCLUDE /pws/lci_bapi_gf001x01 .

 

INCLUDE /PWS/ZYGLLOG.

 

 

*INCLUDE /PWS/LCI_BAPI_GF001X01

*----------------------------------------------------------------------*

*   INCLUDE /PWS/LCI_BAPI_GF001X01                                     *

*----------------------------------------------------------------------*

TABLES: /PWS/ZYCIT001,

        /PWS/ZYCIT003,

        /PWS/ZYCIT125,

        /PWS/ZYCIT503,

        /pws/zycit374,

        /pws/zycit396,

        /pws/zycit133,

        /pws/zycit134,

        /pws/zycit354,

        /pws/zycit079,

        /pws/zycit078,

        /pws/zycit094,

        /pws/zycit093.

 

DATA: BEGIN OF COMMON PART gf001.

 

CONSTANTS: c_messag(10) TYPE c VALUE '/PWS/ZYCIM'.

 

 

DATA: END OF COMMON PART.

 

 

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

Modificações efetuadas em MESS /PWS/ZYCIM138

 

Na classe de mensagems /PWS/ZYCIM criar a mensagem 138

 

Mensagem   Txt.breve mensagem

138        Ação cancelada pelo usuário

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F01

 

...

 

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

FORM grava_tabelas.

* << Fim da exclusão

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

FORM grava_tabelas changing p_abort.

  DATA: itab_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,

        itab_zycit003_back LIKE itab_zycit003 OCCURS 0 WITH HEADER LINE.

  clear p_abort.

* << Fim da inclusão

...

 

...

              WHERE tpgto EQ 'D'.

    IF sy-subrc EQ 0.

      LOOP AT itab_zycit125.

        IF itab_zycit125-lifnr IS INITIAL.

          DELETE itab_zycit125 INDEX sy-tabix.

          MESSAGE i015 WITH text-223.

          EXIT.

        ENDIF.

      ENDLOOP.

    ENDIF.

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

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

           nrseq = /pws/zycie001-nrseq.

    IF sy-subrc NE 0.

      /pws/zycie001-dtuserc   = sy-datlo.

      /pws/zycie001-usernamec = sy-uname.

      /pws/zycie001-status_e = 'A'.

    ELSE.

      IF v_tcode EQ '/PWS/ZYCI001_A' .

        /pws/zycie001-dtusera   = sy-datlo.

        /pws/zycie001-usernamea = sy-uname.

* << Fim da exclusão

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

    IF ( /pws/zycie001-tpdecl EQ 'DI' AND

       /pws/zycie001-regime EQ '05' OR

       /pws/zycie001-regime EQ '12' ) OR

       ( /pws/zycie001-tpdecl EQ 'DSI' AND

       /pws/zycie001-regime EQ '09' ).

      MOVE: /pws/zycie001-nrseq TO /pws/zycie134-nrseq,

            /pws/zycie133-cpf   TO /pws/zycie134-cpfproc,

            /pws/zycie133a-cpf  TO /pws/zycie134-cpfproc2.

      IF ts_adm-activetab = 'FC_SD_TR'

      OR ts_adm-activetab = 'FC_BX_TR'.

        v_qtd_baixa = itab_zycit374-qtd_baixa.

        IF ts_adm-activetab = 'FC_SD_TR'.

          LOOP AT itab_zycit374 WHERE mark = 'X'.

            MOVE ' ' TO itab_zycit374-mark.

            MODIFY itab_zycit374 INDEX sy-tabix.

          ENDLOOP.

* << Fim da inclusão

      ENDIF.

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

        LOOP AT itab_zycit374 WHERE mark = 'X'.

          v_tabix = sy-tabix.

          IF sy-subrc = 0.

          READ TABLE itab_zycit396 WITH KEY nrseq = itab_zycit374-nrseq

                                            ebeln = itab_zycit374-ebeln

                                            ebelp = itab_zycit374-ebelp.

            MOVE v_qtd_baixa TO itab_zycit374-qtd_baixa.

            MODIFY itab_zycit374 INDEX v_tabix.

* << Fim da inclusão

    ENDIF.

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

    IF sy-tcode EQ '/PWS/ZYCI001_C' AND v_salvo NE 'X'.

      /pws/zycie001-status_e = 'A'.

      INSERT INTO /pws/zycit001 VALUES /pws/zycie001.

      WHILE sy-subrc NE 0.

        PERFORM busca_sequencial.

        INSERT INTO /pws/zycit001 VALUES /pws/zycie001.

        v_existe = 'S'.

        IF NOT v_nrseqerro IS INITIAL.

          EXIT.

* << Fim da exclusão

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

        ENDLOOP.

        READ TABLE itab_zycit374 WITH KEY mark = 'X'.

        IF ts_adm-activetab = 'FC_BX_TR'.

* << Fim da inclusão

        ENDIF.

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

      ENDWHILE.

      IF /pws/zycie001-nrseq IS INITIAL.

        MESSAGE i061 WITH text-137.

        EXIT.

* << Fim da exclusão

      ENDIF.

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

      IF v_existe = 'S'.

* << Fim da exclusão

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

      MOVE: /pws/zycie134  TO wa_zycit134,

            /pws/zycie133  TO wa_zycit133,

* << Fim da inclusão

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

        MESSAGE i061 WITH text-008 /pws/zycie001-embarca

                          text-009 /pws/zycie001-nrseq.

      ENDIF.

      COMMIT WORK.

      v_salvo = 'X'.

      IF v_enqueue IS INITIAL.

        v_enqueue = 'X'.

        CALL FUNCTION '/PWS/ZYCI_ENQUEUE_ZYCIT001'

             EXPORTING

                  nrseq = /pws/zycie001-nrseq.

      ENDIF.

* << Fim da exclusão

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

            /pws/zycie133a TO wa_zycit133a.

* << Fim da inclusão

    ELSE.

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

      MODIFY /pws/zycit001 FROM /pws/zycie001.

    ENDIF.

    IF /pws/zycie001-nrseq IS INITIAL.

      MESSAGE i061 WITH text-136.

      EXIT.

    ENDIF.

    SET PARAMETER ID '/PWS/ZYCIP001' FIELD /pws/zycie001-nrseq.

    IF /pws/zycie001-status NE wa_zycit001-status.

      CLEAR it_zycit255. REFRESH it_zycit255.

      MOVE: sy-mandt           TO it_zycit255-mandt,

            /pws/zycie001-nrseq     TO it_zycit255-nrseq,

            /pws/zycie001-status    TO it_zycit255-status,

            sy-datlo           TO it_zycit255-data,

            sy-uzeit           TO it_zycit255-hora,

            sy-uname           TO it_zycit255-usuario.

      APPEND it_zycit255.

      INSERT INTO /pws/zycit255 VALUES it_zycit255.

* << Fim da exclusão

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

      CLEAR: /pws/zycie134, /pws/zycie133, /pws/zycie133a.

* << Fim da inclusão

    ENDIF.

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

    MOVE /pws/zycie001 TO wa_zycit001.

* << Fim da exclusão

    LOOP AT itab_zycit125.

      CLEAR /pws/zycit125.

      SELECT SINGLE *

             FROM  /pws/zycit125

             WHERE nrseq EQ /pws/zycie001-nrseq

             AND   lifnr EQ itab_zycit125-lifnr.

...

 

...

          IF itab_zycit125-tipo NE itab_zycit460-tipo.

            MESSAGE s013 WITH text-322 itab_zycit125-lifnr text-323.

            v_sair = 'X'.

            EXIT.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDLOOP.

    IF v_sair = 'X'.

      EXIT.

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

    ENDIF.

    MODIFY /pws/zycit125 FROM TABLE itab_zycit125.

    LOOP AT itab_zycit125_aux.

      READ TABLE itab_zycit125 WITH KEY

                       lifnr = itab_zycit125_aux-lifnr.

      IF sy-subrc NE 0.

        DELETE FROM /pws/zycit125 WHERE nrseq = /pws/zycie001-nrseq

                             AND lifnr = itab_zycit125_aux-lifnr.

      ENDIF.

    ENDLOOP.

    IF NOT itab_zycit003_del[] IS INITIAL.

      LOOP AT itab_zycit003_aux2.

        DELETE FROM /pws/zycit374

               WHERE nrseq EQ itab_zycit003_aux2-nrseq

               AND   ebeln EQ itab_zycit003_aux2-ebeln

               AND   ebelp EQ itab_zycit003_aux2-ebelp.

        DELETE FROM /pws/zycit396

               WHERE nrseq EQ itab_zycit003_aux2-nrseq

               AND   ebeln EQ itab_zycit003_aux2-ebeln

               AND   ebelp EQ itab_zycit003_aux2-ebelp.

      ENDLOOP.

      IF /pws/zycie001-regime EQ '13'.

        LOOP AT itab_zycit003_del.

          READ TABLE itab_zycit003

              WITH KEY ebeln = itab_zycit003_del-ebeln

                       ebelp = itab_zycit003_del-ebelp.

          IF sy-subrc NE 0.

            DELETE FROM /pws/zycit003

                   WHERE nrseq     = /pws/zycie001-nrseq

                     AND ebeln     = itab_zycit003_del-ebeln

                     AND ebelp     = itab_zycit003_del-ebelp.

* << Fim da exclusão

          ENDIF.

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

        ENDLOOP.

      ENDIF.

    ENDIF.

* << Fim da exclusão

    LOOP AT itab_zycit003 WHERE qtd_iten EQ 0.

    ENDLOOP.

    IF sy-subrc EQ 0.

      v_msg = 'X' .

    ENDIF.

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

    IF v_msg EQ 'X'.

* << Fim da exclusão

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

    IF v_msg EQ 'X' .

      IF NOT /pws/zycie001-nrseq IS INITIAL.

* << Fim da inclusão

      SELECT SINGLE * FROM /pws/zycit026

      WHERE nrseq = /pws/zycie001-nrseq.

      IF sy-subrc = 0.

        MESSAGE i015 WITH text-489 text-490 text-491.

        EXIT.

      ENDIF.

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

      SELECT SINGLE * FROM /pws/zycit008                "#EC CI_NOFIELD

* << Fim da exclusão

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

       SELECT SINGLE * FROM /pws/zycit008               "#EC CI_NOFIELD

* << Fim da inclusão

         WHERE nrseq = /pws/zycie001-nrseq

           AND tpgto = 'D'.

      IF sy-subrc EQ 0.

        MESSAGE i015 WITH text-489 text-490 text-492.

        EXIT.

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

        ENDIF.

* << Fim da inclusão

      ENDIF.

      MESSAGE i015 WITH text-261 text-260.

      DELETE itab_zycit003 WHERE qtd_iten EQ '0'.

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

    ENDIF.

    MOVE itab_zycit003[] TO itab_zycit003_back[].

    DESCRIBE TABLE itab_zycit003 LINES v_lino.

    IF v_lino EQ 0.

      CLEAR: /pws/zycie001-waers   , /pws/zycie000-waers   ,

             /pws/zycie001-lifnr   , /pws/zycie000-lifnr   ,

             /pws/zycie001-inco1   , wa_zycit001-waers,

             wa_zycit001-lifnr, wa_zycit001-inco1.

    ENDIF.

    CALL FUNCTION '/PWS/CIBAPI_EMBARQUE_UPDATE'

         EXPORTING

              zycit001   = /pws/zycie001

              okcode     = okcode

              zycit133   = /pws/zycie133

              zycit134   = /pws/zycie134

              zycit133a  = /pws/zycie133a

         IMPORTING

              zycit001e  = /pws/zycie001

              zycit133e  = /pws/zycie133

              zycit134e  = /pws/zycie134

              zycit133ae = /pws/zycie133a

              v_sair     = v_sair

         TABLES

              t_zycit003 = itab_zycit003

              t_return   = itab_return

              t_zycit125 = itab_zycit125

              t_zycit503 = itab_zycit503

              t_zycit374 = itab_zycit374

              t_zycit396 = itab_zycit396

              t_zycit354 = itab_zycit354.

    LOOP AT itab_zycit003.

     READ TABLE itab_zycit003_back WITH KEY

                                             ebeln = itab_zycit003-ebeln

                                            ebelp = itab_zycit003-ebelp.

      IF sy-subrc = 0.

        itab_zycit003-slqtde = itab_zycit003_back-slqtde.

        itab_zycit003-uebto  = itab_zycit003_back-uebto.

        itab_zycit003-uebtk  = itab_zycit003_back-uebtk.

        itab_zycit003-noinitial = itab_zycit003_back-noinitial.

        itab_zycit003-mark = itab_zycit003_back-mark .

        itab_zycit003-idnlf  = itab_zycit003_back-idnlf.

        itab_zycit003-invoiced = itab_zycit003_back-invoiced.

        itab_zycit003-sld_da = itab_zycit003_back-sld_da.

        MODIFY itab_zycit003.

      ENDIF.

    ENDLOOP.

    IF v_enqueue IS INITIAL and

       not /pws/zycie001-nrseq is initial.

      v_enqueue = 'X'.

      CALL FUNCTION '/PWS/ZYCI_ENQUEUE_ZYCIT001'

           EXPORTING

                nrseq = /pws/zycie001-nrseq.

    ENDIF.

    read table itab_return with key type = 'E'

                                 NUMBER = '138'.

    if sy-subrc = 0.

      message i138.

      p_abort = 'X'.

      exit.

    endif.

    IF v_sair = 'X'.

      EXIT.

    ENDIF.

    read table itab_return with key type = 'S'

                                 NUMBER = '017'.

    if sy-subrc = 0.

      message s017 with itab_return-MESSAGE_V1.

    endif.

    SET PARAMETER ID '/PWS/ZYCIP001' FIELD /pws/zycie001-nrseq.

    IF /pws/zycie001-status NE wa_zycit001-status.

      CLEAR it_zycit255. REFRESH it_zycit255.

      MOVE: sy-mandt           TO it_zycit255-mandt,

            /pws/zycie001-nrseq     TO it_zycit255-nrseq,

            /pws/zycie001-status    TO it_zycit255-status,

            sy-datlo           TO it_zycit255-data,

            sy-uzeit           TO it_zycit255-hora,

            sy-uname           TO it_zycit255-usuario.

      APPEND it_zycit255.

      INSERT INTO /pws/zycit255 VALUES it_zycit255.

* << Fim da inclusão

    ENDIF.

    LOOP AT itab_zycit003.

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

      itab_zycit003-nrseq = /pws/zycie001-nrseq.

* << Fim da exclusão

      IF /pws/zycie001-regime NE '16' AND /pws/zycie001-regime NE '13'

         AND /pws/zycie001-regime NE '14'.

        CLEAR /pws/zycit013.

        MOVE-CORRESPONDING itab_zycit003 TO /pws/zycit013.

        MODIFY /pws/zycit013.

      ENDIF.

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

    ENDLOOP.

    DELETE FROM /pws/zycit503 WHERE nrseq = /pws/zycie001-nrseq.

    MODIFY /pws/zycit503 FROM TABLE itab_zycit503.

    IF v_sair NE 'X'.

      LOOP AT itab_zycit003.

        itab_zycit003-nrseq = /pws/zycie001-nrseq.

        MODIFY itab_zycit003 INDEX sy-tabix.

* << Fim da exclusão

      ENDLOOP.

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

      MODIFY /pws/zycit003 FROM TABLE itab_zycit003.

    ELSE.

      EXIT.

    ENDIF.

* << Fim da exclusão

    LOOP AT itab_zycit467_del.

      SELECT SINGLE * FROM /pws/zycit463 INTO wa_zycit463

      WHERE nrseqda     = itab_zycit467_del-nrseqda

...

 

...

                                       AND /pws/zycie001-regime NE '14'.

          CLEAR /pws/zycit013.

          MOVE-CORRESPONDING itab_zycit003_aux2 TO /pws/zycit013.

          MODIFY /pws/zycit013.

          CLEAR itab_zycit013.

          MOVE /pws/zycit013 TO itab_zycit013.

          MODIFY itab_zycit013 TRANSPORTING slqtde menge

                 WHERE ebeln     = itab_zycit003_aux2-ebeln

                   AND ebelp     = itab_zycit003_aux2-ebelp.

        ENDIF.

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

        DELETE FROM /pws/zycit003

               WHERE nrseq     = itab_zycit003_aux2-nrseq

                 AND ebeln     = itab_zycit003_aux2-ebeln

                 AND ebelp     = itab_zycit003_aux2-ebelp.

* << Fim da exclusão

        IF itab_zycit003_aux2-menge EQ itab_zycit003_aux2-slqtde.

          DELETE itab_zycit013

                 WHERE ebeln     = itab_zycit003_aux2-ebeln

                   AND ebelp     = itab_zycit003_aux2-ebelp.

          DELETE FROM /pws/zycit013

                 WHERE ebeln     = itab_zycit003_aux2-ebeln

                   AND ebelp     = itab_zycit003_aux2-ebelp.

        ENDIF.

        CLEAR  itab_zycit003_aux2.

      ENDIF.

...

 

...

    REFRESH itab_zycit003_aux2.

    MOVE itab_zycit003[] TO itab_zycit003_aux2[].

    DESCRIBE TABLE itab_zycit003 LINES v_lino.

    IF v_lino EQ 0.

      DELETE FROM /pws/zycit036

             WHERE nrseq  = /pws/zycie001-nrseq.

      CLEAR: /pws/zycie001-waers   , /pws/zycie000-waers   ,

             /pws/zycie001-lifnr   , /pws/zycie000-lifnr   ,

             /pws/zycie001-inco1   , wa_zycit001-waers,

             wa_zycit001-lifnr, wa_zycit001-inco1.

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

      MODIFY /pws/zycit001 FROM /pws/zycie001.

    ENDIF.

    IF ( /pws/zycie001-tpdecl EQ 'DI' AND

       /pws/zycie001-regime EQ '05' OR

       /pws/zycie001-regime EQ '12' ) OR

       ( /pws/zycie001-tpdecl EQ 'DSI' AND

       /pws/zycie001-regime EQ '09' ).

      MOVE: /pws/zycie001-nrseq TO /pws/zycie134-nrseq,

            /pws/zycie133-cpf   TO /pws/zycie134-cpfproc,

            /pws/zycie133a-cpf  TO /pws/zycie134-cpfproc2.

      MODIFY /pws/zycit134 FROM /pws/zycie134.

      IF ts_adm-activetab = 'FC_SD_TR'

      OR ts_adm-activetab = 'FC_BX_TR'.

        v_qtd_baixa = itab_zycit374-qtd_baixa.

        IF ts_adm-activetab = 'FC_SD_TR'.

          LOOP AT itab_zycit374 WHERE mark = 'X'.

            MOVE ' ' TO itab_zycit374-mark.

            MODIFY itab_zycit374 INDEX sy-tabix.

          ENDLOOP.

        ENDIF.

        LOOP AT itab_zycit374 WHERE mark = 'X'.

          v_tabix = sy-tabix.

          IF sy-subrc = 0.

          READ TABLE itab_zycit396 WITH KEY nrseq = itab_zycit374-nrseq

                                            ebeln = itab_zycit374-ebeln

                                            ebelp = itab_zycit374-ebelp.

            MOVE v_qtd_baixa TO itab_zycit374-qtd_baixa.

            MODIFY itab_zycit374 INDEX v_tabix.

          ENDIF.

        ENDLOOP.

        READ TABLE itab_zycit374 WITH KEY mark = 'X'.

        DELETE FROM /pws/zycit374 WHERE nrseq = itab_zycit003-nrseq

                                   AND  ebelp = itab_zycit003-ebelp

                                   AND  ebeln = itab_zycit003-ebeln.

        MODIFY /pws/zycit374 FROM TABLE itab_zycit374.

        IF ts_adm-activetab = 'FC_BX_TR'.

          DELETE FROM /pws/zycit396 WHERE nrseq = itab_zycit374-nrseq

                                    AND ebeln = itab_zycit374-ebeln

                                    AND ebelp = itab_zycit374-ebelp.

          MODIFY /pws/zycit396 FROM TABLE itab_zycit396.

        ENDIF.

      ENDIF.

      MODIFY /pws/zycit133 FROM /pws/zycie133.

      MODIFY /pws/zycit133 FROM /pws/zycie133a.

      MOVE: /pws/zycie134  TO wa_zycit134,

            /pws/zycie133  TO wa_zycit133,

            /pws/zycie133a TO wa_zycit133a.

    ENDIF.

    SELECT SINGLE * FROM /pws/zycit094                  "#EC CI_NOFIRST

        INTO /pws/zycit094

         WHERE nrseq = /pws/zycie001-nrseq.

    IF sy-subrc = 0.

      SELECT SINGLE * FROM

      /pws/zycit093 INTO /pws/zycit093

        WHERE nrseqce = /pws/zycit094-nrseqce.

      IF sy-subrc = 0.

        /pws/zycit093-meiotransp = /pws/zycie001-meioemba.

        /pws/zycit093-embarca = /pws/zycie001-navio.

        IF /pws/zycit000 IS INITIAL.

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

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

* << Fim da exclusão

        ENDIF.

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

        IF /pws/zycit000-flagbl IS INITIAL.

          /pws/zycit093-paemb      = /pws/zycit001-paorigem.

          /pws/zycit093-padest     = /pws/zycit001-padest.

          /pws/zycit093-paispae    = /pws/zycit001-paispao.

        ENDIF.

        MODIFY /pws/zycit093.

      ENDIF.

    ENDIF.

* << Fim da exclusão

    IF NOT /pws/zycie356 IS INITIAL.

      MODIFY /pws/zycit356 FROM /pws/zycie356.

    ENDIF.

    IF /pws/zycie001-regime EQ '14' OR /pws/zycie001-regime EQ '16'.

      PERFORM salva_dados_rc.

      PERFORM salva_dados_da.

    ENDIF.

    DELETE FROM /pws/zycit001 WHERE nrseq = space.

  ENDIF.

 

...

 

...

      ENDLOOP.

      EXIT.

    ENDIF.

    PERFORM carrega_saldo.

    PERFORM lock_pedido.

  ENDIF.

  LOOP AT itab_zycit003.

    IF /pws/zycie001-regime NE '16' AND /pws/zycie001-regime NE '13'.

      READ TABLE itab_zycit013 WITH KEY ebeln = itab_zycit003-ebeln

                                        ebelp = itab_zycit003-ebelp.

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

      if sy-subrc = 0.

* << Fim da inclusão

      MOVE: itab_zycit013-slqtde TO itab_zycit003-slqtde,

            itab_zycit013-menge  TO itab_zycit003-menge,

            itab_zycit013-uebto  TO itab_zycit003-uebto,

            itab_zycit013-uebtk  TO itab_zycit003-uebtk,

            'X'                  TO itab_zycit003-noinitial.

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

      endif.

* << Fim da inclusão

    ENDIF.

    PERFORM calc_saldo.

...

 

...

 

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

  PERFORM grava_tabelas.

* << Fim da exclusão

  CLEAR:   itab_zycit079 ,

           itab_zycit078 ,

           itab_log      ,

           itab_ncm      ,

           itab_vincula  ,

...

 

...

 

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

  PERFORM grava_tabelas.

* << Fim da exclusão

ENDFORM.

...

 

...

 

...

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

  UPDATE /pws/zycit003 SET nrseqli = itab_vincula-nrseqli

                      nrli    = itab_vincula-nrli

                  WHERE ebeln = itab_vincula-ebeln

                    AND ebelp = itab_vincula-ebelp

                    AND nrseq = /pws/zycie001-nrseq.

* << Fim da exclusão

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

  read table itab_zycit354 with key nrseq = itab_zycit003-nrseq

                                    ebeln = itab_zycit003-ebeln

                                    ebelp = itab_zycit003-ebelp.

  if sy-subrc = 0.

    clear itab_zycit354-liobrig.

    modify itab_zycit354 index sy-tabix.

  endif.

* << Fim da inclusão

  SELECT SINGLE * FROM /pws/zycit078

           WHERE nrseqli EQ itab_vincula-nrseqli.

  IF NOT /pws/zycit078-nrseqlisuba IS INITIAL.

    MOVE 'X' TO itab_zycit003-nrlisub.

    MODIFY itab_zycit003 TRANSPORTING nrlisub

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

                    WHERE ebeln = itab_vincula-ebeln

                      AND ebelp = itab_vincula-ebelp

                      AND nrseq = /pws/zycie001-nrseq.

    UPDATE /pws/zycit003 SET nrlisub = 'X'

* << Fim da exclusão

                    WHERE ebeln = itab_vincula-ebeln

                      AND ebelp = itab_vincula-ebelp

                      AND nrseq = /pws/zycie001-nrseq.

  ENDIF.

  CLEAR itab_zycit079. REFRESH itab_zycit079.

  SELECT * FROM /pws/zycit079 INTO TABLE itab_zycit079

         WHERE nrseqli EQ /pws/zycit078-nrseqli.

  READ TABLE itab_zycit079 WITH KEY ebeln = itab_vincula-ebeln

                                    ebelp = itab_vincula-ebelp.

  IF sy-subrc EQ 0.

    MOVE: /pws/zycit078-nrseqd     TO itab_zycit003-nrseqd    ,

          /pws/zycit078-nrdrawback TO itab_zycit003-nrdrawback,

          /pws/zycit078-modalidade TO itab_zycit003-modalidade.

    MODIFY itab_zycit003 TRANSPORTING nrseqd

                                      nrdrawback

                                      modalidade

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

                         WHERE ebeln = itab_vincula-ebeln

                           AND ebelp = itab_vincula-ebelp

                           AND nrseq = /pws/zycie001-nrseq.

    UPDATE /pws/zycit003 SET nrseqd     = /pws/zycit078-nrseqd

                        nrdrawback = /pws/zycit078-nrdrawback

                        modalidade = /pws/zycit078-modalidade

* << Fim da exclusão

                    WHERE ebeln = itab_vincula-ebeln

                      AND ebelp = itab_vincula-ebelp

                      AND nrseq = /pws/zycie001-nrseq.

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

  ENDIF.

  UPDATE /pws/zycit079 SET nrseq = /pws/zycie001-nrseq

                  WHERE ebeln = itab_vincula-ebeln

                    AND ebelp = itab_vincula-ebelp

                    AND nrseqli = itab_vincula-nrseqli.

  SELECT * FROM /pws/zycit079 INTO TABLE itab_zycit079

         WHERE nrseqli EQ /pws/zycit078-nrseqli

         AND   nrseq   EQ space.

  IF sy-subrc NE 0.

    UPDATE /pws/zycit078 SET status = 'VIN'

                        nrseq  = /pws/zycie001-nrseq

                    WHERE nrseqli = itab_vincula-nrseqli

                      AND nrli    = itab_vincula-nrli

                      AND tpli    = 'N'.

* << Fim da exclusão

  ENDIF.

ENDFORM.

FORM realizando_vin_lsi.

  MOVE: itab_vincula-nrseqli TO itab_zycit003-nrseqlsi,

        itab_vincula-nrli    TO itab_zycit003-nrlsi.

  MODIFY itab_zycit003 TRANSPORTING nrseqlsi nrlsi

                  WHERE ebeln = itab_vincula-ebeln

                    AND ebelp = itab_vincula-ebelp

                    AND nrseq = /pws/zycie001-nrseq.

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

  UPDATE /pws/zycit003 SET nrseqlsi = itab_vincula-nrseqli

                      nrlsi    = itab_vincula-nrli

                  WHERE ebeln = itab_vincula-ebeln

                    AND ebelp = itab_vincula-ebelp

                    AND nrseq = /pws/zycie001-nrseq.

* << Fim da exclusão

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

  read table itab_zycit354 with key nrseq = itab_zycit003-nrseq

                                    ebeln = itab_zycit003-ebeln

                                    ebelp = itab_zycit003-ebelp.

  if sy-subrc = 0.

    clear itab_zycit354-liobrig.

    modify itab_zycit354 index sy-tabix.

  endif.

* << Fim da inclusão

  SELECT SINGLE * FROM /pws/zycit078

           WHERE nrseqli EQ itab_vincula-nrseqli.

  IF NOT /pws/zycit078-nrseqlisuba IS INITIAL.

    MOVE 'X' TO itab_zycit003-nrlsisub.

    MODIFY itab_zycit003 TRANSPORTING nrlsisub

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

                    WHERE ebeln = itab_vincula-ebeln

                      AND ebelp = itab_vincula-ebelp

                      AND nrseq = /pws/zycie001-nrseq.

    UPDATE /pws/zycit003 SET nrlsisub = 'X'

* << Fim da exclusão

                    WHERE ebeln = itab_vincula-ebeln

                      AND ebelp = itab_vincula-ebelp

                      AND nrseq = /pws/zycie001-nrseq.

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

  ENDIF.

  UPDATE /pws/zycit079 SET nrseq = /pws/zycie001-nrseq

                  WHERE ebeln = itab_vincula-ebeln

                    AND ebelp = itab_vincula-ebelp

                    AND nrseqli = itab_vincula-nrseqli.

  SELECT * FROM /pws/zycit079 INTO TABLE itab_zycit079

         WHERE nrseqli EQ /pws/zycit078-nrseqli

         AND   nrseq   EQ space.

  IF sy-subrc NE 0.

    UPDATE /pws/zycit078 SET status = 'VIN'

                        nrseq  = /pws/zycie001-nrseq

                    WHERE nrseqli = itab_vincula-nrseqli

                      AND nrli    = itab_vincula-nrli

                      AND tpli    = 'S'.

* << Fim da exclusão

  ENDIF.

ENDFORM.

FORM realizando_desv_li.

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

  UPDATE /pws/zycit079 SET nrseq = space

                WHERE nrseqli = itab_zycit003-nrseqli

                  AND ebeln = itab_zycit003-ebeln

                  AND ebelp = itab_zycit003-ebelp.

  IF itab_zycit003-nrli IS INITIAL.

    UPDATE /pws/zycit078 SET status = 'COM'

                        nrseq  = space

                    WHERE nrseqli = itab_zycit003-nrseqli

                      AND nrli    = itab_zycit003-nrli

                      AND tpli    = 'N'.

  ELSE.

    UPDATE /pws/zycit078 SET status = 'VAL'

                        nrseq  = space

                    WHERE nrseqli = itab_zycit003-nrseqli

                      AND nrli    = itab_zycit003-nrli

                      AND tpli    = 'N'.

  ENDIF.

  SELECT SINGLE * FROM /pws/zycit078

  WHERE nrseqli EQ itab_zycit003-nrseqli.

  IF NOT /pws/zycit078-nrseqlisub IS INITIAL.

    UPDATE /pws/zycit079 SET nrseq = space

                  WHERE nrseqli = /pws/zycit078-nrseqlisub

                    AND ebeln = itab_zycit003-ebeln

                    AND ebelp = itab_zycit003-ebelp.

    IF itab_zycit003-nrli IS INITIAL.

      UPDATE /pws/zycit078 SET status = 'COM'

                          nrseq  = space

                      WHERE nrseqli = /pws/zycit078-nrseqlisub

                        AND tpli    = 'N'.

    ELSE.

      UPDATE /pws/zycit078 SET status = 'VAL'

                          nrseq  = space

                      WHERE nrseqli = /pws/zycit078-nrseqlisub

                        AND tpli    = 'N'.

    ENDIF.

  ENDIF.

* << Fim da exclusão

  MOVE: space TO itab_zycit003-nrseqli   ,

        space TO itab_zycit003-nrlisub   ,

        space TO itab_zycit003-nrli      ,

        space TO itab_zycit003-nrseqd    ,

        space TO itab_zycit003-nrdrawback,

        space TO itab_zycit003-modalidade.

  MODIFY itab_zycit003.

  MESSAGE s015 WITH text-115.

ENDFORM.

FORM realizando_desv_lsi.

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

  UPDATE /pws/zycit079 SET nrseq = space

                WHERE nrseqli = itab_zycit003-nrseqlsi

                  AND ebeln = itab_zycit003-ebeln

                  AND ebelp = itab_zycit003-ebelp.

  IF itab_zycit003-nrlsi IS INITIAL.

    UPDATE /pws/zycit078 SET status = 'COM'

                        nrseq  = space

                    WHERE nrseqli = itab_zycit003-nrseqlsi

                      AND nrli    = itab_zycit003-nrlsi

                      AND tpli    = 'S'.

  ELSE.

    UPDATE /pws/zycit078 SET status = 'COM'

                        nrseq  = space

                    WHERE nrseqli = itab_zycit003-nrseqlsi

                      AND nrli    = itab_zycit003-nrlsi

                      AND tpli    = 'S'.

  ENDIF.

  SELECT SINGLE * FROM /pws/zycit078

  WHERE nrseqli EQ itab_zycit003-nrseqlsi.

  IF NOT /pws/zycit078-nrseqlisub IS INITIAL.

    UPDATE /pws/zycit079 SET nrseq = space

                 WHERE nrseqli = /pws/zycit078-nrseqlisub

                   AND ebeln = itab_zycit003-ebeln

                   AND ebelp = itab_zycit003-ebelp.

    IF itab_zycit003-nrlsi IS INITIAL.

      UPDATE /pws/zycit078 SET status = 'COM'

                          nrseq  = space

                      WHERE nrseqli = /pws/zycit078-nrseqlisub

                        AND tpli    = 'S'.

    ELSE.

      UPDATE /pws/zycit078 SET status = 'COM'

                          nrseq  = space

                      WHERE nrseqli = /pws/zycit078-nrseqlisub

                        AND tpli    = 'S'.

    ENDIF.

  ENDIF.

* << Fim da exclusão

  MOVE: space TO itab_zycit003-nrseqlsi   ,

        space TO itab_zycit003-nrlsisub   ,

        space TO itab_zycit003-nrlsi      .

  MODIFY itab_zycit003.

  MESSAGE s015 WITH text-115.

ENDFORM.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F02

 

...

 

FORM verifica_alteracoes.

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

          PERFORM grava_tabelas changing v_abort.

* << Fim da inclusão

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

  IF ( itab_zycit003[] NE itab_zycit003_aux2[] OR

     /pws/zycie001 NE wa_zycit001 OR

     itab_zycit125[] NE itab_zycit125_aux[] )  AND

     NOT /pws/zycie001-j_1bbranch IS INITIAL  .

    CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'

         EXPORTING

              defaultoption = 'Y'

              diagnosetext1 = text-012

              textline1     = text-065

              titel         = text-064

         IMPORTING

              answer        = v_resposta

         EXCEPTIONS

              OTHERS        = 1.

    IF sy-subrc EQ 0 AND v_resposta EQ 'J'.

      PERFORM grava_tabelas.

* << Fim da exclusão

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

          if v_abort = 'X'.

            exit.

* << Fim da inclusão

    ENDIF.

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

  ENDIF.

* << Fim da exclusão

ENDFORM.

...

 

 

 

...

          itab_zycit234-flag_5  IS INITIAL     AND

          itab_zycit234-flag_6  IS INITIAL     AND

          itab_zycit234-flag_7  IS INITIAL     AND

          itab_zycit234-flag_8  IS INITIAL     AND

          itab_zycit234-flag_9  IS INITIAL     AND

          itab_zycit234-flag_10 IS INITIAL.

        v_msg_a = 0.

      ENDIF.

    ENDLOOP.

    IF ( v_msg_a = '0' AND v_msg_n <> '1' ).

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

      MODIFY /pws/zycit354 FROM TABLE itab_zycit354.

* << Fim da exclusão

    ELSEIF ( v_msg_a <> '0' AND v_msg_n = '1' ) OR

           ( v_msg_a  = '0' AND v_msg_n = '1' ).

      CALL FUNCTION 'MESSAGES_SHOW'

           EXPORTING

                object          = '/PWS/SAPMZYCI001'

                i_amodal_window = ' '.

      CALL FUNCTION 'MESSAGES_INITIALIZE'.

    ENDIF.

  ENDIF.

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

  MODIFY /pws/zycit354 FROM TABLE itab_zycit354.

* << Fim da exclusão

ENDFORM.

...

 

...

 

    CALL SCREEN '0601' STARTING AT 7 8 ENDING AT 89 12.

    CLEAR itab_logpexpam.

    REFRESH itab_logpexpam.

  ENDIF.

  IF /pws/zycie001-werks IS INITIAL.

    READ TABLE itab_zycit003 INDEX 1.

    MOVE itab_zycit003-werks TO /pws/zycie001-werks.

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

  ENDIF.

  IF NOT /pws/zycie001-bukrs IS INITIAL AND

         /pws/zycie001-nrseq IS INITIAL.

    SELECT * FROM /pws/zyglt006

       INTO TABLE itab_zyglt006

       WHERE codmod EQ 'D'.

    IF sy-subrc EQ 0.

      READ TABLE itab_zyglt006 WITH KEY

                  bukrs      = /pws/zycie001-bukrs

                  j_1bbranch = /pws/zycie001-j_1bbranch.

      IF sy-subrc EQ 0.

        PERFORM find_nrseq_emp USING itab_zyglt006-range

                               CHANGING /pws/zycie001-nrseq.

      ELSE.

        LOOP AT itab_zyglt006 WHERE bukrs EQ /pws/zycie001-bukrs

                              AND j_1bbranch NE /pws/zycie001-j_1bbranch

                              AND j_1bbranch NE space.

          MESSAGE i061 WITH text-135.

          EXIT.

        ENDLOOP.

        READ TABLE itab_zyglt006 WITH KEY bukrs = /pws/zycie001-bukrs

                                        j_1bbranch = space.

        IF sy-subrc EQ 0.

          PERFORM find_nrseq_emp USING itab_zyglt006-range

                                 CHANGING /pws/zycie001-nrseq.

        ELSE.

          MESSAGE i061 WITH text-136.

        ENDIF.

      ENDIF.

    ELSE.

      PERFORM find_nrseqc.

      PERFORM find_embarca.

    ENDIF.

* << Fim da exclusão

  ENDIF.

  PERFORM: busca_cnpj,

           load_text.

  IF v_tcode EQ ' '.

    v_tcode = sy-tcode.

  ENDIF.

  SELECT SINGLE name

         FROM j_1bbranch

         INTO (v_descrimp)

         WHERE bukrs = /pws/zycie001-bukrs

...

 

 

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F03

 

...

 

 

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

  PERFORM grava_tabelas.

* << Fim da exclusão

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

  PERFORM grava_tabelas CHANGING v_abort.

  IF v_abort = 'X'.

    EXIT.

  ENDIF.

* << Fim da inclusão

  REFRESH itab_zycit016.

  CLEAR itab_zycit016.

...

 

...

 

FORM carrega_saldo.

  IF sy-tcode EQ '/PWS/ZYCI001_C' AND v_salvo NE 'X'.

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

    PERFORM busca_sequencial.

* << Fim da exclusão

  ENDIF.

...

 

...

      LOOP AT itab_zycit013.

        READ TABLE itab_zycit003_util WITH KEY

                       ebeln = itab_zycit013-ebeln

                       ebelp = itab_zycit013-ebelp.

        IF sy-subrc NE 0.

          itab_pedido_temp-ebeln = itab_zycit013-ebeln.

          itab_pedido_temp-ebelp = itab_zycit013-ebelp.

          APPEND itab_pedido_temp.

        ENDIF.

      ENDLOOP.

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

      DELETE itab_zycit003_util WHERE nrseq EQ /pws/zycie001-nrseq.

* << Fim da exclusão

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

      DELETE itab_zycit003_util WHERE nrseq EQ /pws/zycie001-nrseq OR

                                      nrseq IS initial.

* << Fim da inclusão

      LOOP AT itab_zycit003 .

        itab_zycit003_util-nrseq = itab_zycit003-nrseq.

        itab_zycit003_util-ebeln = itab_zycit003-ebeln.

        itab_zycit003_util-ebelp = itab_zycit003-ebelp.

        itab_zycit003_util-qtd_iten = itab_zycit003-qtd_iten.

        APPEND itab_zycit003_util.

      ENDLOOP.

      IF NOT itab_pedido_temp[] IS INITIAL.

     IF /pws/zycie001-regime = '16' AND /pws/zycie001-tpdecl = 'DI' AND

                                                           sy-subrc = 0.

...

 

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

Modificações efetuadas em REPS /PWS/MZYCI001I01

 

...

        ENDIF.

        LEAVE PROGRAM .

      ELSE.

        LEAVE PROGRAM.

      ENDIF.

    WHEN '0050'.

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

        IF v_msg EQ 'E' .

          EXIT.

        ENDIF.

* >> Início da exclusão: MODULE USER_COMMAND_EXIT

        LOOP AT itab_zycit003_aux2.

          READ TABLE itab_zycit003

              WITH KEY nrseq = itab_zycit003_aux2-nrseq

                       ebeln = itab_zycit003_aux2-ebeln

                       ebelp = itab_zycit003_aux2-ebelp.

          IF sy-subrc = 0.

            MOVE itab_zycit003-invoiced TO itab_zycit003_aux2-invoiced.

            MODIFY itab_zycit003_aux2.

          ENDIF.

        ENDLOOP.

        IF ( itab_zycit003[] NE itab_zycit003_aux2[] OR

           /pws/zycie001 NE wa_zycit001 OR

           itab_zycit125[] NE itab_zycit125_aux[] OR

           /pws/zycie133 NE wa_zycit133 OR

           /pws/zycie133a NE wa_zycit133a )  AND

           NOT /pws/zycie001-j_1bbranch IS INITIAL  .

          CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'

               EXPORTING

                    defaultoption = 'Y'

                    diagnosetext1 = text-012

                    textline1     = text-011

                    titel         = text-010

               IMPORTING

                    answer        = v_resposta

               EXCEPTIONS

                    OTHERS        = 1.

          IF sy-subrc EQ 0 AND v_resposta EQ 'J'.

* << Fim da exclusão

            IF /pws/zycie001-dtprevemb > /pws/zycie001-dtprevcheg.

              IF NOT /pws/zycie001-dtprevcheg IS INITIAL.

                MESSAGE i015 WITH text-250 text-251 text-252.

              ENDIF.

            ELSE.

              MOVE itab_zycit003[] TO itab_zycit003_ver[].

              LOOP AT itab_zycit003_ver.

                v_qtd_exc2 = 0.

                v_qtd_exc22 = 0.

                SELECT SUM( qtd_iten ) FROM /pws/zycit003

                                INTO  v_qtd_exc22

                                WHERE ebeln = itab_zycit003_ver-ebeln

                   AND ebelp = itab_zycit003_ver-ebelp. "#EC CI_NOFIRST

                v_qtd_exc2 = itab_zycit003_ver-uebto *

                        itab_zycit003_ver-menge / 100.

                v_qtd_exc2 = v_qtd_exc2 + itab_zycit003_ver-menge.

                IF itab_zycit003_ver-qtd_iten > v_qtd_exc22.

                  itab_zycit003_ver-qtd_iten =

                         v_qtd_exc2 - itab_zycit003_ver-qtd_iten.

                  READ TABLE itab_zycit003

                  WITH KEY nrseq = itab_zycit003_ver-nrseq

                           ebeln = itab_zycit003_ver-ebeln

                           ebelp = itab_zycit003_ver-ebelp.

                  itab_zycit003-qtd_iten = itab_zycit003_ver-qtd_iten.

                  MODIFY itab_zycit003 TRANSPORTING qtd_iten

                  WHERE nrseq = itab_zycit003_ver-nrseq

                    AND ebeln = itab_zycit003_ver-ebeln

                    AND ebelp = itab_zycit003_ver-ebelp.

                ENDIF.

              ENDLOOP.

* >> Início da exclusão: MODULE USER_COMMAND_EXIT

             PERFORM grava_tabelas.

            ENDIF.

          ENDIF.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_EXIT

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

* << Fim da inclusão

        ENDIF.

* >> Início da exclusão: MODULE USER_COMMAND_EXIT

        IF v_resposta EQ 'A'.

          CLEAR v_resposta.

          EXIT.

* << Fim da exclusão

        ENDIF.

      ENDIF.

      SET PARAMETER ID '/PWS/ZYCIP001' FIELD /pws/zycie001-nrseq.

      CLEAR:

        v_resposta, v_cont,

        /pws/zycie001, /pws/zycie000, /pws/zycie000a, /pws/zycie003.

      FREE:

        itab_zycit003_aux2.

      IF sy-tcode = '/PWS/ZYCI001_C'

       OR okcode = '%EX'.

        CLEAR: v_dposto, v_ddespach, v_dagente.

...

 

 

...

        WHEN 'DESM'.

          v_mark = ' '.

          IF ts_embar-activetab EQ 'FC_DA'.

            LOOP AT itab_zycit003.

              itab_zycit003-mark = ' '.

              MODIFY itab_zycit003.

            ENDLOOP.

          ENDIF.

        WHEN 'SAVE'.

          PERFORM atualiza_itens.

* >> Início da exclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

          endif.

* << Fim da inclusão

          IF NOT v_sair IS INITIAL.

            EXIT.

          ENDIF.

          IF /pws/zycie001-nrseq IS INITIAL.

            EXIT.

          ENDIF.

          PERFORM log_mensagens.

          LOOP AT itab_zycit125 WHERE lifnr EQ space.

          ENDLOOP.

          IF sy-subrc NE 0.

...

 

...

              EXIT.

            ENDIF.

            SELECT SINGLE * FROM /pws/zycit026          "#EC CI_NOFIELD

               WHERE nrseq  EQ /pws/zycie001-nrseq

                 AND status EQ 'A'.

            IF sy-subrc IS INITIAL.

              MESSAGE w015 WITH text-512 text-513.

              EXIT.

            ENDIF.

            IF sy-tcode EQ '/PWS/ZYCI001_C' AND v_salvo NE 'X'.

* >> Início da exclusão: MODULE USER_COMMAND_0050

              PERFORM busca_sequencial.

* << Fim da exclusão

            ELSE.

* >> Início da exclusão: MODULE USER_COMMAND_0050

              PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

          endif.

* << Fim da inclusão

            ENDIF.

          ENDIF.

          PERFORM atualiza_variaveis.

          SELECT SINGLE * FROM /pws/zycit120

                 WHERE modalidade EQ /pws/zycie001-modalidade.

          IF NOT /pws/zycit120-checkdi IS INITIAL.

            SELECT * FROM /pws/zycit100                 "#EC CI_NOFIRST

                     INTO TABLE it_100_temp

                     WHERE nrseq EQ /pws/zycie001-nrseq.

            IF sy-subrc EQ 0.

              MESSAGE s015 WITH text-181 text-182.

              EXIT.

            ENDIF.

          ENDIF.

...

 

...

                itab_zycit125-mark = 'X'.

                MODIFY itab_zycit125.

              ENDLOOP.

            WHEN 'FC_DA'.

              LOOP AT itab_zycit003.

                itab_zycit003-mark = 'X'.

                MODIFY itab_zycit003.

              ENDLOOP.

          ENDCASE.

        WHEN 'FACPED'.

* >> Início da exclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

          endif.

* << Fim da inclusão

          PERFORM call_facped.

        WHEN 'DETITEM'.

          PERFORM trata_detitem.

...

 

...

        ENDIF.

        IF v_tcode EQ '/PWS/ZYCI001_E'.

          v_tcode =  '/PWS/ZYCI001_A'.

        ENDIF.

      WHEN 'DI' OR 'ANA'.

        IF /pws/zycie001-modalidade EQ '02'.

          MESSAGE i013 WITH text-202.

          EXIT.

        ENDIF.

        IF v_status_s NE 0.

* >> Início da exclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

          endif.

* << Fim da inclusão

        ENDIF.

        PERFORM check USING vl_erro.

        IF NOT vl_erro IS INITIAL.

          MESSAGE e013 WITH text-234.

        ENDIF.

        CLEAR: v_errodb, v_pedidodb.

        PERFORM verif_db USING v_errodb

                               v_pedidodb.

        IF NOT v_errodb IS INITIAL.

          MESSAGE e015 WITH text-046 v_pedidodb text-469.

...

 

...

          PERFORM call_di_mult.

        ELSE.

          PERFORM call_di.

        ENDIF.

        SELECT SINGLE status

               FROM /pws/zycit001

               INTO /pws/zycie001-status

               WHERE nrseq = /pws/zycie001-nrseq.

      WHEN 'FAT'.

        IF v_status_s NE 0.

* >> Início da exclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

* << Fim da inclusão

        ENDIF.

* >> Início da inclusão: MODULE USER_COMMAND_0050

        ENDIF.

* << Fim da inclusão

        IF v_sair EQ 'X'.

          EXIT.

        ENDIF.

        PERFORM verifica_peso.

        PERFORM call_fatura.

      WHEN 'PB_HELP'.

...

 

...

          MESSAGE i013 WITH text-202.

          EXIT.

        ENDIF.

        PERFORM verifica_drawback_li USING v_pedidodb.

        IF NOT v_pedidodb IS INITIAL.

          MESSAGE e015 WITH text-046 v_pedidodb text-519.

          CLEAR: v_pedidodb.

          EXIT.

        ENDIF.

        IF v_status_s NE 0.

* >> Início da exclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

          endif.

* << Fim da inclusão

          PERFORM call_bl.

        ELSE.

          PERFORM call_bl.

        ENDIF.

        SELECT *

         FROM /pws/zycit094                             "#EC CI_NOFIRST

          INTO TABLE itab_zycit094

          FOR ALL ENTRIES IN itab_zycit003

          WHERE nrseq EQ itab_zycit003-nrseq.

      WHEN 'FRETE'.

        IF v_status_s NE 0.

* >> Início da exclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

          endif.

* << Fim da inclusão

        ENDIF.

        PERFORM call_frete.

      WHEN 'DEMURRAGE'.

        IF v_status_s NE 0.

* >> Início da exclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

          endif.

* << Fim da inclusão

        ENDIF.

        PERFORM call_demurrage.

      WHEN 'NOTA'.

        IF /pws/zycie001-modalidade EQ '02'.

          MESSAGE i013 WITH text-202.

          EXIT.

        ENDIF.

        IF v_status_s NE 0.

* >> Início da exclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

          endif.

* << Fim da inclusão

        ENDIF.

        CLEAR v_fat.

        IF NOT itab_zycit003[] IS INITIAL.

          SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

                WHERE nrseq = /pws/zycie001-nrseq

                  AND eliminado = space.

        ENDIF.

        IF NOT itab_zycit263[] IS INITIAL.

          REFRESH itab_temp_seq_pgfat.

          LOOP AT itab_zycit263.

...

 

...

              MESSAGE i013 WITH text-330.

              EXIT.

            ENDIF.

          ENDIF.

          PERFORM call_bt.

        ELSE.

          PERFORM call_rec.

        ENDIF.

      WHEN 'CO'.

        IF v_status_s NE 0.

* >> Início da exclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

* << Fim da inclusão

        ENDIF.

* >> Início da inclusão: MODULE USER_COMMAND_0050

        ENDIF.

* << Fim da inclusão

        PERFORM call_corigem.

      WHEN 'CACL'.

        IF v_status_s NE 0.

* >> Início da exclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

* << Fim da inclusão

        ENDIF.

* >> Início da inclusão: MODULE USER_COMMAND_0050

        ENDIF.

* << Fim da inclusão

        PERFORM call_cacl.

     WHEN 'CEMB'.

        PERFORM call_cemb.

      WHEN 'DETITEM'.

        PERFORM trata_detitem.

      WHEN 'COEMBAR'.

...

 

...

                        titel         = text-456

                   IMPORTING

                        answer        = v_resposta

                   EXCEPTIONS

                        OTHERS        = 1.

              IF v_resposta EQ 'J'.

                /pws/zycie001-status = 'EN'.

                /pws/zycie001-status_e = 'E'.

                /pws/zycie001-dtencer = sy-datlo.

                PERFORM encerr_al.

* >> Início da exclusão: MODULE USER_COMMAND_0050

                PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

          endif.

* << Fim da inclusão

              ENDIF.

            ENDIF.

          ENDIF.

          CLEAR okcode.

          EXIT.

        ENDIF.

        EXPORT v_tcode TO MEMORY ID 'V_TCODE'.

        IF v_status_s = 1.

          SET PARAMETER ID '/PWS/ZYCIP001' FIELD /pws/zycie001-nrseq.

          AUTHORITY-CHECK OBJECT 'S_TCODE'

...

 

...

 

      WHEN 'DLEGAIS'.

        PERFORM call_dados_legais.

      WHEN 'ZYCET042'.

        CALL TRANSACTION '/PWS/ZYCET042'.                "#EC CI_CALLTA

      WHEN 'DA'.

        IF v_status_s NE 0.

* >> Início da exclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0050

          PERFORM grava_tabelas changing v_abort.

          if v_abort = 'X'.

            exit.

          endif.

* << Fim da inclusão

        ENDIF.

        PERFORM call_da.

        SELECT SINGLE status

               FROM /pws/zycit001

               INTO /pws/zycie001-status

               WHERE nrseq = /pws/zycie001-nrseq.

      WHEN 'SELE_DA'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001X01

 

...

 

* >> Início da inclusão:

  data: v_abort.

* << Fim da inclusão

DATA: END OF COMMON PART a.