CE PLUS - Nota 003732

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 22/05/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 15:12:16

Descrição da Nota: AJUSTES REFERENTES A PERFORMANCE DO EMBARQUE.

Sintoma

AJUSTES REFERENTES A PERFORMANCE DO EMBARQUE.

Embarque lento quando possui mais de 500 itens.

 

 

Solução

AJUSTES REFERENTES A PERFORMANCE DO EMBARQUE.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

ALTERAÇÃO DE DATA NO EMBARQUE

NA ESTRATÉGIA DE LIBERAÇÃO DO ADIANTAMENTO - EMBARQUE ESTÁ SENDO USADO

DESENVOLVIMENTO ENTREPOSTO ADUANEIRO

EMBARQUE NÃO TEM FATURA, MAS O SISTEMA INFORMA QUE EXISTE FATURA.

ELIMINA REGISTROS /PWS/ZYCIT263 QUE POSSUAM NRSEQ_PGFAT EM BRANCO

EMBARQUE ESTÁ SE PERDENDO AO VINCULAR ITENS DO PEDIDO OU SCHEDULE

SALDO EMBARQUE

AO TENTAR CRIAR A NF DA MSG DE FATURA NÃO CONSTABILIZADA

VARIAÇÃO CAMBIAL DA DI EM ITENS COM FATURA LIVRE DE DÉBITO

PERFORMANCE DA TRANSAÇÃO /PWS/ZYCI001_A ESTÁ CONSUMINDO MUITA MEMÓRIA.

Informações Complementares

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

Nota Número 03732 Data: 22/05/2007 Hora: 16:10:29

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

 

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

Nota Número              : 03732

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00167

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

Referência às notas relacionadas:

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

 

01268  - 00001 - 6.0    - 00023  - DESENVOLVIMENTO ENTREPOSTO ADUANEIRO

01437  - 00002 - 6.0    - 00023  - ALTERAÇÃO DE DATA NO EMBARQUE

01940  - 00003 - 6.0    - 00024  - PERFORMANCE DA TRANSAÇÃO /PWS/ZYCI001_A ESTÁ CONSUMINDO MUITA MEM

02234  - 00010 - 6.0    - 00025  - SALDO EMBARQUE

02277  - 00004 - 6.0    - 00025  - AO TENTAR CRIAR A NF DA MSG DE FATURA NÃO CONSTABILIZADA

02586  - 00005 - 6.0    - 00026  - NA ESTRATÉGIA DE LIBERAÇÃO DO ADIANTAMENTO - EMBARQUE ESTÁ SENDO

02886  - 00006 - 6.0    - 00026  - VARIAÇÃO CAMBIAL DA DI EM ITENS COM FATURA LIVRE DE DÉBITO

02944  - 00007 - 6.0    - 00026  - EMBARQUE ESTÁ SE PERDENDO AO VINCULAR ITENS DO PEDIDO OU SCHEDULE

03018  - 00008 - 6.0    - 00026  - EMBARQUE NÃO TEM FATURA, MAS O SISTEMA INFORMA QUE EXISTE FATURA.

03364  - 00009 - 7.0    - 00001  - ELIMINA REGISTROS /PWS/ZYCIT263 QUE POSSUAM NRSEQ_PGFAT EM BRANCO

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

AJUSTES REFERENTES A PERFORMANCE DO EMBARQUE.

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

Palavras Chave:

PERFORMANCE - EMBARQUE

/PWS/SAPMZYCI001

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

Objetos da nota:

DYNP /PWS/SAPMZYCI001                        0100

REPS /PWS/MZYCI001F01

REPS /PWS/MZYCI001F02

REPS /PWS/MZYCI001F03

REPS /PWS/MZYCI001I01

REPS /PWS/MZYCI001X01

 

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

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

 

...

    CALL SUBSCREEN:

       ss_cab,

       ss_ped,

       ss_da    ,

       ss_fornec,

       ss_adm.

* >> Início da exclusão:

    MODULE: atualizar_itens,

* << Fim da exclusão

* >> Início da inclusão:

    MODULE:

* << Fim da inclusão

 

            user_command_0100,

            user_command_exit AT EXIT-COMMAND.

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F01

 

...

  MODIFY itab_zycit125_aux TRANSPORTING nrseq

                       WHERE nrseq = v_nrseq_ant.

  IF ( v_tcode            EQ '/PWS/ZYCI001_C' ) AND

     ( /pws/zycie001-dtuserc   IS INITIAL     ) AND

     ( /pws/zycie001-usernamec IS INITIAL     ).

    MOVE: sy-datlo TO /pws/zycie001-dtuserc  ,

          sy-uname TO /pws/zycie001-usernamec.

  ENDIF.

ENDFORM.

