CE PLUS - Nota 009048

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: LI

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

Data/Hora Última Alteração: 09/03/2010 17:31:26

Descrição da Nota: NECESSÁRIO EXIT DE LI NO BOTÃO DE VINCULAÇÃO DE ATO CONCESSÓRIO

Sintoma

 

Necessário exit de PLI no botão de vinculação de ato concessório

 

Solução

 

Criada chamada de exit LI003 no programa /PWS/SAPMZYCI020

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 09048 Data: 18/09/2009 Hora: 15:59:54

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

 

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

Nota Número              : 09048

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 8.0

Pacote                   : 00001

Agrupamento              : 00114

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

NECESSÁRIO EXIT DE LI NO BOTÃO DE VINCULAÇÃO DE ATO CONCESSÓRIO

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

Palavras Chave:

EXIT - ESPECÍFICO - LI - VINCULAÇÃO - ATO CONCESSÓRIO - DRAWBACK

 

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

Objetos da nota:

DYNP /PWS/SAPMZYCI020                        0710

DYNP /PWS/SAPMZYCI020                        0800

DYNP /PWS/SAPMZYCI020                        0810

REPS /PWS/MZYCI020I01

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI020                        0710

 

MODIFICAR OKCODE "OKCODE"

 

MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0710

PROCESS BEFORE OUTPUT.

 MODULE STATUS_0710.

loop at it_vinlsi with control

     tc_vin_lsi.

  module carrega_it_vinlsi.

endloop.

PROCESS AFTER INPUT.

loop at it_vinlsi.

module carrega_it_vinlsi.

endloop.

* >> Início da exclusão:

 MODULE USER_COMMAND_0710.

* << Fim da exclusão

* >> Início da inclusão:

 MODULE USER_COMMAND.

* << Fim da inclusão

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI020                        0800

 

MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0800

PROCESS BEFORE OUTPUT.

  MODULE STATUS_0800.

  loop at it_vincula with control tc_vincula

    cursor tc_vincula-current_line.

    module carrega_it_vincula.

  endloop.

PROCESS AFTER INPUT.

  loop at it_vincula.

    module modifica_it_vincula.

  endloop.

* >> Início da exclusão:

  MODULE USER_COMMAND_0800.

* << Fim da exclusão

* >> Início da inclusão:

  MODULE USER_COMMAND.

* << Fim da inclusão

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI020                        0810

 

MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0810

PROCESS BEFORE OUTPUT.

 MODULE status_0810.

 module ordena_lista.

   loop at itab_atos2 with control tc_vinculato

    cursor tc_vinculato-current_line.

  endloop.

PROCESS AFTER INPUT.

  loop at itab_atos2.

    module modifica_it_vinculato.

  endloop.

* >> Início da exclusão:

  MODULE user_command_0810.

* << Fim da exclusão

* >> Início da inclusão:

  MODULE user_command.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI020I01

 

...

 

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

