BW系统常常会面对一个问题,用户希望更新数据后及时的看到结果,所以IT不得不东奔西跑的去做导入数据到ODS或CUBE的动作。 后来考虑是否把这个过程自动化,所以用到了Processchain,只要一个触发动作就可以自动的后续执行,但还是要IT的参与。一段时间之后,考虑把这些事交给用户去做,让用户去触发,这样IT就可以不要参与简单的用户数据上传,当然这种上传对数据源是有要求的,就是不能够做删除动作(物理上的删除,IT后台的删除置位就不能算真正的删除了)。
当然上述发展最终还是有一个问题,就是如果导入过程异常,IT还是脱不了干系的。因为BW系统好像还无法做到单笔Request的自动删除。
顺便把之前写的一个触发程序记录一下,有点参考作用。
************************************************
* CreatedBY:leiguohai *
* date:20080726 *
*description: Execute the process chain *
* **********************************************
FUNCTION z_cmmsg_csrp_008.
*"------------------------------------------------------------
"*"Local Interface:
*" IMPORTING
*" VALUE(P_TYPE) TYPE CHAR4
*" TABLES
*" EXPTAB STRUCTURE ZCSRP_STRUCT_005
*"------------------------------------------------------------
TABLES: rspcprocesslog.
DATA: l_pcname_S TYPE rspc_chain,
l_pcname_E TYPE rspc_chain.
DATA: l_gid TYPE rspc_logid.
DATA: l_state TYPE rspc_state.
DATA: l_totaltime TYPE p.
clear:exptab[],exptab.
IF p_type = ''.
exptab-messg = 'Please input the type name'.
APPEND EXPTAB.
RETURN .
ENDIF.
SELECT SINGLE variante_S variante_E
INTO (l_pcname_S,l_pcname_E)
FROM zrbw_fico_0001
WHERE st_name = p_type .
IF sy-subrc NE 0 .
exptab-messg = 'Please input the correct type name'.
APPEND EXPTAB.
RETURN.
ENDIF.
CALL FUNCTION 'RSPC_CHAIN_START'
EXPORTING
i_chain = l_pcname_S
IMPORTING
e_logid = l_gid.
l_totaltime = 0.
DATA: L_FLAG .
L_FLAG = '1'.
WAIT UP TO 30 SECONDS.
l_totaltime = l_totaltime + 1.来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/554557/viewspace-592481/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/554557/viewspace-592481/