CE PLUS - Nota 002602

Módulo: DRAWBACK

Funcionalidade: Forecast

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

Data/Hora Última Alteração: 17/02/2011 14:35:45

Descrição da Nota: AJUSTES PARA PREENCHIMENTO DOS CAMPOS AREA DE NEGÓCIO E CENTRO PRODUTIVO

Sintoma

O programa não estava preenchendo corretamente o campo Centro Produtivo ao preencher a area de

negócio.

 

 

Solução

Foi criado no programa tratamentos para preencher o Centro Produtivo correspondente as Areas de

Negócio selecionadas

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE NO FORECAST PARA COMTEMPLAR TAB. DE AREA DE NEGOCIO X CENTRO PROD

Informações Complementares

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

Nota Número 02602 Data: 06/12/2006 Hora: 09:49:11

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

 

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

Nota Número              : 02602

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00026

Agrupamento              : 00142

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

Referência às notas relacionadas:

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

 

02561  - 00001 - 6.0    - 00025  - AJUSTE NO FORECAST PARA COMTEMPLAR TAB. DE AREA DE NEGOCIO X CENT

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

AJUSTES PARA PREENCHIMENTO DOS CAMPOS AREA DE NEGÓCIO E CENTRO PRODUTIVO

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

Palavras Chave:

/PWS/ZYCIE238-CODAGRUP, /PWS/ZYCIE238-WERKS, ITAB_AREAS, ITAB_CENTROS

/PWS/ZYCIT250, /PWS/ZYCIT475

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

Objetos da nota:

DYNP /PWS/SAPMZYCI063                        0101

DYNP /PWS/SAPMZYCI063                        0110

REPS /PWS/MZYCI063F01

REPS /PWS/MZYCI063F03

REPS /PWS/MZYCI063I01

REPS /PWS/MZYCI063O01

REPS /PWS/MZYCI063TOP

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI063                        0101

 

*Alterações layout:

 

   Nome

      Ctg.      Linha   Coluna  CmprDf  CmVis   Altura  Format Dict  Modif At.Des.Só At

      Gr1 Gr2 Gr3 Gr4  SPA GPA ID parâm             Cód.F                TCmp   TpoLoopExbLoop

      Outros atributos

* >> Início da inclusão:

   BTN4

      Push       7       32       9       4       1     CHAR                   Off

      NEX                                           AREA

      C/ícone

* << Fim da inclusão.

* >> Início da exclusão:

  BTN3

      CtrlA      7       32       4       4       1

* << Fim da exclusão.

 

 

 

 

*Código fonte:

  CHAIN.

    FIELD /pws/zycie238-werks MODULE altera_werks ON CHAIN-REQUEST.

  ENDCHAIN.

  CHAIN.

    FIELD /pws/zycie238-bukrs MODULE altera_bukrs ON CHAIN-REQUEST.

  ENDCHAIN.

* >> Início da exclusão:

    FIELD /pws/zycie238-codagrup MODULE altera_areas ON REQUEST.

* << Fim da exclusão.

* >> Início da inclusão:

  CHAIN.

    FIELD /pws/zycie238-codagrup MODULE altera_areas ON CHAIN-INPUT.

  ENDCHAIN.

* << Fim da inclusão.

 

  MODULE: user_command_0101.

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI063F01

 

...

      CALL METHOD btn1->set_button_info EXPORTING fcode     = 'BTN1'

                                                  icon      = v_icone

                                                  quickinfo = text-007.

    ENDIF.

  ENDIF.

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

  IF btn3 IS INITIAL.

    REFRESH myevent_tab.

    myevent-eventid    = cl_gui_toolbar=>m_id_function_selected.

    myevent-appl_event = 'X'.

    APPEND myevent TO myevent_tab.

    CREATE OBJECT evt_receiver3.

    CREATE OBJECT toolbar_container3 EXPORTING

                                     container_name = tool_container3.

    CREATE OBJECT btn3 EXPORTING

                             parent = toolbar_container3.

    CALL METHOD btn3->set_registered_events

                                      EXPORTING events = myevent_tab.

    SET HANDLER evt_receiver3->on_function_selected FOR btn3.

    IF itab_areas[] IS INITIAL.

      CLEAR v_icone.

      PERFORM call_icon USING text-006 CHANGING v_icone.

    ELSE.

      CLEAR v_icone.

      PERFORM call_icon USING text-008 CHANGING v_icone.

    ENDIF.

    CALL METHOD btn3->add_button

         EXPORTING

           fcode       = 'BTN3'

           icon        = v_icone

           butn_type   = 0

           is_disabled = ''

           text        = ''

           quickinfo   = text-293.

  ELSE.

    IF NOT itab_areas[] IS INITIAL.

      CLEAR v_icone.

      PERFORM call_icon USING text-008 CHANGING v_icone.

      CALL METHOD btn3->set_button_info EXPORTING fcode     = 'BTN3'

                                                  icon      = v_icone

                                                  quickinfo = text-293.

    ELSE.

      CLEAR v_icone.

      PERFORM call_icon USING text-006 CHANGING v_icone.

      CALL METHOD btn3->set_button_info EXPORTING fcode     = 'BTN3'

                                                  icon      = v_icone

                                                  quickinfo = text-293.

    ENDIF.

  ENDIF.