MODULE user_command_0800 INPUT.

  DATA: v_check,

        v_j_1bnbm_vin LIKE ekpo-j_1bnbm.

  CASE okcode.

    WHEN 'BACKSUB'.

      LEAVE TO SCREEN 0.

    WHEN 'BACK'.

      CLEAR   it_zycit079.

      REFRESH it_zycit079.

      LEAVE TO SCREEN 0.

    WHEN 'VINCULA'.

      CLEAR v_check.

      LOOP AT it_vincula WHERE marc EQ 'X'.

        v_check = '1'.

      ENDLOOP.

      IF v_check IS INITIAL.

        MESSAGE s015 WITH text-184.

        EXIT.

      ENDIF.

      CLEAR: v_check,

             v_j_1bnbm_vin.

      LOOP AT it_vincula WHERE marc EQ 'X'.

        SELECT SINGLE * FROM ekpo

               WHERE ebeln EQ it_vincula-ebeln

                 AND ebelp EQ it_vincula-ebelp.

        IF v_j_1bnbm_vin IS INITIAL.

          v_j_1bnbm_vin = ekpo-j_1bnbm.

        ENDIF.

        IF v_j_1bnbm_vin NE ekpo-j_1bnbm.

          v_check = '1'.

          MESSAGE s015 WITH text-204 text-205.

          EXIT.

        ENDIF.

      ENDLOOP.

      IF v_check EQ '1'.

        EXIT.

      ENDIF.

      /pws/zycie078-steuc1 = v_j_1bnbm_vin.

      PERFORM load_descncm.

      LOOP AT it_vincula WHERE marc EQ 'X'.

        IF it_vincula-icon NE '@0A\QSTATUS COM ERRO@'.

          READ TABLE it_zycit079 WITH KEY ebelp = it_vincula-ebelp

                                          ebeln = it_vincula-ebeln.

          MOVE: /pws/zycie078-nrseq TO it_zycit079-nrseq,

                text-144       TO /pws/zycie078-status  .

          MODIFY it_zycit079 TRANSPORTING nrseq

                             WHERE ebelp = it_vincula-ebelp

                               AND ebeln = it_vincula-ebeln.

        ELSE.

          CLEAR   it_zycit079.

          REFRESH it_zycit079.

          IF /pws/zycie078-tpli EQ 'N'.

            MESSAGE s015 WITH text-142 text-143.

          ELSEIF /pws/zycie078-tpli EQ 'S'.

            MESSAGE s015 WITH text-142 text-199.

          ENDIF.

          EXIT.

        ENDIF.

      ENDLOOP.

      LOOP AT it_vincula WHERE marc NE 'X'.

        DELETE it_vincula INDEX sy-tabix.

        DELETE it_zycit079 WHERE ebeln EQ it_vincula-ebeln

                             AND ebelp EQ it_vincula-ebelp.

      ENDLOOP.

      MOVE it_vincula[] TO it_vincula_aux[].

      IF it_log[] IS INITIAL.

        MESSAGE s015 WITH text-141.

      ENDIF.

      IF /pws/zycie078-tpli EQ 'N'.

        LEAVE TO SCREEN '100'.

      ELSEIF /pws/zycie078-tpli EQ 'S'.

        LEAVE TO SCREEN '400'.

      ENDIF.

    WHEN 'SELE'.

      GET CURSOR FIELD v_campo VALUE v_valor LINE v_linha.

      IF v_campo EQ 'V_ICON_VIN'.

        v_pos = tc_vincula-top_line + v_linha - 1.

        READ TABLE it_vincula INDEX v_pos.

        v_nrseq_pos = it_vincula-nrseq.

        v_ebeln_pos = it_vincula-ebeln.

        v_ebelp_pos = it_vincula-ebelp.

        CALL SCREEN '0900' STARTING AT 8 10 ENDING AT 90 20.

      ENDIF.

    WHEN 'DELEITEM'.

      LOOP AT it_vincula WHERE marc EQ 'X'.

        DELETE it_vincula INDEX sy-tabix.

        DELETE it_zycit079 WHERE ebeln EQ it_vincula-ebeln

                             AND ebelp EQ it_vincula-ebelp.

      ENDLOOP.

  ENDCASE.

  CLEAR okcode.

ENDMODULE.

* << Fim da exclusão

...

 

...

 

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

MODULE user_command_0710 INPUT.

  CASE okcode.

    WHEN 'SELE'.

      LOOP AT it_vinlsi WHERE marc EQ 'X'.

        LOOP AT it_zycit079.

          IF it_zycit079-ebeln EQ it_vinlsi-ebeln AND

             it_zycit079-ebelp EQ it_vinlsi-ebelp.

          ELSE.

            DELETE it_zycit079 INDEX sy-tabix.

          ENDIF.

        ENDLOOP.

      ENDLOOP.

      LOOP AT it_zycit079.

        READ TABLE it_zycit003_aux WITH KEY ebeln = it_zycit079-ebeln

                                            ebelp = it_zycit079-ebelp.

        MOVE: it_zycit003_aux-qtd_iten TO it_zycit079-qtd_iten.

        it_zycit079-slqtde = it_zycit079-slqtde - it_zycit079-qtd_iten.

        MODIFY it_zycit079 TRANSPORTING qtd_iten

                                        slqtde.

      ENDLOOP.

      PERFORM vinculacao.

      LEAVE TO SCREEN 0.

    WHEN 'BACK'.

      CLEAR it_zycit079.

      REFRESH it_zycit079.

      LEAVE TO SCREEN 0.

  ENDCASE.

