以编程方式创建子对象,而不是在 SLG0 中

Create subobject programmatically, not in SLG0

创建新日志对象时,如果子对象尚不存在,我希望即时创建它。
这就是我现在拥有的:

ls_log-object     = mc_log_object.
ls_log-subobject  = mv_log_subobject.

CALL FUNCTION 'BAL_LOG_CREATE'
  EXPORTING
    i_s_log      = ls_log
  IMPORTING
    e_log_handle = mv_log_handle.

为了避免出错,我之前这样检查了对象和子对象:

CALL FUNCTION 'BAL_OBJECT_SUBOBJECT_CHECK'
  EXPORTING
    i_object            = mc_log_object
    i_subobject         = mv_log_subobject
  EXCEPTIONS
    object_not_found    = 1
    subobject_not_found = 2
    subobject_necessary = 3
    OTHERS              = 4.

CASE sy-subrc.
  WHEN 2.
    mv_log_subobject = ''.
ENDCASE.

但我不想这样做,如果它还不存在,我想创建一个新的子对象!
是否有一些秘密函数调用可以做到这一点? :D

没有秘密函数调用或类似的东西。事实上,SLG0 只不过是视图集群维护调用 (SM34)。但我也想知道你为什么需要这个?如果您需要更多或动态区分您的日志,您可以使用字段 "extnumber",您可以在结构 ls_log.

中设置它

您可以 select 在 SLG1 中使用此字段,也可以通过日志 api。