CE PLUS - Nota 002190

Módulo: DRAWBACK

Funcionalidade: Relatórios

Data/Hora da Publicação: 03/10/2006 00:00:00

Data/Hora Última Alteração: 17/02/2011 14:00:03

Descrição da Nota: TRATAMENTO DE DATAS E EXCLUSÃO DOS TRATAMENTOS DE INSUMOS_ALTERNATIVOS

Sintoma

Na tabela /pws/zycit433, o preenchimento das datas estava incorreto, pois mesmo os materiais

alternativos vinham com as datas dos materiais e ao alterar a data de um material, essa data era

passada para o material de outro grupo.

 

 

Solução

No programa foi tirado o tratamento para preenchimento dos materiais alternativos e foi tratato a

data para considerar o grupo.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

TRATAMENTO NO PROGRAMA PARA TRAZER CORRETAMENTE OS INSUMOS

AJUSTE NA MONTAGEM DOS DADOS REFERENTES AS DATAS NA TABELA.

Informações Complementares

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

Nota Número 02190 Data: 03/10/2006 Hora: 11:37:16

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

 

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

Nota Número              : 02190

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00025

Agrupamento              : 00134

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

Referência às notas relacionadas:

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

 

01977  - 00001 - 6.0    - 00024  - TRATAMENTO NO PROGRAMA PARA TRAZER CORRETAMENTE OS INSUMOS

02085  - 00002 - 6.0    - 00024  - AJUSTE NA MONTAGEM DOS DADOS REFERENTES AS DATAS NA TABELA.

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

TRATAMENTO DE DATAS E EXCLUSÃO DOS TRATAMENTOS DE INSUMOS_ALTERNATIVOS

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

Palavras Chave:

MATNR_ALT, /PWS/ZYCIR342, DTDE, DTATE, /PWS/ZYCIT433

 

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

Objetos da nota:

REPS /PWS/ZYCIR342

REPS /PWS/ZYCIR342F01

REPS /PWS/ZYCIR342I01

REPS /PWS/ZYCIR342O01

REPS /PWS/ZYCIR342TOP

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342F01

 

FORM move_insumos.

  itab_insumo[] = itab_zycit433_s[].

  DELETE itab_insumo WHERE grupo NE itab_grupo-grupo.

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

  LOOP AT itab_insumo.

    IF itab_insumo-matnr_alt NE itab_insumo-matnr

    AND NOT itab_insumo-matnr_alt IS INITIAL.

      DELETE itab_insumo.

    ENDIF.

  ENDLOOP.

* << Fim da exclusão

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

  DELETE ADJACENT DUPLICATES FROM itab_insumo

        COMPARING matnr.

* << Fim da inclusão

  MOVE: itab_grupo-grupo   TO /pws/zycie433-grupo  ,

        itab_grupo-desc_g  TO /pws/zycie433-desc_g ,

        itab_grupo-j_1bnbm TO /pws/zycie433-j_1bnbm,

        itab_grupo-meins   TO /pws/zycie433-meins  .

ENDFORM.

...

 

...

    MESSAGE  i015 WITH text-005.

    EXIT.

  ENDIF.

  IF v_resposta EQ '1'.

    LOOP AT itab_zycit433_s WHERE grupo EQ itab_insumo-grupo

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

                              AND ( matnr EQ itab_insumo-matnr

                               OR matnr_alt EQ itab_insumo-matnr ).

* << Fim da exclusão

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

                              AND matnr EQ itab_insumo-matnr.

* << Fim da inclusão

      itab_zycit433_d = itab_zycit433_s.

      APPEND itab_zycit433_d.

      DELETE itab_zycit433_s.

    ENDLOOP.

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

    SORT itab_zycit433_d BY grupo matnr matnr_alt.

* << Fim da exclusão

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

    SORT itab_zycit433_d BY grupo matnr.

* << Fim da inclusão

    DELETE ADJACENT DUPLICATES FROM itab_zycit433_d

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

        COMPARING grupo matnr matnr_alt.