FORM verifica_itens.

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

  DATA: v_linhas  TYPE i,

        v_linhas2 TYPE i.

  DATA: BEGIN OF itab_pedido_temp OCCURS 0.

  DATA: ebeln TYPE ekpo-ebeln,

        ebelp TYPE ekpo-ebelp.

  DATA: END OF itab_pedido_temp.

* << Fim da inclusão

  DATA:

    v_existe_bl ,

    v_ebelp      LIKE konv-kposn.

  IF ( sy-tcode = '/PWS/ZYCI001_E' OR

       sy-tcode = '/PWS/ZYCI001_A' ) AND

     ( okcode = 'P-' OR okcode = 'P--' OR

       okcode = 'P+' OR okcode = 'P++' ).

  ELSEIF okcode EQ 'PED' OR okcode EQ 'ENTE' OR okcode EQ 'SAVE' OR

                                                okcode EQ 'FAT'.

    CHECK NOT itab_zycit003[] IS INITIAL.

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

    DESCRIBE TABLE itab_zycit013 LINES v_linhas.

    DESCRIBE TABLE itab_zycit003 LINES v_linhas2.

    CLEAR: v_mod_ped.

    IF v_linhas > v_linhas2.

      LOOP AT itab_zycit013.

        READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycit003-ebeln

                                          ebelp = itab_zycit003-ebelp.

        IF sy-subrc NE 0.

          DELETE itab_zycit013.

        ENDIF.

      ENDLOOP.

    ELSEIF v_linhas < v_linhas2.

      REFRESH itab_pedido_temp.

      LOOP AT itab_zycit003.

        READ TABLE itab_zycit013 WITH KEY ebeln = itab_zycit003-ebeln

                                          ebelp = itab_zycit003-ebelp.

        IF sy-subrc NE 0.

          itab_pedido_temp-ebeln = itab_zycit003-ebeln.

          itab_pedido_temp-ebelp = itab_zycit003-ebelp.

          APPEND itab_pedido_temp.

        ENDIF.

      ENDLOOP.

* << Fim da inclusão

    SELECT * FROM /pws/zycit013

      INTO TABLE itab_zycit013

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

      FOR ALL ENTRIES IN itab_zycit003 WHERE

      ebeln = itab_zycit003-ebeln AND

      ebelp = itab_zycit003-ebelp.

* << Fim da exclusão

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

        FOR ALL ENTRIES IN itab_pedido_temp WHERE

        ebeln = itab_pedido_temp-ebeln AND

        ebelp = itab_pedido_temp-ebelp.

    ENDIF.

* << Fim da inclusão

    PERFORM carrega_saldo.

    PERFORM lock_pedido.

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

    IF NOT itab_zycit003 IS INITIAL AND

       itab_zycit263[] IS INITIAL.

      SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

            WHERE nrseq = /pws/zycie001-nrseq

              AND eliminado = space.

* << Fim da inclusão

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

    SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

           FOR ALL ENTRIES IN itab_zycit003 WHERE

           nrseq = itab_zycit003-nrseq AND

           ebeln = itab_zycit003-ebeln AND

           ebelp = itab_zycit003-ebelp AND

           eliminado = space.

* << Fim da exclusão

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

    ENDIF.

* << Fim da inclusão

    IF NOT itab_zycit263[] IS INITIAL.

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

      REFRESH itab_temp_seq_pgfat.

      LOOP AT itab_zycit263.

        itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit263-nrseq_pgfat.

        COLLECT itab_temp_seq_pgfat.

      ENDLOOP.

      IF NOT itab_temp_seq_pgfat[] IS INITIAL.

* << Fim da inclusão

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

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

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

* << Fim da exclusão

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

          FOR ALL ENTRIES IN itab_temp_seq_pgfat

          WHERE nrseq_pgfat EQ itab_temp_seq_pgfat-nrseq_pgfat

            AND nrseqce = /pws/zycit094-nrseqce.

      ENDIF.

* << Fim da inclusão

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          DELETE itab_zycit263 INDEX v_tabix.

        ENDIF.

      ENDLOOP.

    ENDIF.

...

 

...

      v_taxa = 1.

      v_netpr = itab_zycit003-netpr.

    ENDIF.

    v_netpr = v_netpr * itab_zycit003-qtd_iten.

    /pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.

    IF /pws/zycie001-netpr < 0.

      CLEAR /pws/zycie001-netpr.

      MESSAGE e061 WITH text-235 text-236.

    ENDIF.

    IF itab_zycit003-tpnf IS INITIAL.

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

      READ TABLE itab_zycit100 WITH KEY nrseq = itab_zycit003-nrseq

                                        ebeln = itab_zycit003-ebeln

                                        ebelp = itab_zycit003-ebelp.

      IF sy-subrc EQ 0.

