CE PLUS - Nota 002085

Módulo: DRAWBACK

Funcionalidade: Parâmetros

Data/Hora da Publicação: 12/09/2006 00:00:00

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

Descrição da Nota: AJUSTE NA MONTAGEM DOS DADOS REFERENTES AS DATAS NA TABELA.

Sintoma

O programa preenche as datas de validade com referencia no campo matnr da mas deveria preencher de

acordo com o campo matnr_alt

 

 

Solução

Ajustar o preenchimento da tabela.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

TRATAMENTO NO PROGRAMA PARA TRAZER CORRETAMENTE OS INSUMOS

Informações Complementares

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

Nota Número 02085 Data: 12/09/2006 Hora: 16:36:56

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

 

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

Nota Número              : 02085

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00024

Agrupamento              : 00129

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

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

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

AJUSTE NA MONTAGEM DOS DADOS REFERENTES AS DATAS NA TABELA.

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

Palavras Chave:

INSUMO - ALTERNATIVO - AVANÇO - TECNOLÓGICO

/PWS/ZYCIR342 - /PWS/ZYCIT433

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

Objetos da nota:

REPS /PWS/ZYCIR342F01

REPS /PWS/ZYCIR342I01

 

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

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

  DELETE ADJACENT DUPLICATES FROM itab_insumo

        COMPARING matnr.

* << Fim da exclusão

* >> Início da inclusã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 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.

...

 

...

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.

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

  itab_zycit433_a1[] = itab_zycit433_s[].

  DELETE itab_zycit433_a1 WHERE grupo NE itab_zycit433_s-grupo.

* << Fim da exclusão

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

  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 inclusão

  IF NOT itab_zycit433_a1[] IS INITIAL.

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

    itab_zycit433_a2[] = itab_zycit433_s[].

* << Fim da exclusão

    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.

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

        itab_zycit433_s = itab_zycit433_a2.

* << Fim da inclusão

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

        itab_zycit433_s = itab_zycit433_a1.

* << Fim da exclusão

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

        itab_zycit433_s-matnr = itab_zycit433_a1-matnr.

* << Fim da inclusão

        itab_zycit433_s-matnr_alt = itab_zycit433_a2-matnr.

        APPEND itab_zycit433_s.

      ENDLOOP.

    ENDLOOP.

    DELETE itab_zycit433_s WHERE matnr_alt EQ space.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342I01

 

...

      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 EQ /pws/zycie433-matnr

* << Fim da exclusão

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

                    WHERE ( matnr_alt EQ /pws/zycie433-matnr or

                          ( matnr     EQ /pws/zycie433-matnr and

                            matnr_alt EQ space ) )

* << 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 EQ /pws/zycie433-grupo

* << Fim da exclusão

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

                    WHERE ( matnr_alt EQ /pws/zycie433-matnr or

                          ( matnr     EQ /pws/zycie433-matnr and

                            matnr_alt EQ space ) )

* << 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 EQ /pws/zycie433-matnr

* << Fim da exclusão

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

                    WHERE ( matnr_alt EQ /pws/zycie433-matnr or

                          ( matnr     EQ /pws/zycie433-matnr and

                            matnr_alt EQ space ) )

* << 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 EQ /pws/zycie433-grupo

* << Fim da exclusão

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

                    WHERE ( matnr_alt EQ /pws/zycie433-matnr or

                          ( matnr     EQ /pws/zycie433-matnr and

                            matnr_alt EQ space ) )

* << 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 EQ /pws/zycie433-matnr.

* << Fim da exclusão

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

                WHERE matnr_alt EQ /pws/zycie433-matnr or

                      ( matnr EQ /pws/zycie433-matnr and

                        matnr_alt EQ space ).

* << Fim da inclusão

  ENDIF.

ENDMODULE.

MODULE marca_l102 INPUT.

  READ TABLE itab_insumo INDEX tc_insumo-current_line.

  IF sy-subrc EQ 0 .

...