* << Fim da exclusão

ENDFORM.

FORM call_icon USING value(p_name) CHANGING p_v_icone.

  CALL FUNCTION 'ICON_CREATE'

       EXPORTING

            name                  = p_name

...

 

...

    IF screen-group1 NE 'NEX'.

      screen-input = v_status.

      MODIFY SCREEN.

    ENDIF.

  ENDLOOP.

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

  IF itab_areas[] IS INITIAL.

    btn4 = '@1F@'.

  ELSE.

    btn4 = '@1E@'.

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM trata_saldo.

  CLEAR: itab_sdocompi. REFRESH: itab_sdocompi.

  LOOP AT itab_compi_final.

    CLEAR: itab_sdocompi.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI063F03

 

...

  ENDLOOP.

ENDFORM.

FORM execute_button_btn3.

  MOVE /pws/zycie238-codagrup TO v_areas.

  CALL SCREEN '0110' STARTING AT 33 5.

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

  itab_areas_aux[] = itab_areas[].

* << Fim da inclusão

  READ TABLE itab_areas INDEX 1.

  IF sy-subrc EQ 0 AND v_areas IS INITIAL.

    MOVE itab_areas-codagrup TO /pws/zycie238-codagrup.

  ELSE.

    MOVE v_areas TO /pws/zycie238-codagrup.

  ENDIF.

  DELETE itab_areas WHERE codagrup = /pws/zycie238-codagrup.

  SET CURSOR FIELD /pws/zycie238-codagrup.

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

  CLEAR v_areas.

* << Fim da exclusão

ENDFORM.

FORM altera_area.

  IF NOT /pws/zycie238-codagrup IS INITIAL

    AND itab_centros[] IS INITIAL.

    SELECT *

...

 

...

  SORT itab_centros.

  DELETE ADJACENT DUPLICATES FROM itab_centros.

  SORT itab_areas.

  DELETE ADJACENT DUPLICATES FROM itab_areas.

ENDFORM.

* >> Início da inclusão:

FORM altera_area_cab.

  IF NOT itab_areas[] IS INITIAL.

    SELECT *

    FROM /pws/zycit475

    INTO TABLE itab_zycit475

    FOR ALL ENTRIES IN itab_areas

    WHERE codagrup = itab_areas-codagrup.

  ENDIF.

  IF NOT v_areas IS INITIAL.

    SELECT *

    FROM /pws/zycit475

    APPENDING TABLE itab_zycit475

    WHERE codagrup = v_areas.

  ENDIF.

  IF sy-subrc = 0.

    LOOP AT itab_zycit475.

      MOVE: itab_zycit475-werks     TO itab_centros-werks,

            /pws/zycie238-nrseqd    TO itab_centros-nrseqd,

            itab_zycit475-codagrup  TO itab_areas-codagrup,

            /pws/zycie238-nrseqd    TO itab_areas-nrseqd.

      APPEND itab_areas.

      APPEND itab_centros.

    ENDLOOP.

    SORT itab_centros BY werks.

    READ TABLE itab_centros INDEX 1.

    IF sy-subrc EQ 0 AND v_werks IS INITIAL.

      MOVE itab_centros-werks TO /pws/zycie238-werks.

    ELSE.

      MOVE v_werks TO /pws/zycie238-werks.

    ENDIF.

    DELETE itab_centros WHERE werks = /pws/zycie238-werks.

    SET CURSOR FIELD /pws/zycie238-werks.

    CLEAR v_werks.

    LOOP AT itab_centros.

      READ TABLE itab_zycit475 WITH KEY werks = itab_centros-werks.

      IF sy-subrc <> 0.

        DELETE itab_centros.

      ENDIF.

    ENDLOOP.

  ENDIF.

  SORT itab_centros.

  DELETE ADJACENT DUPLICATES FROM itab_centros.

  SORT itab_areas.

  DELETE ADJACENT DUPLICATES FROM itab_areas.

ENDFORM.