* << Fim da inclusão

      SELECT SINGLE j_1bmatuse INTO ekpo-j_1bmatuse

               FROM ekpo

              WHERE ebeln EQ itab_zycit003-ebeln

                AND ebelp EQ itab_zycit003-ebelp.

      SELECT SINGLE tpnf tpnf_ld tpnf_db tpnf_icms INTO

      CORRESPONDING FIELDS OF /pws/zycit012

               FROM /pws/zycit012

               WHERE j_1bmatuse EQ ekpo-j_1bmatuse.

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

      READ TABLE itab_zycit100 WITH KEY nrseq = itab_zycit003-nrseq

                                        ebeln = itab_zycit003-ebeln

                                        ebelp = itab_zycit003-ebelp.

      IF sy-subrc EQ 0.

* << Fim da exclusão

        IF NOT itab_zycit003-nrseqd IS INITIAL

        AND NOT /pws/zycit012-tpnf_db IS INITIAL.

          itab_zycit003-tpnf   = /pws/zycit012-tpnf_db.

        ELSEIF /pws/zycit100-icms_dif EQ 'X'

        AND NOT /pws/zycit012-tpnf_icms IS INITIAL.

          itab_zycit003-tpnf   = /pws/zycit012-tpnf_icms.

        ELSE.

          itab_zycit003-tpnf   = /pws/zycit012-tpnf.

          REFRESH itab_zycit263.

          IF NOT itab_zycit003[] IS INITIAL.

            SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

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

                   FOR ALL ENTRIES IN itab_zycit003 WHERE

                   nrseq = itab_zycit003-nrseq AND

                   ebeln = itab_zycit003-ebeln AND

                   ebelp = itab_zycit003-ebelp AND

                   eliminado = space.

* << Fim da exclusão

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

                  WHERE nrseq = /pws/zycie001-nrseq

                    AND eliminado = space.

* << Fim da inclusão

          ENDIF.

          READ TABLE itab_zycit263 WITH KEY ebeln = itab_zycit003-ebeln

                                            ebelp = itab_zycit003-ebelp.

          IF sy-subrc EQ 0.

            SELECT SINGLE frpagto INTO /pws/zycit006-frpagto

             FROM /pws/zycit006

             WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

            IF sy-subrc EQ 0.

              IF /pws/zycit006-frpagto EQ 'A'.

                itab_zycit003-tpnf = /pws/zycit012-tpnf_ld.

...

 

...

      MESSAGE e015 WITH text-048.

      EXIT.

    ENDIF.

  ENDLOOP.

  IF /pws/zycie001-tpdecl IS INITIAL.

    EXIT.

  ENDIF.

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit100

       INTO TABLE itab_zycit100

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

       FOR ALL ENTRIES IN itab_zycit003

       WHERE nrseq EQ itab_zycit003-nrseq

       AND   ebeln EQ itab_zycit003-ebeln

       AND   ebelp EQ itab_zycit003-ebelp.

* << Fim da exclusão

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

          WHERE nrseq = /pws/zycie001-nrseq.

* << Fim da inclusão

    IF sy-subrc EQ 0.

      READ TABLE itab_zycit100 INDEX 1.

      IF sy-subrc EQ 0.

        SELECT SINGLE * FROM /pws/zycit085

            WHERE nrseqdi = itab_zycit100-nrseqdi.

        v_nrseqdi = /pws/zycit085-nrseqdi.

      ENDIF.

      SET PARAMETER ID '/PWS/ZYCIP085' FIELD v_nrseqdi.

      EXPORT v_nrseqdi TO MEMORY ID rimc1.

      IF /pws/zycie001-tpdecl = 'DSI'.

...

 

...

  DATA BEGIN OF itab_sele OCCURS 0.

  DATA: ebeln LIKE ekpo-ebeln,

        ebelp LIKE ekpo-ebelp.

  DATA END OF itab_sele.

  e_status = v_status_s.

  READ TABLE itab_zycit003 WITH KEY mark = 'X'.

  MOVE: itab_zycit003-lifnr TO v_lifnr,

        itab_zycit003-waers TO v_moeda.

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

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

           FOR ALL ENTRIES IN itab_zycit003 WHERE

           nrseq = itab_zycit003-nrseq AND

           ebeln = itab_zycit003-ebeln AND

           ebelp = itab_zycit003-ebelp.

* << Fim da exclusão

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

          WHERE nrseq = /pws/zycie001-nrseq.

* << Fim da inclusão

    IF NOT itab_zycit263[] IS INITIAL.

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

      REFRESH itab_temp_seq_pgfat.

      LOOP AT itab_zycit263.

        itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit263-nrseq_pgfat.

        COLLECT itab_temp_seq_pgfat.

      ENDLOOP.

      IF NOT itab_temp_seq_pgfat[] IS INITIAL.

* << Fim da inclusão

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

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

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

* << Fim da exclusão

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

          FOR ALL ENTRIES IN itab_temp_seq_pgfat

          WHERE nrseq_pgfat EQ itab_temp_seq_pgfat-nrseq_pgfat

            AND nrseqce = /pws/zycit094-nrseqce.

      ENDIF.