ENDMODULE.

* << Fim da exclusão

...

 

...

 

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

MODULE user_command_0810 INPUT.

  CLEAR v_verficado.

  CASE sy-ucomm.

    WHEN 'BACK'.

      LEAVE TO SCREEN 100.

    WHEN 'VINCULA'.

      READ TABLE itab_atos2 WITH KEY marc = 'X'.

      IF sy-subrc NE 0 OR itab_atos2-status EQ 'E'.

        MESSAGE i015 WITH text-457.

        EXIT.

      ENDIF.

      READ TABLE it_zycit244 WITH KEY nrseqd = itab_atos2-nrseqd.

      IF /pws/zycit321-c_comum NE 'X' AND

         itab_atos2-tipo NE 'G'.

        LOOP AT itab_atos WHERE nrseqd EQ itab_atos2-nrseqd.

          IF itab_atos-grupo NE space.

            LOOP AT itab_zycit433 WHERE grupo EQ itab_atos-grupo.

              LOOP AT it_ekpo WHERE matnr EQ itab_zycit433-matnr.

                READ TABLE it_zycit079 WITH KEY

                                          ebeln = it_ekpo-ebeln

                                          ebelp = it_ekpo-ebelp.

                MOVE:

                     itab_atos-nritem+2 TO it_zycit079-item_drawback,

                     itab_atos-nritem   TO it_zycit079-nritem_db.

                IF v_qtdtot > 0.

                  IF /pws/zycie078-zum EQ '10'.

                    IF NOT v_peso IS INITIAL.

                      it_zycit079-qtd_drawback =

               ( it_zycit079-ntgew * /pws/zycie078-qtdest ) / v_peso.

                    ENDIF.

                  ELSE.

                    it_zycit079-qtd_drawback = ( it_zycit079-qtd_iten *

                                      /pws/zycie078-qtdest ) / v_qtdtot.

                  ENDIF.

                ELSE.

                  it_zycit079-qtd_drawback =

                      ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).

                ENDIF.

                it_zycit079-vl_prod_drawback =

                        it_zycit079-qtd_iten * it_zycit079-netpr.

               MODIFY it_zycit079 TRANSPORTING  item_drawback nritem_db

                                       qtd_drawback vl_prod_drawback

                                       WHERE ebeln = it_ekpo-ebeln

                                         AND ebelp = it_ekpo-ebelp.

              ENDLOOP.

            ENDLOOP.

          ELSE.

            LOOP AT it_ekpo WHERE matnr EQ itab_atos-matnr.

              READ TABLE it_zycit079 WITH KEY

                                        ebeln = it_ekpo-ebeln

                                        ebelp = it_ekpo-ebelp.

              MOVE:

                   itab_atos-nritem+2 TO it_zycit079-item_drawback,

                   itab_atos-nritem TO it_zycit079-nritem_db.

              IF v_qtdtot > 0.

                IF /pws/zycie078-zum EQ '10'.

                  IF NOT v_peso IS INITIAL.

                    it_zycit079-qtd_drawback =

               ( it_zycit079-ntgew * /pws/zycie078-qtdest ) / v_peso.

                  ENDIF.

                ELSE.

                  it_zycit079-qtd_drawback =

             ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ) / v_qtdtot.

                ENDIF.

              ELSE.

                it_zycit079-qtd_drawback =

                ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).

              ENDIF.

              it_zycit079-vl_prod_drawback =

                      it_zycit079-qtd_iten * it_zycit079-netpr.

              MODIFY it_zycit079 TRANSPORTING  item_drawback nritem_db

                                qtd_drawback vl_prod_drawback

                                WHERE ebeln = it_ekpo-ebeln

                                  AND ebelp = it_ekpo-ebelp.

            ENDLOOP.

          ENDIF.

        ENDLOOP.

      ELSE.

        READ TABLE itab_atos WITH KEY nrseqd = itab_atos2-nrseqd.

        LOOP AT it_zycit079.

          MOVE itab_atos-nritem+2 TO it_zycit079-item_drawback.

          MOVE itab_atos-nritem TO it_zycit079-nritem_db.

          IF v_qtdtot > 0.

            IF /pws/zycie078-zum EQ '10'.

              IF NOT v_peso IS INITIAL.

                it_zycit079-qtd_drawback =

               ( it_zycit079-ntgew * /pws/zycie078-qtdest ) / v_peso.

              ENDIF.

            ELSE.

              it_zycit079-qtd_drawback =

             ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ) / v_qtdtot.

            ENDIF.

          ELSE.

            it_zycit079-qtd_drawback =

            ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).

          ENDIF.

          it_zycit079-vl_prod_drawback =

                  it_zycit079-qtd_iten * it_zycit079-netpr.

          MODIFY it_zycit079.

        ENDLOOP.

      ENDIF.

      SELECT * FROM /pws/zycit172 INTO TABLE it_zycit172

             WHERE descricao = it_zycit244-praca.       "#EC CI_NOFIELD

      MOVE: itab_atos2-nrseqd      TO /pws/zycie078-nrseqd    ,

            itab_atos2-modalidade  TO /pws/zycie078-modalidade,

            itab_atos2-tipo        TO /pws/zycie078-tipodb    ,

            itab_atos2-nratoc      TO /pws/zycie078-reg_drawback,

            it_zycit172-codagencia TO /pws/zycie078-codagsecex,

            it_zycit172-digito     TO /pws/zycie078-digito.

      IF itab_atos2-modalidade = 'I'.

        /pws/zycie078-codregtri = '2'.

      ELSE.

        /pws/zycie078-codregtri = '5'.

      ENDIF.

      IF NOT /pws/zycie078-tipodb IS INITIAL.

        IF /pws/zycie078-modalidade EQ 'I'.

          /pws/zycie078-drawback = '3'.

        ELSE.

          IF /pws/zycie078-tipodb = 'G'.

            /pws/zycie078-drawback = '1'.

          ELSE.

            /pws/zycie078-drawback = '2'.

          ENDIF.

        ENDIF.

      ENDIF.

      LOOP AT itab_atos2 WHERE nrseqd NE /pws/zycit078-nrseqd.

        CALL FUNCTION '/PWS/ZYCI_DEQUEUE_ZYCIT244'

             EXPORTING

                  nrseqd = itab_atos2-nrseqd.

      ENDLOOP.

      LEAVE TO SCREEN '100'.

    WHEN 'DELEITEM'.

      LOOP AT it_vinculato WHERE marc EQ 'X'.

        DELETE it_vinculato INDEX sy-tabix.

      ENDLOOP.

  ENDCASE.

  CLEAR okcode.