FORM seleciona_correspondente.

  IF /pws/zycie238-codagrup IS INITIAL

  AND NOT itab_areas[] IS INITIAL.

    CLEAR: itab_centros, itab_zycit475.

    REFRESH: itab_centros, itab_zycit475.

    READ TABLE itab_areas INDEX 1.

    /pws/zycie238-codagrup = itab_areas-codagrup.

    SELECT *

    FROM /pws/zycit475

    INTO TABLE itab_zycit475

    FOR ALL ENTRIES IN itab_areas

    WHERE codagrup = itab_areas-codagrup.

    DELETE itab_areas WHERE codagrup = /pws/zycie238-codagrup.

    LOOP AT itab_zycit475.

      MOVE: itab_zycit475-werks     TO itab_centros-werks,

            /pws/zycie238-nrseqd    TO itab_centros-nrseqd.

      APPEND itab_centros.

    ENDLOOP.

    IF NOT itab_centros[] IS INITIAL.

      READ TABLE itab_centros INDEX 1.

      IF sy-subrc EQ 0 AND v_werks IS INITIAL.

        MOVE itab_centros-werks TO /pws/zycie238-werks.

      ELSE.

        MOVE v_werks TO /pws/zycie238-werks.

      ENDIF.

      DELETE itab_centros WHERE werks = /pws/zycie238-werks.

      SET CURSOR FIELD /pws/zycie238-werks.

      CLEAR v_werks.

      SORT itab_centros.

      DELETE ADJACENT DUPLICATES FROM itab_centros.

      SORT itab_areas.

      DELETE ADJACENT DUPLICATES FROM itab_areas.

    ENDIF.

  ELSEIF /pws/zycie238-codagrup IS INITIAL

  AND itab_areas[] IS INITIAL.

    CLEAR: /pws/zycie238-werks,

           itab_centros.

    REFRESH itab_centros.

  ELSEIF NOT /pws/zycie238-codagrup IS INITIAL

  AND /pws/zycie238-werks IS INITIAL

  AND NOT itab_centros[] IS INITIAL.

    READ TABLE itab_centros INDEX 1.

    /pws/zycie238-werks = itab_centros-werks.

    DELETE itab_centros WHERE werks = /pws/zycie238-werks.

  ELSEIF NOT /pws/zycie238-codagrup IS INITIAL

  AND NOT /pws/zycie238-werks IS INITIAL

  AND NOT itab_centros[] IS INITIAL.

    SELECT *

    FROM /pws/zycit475

    INTO TABLE itab_zycit475

    WHERE codagrup = /pws/zycie238-codagrup.

    LOOP AT itab_zycit475.

      READ TABLE itab_centros WITH KEY werks = itab_zycit475-werks.

      IF sy-subrc NE 0.

        MOVE: itab_zycit475-werks     TO itab_centros-werks,

              /pws/zycie238-nrseqd    TO itab_centros-nrseqd.

        APPEND itab_centros.

      ENDIF.

      LOOP AT itab_centros.

        READ TABLE itab_zycit475 WITH KEY werks = itab_centros-werks.

        IF sy-subrc <> 0.

          DELETE itab_centros.

        ENDIF.

      ENDLOOP.

    ENDLOOP.

    READ TABLE itab_centros INDEX 1.

    /pws/zycie238-werks = itab_centros-werks.

    DELETE itab_centros WHERE werks = /pws/zycie238-werks.

  ENDIF.

ENDFORM.

FORM altera_area2.

  IF NOT /pws/zycie238-codagrup IS INITIAL.

    SELECT *

    FROM /pws/zycit475

    INTO TABLE itab_zycit475

    WHERE codagrup = /pws/zycie238-codagrup.

    IF sy-subrc = 0.

      LOOP AT itab_zycit475.

        MOVE: itab_zycit475-werks     TO itab_centros-werks,

              /pws/zycie238-nrseqd    TO itab_centros-nrseqd,

              itab_zycit475-codagrup  TO itab_areas-codagrup,

              /pws/zycie238-nrseqd    TO itab_areas-nrseqd.

        APPEND itab_areas.

        APPEND itab_centros.

      ENDLOOP.

      MOVE /pws/zycie238-werks TO v_werks.

      READ TABLE itab_centros INDEX 1.

      IF sy-subrc EQ 0 AND v_werks IS INITIAL.

        MOVE itab_centros-werks TO /pws/zycie238-werks.

      ELSE.

        MOVE v_werks TO /pws/zycie238-werks.

      ENDIF.

      DELETE itab_centros WHERE werks = /pws/zycie238-werks.

      SET CURSOR FIELD /pws/zycie238-werks.

      CLEAR v_werks.

      MOVE /pws/zycie238-codagrup TO v_areas.

      READ TABLE itab_areas INDEX 1.

      IF sy-subrc EQ 0 AND v_areas IS INITIAL.

        MOVE itab_areas-codagrup TO /pws/zycie238-codagrup.

      ELSE.

        MOVE v_areas TO /pws/zycie238-codagrup.

      ENDIF.

      DELETE itab_areas WHERE codagrup = /pws/zycie238-codagrup.

      SET CURSOR FIELD /pws/zycie238-codagrup.

      CLEAR v_areas.

    ENDIF.

  ENDIF.

  SORT itab_centros.

  DELETE ADJACENT DUPLICATES FROM itab_centros.

  SORT itab_areas.

  DELETE ADJACENT DUPLICATES FROM itab_areas.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI063I01

 