* << Fim da inclusão

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          DELETE itab_zycit263 INDEX v_tabix.

        ENDIF.

      ENDLOOP.

    ENDIF.

...

 

...

   WHERE nrseq EQ /pws/zycie001-nrseq.

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT ebeln  ebelp  matnr  idnlf

      FROM ekpo INTO TABLE it_ekpo_aux

      FOR ALL ENTRIES IN itab_zycit003

      WHERE ebeln = itab_zycit003-ebeln

        AND ebelp = itab_zycit003-ebelp.

  ENDIF.

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

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

           FOR ALL ENTRIES IN itab_zycit003 WHERE

           nrseq = itab_zycit003-nrseq AND

           ebeln = itab_zycit003-ebeln AND

           ebelp = itab_zycit003-ebelp AND

           eliminado = space.

* << Fim da exclusão

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

          WHERE nrseq = /pws/zycie001-nrseq

            AND eliminado = space.

* << Fim da inclusão

    IF NOT itab_zycit263[] IS INITIAL.

      SELECT SINGLE * FROM /pws/zycit094

         WHERE nrseq = /pws/zycie001-nrseq.

      IF sy-subrc = 0.

        SELECT  * FROM /pws/zycit006 INTO TABLE itab_zycit006

        WHERE nrseqce = /pws/zycit094-nrseqce AND

              eliminado NE 'X' AND

              tpfatura EQ '01' AND

              frpagto NE 'A' AND

              belnr_p EQ space AND

...

 

...

          IF sy-subrc NE 0.

            LOOP AT itab_zycit006.

              itab_zycit006-eliminado = 'X'.

              MODIFY itab_zycit006 .

            ENDLOOP.

            MODIFY /pws/zycit006 FROM TABLE itab_zycit006.

          ENDIF.

        ENDIF.

      ENDIF.

      REFRESH itab_zycit006. CLEAR itab_zycit006.

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

      REFRESH itab_temp_seq_pgfat.

      LOOP AT itab_zycit263.

        itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit263-nrseq_pgfat.

        COLLECT itab_temp_seq_pgfat.

      ENDLOOP.

      IF NOT itab_temp_seq_pgfat[] IS INITIAL.

* << Fim da inclusão

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

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

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

* << Fim da exclusão

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

          FOR ALL ENTRIES IN itab_temp_seq_pgfat

          WHERE nrseq_pgfat EQ itab_temp_seq_pgfat-nrseq_pgfat

            AND nrseqce = /pws/zycit094-nrseqce.

      ENDIF.

* << Fim da inclusão

      LOOP AT itab_zycit263.

        IF itab_zycit263-nrseq_pgfat IS INITIAL.

          DELETE FROM /pws/zycit263

              WHERE nrseq EQ itab_zycit263-nrseq

                AND ebeln EQ itab_zycit263-ebeln

                AND ebelp EQ itab_zycit263-ebelp

                AND nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

          DELETE itab_zycit263.

          CONTINUE.

        ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F02

 

...

              company_not_found = 3

              OTHERS            = 4.

    IF sy-subrc EQ 1.

      MESSAGE s061 WITH text-056 /pws/zycie001-j_1bbranch.

    ENDIF.

    WRITE v_cgc TO v_cnpj.

  ENDIF.

ENDFORM.

FORM tratar_decimais USING    p_moeda

                     CHANGING p_valor.

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

  READ TABLE itab_tcurx INTO tcurx WITH KEY currkey = p_moeda.

  IF sy-subrc NE 0.

* << Fim da inclusão

  SELECT SINGLE * FROM tcurx WHERE currkey = p_moeda.

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

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

    ENDIF.

    tcurx-currkey = p_moeda.

    APPEND tcurx TO itab_tcurx .

* << Fim da inclusão

  ENDIF.

  p_valor = p_valor * ( 10 ** ( tcurx-currdec - 2 ) ).

...

 

...

        MODIFY SCREEN.

      ENDIF.

    ENDLOOP.

  ENDIF.

  CLEAR : sy-ucomm.

ENDFORM.

FORM verifica_taxa.

  IF  ( sy-tcode = '/PWS/ZYCI001_E' OR sy-tcode = '/PWS/ZYCI001_A' )

        AND okcode NE 'PED'.

  ELSE.

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

    CHECK itab_zycit003-aliqii   IS INITIAL

      AND itab_zycit003-aliqipi  IS INITIAL

      AND itab_zycit003-aliqicms IS INITIAL.

* << Fim da inclusão

    REFRESH itab_imposto.

    CLEAR itab_imposto.

    itab_imposto-nrseq = itab_zycit003-nrseq.

    itab_imposto-ebeln = itab_zycit003-ebeln.

    itab_imposto-ebelp = itab_zycit003-ebelp.

    APPEND itab_imposto.

    e_subrc = '0'.

    PERFORM verifica_exit USING 'D'

                                '/PWS/SAPMZYCI001'

                                'EMB007'.