ENDMODULE.

* << Fim da exclusão

 

...

 

...

 

MODULE user_command INPUT.

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

  e_subrc = 0.

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI020'

                              'LI003'.

  CLEAR: itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'LI003'.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa) IF FOUND.

    ENDIF.

  ENDIF.

  IF e_subrc EQ 0.

    IF sy-dynnr EQ '0710'.

      PERFORM user_command_0710.

    ELSEIF sy-dynnr EQ '0800' .

      PERFORM user_command_0800.

    ELSEIF sy-dynnr EQ '0810'.

      PERFORM user_command_0810.

    ELSE.

* << Fim da inclusão

  PERFORM user_command_0113.

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

    ENDIF.

  ENDIF.

* << Fim da inclusão

ENDMODULE.

...

 

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI020F02

 

...

 

* >> Início da inclusão:

form user_command_0810.

  CLEAR v_verficado.

  CASE sy-ucomm.

    WHEN 'BACK'.

      LEAVE TO SCREEN 100.

    WHEN 'VINCULA'.

      READ TABLE itab_atos2 WITH KEY marc = 'X'.

      IF sy-subrc NE 0 OR itab_atos2-status EQ 'E'.

        MESSAGE i015 WITH text-457.

        EXIT.

      ENDIF.

      READ TABLE it_zycit244 WITH KEY nrseqd = itab_atos2-nrseqd.

      IF /pws/zycit321-c_comum NE 'X' AND

         itab_atos2-tipo NE 'G'.

        LOOP AT itab_atos WHERE nrseqd EQ itab_atos2-nrseqd.

          IF itab_atos-grupo NE space.

            LOOP AT itab_zycit433 WHERE grupo EQ itab_atos-grupo.

              LOOP AT it_ekpo WHERE matnr EQ itab_zycit433-matnr.

                READ TABLE it_zycit079 WITH KEY

                                          ebeln = it_ekpo-ebeln

                                          ebelp = it_ekpo-ebelp.

                MOVE:

                     itab_atos-nritem+2 TO it_zycit079-item_drawback,

                     itab_atos-nritem   TO it_zycit079-nritem_db.

                IF v_qtdtot > 0.

                  IF /pws/zycie078-zum EQ '10'.

                    IF NOT v_peso IS INITIAL.

                      it_zycit079-qtd_drawback =

               ( it_zycit079-ntgew * /pws/zycie078-qtdest ) / v_peso.

                    ENDIF.

                  ELSE.

                    it_zycit079-qtd_drawback = ( it_zycit079-qtd_iten *

                                      /pws/zycie078-qtdest ) / v_qtdtot.

                  ENDIF.

                ELSE.

                  it_zycit079-qtd_drawback =

                      ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).

                ENDIF.

                it_zycit079-vl_prod_drawback =

                        it_zycit079-qtd_iten * it_zycit079-netpr.

               MODIFY it_zycit079 TRANSPORTING  item_drawback nritem_db

                                       qtd_drawback vl_prod_drawback

                                       WHERE ebeln = it_ekpo-ebeln

                                         AND ebelp = it_ekpo-ebelp.

              ENDLOOP.

            ENDLOOP.

          ELSE.

            LOOP AT it_ekpo WHERE matnr EQ itab_atos-matnr.

              READ TABLE it_zycit079 WITH KEY

                                        ebeln = it_ekpo-ebeln

                                        ebelp = it_ekpo-ebelp.

              MOVE:

                   itab_atos-nritem+2 TO it_zycit079-item_drawback,

                   itab_atos-nritem TO it_zycit079-nritem_db.

              IF v_qtdtot > 0.

                IF /pws/zycie078-zum EQ '10'.

                  IF NOT v_peso IS INITIAL.

                    it_zycit079-qtd_drawback =

               ( it_zycit079-ntgew * /pws/zycie078-qtdest ) / v_peso.

                  ENDIF.

                ELSE.

                  it_zycit079-qtd_drawback =

             ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ) / v_qtdtot.

                ENDIF.

              ELSE.

                it_zycit079-qtd_drawback =

                ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).

              ENDIF.

              it_zycit079-vl_prod_drawback =

                      it_zycit079-qtd_iten * it_zycit079-netpr.

              MODIFY it_zycit079 TRANSPORTING  item_drawback nritem_db

                                qtd_drawback vl_prod_drawback

                                WHERE ebeln = it_ekpo-ebeln

                                  AND ebelp = it_ekpo-ebelp.

            ENDLOOP.

          ENDIF.

        ENDLOOP.

      ELSE.

        READ TABLE itab_atos WITH KEY nrseqd = itab_atos2-nrseqd.

        LOOP AT it_zycit079.

          MOVE itab_atos-nritem+2 TO it_zycit079-item_drawback.

          MOVE itab_atos-nritem TO it_zycit079-nritem_db.

          IF v_qtdtot > 0.

            IF /pws/zycie078-zum EQ '10'.

              IF NOT v_peso IS INITIAL.

                it_zycit079-qtd_drawback =

               ( it_zycit079-ntgew * /pws/zycie078-qtdest ) / v_peso.

              ENDIF.

            ELSE.

              it_zycit079-qtd_drawback =

             ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ) / v_qtdtot.

            ENDIF.

          ELSE.

            it_zycit079-qtd_drawback =

            ( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).

          ENDIF.

          it_zycit079-vl_prod_drawback =

                  it_zycit079-qtd_iten * it_zycit079-netpr.

          MODIFY it_zycit079.

        ENDLOOP.

      ENDIF.

      SELECT * FROM /pws/zycit172 INTO TABLE it_zycit172

             WHERE descricao = it_zycit244-praca.

      MOVE: itab_atos2-nrseqd      TO /pws/zycie078-nrseqd    ,

            itab_atos2-modalidade  TO /pws/zycie078-modalidade,

            itab_atos2-tipo        TO /pws/zycie078-tipodb    ,

            itab_atos2-nratoc      TO /pws/zycie078-reg_drawback,

            it_zycit172-codagencia TO /pws/zycie078-codagsecex,

            it_zycit172-digito     TO /pws/zycie078-digito.

      IF itab_atos2-modalidade = 'I'.

        /pws/zycie078-codregtri = '2'.

      ELSE.

        /pws/zycie078-codregtri = '5'.

      ENDIF.

      IF NOT /pws/zycie078-tipodb IS INITIAL.

        IF /pws/zycie078-modalidade EQ 'I'.

          /pws/zycie078-drawback = '3'.

        ELSE.

          IF /pws/zycie078-tipodb = 'G'.

            /pws/zycie078-drawback = '1'.

          ELSE.

            /pws/zycie078-drawback = '2'.

          ENDIF.

        ENDIF.

      ENDIF.

      LOOP AT itab_atos2 WHERE nrseqd NE /pws/zycit078-nrseqd.

        CALL FUNCTION '/PWS/ZYCI_DEQUEUE_ZYCIT244'

             EXPORTING

                  nrseqd = itab_atos2-nrseqd.

      ENDLOOP.

      LEAVE TO SCREEN '100'.

    WHEN 'DELEITEM'.

      LOOP AT it_vinculato WHERE marc EQ 'X'.

        DELETE it_vinculato INDEX sy-tabix.

      ENDLOOP.

  ENDCASE.

  CLEAR okcode.