...

      PERFORM atualiza_qtde_insumo.

      PERFORM atualiza_impostos.

      MESSAGE s015 WITH text-046.

    WHEN 'APROV'.

      PERFORM trata_button_aprov.

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

    WHEN 'AREA'.

      PERFORM execute_button_btn3.

* << Fim da inclusão

  ENDCASE.

  CLEAR: ok_code.

ENDMODULE.

MODULE user_command_0100_exit INPUT.

  CASE ok_code.

...

 

...

ENDMODULE.

MODULE user_command_0101 INPUT.

  CASE ok_code.

    WHEN 'SELE'.

      PERFORM trata_selecao.

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

    WHEN 'ENTE'.

      PERFORM seleciona_correspondente.

* << Fim da inclusão

  ENDCASE.

ENDMODULE.

MODULE altera_werks INPUT.

  AUTHORITY-CHECK OBJECT 'C_PPBD'

        ID 'WERKS' FIELD /pws/zycie238-werks.

...

 

...

ENDMODULE.

MODULE user_command_0110 INPUT.

  DATA: v_exc_areas.

  CASE ok_code.

    WHEN 'CANCE' OR 'CANCEL'.

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

      IF /pws/zycie238-codagrup IS INITIAL

      AND NOT itab_areas_aux[] IS INITIAL

      AND itab_areas[] <> itab_areas_aux[].

        PERFORM altera_area_cab.

        LEAVE TO SCREEN 0.

      ELSE.

* << Fim da inclusão

      IF /pws/zycie238-werks IS INITIAL.

        READ TABLE itab_centros INDEX 1.

        /pws/zycie238-werks = itab_centros-werks.

        DELETE itab_centros WHERE werks = /pws/zycie238-werks.

      ENDIF.

      IF /pws/zycie238-codagrup = itab_areas-codagrup.

        READ TABLE itab_areas INDEX 1.

        /pws/zycie238-codagrup = itab_areas-codagrup.

      ENDIF.

      LEAVE TO SCREEN 0.

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

      ENDIF.

* << Fim da inclusão

  ENDCASE.

  CLEAR ok_code2.

ENDMODULE.

MODULE altera_areas INPUT.

  CASE ok_code.

    WHEN 'ENTE'.

      PERFORM altera_area.

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

    WHEN 'AREA'.

      PERFORM altera_area2.

* << Fim da inclusão

  ENDCASE.

ENDMODULE.

 

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

Modificações efetuadas em REPS /PWS/MZYCI063TOP

 

...

        INCLUDE STRUCTURE /pws/zycit250.

DATA: END OF itab_areas.

DATA: BEGIN OF itab_areas_save OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit250        .

DATA: END OF itab_areas_save           .

* >> Início da inclusão:

DATA: BEGIN OF itab_areas_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit250        .

DATA: END OF itab_areas_aux           .

* << Fim da inclusão

DATA: BEGIN OF itab_exp OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie239.

DATA: mark(1) TYPE c      .

DATA: END OF itab_exp           .

DATA: BEGIN OF itab_exp_save OCCURS 0.

...

 

...

      myevent_tab        TYPE        cntl_simple_events     ,

      myevent_tab3       TYPE        cntl_simple_events     ,

      myevent            TYPE        cntl_simple_event      ,

      myevent3           TYPE        cntl_simple_event      ,

      btn1               TYPE REF TO cl_gui_toolbar         ,

* >> Início da exclusão:

      btn3               TYPE REF TO cl_gui_toolbar         .

* << Fim da exclusão

* >> Início da inclusão:

      btn4               TYPE icon-id                       .

* << Fim da inclusão

CLASS lcl_my_event_handler1 DEFINITION.

  PUBLIC SECTION.

    METHODS on_function_selected

            FOR EVENT function_selected OF cl_gui_toolbar

                      IMPORTING fcode.

...