并行处理的BAPI_CUSTOMER_CREATEFROMDAT1问题

2020-09-21 16:51发布

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

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


您好,

我们使用并行作业方法,使用BAPI BAPI_CUSTOMER_CREATEFROMDAT1一次创建10万个客户记录。

以下是详细信息

1。 使用ADBC查询从HANA模式表中获取记录。

2。 将记录分为4部分(例如:单个作业25000条记录

3。 通过使用DB索引发送记录,使用SUBMIT程序调用BAPI。

将itab导出到数据库索引indx(zb)。

4。 已使用异步更新BAPI_TRANSACTION_COMMIT,而无需等待。

问题:

在ECC端创建额外的记录,例如:当我们处理100000条HANA模式表记录时,记录为101000条。

尝试使用BAPI_TRANSACTION_COMMIT的SET UPDATE TASK LOCAL进行尝试

尝试将SET UPDATE TASK LOCAL与BAPI_TRANSACTION_COMMIT一起使用,其中wait ='X'



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

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


您好,

我们使用并行作业方法,使用BAPI BAPI_CUSTOMER_CREATEFROMDAT1一次创建10万个客户记录。

以下是详细信息

1。 使用ADBC查询从HANA模式表中获取记录。

2。 将记录分为4部分(例如:单个作业25000条记录

3。 通过使用DB索引发送记录,使用SUBMIT程序调用BAPI。

将itab导出到数据库索引indx(zb)。

4。 已使用异步更新BAPI_TRANSACTION_COMMIT,而无需等待。

问题:

在ECC端创建额外的记录,例如:当我们处理100000条HANA模式表记录时,记录为101000条。

尝试使用BAPI_TRANSACTION_COMMIT的SET UPDATE TASK LOCAL进行尝试

尝试将SET UPDATE TASK LOCAL与BAPI_TRANSACTION_COMMIT一起使用,其中wait ='X'



付费偷看设置
发送
5条回答
SAP小菜
1楼-- · 2020-09-21 17:14

对于并行处理,请使用CALL FUNCTION STARTING NEW Task并将数据作为输入参数而不是内存导出/导入。

野沐沐
2楼-- · 2020-09-21 17:15

如果我们使用单个程序,则大约需要17个小时的时间 1000,000(1百万)。 因此,要花4到5个小时,我们创建了4个并行作业。

不确定为什么BAPI缓冲区会导致此问题。 在内部,它正在创造多个客户。

致谢

Raja

何必丶何苦呢
3楼-- · 2020-09-21 17:04

使用"调用功能开始新任务"可能会带来更好的运气。 Idocs是另一种选择,但是您可能需要几种不同的Idoc类型(adrmas,cremas,debmas)。

土豆飞人
4楼-- · 2020-09-21 17:13

也许您以自己的方式做到了,这并不明智。 自定义服务器组可用于控制最大的工作流程。

clasier
5楼-- · 2020-09-21 17:17

嗨,Rajasrikanth,

考虑按以下步骤检查您的步骤并进行测试。

2。 在将记录拆分成4部分(例如:25000条记录)之前,删除相邻的重复项。

2.a.将用逗号分隔的那些记录保存到4个ABAP平面文件接口中(例如:client01.txt,client02.txt等)到SAP Application Server中(例如:\\ ... \ inbound \ client01 .txt等)。

https://help.sap。 com/http.svc/rc/abapdocu_752_index_htm/7.52/zh-CN/abenfile_interface_statements.htm

3。 处理以上创建的每个文件的另一个程序/报告,但涉及4个不同的作业(后台模式),并使用BAPI_TRANSACTION_COMMIT和wait ='X'直接调用BAPI。

此致

一周热门 更多>