等待命令发布

2020-09-20 20:15发布

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

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


大家好,

我已经编写了ABAP程序,该程序将使用功能模块" BAPI_IPKG_START"以不同的选择来触发信息包(多次)。

代码:

在IT_ABC处分配 ABC>。

IT_ABC2 [] = P_IT_ABC []。

在其中SIMULATION_ID NE -SIMULATOIN_ID删除IT_ABC2

呼叫功能'ENQUEUE_E_TABLE'
导出
MODE_RSTABLE ='E'
TABNAME ='ZDEMO'

从ZDEMO删除,其SIMULATION_ID不为空。
呼叫功能'DB_COMMIT '。

从表IT_ABC2修改ZDEMO。
调用功能'DB_COMMIT'。

调用功能'DEQUEUE_E_TABLE'
导出
MODE_RSTABLE ='E'
TABNAME ='ZDEMO'。

呼叫功能" BAPI_IPAK_START"

导出
信息包= P_IPACK
*作业名=
*导入
* REQUESTID =

RETURN = LV_RETURN。

等待最多200秒。

清除IT_ABC2 []。

ENDLOOP。

但是由于声明,我们遇到了性能问题-等待长达200秒。

一旦信息包被触发并完成,下一个信息包将在200秒后启动。 该信息包针对不同的选择运行了80次,因此200秒导致延迟,程序需要4-5个小时才能完成。

80次* 200秒= 16000秒= 4-4:45小时

请告知我是否还有其他方法可以改善我的表现。

谢谢

Abhimanyu Sharma。

capture1.jpg (19.6 kB)

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

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


大家好,

我已经编写了ABAP程序,该程序将使用功能模块" BAPI_IPKG_START"以不同的选择来触发信息包(多次)。

代码:

在IT_ABC处分配 ABC>。

IT_ABC2 [] = P_IT_ABC []。

在其中SIMULATION_ID NE -SIMULATOIN_ID删除IT_ABC2

呼叫功能'ENQUEUE_E_TABLE'
导出
MODE_RSTABLE ='E'
TABNAME ='ZDEMO'

从ZDEMO删除,其SIMULATION_ID不为空。
呼叫功能'DB_COMMIT '。

从表IT_ABC2修改ZDEMO。
调用功能'DB_COMMIT'。

调用功能'DEQUEUE_E_TABLE'
导出
MODE_RSTABLE ='E'
TABNAME ='ZDEMO'。

呼叫功能" BAPI_IPAK_START"

导出
信息包= P_IPACK
*作业名=
*导入
* REQUESTID =

RETURN = LV_RETURN。

等待最多200秒。

清除IT_ABC2 []。

ENDLOOP。

但是由于声明,我们遇到了性能问题-等待长达200秒。

一旦信息包被触发并完成,下一个信息包将在200秒后启动。 该信息包针对不同的选择运行了80次,因此200秒导致延迟,程序需要4-5个小时才能完成。

80次* 200秒= 16000秒= 4-4:45小时

请告知我是否还有其他方法可以改善我的表现。

谢谢

Abhimanyu Sharma。

capture1.jpg (19.6 kB)
付费偷看设置
发送
4条回答
四川大学会员
1楼-- · 2020-09-20 20:37

对于InfoPackages必须严格按顺序运行还是为什么必须在代码中控制此顺序有什么特殊的原因吗? 如果IP都有不同的选择,则可以触发所有IP,而不必等待每个完成之后才触发下一个(并行执行),并使系统进程在后台执行。

南山jay
2楼-- · 2020-09-20 20:38

完全正确。 最好从程序中触发流程链,以所需的顺序运行信息包。

大简至美
3楼-- · 2020-09-20 20:33

Abhimanyu Sharma,

尝试将ABAP代码替换为WAIT UP 200 SECONDS,以解决以下代码,以解决您的问题。

让我知道结果! 问候。

 IF sy-subrc均衡器0。

 *使用BAPI时执行外部提交
 通话功能'BAPI_TRANSACTION_COMMIT'
      出口
       等待='X'。
 其他。

 *使用BAPI时执行外部回滚
 通话功能" BAPI_TRANSACTION_ROLLBACK"。

 ENDIF。
昵称总是被占用
4楼-- · 2020-09-20 20:50

如果顺序很关键,您还可以通过定期(每10秒一次)检查infoPackage的状态(使用'BAPI_ISREQUEST_GETSTATUS'MF)来使等待时间更智能。

此致

弗雷德里克

一周热门 更多>