Módulo: CÂMBIO IMPORTAÇÃO
Funcionalidade: Parâmetros
Data/Hora da Publicação: 03/11/2010 00:00:00
Data/Hora Última Alteração: 03/11/2010 10:02:33
Descrição da Nota: FUNÇÃO QUE PERMITE GRAVAR OS PARÂMETROS DE CÂMBIO EM REQUEST
Sintoma
Quando os parâmetros do câmbio não são de visão de atualização, não possibilita gravar os dados
alterados em uma request.
Solução
Criar função que permita gravar os dados de parâmetros em uma request, quando os mesmos são de
programa(module pool)
8.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 10704 Data: 03/11/2010 Hora: 10:46:08
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 10704
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00005
Agrupamento : 00045
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
FUNÇÃO QUE PERMITE GRAVAR OS PARÂMETROS DE CÂMBIO EM REQUEST
----------------------------------------------------------------------------------------------------
Palavras Chave:
FUNÇÃO QUE PERMITE GRAVAR OS PARÂMETROS DE CÂMBIO EM REQUEST
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCB_GRAVA_CONT_TABELA_CR
REPS /PWS/LZYCBGF5UXX
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_GRAVA_CONT_TABELA_CR
CRIAR MÓDULO DE FUNÇÃO: /PWS/ZYCB_GRAVA_CONT_TABELA_CR
CARACTERÍSTICAS
CLASSIFICAÇÃO:
GRUPO DE FUNÇÕES: /PWS/ZYCBGF5
TEXTO BREVE: Gravação de Conteúdo de Tabela em Request
CLASSE DE DESENVOLVIMENTO: /PWS/ZYCB
TIPO DE EXECUÇÃO:
(X) - MÓDULO DE FUNÇÃO NORMAL
(_) - MÓDULO DE ACESSO REMOTO
(_) - MÓDULO DE ATUALIZAÇÃO
(X) - INÍCIO IMEDIATO
(_) - INÍCIO IMEDIATO-SEM ATUAL.POSTER.
(_) - INÍC. RETARDADO
(_) - PROCES. CLOETIVO
DADOS GERAIS:
(_) - BLOQUEIO PROCESSO
(_) - GLOBAL
IMPORTAÇÃO:
NOME PARAM. ATRIB. TIPO REFERÊNCIA VL. PROPOSTO OPCIONAL TRANSF. TEXT
I_TABLENAME TYPE DD03L-TABNAME ' ' ' ' Nome da tabela
I_TASK TYPE TRKORR 'X' ' ' Ordem/tarefa
I_ORDER TYPE TRKORR 'X' ' ' Ordem/tarefa
EXPORTAÇÃO:
NOME PARAM. ATRIB. TIPO REFERÊNCIA TRANSF. TEXTO BREVE
E_ORDER TYPE TRKORR ' ' Ordem/tarefa
E_TASK TYPE TRKORR ' ' Ordem/tarefa
MODIFIC.:
NOME PARAM. ATRIB. TIPO REFERÊNCIA VL. PROPOSTO OPCIONAL TRANSF. TEXT
TABELAS:
NOME PARAM. ATRIB. TIPO REFERÊNCIA OPCIONAL TEXTO BREVE
T_DATA_TABLE ' '
EXCEÇÕES:
EXCEÇÃO TEXTO BREVE
NO_DATA
SAVE_ERROR
NO_CR_SELECTED
TEXTO FONTE
* >> Início da inclusão:
FUNCTION /pws/zycb_grava_cont_tabela_cr.
TABLES: e071,
e071k,
e070.
TYPES: t_table_structure TYPE STANDARD TABLE OF dfies
WITH NON-UNIQUE KEY fieldname.
DATA: v_table_type TYPE dd02v-tabclass,
v_tabkey TYPE e071k-tabkey,
v_task TYPE trkorr,
v_order TYPE trkorr,
v_strlen_key TYPE i,
v_strlen_fie TYPE i.
DATA: itab_structure TYPE t_table_structure,
itab_fields TYPE TABLE OF rfc_db_fld,
itab_e071a TYPE STANDARD TABLE OF e071,
itab_e071ka TYPE STANDARD TABLE OF e071k,
itab_e071 TYPE STANDARD TABLE OF e071,
itab_e071k TYPE STANDARD TABLE OF e071k.
DATA: wa_fields LIKE LINE OF itab_fields.
FIELD-SYMBOLS: <fs_data> TYPE ANY,
<fs_field> TYPE ANY,
<fs_structure> LIKE LINE OF itab_structure.
COMMIT WORK AND WAIT.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = i_tablename
langu = sy-langu
IMPORTING
ddobjtype = v_table_type
TABLES
dfies_tab = itab_structure
EXCEPTIONS
not_found = 1
internal_error = 2
OTHERS = 3.
LOOP AT itab_structure ASSIGNING <fs_structure>
WHERE keyflag = 'X'.
wa_fields-fieldname = <fs_structure>-fieldname.
wa_fields-length = <fs_structure>-outputlen.
APPEND wa_fields TO itab_fields.
ENDLOOP.
LOOP AT t_data_table ASSIGNING <fs_data>.
LOOP AT itab_fields INTO wa_fields.
ASSIGN COMPONENT wa_fields-fieldname OF STRUCTURE <fs_data>
TO <fs_field>.
IF <fs_field> IS ASSIGNED.
v_strlen_fie = wa_fields-length.
IF v_strlen_key IS INITIAL.
v_tabkey = <fs_field>.
ELSE.
v_tabkey+v_strlen_key(v_strlen_fie) =
<fs_field>(v_strlen_fie).
ENDIF.
v_strlen_key = v_strlen_key + v_strlen_fie.
UNASSIGN <fs_field>.
ENDIF.
ENDLOOP.
CLEAR: v_strlen_key, v_strlen_fie.
e071k-pgmid = 'R3TR'.
e071k-object = 'TABU'.
e071k-objname = i_tablename.
e071k-as4pos = '000000'.
e071k-mastertype = 'TABU'.
e071k-mastername = i_tablename.
e071k-tabkey = v_tabkey.
APPEND e071k TO itab_e071k.
CLEAR: v_tabkey, e071k.
ENDLOOP.
IF sy-subrc EQ 0.
e071-pgmid = 'R3TR'.
e071-object = 'TABU'.
e071-obj_name = i_tablename.
e071-as4pos = '000000'.
e071-objfunc = 'K'.
APPEND e071 TO itab_e071.
CLEAR e071.
IF i_task IS INITIAL.
CALL FUNCTION 'TRINT_ORDER_CHOICE'
EXPORTING
wi_simulation = ' '
wi_order_type = 'K'
wi_task_type = 'S'
wi_category = 'syst'
wi_client = sy-mandt
wi_order = ' '
wi_e070 = e070
wi_suppress_dialog = ' '
wi_cli_dep = 'X'
wi_remove_locks = 'X'
wi_display_button = ' '
iv_current_project = ' '
IMPORTING
we_order = v_order
we_task = v_task
TABLES
wt_e071 = itab_e071a
wt_e071k = itab_e071ka
EXCEPTIONS
no_correction_selected = 01
object_append_error = 01.
ELSE.
v_task = i_task.
v_order = i_order.
ENDIF.
IF NOT v_task IS INITIAL.
CALL FUNCTION 'TR_APPEND_TO_COMM_OBJS_KEYS'
EXPORTING
wi_simulation = ' '
wi_suppress_key_check = ' '
wi_trkorr = v_task
TABLES
wt_e071 = itab_e071
wt_e071k = itab_e071k
EXCEPTIONS
OTHERS = 68.
IF sy-subrc NE 0.
RAISE save_error.
ENDIF.
e_order = v_order.
e_task = v_task.
ELSE.
IF sy-subrc NE 1.
RAISE save_error.
ELSE.
RAISE no_cr_selected.
ENDIF.
ENDIF.
REFRESH: itab_e071, itab_e071k.
ELSE.
RAISE no_data.
ENDIF.
ENDFUNCTION.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCBGF5UXX
**Obs.: não aplicar este código, pois o mesmo é gerado automaticamente pelo SAP
INCLUDE /PWS/LZYCBGF5U01.
INCLUDE /PWS/LZYCBGF5U02.
INCLUDE /PWS/LZYCBGF5U03.
* >> Início da inclusão:
INCLUDE /PWS/LZYCBGF5U04.
* << Fim da inclusão