...

 

...

      v_esp2 = itab_tline2-tdline.

    ELSE.

      CLEAR: v_esp2.

    ENDIF.

  ELSE.

    CLEAR wa_thead2.

  ENDIF.

ENDFORM.

FORM retorna_decimais USING    p_moeda

                      CHANGING p_valor.

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

  READ TABLE itab_tcurx INTO tcurx WITH KEY currkey = p_moeda.

  IF sy-subrc NE 0.

* << Fim da inclusão

  SELECT SINGLE * FROM tcurx WHERE currkey = p_moeda.

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

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

    ENDIF.

    tcurx-currkey = p_moeda.

    APPEND tcurx TO itab_tcurx .

* << Fim da inclusão

  ENDIF.

  p_valor = p_valor / ( 10 ** ( tcurx-currdec - 2 ) ).

...

 

...

  IF sy-subrc <> 0.

    MESSAGE i015 WITH text-343.

    LEAVE TO SCREEN 104.

  ENDIF.

ENDFORM.

FORM calc_saldo.

  DATA lqtd_iten LIKE /pws/zycie042-qtd_iten.

  IF NOT itab_zycit003[] IS INITIAL.

    IF itab_zycit263[] IS INITIAL.

      SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

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

             FOR ALL ENTRIES IN itab_zycit003 WHERE

             nrseq = itab_zycit003-nrseq AND

             ebeln = itab_zycit003-ebeln AND

             ebelp = itab_zycit003-ebelp AND

             eliminado = space.

* << Fim da exclusão

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

            WHERE nrseq = /pws/zycie001-nrseq

              AND eliminado = space.

* << Fim da inclusão

    ENDIF.

  ENDIF.

  READ TABLE itab_zycit263

         WITH KEY ebeln = itab_zycit003-ebeln

                  ebelp = itab_zycit003-ebelp.

  IF sy-subrc = 0.

    CLEAR: itab_zycit003-ntgew.

  ENDIF.

  CLEAR itab_zycit003-invoiced.

  LOOP AT itab_zycit263 WHERE ebeln = itab_zycit003-ebeln AND

...

 

...

        v_dtalocprod  LIKE /pws/zycie003-dtalocprod,

        v_dtverif     LIKE /pws/zycit003-dtprovent,

        v_nrseqce     LIKE /pws/zycie094-nrseqce,

        v_dtcarga     LIKE /pws/zycie093-dt_carga,

        v_dtreg       LIKE /pws/zycie085-dtreg,

        v_nrseqdi1    LIKE /pws/zycie085-nrseqdi,

        v_dataci      LIKE /pws/zycie085-dataci,

        v_dtsaidaarm  LIKE /pws/zycie055-dtsaidaarm,

        v_dtdef       LIKE /pws/zycie078-dtdef,

        v_nrseqli     LIKE /pws/zycie078-nrseqli.

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

if itab_zycit003-dtremessa is initial.

* << Fim da inclusão

  itab_zycit003-dtremessa = itab_zycit003_aux-dtremessa.

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

endif.

* << Fim da inclusão

  itab_zycit003-dtprovent = itab_zycit003-dtremessa.

  .

  IF NOT itab_zycit390[] IS INITIAL.

    IF NOT itab_zycit003-dtalocprod IS INITIAL.

     LOOP AT itab_zycit390 WHERE evento1    = '02'                  AND

                                 evento2    = '03'                  AND

...

 

...

                                 CHANGING /pws/zycie001-nrseq.

        ELSE.

          MESSAGE i061 WITH text-136.

        ENDIF.

      ENDIF.

    ELSE.

      PERFORM find_nrseqc.

      PERFORM find_embarca.

    ENDIF.

  ENDIF.

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

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

    PERFORM verifica_itens.

  ELSE.

    PERFORM verifica_itens_da.

  ENDIF.

* << Fim da exclusão

  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

           AND branch = /pws/zycie001-j_1bbranch.

  CLEAR: itab_zycbt031, v_modemb.

  IF NOT itab_zycit003[] IS INITIAL AND

     itab_zycbt031[] IS INITIAL.

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

    REFRESH itab_temp_seq_pgfat.

    LOOP AT itab_zycit003.

      itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit003-nrseq_pgfat.

      COLLECT itab_temp_seq_pgfat.

    ENDLOOP.

    IF NOT itab_temp_seq_pgfat[] IS INITIAL.

* << Fim da inclusão

    SELECT  * FROM /pws/zycbt031 INTO TABLE itab_zycbt031

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

                  FOR ALL ENTRIES IN itab_zycit003

                  WHERE nrcorresp = itab_zycit003-nrseq_pgfat

* << Fim da exclusão

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

                  FOR ALL ENTRIES IN itab_temp_seq_pgfat

                  WHERE nrcorresp = itab_temp_seq_pgfat-nrseq_pgfat

