热点中的"呼叫交易"后刷新SALV

2020-09-21 11:43发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)关于如何刷新ALV显示(附件A ...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


关于如何刷新ALV显示(附件A ),有大量的存档问答(Q&A),但是我的问题不是 关于SALV refresh()方法。

我有一个热点列(销售订单= VBELN)和一个执行CALL TRANSACTION VA03的事件处理程序。 有时,用户可能会切换到VA03中的更改模式(使用菜单),更新某些内容(例如,传递块LIFSK),然后保存并返回ALV网格。

他们的期望是,在ALV中,返回后,他们将看到更新的信息(哈哈!)。 例如。 如果他们删除了传递块,则希望ALV反映出来。

要执行此操作而不接触VA03,我看不到其他任何选项,只能从数据库中重新读取数据。 但是似乎返回ALV网格的速度非常快,并且到那时VBAK的更改尚未提交。

除了残酷的等待之外,您将如何解决这个问题? 当然,一定有人已经遇到了这个问题。

谢谢!

7条回答
bbpeas
2020-09-21 11:49

一种更好的解决方案,恕我直言,是检查用户是否仍在锁定对象。

设置参数ID ...
 呼叫交易...
      有权限检查
      并跳过第一屏。
 check_lock(vbeln)。
 refresh_data()。

 "在Check_lock中,您可以执行某些操作(粗糙版本)

 做20次。
CALL FUNCTION'ENQUEUE_READ'"检查SO是否被锁定... ... 如果enq []是INITIAL。 出口。 万一。 等待最多" 0.5"秒。
ENDDO。

我知道,do ... enddo并不干净而且不错,但是如果系统非常繁忙,它可以处理一些延迟/减速。

一周热门 更多>