当从数据源加载时,我正在尝试在DSO中填充信息对象0LOGSYS。这个想法是,您可以知道数据是从哪个源系统加载的,这是特定要求所必需的。到目前为止,我已经在 0LOGSYS 的转换规则上设置了一个例程。没有语法错误,所有内容都在加载期间运行,但没有填充任何数据。尝试调试,但由于某种原因我的断点没有被拾取。
这是我放在例程中的代码。另外,我正在尝试在不分配任何源字段的情况下执行此操作,因此可能会导致问题。不过不知道。
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.
以不同的方式解决了这个问题。有一些运行时属性可以通过"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.
如果这是完整的源代码,那么不返回任何内容也就不足为奇了。你声明一个名为 G_S_MINFO
的新结构化变量,不要给它分配任何值并返回它的内容。除非您从代码示例中删除了应该用值填充变量的步骤,否则如果返回除初始值以外的任何内容,这将是一个严重的错误。
编辑:即使使用更新的代码,我仍然怀疑这是否有效。现在,您将G_S_MINFO-LOGSYS
传递给一个函数模块,该函数模块应该在不初始化的情况下查找某些系统 ID。垃圾进,垃圾出。或者在这种情况下,初始值输入,初始值输出。