* << Fim da inclusão

                    AND statusp NE 'E'.

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

    ENDIF.

* << Fim da inclusão

    IF sy-subrc = 0.

      v_modemb = 'X'.

    ENDIF.

  ENDIF.

  IF NOT itab_zycit003[] IS INITIAL.

    PERFORM selecao_legislacao.

  ENDIF.

  IF /pws/zycie001-meioemba IS INITIAL.

    GET PARAMETER ID '/PWS/ZYCIP138' FIELD /pws/zycie001-meioemba.

  ENDIF.

...

 

...

      ENDIF.

    ENDLOOP.

    v_nf = 'X'.

  ELSE.

    CLEAR v_nf.

  ENDIF.

ENDFORM.

FORM seleciona_bl.

  IF itab_zycit094[] IS INITIAL.

    SELECT * FROM /pws/zycit094 INTO TABLE itab_zycit094

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

    FOR ALL ENTRIES IN itab_zycit003

    WHERE nrseq EQ itab_zycit003-nrseq.

* << Fim da exclusão

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

        WHERE nrseq EQ /pws/zycit001-nrseq.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM seleciona_di.

  IF NOT itab_zycit100[] IS INITIAL.

    EXIT.

  ENDIF.

  SELECT * FROM /pws/zycit100 INTO TABLE itab_zycit100

  WHERE nrseq EQ /pws/zycie001-nrseq.

  IF sy-subrc EQ 0.

    v_di = 'S'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F03

 

...

            EXIT.

          ENDIF.

          SELECT SINGLE * FROM /pws/zycit026

            WHERE nrseq  EQ /pws/zycie001-nrseq

              AND status EQ 'A'.

          IF sy-subrc IS INITIAL.

            MESSAGE w015 WITH text-345.

            EXIT.

          ENDIF.

          IF NOT itab_zycit263[] IS INITIAL.

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

            SELECT * FROM /pws/zycit006

            INTO TABLE itab_zycit006

            WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

* << Fim da exclusão

          ENDIF.

          READ TABLE itab_zycit263 WITH KEY

               ebeln     = itab_zycit003-ebeln

               ebelp     = itab_zycit003-ebelp

               eliminado = space.

          IF sy-subrc NE 0.

            CALL FUNCTION '/PWS/ZYCI_DEQUEUE_ZYCIT013'

                 EXPORTING

                      ebeln = itab_zycit003-ebeln

                      ebelp = itab_zycit003-ebelp.

...

 

...

       okcode = 'P+' OR okcode = 'P++' ).

  ELSEIF okcode EQ 'SELE_DA' OR okcode EQ 'ENTE' OR okcode EQ 'SAVE' OR

                                                okcode EQ 'FAT'.

    IF sy-tcode EQ '/PWS/ZYCI001_C' AND okcode EQ 'SAVE'.

      CALL FUNCTION '/PWS/ZYCI_ENQUEUE_ZYCIT001'

           EXPORTING

                nrseq = /pws/zycie001-nrseq.

    ENDIF.

    CHECK NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

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

           FOR ALL ENTRIES IN itab_zycit003 WHERE

           nrseq = itab_zycit003-nrseq AND

           ebeln = itab_zycit003-ebeln AND

           ebelp = itab_zycit003-ebelp AND

           eliminado = space.

* << Fim da exclusão

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

          WHERE nrseq = /pws/zycie001-nrseq

            AND eliminado = space.

* << Fim da inclusão

    FREE itab_itens_aux.

    CLEAR itab_itens_aux.

    IF NOT itab_zycit003[] IS INITIAL AND /pws/zycit442 IS INITIAL.

      READ TABLE itab_zycit003 INDEX 1.

      SELECT SINGLE * FROM /pws/zycit442

        WHERE nrseqda EQ itab_zycit003-nrseqda.

    ELSE.

      SELECT SINGLE * FROM /pws/zycit455

         WHERE nrseqda EQ /pws/zycit442-nrseqda.

      SELECT SINGLE * FROM /pws/zycit442

...

 

...

        AND NOT /pws/zycit012-tpnf_db IS INITIAL.

          itab_zycit003-tpnf   = /pws/zycit012-tpnf_db.

        ELSEIF /pws/zycit100-icms_dif EQ 'X'

        AND NOT /pws/zycit012-tpnf_icms IS INITIAL.

          itab_zycit003-tpnf   = /pws/zycit012-tpnf_icms.

        ELSE.

          itab_zycit003-tpnf   = /pws/zycit012-tpnf.

          REFRESH itab_zycit263.

          IF NOT itab_zycit003[] IS INITIAL.

            SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

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

                   FOR ALL ENTRIES IN itab_zycit003 WHERE

                   nrseq = itab_zycit003-nrseq AND

                   ebeln = itab_zycit003-ebeln AND

                   ebelp = itab_zycit003-ebelp AND

                   eliminado = space.