* << Fim da exclusão

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

        COMPARING grupo matnr.

* << Fim da inclusão

    DELETE itab_insumo WHERE mark EQ 'X'.

  ENDIF.

ENDFORM.

FORM pergunta USING p_titulo

                    p_pergunta

...

 

...

       EXCEPTIONS

          text_not_found              = 1

          OTHERS                      = 2.

ENDFORM.

FORM grava.

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

  DATA: itab_zycit433_a1 TYPE /pws/zycit433 OCCURS 0 WITH HEADER LINE,

        itab_zycit433_a2 TYPE /pws/zycit433 OCCURS 0 WITH HEADER LINE,

        v_matnr_alt      TYPE /pws/zycit433-matnr_alt.

  REFRESH: itab_zycit433_a1, itab_zycit433_a2.

  LOOP AT itab_zycit433_s.

    IF itab_zycit433_s-matnr_alt NE itab_zycit433_s-matnr

    AND NOT itab_zycit433_s-matnr_alt IS INITIAL.

      DELETE itab_zycit433_s.

    ENDIF.

  ENDLOOP.

  itab_zycit433_a1[] = itab_zycit433_a2[] = itab_zycit433_s[].

  REFRESH itab_zycit433_s.

* << Fim da exclusão

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

  SORT itab_zycit433_s BY grupo matnr.

* << Fim da inclusão

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

  IF NOT itab_zycit433_a1[] IS INITIAL.

    SORT itab_zycit433_a2 BY grupo matnr.

    DELETE ADJACENT DUPLICATES FROM itab_zycit433_a2

        COMPARING grupo matnr.

    LOOP AT itab_zycit433_a1.

      LOOP AT itab_zycit433_a2

                        WHERE grupo EQ itab_zycit433_a1-grupo.

        itab_zycit433_s = itab_zycit433_a2.

        itab_zycit433_s-matnr = itab_zycit433_a1-matnr.

        itab_zycit433_s-matnr_alt = itab_zycit433_a2-matnr.

        APPEND itab_zycit433_s.

      ENDLOOP.

    ENDLOOP.

    DELETE itab_zycit433_s WHERE matnr_alt EQ space.

    SORT itab_zycit433_s BY grupo matnr matnr_alt.

* << Fim da exclusão

    DELETE ADJACENT DUPLICATES FROM itab_zycit433_s.

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

  ENDIF.

* << Fim da exclusão

  DELETE /pws/zycit433 FROM TABLE itab_zycit433_d.

  MODIFY /pws/zycit433 FROM TABLE itab_zycit433_s.

ENDFORM.

* >> Início da exclusão:

.

* << Fim da exclusão

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342I01

 

...

  ENDIF.

ENDMODULE.

MODULE user_command_0101 INPUT.

ENDMODULE.

MODULE   user_command_0100 INPUT.

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

  DATA: v_resposta   TYPE c.

* << Fim da exclusão

  CASE v_okcode.

    WHEN 'FS_GR'.

      v_tela = '0101'.

      v_pasta = v_okcode.

    WHEN 'FS_IS'.

...

 

...

      MESSAGE i015 WITH text-016.

      EXIT.

    ENDIF.

    CLEAR: v_exist.

    LOOP AT itab_zycit433_s

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

                    WHERE ( matnr_alt EQ /pws/zycie433-matnr or

                          ( matnr     EQ /pws/zycie433-matnr and

                            matnr_alt EQ space ) )

* << Fim da exclusão

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

                    WHERE matnr EQ /pws/zycie433-matnr

* << Fim da inclusão

                      AND grupo NE itab_grupo-grupo

                      AND ( ( dtde  >= /pws/zycie433-dtde

                       AND    dtde  <= /pws/zycie433-dtate )

                       OR  (  dtate >= /pws/zycie433-dtde

                       AND    dtate <= /pws/zycie433-dtate ) ).

      v_exist = 'X'.

      EXIT.

    ENDLOOP.

    LOOP AT itab_zycit433_s

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

                    WHERE ( matnr_alt EQ /pws/zycie433-matnr or

                          ( matnr     EQ /pws/zycie433-matnr and

                            matnr_alt EQ space ) )

