点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
有人知道BAPI_ACC_DOCUMENT_POST有性能问题吗?
我正在使用此bapi ABAP代码,但速度很慢,每个文档发布几乎要花费1.4分钟。
每个文档包含998个行项目(借项和贷项)。
该程序运行批处理作业。 我平均发布38个文档最多需要55分钟。
发布后,程序检查BAPI返回的处理消息。
在这种情况下是否需要做一些事情,还是有必要并行化这部分代码?
因此,如何实现多个BAPI调用(并行性)。 你有什么主意吗 可能是另一种方法?
预先感谢
通话功能'BAPI_ACC_DOCUMENT_POST' 出口 documentheader = wa_document-documentheader 输入 obj_key = lv_obj_key 桌子 accountgl = wa_document-accountgl_t currencyamount = wa_document-currencyamount_t 条件= lt_criteria extension1 = lt_extension1 return = lt_return。 删除lt_return返回WHERE类型EQ c_msg_type_e AND ID EQ c_id_rw AND编号EQ c_msgnumb_609。 读取表lt_return WITH KEY类型= c_msg_type_e INTO wa_return。 如果sy-subrc EQ 0。 执行f_store_message 使用wa_document wa_return abap_true 空间。 其他。 描述表lt_return lines lv_lines。 读取表lt_return INTO wa_return INDEX lv_lines。 如果sy-subrc EQ 0。 如果wa_return-type EQ c_msg_type_s。 清除wa_return_commit。 通话功能'BAPI_TRANSACTION_COMMIT' 出口 等待= abap_true 输入 return = wa_return_commit。 如果不是wa_return_commit为INITIAL。 执行f_store_message 使用wa_document wa_return_commit abap_true 空间。 其他。 执行f_store_message 使用wa_document wa_return abap_true 空间。 执行f_add_item_txt_long 使用lv_obj_key wa_document-itm_text_t。 万一。 其他。 执行f_store_message 使用wa_document wa_return abap_true 空间。 万一。 万一。 万一。
嗨Raphael,
正如我所看到的,您正在使用EXTENSION1。 请检查注释487722-使用EXTENSION1记帐BAPI中提到的增强功能,例如:增强功能ACBAPI01,BTE RWBAPI01。
希望对您有帮助
致谢
Eduardo
嗨Raphael,
也许 需要填充界面中没有的字段,因此,您需要使用增强功能,检查是否有任何SELECT,读取哪个表,是否使用键或索引。 也许容易的是使用ST05运行跟踪并检查输出,通常此分析通常在SQL中报告瓶颈。
我希望它对您有帮助
注意事项
Eduardo
我运行了ST05,并注意到需要更长的时间是BAPI_ACC_DOCUMENT_POST。
是否有必要对代码的这一部分进行并行化?
因此,如何实现多个BAPI调用(并行性)。
你有什么主意吗?
谢谢
你好拉斐尔·多明格斯,
BAPI花费的时间太长,我建议采取以下步骤以进一步进行操作:
1)您应该使用循环来处理所有文档,确保每次运行后都清除数据
2)尝试在SE37中独立运行BAPI,这可能是通过将测试Variant保存在调试器中进行的。 检查性能是否相同。
3)对SE37和程序运行跟踪,查看性能是否相同。
4)检查此BAPI的任何重要说明
5)。您的最终召唤将是向SAP提供清晰的数据,它们可以帮助您解决这些问题。 通过联系SAP,我提高了系统中少数BAPI的性能。 请确保您有足够的数据和分析来提供。
希望它会有所帮助!
一周热门 更多>