endform.

form user_command_0800.

  DATA: v_check,

        v_j_1bnbm_vin LIKE ekpo-j_1bnbm.

  CASE okcode.

    WHEN 'BACKSUB'.

      LEAVE TO SCREEN 0.

    WHEN 'BACK'.

      CLEAR   it_zycit079.

      REFRESH it_zycit079.

      LEAVE TO SCREEN 0.

    WHEN 'VINCULA'.

      CLEAR v_check.

      LOOP AT it_vincula WHERE marc EQ 'X'.

        v_check = '1'.

      ENDLOOP.

      IF v_check IS INITIAL.

        MESSAGE s015 WITH text-184.

        EXIT.

      ENDIF.

      CLEAR: v_check,

             v_j_1bnbm_vin.

      LOOP AT it_vincula WHERE marc EQ 'X'.

        SELECT SINGLE * FROM ekpo

               WHERE ebeln EQ it_vincula-ebeln

                 AND ebelp EQ it_vincula-ebelp.

        IF v_j_1bnbm_vin IS INITIAL.

          v_j_1bnbm_vin = ekpo-j_1bnbm.

        ENDIF.

        IF v_j_1bnbm_vin NE ekpo-j_1bnbm.

          v_check = '1'.

          MESSAGE s015 WITH text-204 text-205.

          EXIT.

        ENDIF.

      ENDLOOP.

      IF v_check EQ '1'.

        EXIT.

      ENDIF.

      /pws/zycie078-steuc1 = v_j_1bnbm_vin.

      PERFORM load_descncm.

      LOOP AT it_vincula WHERE marc EQ 'X'.

        IF it_vincula-icon NE '@0A\QSTATUS COM ERRO@'.

          READ TABLE it_zycit079 WITH KEY ebelp = it_vincula-ebelp

                                          ebeln = it_vincula-ebeln.

          MOVE: /pws/zycie078-nrseq TO it_zycit079-nrseq,

                text-144       TO /pws/zycie078-status  .

          MODIFY it_zycit079 TRANSPORTING nrseq

                             WHERE ebelp = it_vincula-ebelp

                               AND ebeln = it_vincula-ebeln.

        ELSE.

          CLEAR   it_zycit079.

          REFRESH it_zycit079.

          IF /pws/zycie078-tpli EQ 'N'.

            MESSAGE s015 WITH text-142 text-143.

          ELSEIF /pws/zycie078-tpli EQ 'S'.

            MESSAGE s015 WITH text-142 text-199.

          ENDIF.

          EXIT.

        ENDIF.

      ENDLOOP.

      LOOP AT it_vincula WHERE marc NE 'X'.

        DELETE it_vincula INDEX sy-tabix.

        DELETE it_zycit079 WHERE ebeln EQ it_vincula-ebeln

                             AND ebelp EQ it_vincula-ebelp.

      ENDLOOP.

      MOVE it_vincula[] TO it_vincula_aux[].

      IF it_log[] IS INITIAL.

        MESSAGE s015 WITH text-141.

      ENDIF.

      IF /pws/zycie078-tpli EQ 'N'.

        LEAVE TO SCREEN '100'.

      ELSEIF /pws/zycie078-tpli EQ 'S'.

        LEAVE TO SCREEN '400'.

      ENDIF.

    WHEN 'SELE'.

      GET CURSOR FIELD v_campo VALUE v_valor LINE v_linha.

      IF v_campo EQ 'V_ICON_VIN'.

        v_pos = tc_vincula-top_line + v_linha - 1.

        READ TABLE it_vincula INDEX v_pos.

        v_nrseq_pos = it_vincula-nrseq.

        v_ebeln_pos = it_vincula-ebeln.

        v_ebelp_pos = it_vincula-ebelp.

        CALL SCREEN '0900' STARTING AT 8 10 ENDING AT 90 20.

      ENDIF.

    WHEN 'DELEITEM'.

      LOOP AT it_vincula WHERE marc EQ 'X'.

        DELETE it_vincula INDEX sy-tabix.

        DELETE it_zycit079 WHERE ebeln EQ it_vincula-ebeln

                             AND ebelp EQ it_vincula-ebelp.

      ENDLOOP.

  ENDCASE.

  CLEAR okcode.