* << Fim da exclusão

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

                  WHERE nrseq = /pws/zycie001-nrseq

                    AND eliminado = space.

* << Fim da inclusão

          ENDIF.

          READ TABLE itab_zycit263 WITH KEY ebeln = itab_zycit263-ebeln

                                            ebelp = itab_zycit263-ebelp.

          IF sy-subrc EQ 0.

            SELECT SINGLE frpagto INTO /pws/zycit006-frpagto

             FROM /pws/zycit006

             WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

            IF sy-subrc EQ 0.

              IF /pws/zycit006-frpagto EQ 'A'.

                itab_zycit003-tpnf = /pws/zycit012-tpnf_ld.

...

 

...

    CLEAR   : itab_pedido.

    REFRESH : itab_pedido.

  ENDIF.

ENDFORM.

FORM carrega_saldo.

  CLEAR   : itab_pedido.

  REFRESH : itab_pedido.

  IF NOT itab_zycit013[] IS INITIAL.

    DATA: v_qtdemb TYPE /pws/zycit003-qtd_iten,

          v_slqtde TYPE /pws/zycit013-slqtde  .

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

    DATA: BEGIN OF itab_pedido_temp OCCURS 0.

    DATA: ebeln TYPE ekpo-ebeln,

          ebelp TYPE ekpo-ebelp.

    DATA: END OF itab_pedido_temp.

* << Fim da inclusão

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

    DATA: BEGIN OF itab_zycit003_util OCCURS 0.

            INCLUDE STRUCTURE /pws/zycit003.

    DATA: END OF itab_zycit003_util.

* << Fim da exclusão

    SELECT ebeln ebelp menge bstyp FROM ekpo

    INTO TABLE itab_pedido

    FOR ALL ENTRIES IN itab_zycit013

    WHERE ebeln EQ itab_zycit013-ebeln

      AND ebelp EQ itab_zycit013-ebelp.

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

    REFRESH: itab_zycit003_util.

    itab_zycit003_util[] = itab_zycit003[].

* << Fim da exclusão

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

    REFRESH itab_pedido_temp.

    LOOP AT itab_zycit013.

* << Fim da inclusão

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

    SELECT * FROM /pws/zycit003

* << Fim da exclusão

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

      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.

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

    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.

      SELECT nrseq ebeln ebelp qtd_iten FROM /pws/zycit003

* << Fim da inclusão

    APPENDING TABLE itab_zycit003_util

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

      FOR ALL ENTRIES IN itab_zycit013

      WHERE ebeln EQ itab_zycit013-ebeln

        AND ebelp EQ itab_zycit013-ebelp

* << Fim da exclusão

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

        FOR ALL ENTRIES IN itab_pedido_temp

        WHERE ebeln EQ itab_pedido_temp-ebeln

          AND ebelp EQ itab_pedido_temp-ebelp

* << Fim da inclusão

        AND nrseq NE /pws/zycie001-nrseq.

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

    ENDIF.

* << Fim da inclusão

  ENDIF.

  LOOP AT itab_zycit013.

    CLEAR: itab_pedido, itab_zycit003_util.

    READ TABLE itab_pedido WITH KEY ebeln = itab_zycit013-ebeln

                                    ebelp = itab_zycit013-ebelp.

    IF sy-subrc EQ 0.

      CLEAR v_qtdemb.

      LOOP AT itab_zycit003_util WHERE ebeln EQ itab_zycit013-ebeln

                                 AND   ebelp EQ itab_zycit013-ebelp.

        v_qtdemb = v_qtdemb + itab_zycit003_util-qtd_iten.

      ENDLOOP.

    ENDIF.

    v_slqtde = itab_pedido-menge - v_qtdemb.

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

    IF v_slqtde NE itab_zycit013-slqtde.

* << Fim da inclusão

    itab_zycit013-slqtde = v_slqtde.

    UPDATE /pws/zycit013 SET slqtde  = itab_zycit013-slqtde

                             menge   = itab_pedido-menge

                       WHERE ebeln   = itab_zycit013-ebeln

                         AND ebelp   = itab_zycit013-ebelp .

    itab_zycit013-menge   = itab_pedido-menge.

    MODIFY itab_zycit013.

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

    ENDIF.

* << Fim da inclusão

  ENDLOOP.

ENDFORM.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001I01

 

...

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

    PERFORM verifica_itens.

  ELSE.

    PERFORM verifica_itens_da.

  ENDIF.

ENDMODULE.

MODULE verifica_peso INPUT.

ENDMODULE.

MODULE atualiza_itens INPUT.

  IF NOT itab_zycit003[] IS INITIAL.

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

    IF itab_zycit263[] IS INITIAL.

* << Fim da inclusão

    SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

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

           FOR ALL ENTRIES IN itab_zycit003 WHERE

           nrseq = itab_zycit003-nrseq AND

           ebeln = itab_zycit003-ebeln AND

           ebelp = itab_zycit003-ebelp AND

           eliminado = space.

