从转换规则填充0LOGSYS

时间:2012-12-05 22:51:43

标签: sap abap

当尝试从数据源加载时,我试图在DSO中填充Infoobject 0LOGSYS。这个想法是你可以告诉你从哪个源系统加载数据是一个特定的需求。到目前为止,我有一个针对0LOGSYS的转换规则的例程设置。没有语法错误,一切都在加载过程中运行,但没有填充数据。试图调试但由于某种原因我的BREAKPOINT没有被拿起。

这是我在例程中放置的代码。此外,我试图这样做而不分配任何源字段,所以可能是导致问题。但不确定。

TYPE-POOLS: RSSM.

Data: G_S_MINFO TYPE RSSM_S_MINFO.

CALL FUNCTION 'RSDG_ID_GET_FROM_LOGSYS'

EXPORTING

i_source_system = G_S_MINFO-LOGSYS

IMPORTING

e_soursysid = RESULT

EXCEPTIONS

id_not_found = 1.

2 个答案:

答案 0 :(得分:1)

以不同的方式解决了这个问题。可以通过“if_rsbk_request_admintab_view”方法从任何请求中提取运行时属性,该方法在每个转换例程开始时自动实例化。这是我在例程中添加的代码。

*declaring a local variable like the result type LOGSYS
Data: lvSource like RESULT.

*runs a method to get the source system from the runtime attributes of
*the request
*"p_r_request" is an instance of "if_rsbk_request_admintab_view" which
*has many different methods for runtime attributes
lvSource = p_r_request->GET_LOGSYS( ).
RESULT =  lvSource.

答案 1 :(得分:0)

如果这是完整的源代码,则不会返回任何内容也就不足为奇了。您声明一个名为G_S_MINFO的新结构变量,不要为其赋值并返回其内容。除非您从代码示例中删除了应该使用值填充变量的步骤,否则如果返回了除初始值之外的任何其他内容,那将是一个严重的错误。

编辑:即使使用更新的代码,我仍然怀疑这会有效。现在,您将G_S_MINFO-LOGSYS传递给一个功能模块,该模块应该在不初始化的情况下查找某个系统ID。垃圾进垃圾出。或者在这种情况下,初始值为,初始值为。