Escolar Documentos
Profissional Documentos
Cultura Documentos
*-----------------------------------------------------------------------
* Programa : ZPTMR_004
* Cliente : Copersucar
* Módulo : TM
* Transação:
* Descrição: Atualização de Usuário de Aprovação e Liberação
* Autor : Mariana Lara Bottazzini Data: 07/05/2009
*-----------------------------------------------------------------------
* Histórico de Alterações:
*-----------------------------------------------------------------------
* Data |Change # |Autor |Alteração
*-----------------------------------------------------------------------
* 07/05/2009 |CPSK990642 |Mariana Bottazzini|Desenvolvimento Inicial
*-----------------------------------------------------------------------
REPORT zptmr_004 MESSAGE-ID zltm01.
*-----------------------------------------------------------------------
* Tabelas
*-----------------------------------------------------------------------
TABLES:
*** Tabela para botões da tela de seleção
sscrfields.
*-----------------------------------------------------------------------
* Definição de Tipos
*-----------------------------------------------------------------------
TYPES:
CONSTANTS:
*** Grupo da tela de seleção
c_grp1(03) TYPE c VALUE 'GR1',
*** campo de usuário para ajuda de pesquisa
c_ret_field TYPE dfies-fieldname VALUE 'BNAME',
*** campo de funcao para ajuda de pesquisa
c_ret_field_func TYPE dfies-fieldname VALUE 'CD_FUNC_USER',
*** nome do parameter para ajuda de pesquisa
c_campo TYPE help_info-dynprofld VALUE 'P_USER',
*** nome do parameter para ajuda de pesquisa
c_campo_func TYPE help_info-dynprofld VALUE 'P_FUNCAO',
*** sim
c_sim(1) TYPE c VALUE 'S',
*** habilitar
c_hab(3) TYPE c VALUE 'HAB',
*** Desabilitar
c_des(3) TYPE c VALUE 'DES',
*** Status Aprovação
c_a(1) TYPE c VALUE 'A',
*** Status Aprovação
c_i(1) TYPE c VALUE 'I',
*** Ativo
c_ativo(5) TYPE c VALUE 'Ativo',
*** Ação de inclusao
c_inc(3) TYPE c VALUE 'INC',
*** Ação de alteração
c_alt(3) TYPE c VALUE 'ALT'.
*-----------------------------------------------------------------------
* Definição de Tabelas Globais
*-----------------------------------------------------------------------
DATA:
***Opções de escolha da ajuda de pesquisa da função
gw_func_user TYPE STANDARD TABLE OF func_user_type.
*-----------------------------------------------------------------------
* Definição de work areas
*-----------------------------------------------------------------------
DATA:
***para atualização do aprovador
gs_aprov TYPE ztbtm_nv_apr_lib,
***descrição do Usuário Logado
gs_user_log TYPE desc_type,
***ação de inclusao ou alteração
gc_acao(3) TYPE c,
*** Status da tabela de aprovação
gs_status TYPE ztbtm_nv_apr_lib-status_aprov,
*** tabela de aprovação
gs_aprv_lib TYPE aprov_type.
*-----------------------------------------------------------------------
* Definição de field-symbols
*-----------------------------------------------------------------------
FIELD-SYMBOLS:
***field symbol para as funções
<fs_func_user> TYPE func_user_type,
***field symbol do status de aprovação
<fs_status> TYPE ztbtm_nv_apr_lib-status_aprov.
*-----------------------------------------------------------------------
* Definição de telas de seleção
*-----------------------------------------------------------------------
SELECTION-SCREEN: BEGIN OF BLOCK b01 WITH FRAME TITLE text-001.
*** Situação
PARAMETERS: p_sit TYPE ztbtm_stat_aprov-nm_stat_aprov MODIF ID gr1.
SELECTION-SCREEN SKIP.
*----------------------------------------------------------------------
* Evento: Inicialization
*----------------------------------------------------------------------
INITIALIZATION.
*----------------------------------------------------------------------
* Evento: At selection screen
*----------------------------------------------------------------------
AT SELECTION-SCREEN OUTPUT.
***Fecha para entrada de valores os campos de descrição
PERFORM zf_trata_campos.
*&---------------------------------------------------------------------*
*& Form ZF_INITIALIZATION
*&---------------------------------------------------------------------*
* Inicioaliza os botões da tela de seleção
*----------------------------------------------------------------------*
FORM zf_initialization.
bt1 = text-002. "Habilitar
bt2 = text-003. "Desabilitar
ENDFORM. " ZF_INITIALIZATION
*&---------------------------------------------------------------------*
*& Form ZF_TRATA_CAMPOS
*&---------------------------------------------------------------------*
* Fecha os campos de descrição
*----------------------------------------------------------------------*
FORM zf_trata_campos.
REFRESH: gw_func_user.
CLEAR: gs_aprov, gs_user_log.
*&---------------------------------------------------------------------*
*& Form zf_ajuda_pesq_user
*&---------------------------------------------------------------------*
* Ajuda de pesquisa do campo usuário
*----------------------------------------------------------------------*
FORM zf_ajuda_pesq_user.
CLEAR gc_acao.
IF sy-subrc NE 0.
***Login do usuário (p_user) não cadastrado no SAP.
MESSAGE i001 WITH p_user.
LOOP AT SCREEN.
IF screen-group1 = c_hab OR
screen-group1 = c_des.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
LEAVE LIST-PROCESSING.
ELSE.
CLEAR gs_user_log.
IF sy-subrc EQ 0.
ELSE.
IF gc_acao = c_inc. "caso de inclusao
CONCATENATE gs_user_log-name1 gs_user_log-name2
INTO gs_aprov-nm_user_incl.
ENDIF.
ENDIF.
gs_aprov-cod_func = p_funcao.
IF gc_acao EQ c_inc.
gs_aprov-log_user_aprov = p_user.
gs_aprov-nm_user_aprov = p_u_desc.
gs_aprov-log_user_incl = sy-uname.
gs_aprov-dt_incl = sy-datum.
gs_aprov-hr_incl = sy-uzeit.
ENDIF.
IF gs_aprv_lib IS INITIAL.
SELECT SINGLE log_user_aprov
nm_user_aprov
log_user_incl
dt_incl hr_incl
FROM ztbtm_nv_apr_lib
INTO gs_aprv_lib
WHERE log_user_aprov = p_user.
gs_aprov-log_user_aprov = gs_aprv_lib-log_user_aprov.
gs_aprov-nm_user_aprov = gs_aprv_lib-nm_user_aprov.
gs_aprov-log_user_incl = gs_aprv_lib-log_user_incl.
gs_aprov-dt_incl = gs_aprv_lib-dt_incl.
gs_aprov-hr_incl = gs_aprv_lib-hr_incl.
ENDIF.
gs_aprov-log_user_alt = sy-uname.
gs_aprov-dt_alt = sy-datum.
gs_aprov-hr_alt = sy-uzeit.
ENDIF.
IF sy-subrc EQ 0.
ELSE.
ENDIF.
ENDIF.
IF gs_aprv_lib IS INITIAL.
SELECT SINGLE log_user_aprov
nm_user_aprov
log_user_incl
dt_incl hr_incl
FROM ztbtm_nv_apr_lib
INTO gs_aprv_lib
WHERE log_user_aprov = p_user.
gs_aprov-log_user_aprov = gs_aprv_lib-log_user_aprov.
gs_aprov-nm_user_aprov = gs_aprv_lib-nm_user_aprov.
gs_aprov-log_user_incl = gs_aprv_lib-log_user_incl.
gs_aprov-dt_incl = gs_aprv_lib-dt_incl.
gs_aprov-hr_incl = gs_aprv_lib-hr_incl.
ENDIF.
gs_aprov-log_user_alt = sy-uname.
gs_aprov-dt_alt = sy-datum.
gs_aprov-hr_alt = sy-uzeit.
gs_aprov-status_aprov = c_i.
MODIFY ztbtm_nv_apr_lib FROM gs_aprov.
IF sy-subrc EQ 0.
*** Alteração Efetuada
MESSAGE i000 WITH text-006.
PERFORM zf_limpa_tela.
ELSE.
***Erro ao executar inclusao/alteracao.
MESSAGE e000 WITH text-005.
ENDIF.
ENDIF.
ENDFORM. " zf_desabilitar
*&---------------------------------------------------------------------*
*& Form zf_evento_botao
*&---------------------------------------------------------------------*
* Evento dos botões
*----------------------------------------------------------------------*
FORM zf_evento_botao.
CASE sscrfields-ucomm.
WHEN c_hab.
PERFORM zf_habilitar.
WHEN c_des.
PERFORM zf_desabilitar.
ENDCASE.