* << Fim da exclusão

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

            WHERE nrseq = /pws/zycie001-nrseq

              AND eliminado = space.

    ENDIF.

    IF NOT itab_zycit263[] IS INITIAL.

* << Fim da inclusão

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

    IF NOT itab_zycit263[] IS INITIAL.

* << Fim da exclusão

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

      REFRESH itab_temp_seq_pgfat.

      LOOP AT itab_zycit263.

        itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit263-nrseq_pgfat.

        COLLECT itab_temp_seq_pgfat.

      ENDLOOP.

      IF NOT itab_temp_seq_pgfat[] IS INITIAL.

* << Fim da inclusão

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

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

        FOR ALL ENTRIES IN itab_zycit263

        WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

* << Fim da exclusão

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

          FOR ALL ENTRIES IN itab_temp_seq_pgfat

          WHERE nrseq_pgfat EQ itab_temp_seq_pgfat-nrseq_pgfat

            AND nrseqce = /pws/zycit094-nrseqce.

      ENDIF.

* << Fim da inclusão

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          DELETE itab_zycit263 INDEX v_tabix.

        ENDIF.

      ENDLOOP.

    ENDIF.

...

 

...

      WHEN 'NOTA'.

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

          MESSAGE i013 WITH text-202.

          EXIT.

        ENDIF.

        IF v_status_s NE 0.

          PERFORM grava_tabelas.

        ENDIF.

        CLEAR v_fat.

        IF NOT itab_zycit003[] IS INITIAL.

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

          SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

                WHERE nrseq = /pws/zycie001-nrseq

                  AND eliminado = space.

* << Fim da inclusão

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

          SELECT *

            FROM /pws/zycit263

            INTO TABLE itab_zycit263

            FOR ALL ENTRIES IN itab_zycit003

            WHERE nrseq EQ itab_zycit003-nrseq

              AND ebeln EQ itab_zycit003-ebeln

              AND ebelp EQ itab_zycit003-ebelp.

* << Fim da exclusão

        ENDIF.

        IF NOT itab_zycit263[] IS INITIAL.

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

          SELECT *

            FROM /pws/zycit006

* << Fim da exclusão

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

          REFRESH itab_temp_seq_pgfat.

          LOOP AT itab_zycit263.

            itab_temp_seq_pgfat-nrseq_pgfat = itab_zycit263-nrseq_pgfat.

            COLLECT itab_temp_seq_pgfat.

          ENDLOOP.

          IF NOT itab_temp_seq_pgfat[] IS INITIAL.

            SELECT * FROM /pws/zycit006

* << Fim da inclusão

            INTO TABLE itab_zycit006

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

            FOR ALL ENTRIES IN itab_zycit263

            WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

* << Fim da exclusão

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

              FOR ALL ENTRIES IN itab_temp_seq_pgfat

              WHERE nrseq_pgfat EQ itab_temp_seq_pgfat-nrseq_pgfat

                AND nrseqce = /pws/zycit094-nrseqce.

          ENDIF.

* << Fim da inclusão

        ENDIF.

        LOOP AT itab_zycit006 WHERE eliminado NE 'X'

                                AND tpfatura  EQ '01'

                                AND frpagto   NE 'A'

                                AND belnr_p   EQ space.

          SELECT SINGLE * FROM /pws/zycit132

            WHERE nrseq = itab_zycit006-nrseq AND

                  eliminado NE 'X' AND

                  belnr_p EQ space.

          IF sy-subrc = 0.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001X01

 

...

      ekorg   LIKE  ekpa-ekorg,

      ltsnr   LIKE  ekpa-ltsnr,

      werks   LIKE  ekpa-werks,

      parvw   LIKE  ekpa-parvw,

      parza   LIKE  ekpa-parza,

      ernam   LIKE  ekpa-ernam,

      erdat   LIKE  ekpa-erdat,

      lifn2   LIKE  ekpa-lifn2.

DATA: END OF itab_ekpa.

DATA: v_manual.

* >> Início da inclusão:

DATA: itab_tcurx TYPE tcurx OCCURS 0 WITH HEADER LINE ,

      v_mod_ped TYPE c.

DATA: BEGIN OF itab_temp_seq_pgfat OCCURS 0.

DATA: nrseq_pgfat TYPE /pws/zycit006-nrseq_pgfat.

DATA: END OF itab_temp_seq_pgfat.

DATA: BEGIN OF itab_zycit003_util OCCURS 0.

DATA: nrseq    TYPE /pws/zycit003-nrseq,

      ebeln    TYPE /pws/zycit003-ebeln,

      ebelp    TYPE /pws/zycit003-ebelp,

      qtd_iten TYPE /pws/zycit003-qtd_iten.

DATA: END OF itab_zycit003_util.

* << Fim da inclusão

DATA: END OF COMMON PART a.