endform.

form user_command_0710.

  CASE okcode.

    WHEN 'SELE'.

      LOOP AT it_vinlsi WHERE marc EQ 'X'.

        LOOP AT it_zycit079.

          IF it_zycit079-ebeln EQ it_vinlsi-ebeln AND

             it_zycit079-ebelp EQ it_vinlsi-ebelp.

          ELSE.

            DELETE it_zycit079 INDEX sy-tabix.

          ENDIF.

        ENDLOOP.

      ENDLOOP.

      LOOP AT it_zycit079.

        READ TABLE it_zycit003_aux WITH KEY ebeln = it_zycit079-ebeln

                                            ebelp = it_zycit079-ebelp.

        MOVE: it_zycit003_aux-qtd_iten TO it_zycit079-qtd_iten.

        it_zycit079-slqtde = it_zycit079-slqtde - it_zycit079-qtd_iten.

        MODIFY it_zycit079 TRANSPORTING qtd_iten

                                        slqtde.

      ENDLOOP.

      PERFORM vinculacao.

      LEAVE TO SCREEN 0.

    WHEN 'BACK'.

      CLEAR it_zycit079.

      REFRESH it_zycit079.

      LEAVE TO SCREEN 0.

  ENDCASE.

endform.

* << Fim da inclusão

* << Fim da inclusão