美文网首页SAP 修行SAP 实用篇
SAP CRM后台取数据逻辑的性能优化

SAP CRM后台取数据逻辑的性能优化

作者: 华山令狐冲 | 来源:发表于2020-01-01 15:05 被阅读0次

Pricing currency的bug今天也fix了,356个Opportunity取document Items需要2.8~3秒。

Pricing table和one order table的关联关系和其他字段稍有不同,中间通过CRMD_LINK的guid_set进行连接,因此不方便写到一个SQL里,所有我最后的solution 通过两个独立的SQL来实现。

单元测试里COMPARE_PRICE方法也做了修改:

拿了10000个order测试,通过:

优化完之后,AG3我的user,取356个Opportunity的documentItems,从以前的44秒缩短到3.8秒。


优化之后的docItem主方法就两行代码,

性能提高了10倍的原因是因为我没有再使用one order的API去取每个field,而是用OPEN SQL直接取表。

测试的时候发现一个bug,CURRENCY这个field在结果集里空的,因为我上面代码里第23行的join使用的取CURRENCY的foreign key是错误的。

之前的单元测试没有暴露这个issue的原因:

我单元测试的代码是比较origin和opt两个structure的CURRENCY field是否相等,如果不等就说明我优化代码有问题。

我之前单元测试的代码忘记把通过one order API取回的result写到origin的structure里,导致比较时origin和opt的CURRENCY field都是空的,因此认为等价,单元测试通过。

AG3上,用我自己的user,只取product node,一共354个Opportunity,总共花费44秒左右。

截图为证,等优化完来看能快多少秒。




要获取更多Jerry的原创文章,请关注公众号"汪子熙":


相关文章

网友评论

    本文标题:SAP CRM后台取数据逻辑的性能优化

    本文链接:https://www.haomeiwen.com/subject/tetgoctx.html