ABAP程序执行进程链中出现错误

前次开发了一个程序,用来进行进程链的定时触发处理,发现总是在加载0co_om_cca_4后进行传输进程时出错。开始以为是偶尔出现的BW正常错误,现在在发现不是这样的,每次都保错,而手动触发却不会出现错误,很是奇怪。

今日向开发经理提出了此问题,想看看是什么原因,经过一番查找,发现了错误所在:

   Exception condition "NO_LOCK_FOUND" raised.

源码摘录
   38   if not i_lockid is initial.
   39     perform lockobjects_get using    i_lockid
   40                                      i_no_shared_buffe
   41                             changing l_action
   42                                      l_t_object
   43                                      l_t_subobject
   44                                      l_lockid_tmp
   45                                      l_error.
   46     l_lockid = i_lockid.
   47   elseif i_action is initial or i_t_object[] is initia
   48     perform x_message using 'LOCKOBJECTS_GET'.
   49   else.
   50     clear l_lockid_tmp.
   51     l_action      = i_action.
   52     l_t_object    = i_t_object.
   53     l_t_subobject = i_t_subobject.
   54     perform lockobjects_get using    l_lockid_tmp
   55                                      i_no_shared_buffe
   56                             changing l_action
   57                                      l_t_object
   58                                      l_t_subobject
   59                                      l_lockid
   60                                      l_error.
   61   endif.
   62
   63   if l_error = 'X'.
>>>>>     raise no_lock_found.
   65   endif.

大致上的意思是在进程中的一个“锁”应该有但是却消失了!!!

只好提交错误到SAP,看看他们的帮助。

经过SAP工程师的艰苦奋战,周五终于解决了这个问题:note_0001341004。嘿嘿,终于帮SAP发现了一个bug,很是开心。

原文地址:https://www.cnblogs.com/Beewolf/p/1449711.html