* << Fim da exclusão

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

                    WHERE matnr EQ /pws/zycie433-grupo

* << Fim da inclusão

                      AND grupo NE itab_grupo-grupo

                      AND ( ( dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate )

                       OR  (  dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate ) ).

...

 

...

    itab_zycit433_s = itab_insumo.

    APPEND itab_zycit433_s.

  ELSE.

    CLEAR: v_exist.

    LOOP AT itab_zycit433_s

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

                    WHERE ( matnr_alt EQ /pws/zycie433-matnr or

                          ( matnr     EQ /pws/zycie433-matnr and

                            matnr_alt EQ space ) )

* << Fim da exclusão

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

                    WHERE matnr EQ /pws/zycie433-matnr

* << Fim da inclusão

                      AND grupo NE itab_grupo-grupo

                      AND ( ( dtde  >= /pws/zycie433-dtde

                       AND    dtde  <= /pws/zycie433-dtate )

                       OR  (  dtate >= /pws/zycie433-dtde

                       AND    dtate <= /pws/zycie433-dtate ) ).

      v_exist = 'X'.

      EXIT.

    ENDLOOP.

    LOOP AT itab_zycit433_s

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

                    WHERE ( matnr_alt EQ /pws/zycie433-matnr or

                          ( matnr     EQ /pws/zycie433-matnr and

                            matnr_alt EQ space ) )

* << Fim da exclusão

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

                    WHERE matnr EQ /pws/zycie433-grupo

* << Fim da inclusão

                      AND grupo NE itab_grupo-grupo

                      AND ( ( dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate )

                       OR  (  dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate ) ).

...

 

...

        /pws/zycie433-dtde      TO itab_insumo-dtde,

        /pws/zycie433-dtate     TO itab_insumo-dtate.

    MODIFY itab_insumo INDEX tc_insumo-current_line.

    itab_zycit433_s = itab_insumo.

    MODIFY itab_zycit433_s TRANSPORTING dtde dtate

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

                    WHERE  matnr_alt EQ /pws/zycie433-matnr or

                          ( matnr     EQ /pws/zycie433-matnr and

                            matnr_alt EQ space ).

* << Fim da exclusão

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

                WHERE matnr EQ /pws/zycie433-matnr

                            AND grupo = /pws/zycie433-grupo.

* << Fim da inclusão

  ENDIF.

ENDMODULE.

MODULE marca_l102 INPUT.

  READ TABLE itab_insumo INDEX tc_insumo-current_line.

  IF sy-subrc EQ 0 .

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342O01

 

...

MODULE status_0100 OUTPUT.

  SET PF-STATUS 'ST0100'.

  SET TITLEBAR '0100'.

  IF v_ini IS INITIAL.

    v_ini = 'X'.

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

    SORT itab_zycit433 BY grupo matnr matnr_alt .

* << Fim da exclusão

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

    SORT itab_zycit433 BY grupo matnr.

* << Fim da inclusão

    SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433.

    itab_zycit433_s[] = itab_zycit433[].

    LOOP AT itab_zycit433.

      itab_grupo-grupo = itab_zycit433-grupo  .

      itab_grupo-desc_g  = itab_zycit433-desc_g .

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342TOP

 

...

DATA: v_ini        TYPE c                      ,

      v_mark       TYPE c                      ,

      v_okcode     TYPE sy-ucomm               ,

      v_tela(4)    TYPE c VALUE '0101'         ,

      v_pasta      TYPE sy-ucomm VALUE 'TS_GR' ,

* >> Início da exclusão:

      v_confirm(1) TYPE c VALUE 'N'            .

* << Fim da exclusão

* >> Início da inclusão:

      v_confirm(1) TYPE c VALUE 'N'            ,

      v_resposta   TYPE c                      .

* << Fim da inclusão