关于CRM one order函数的一些代码审查和改进建议

写作于2017年2月17日

Issue1

关于CRM one order函数的一些代码审查和改进建议_第1张图片

关于CRM one order函数的一些代码审查和改进建议_第2张图片

这个函数的signature是别人写好的,大家研究过consumer怎么消费这个FM的?
如果et_product_detail有多个entry,则es_product_detail只包含et_product_detail的最后一行. 这个…

关于CRM one order函数的一些代码审查和改进建议_第3张图片

Question1
这个API里面的实现和ORGMAN有什么关系??放在这的意图是?

关于CRM one order函数的一些代码审查和改进建议_第4张图片

关于CRM one order函数的一些代码审查和改进建议_第5张图片

Issue2
既然这个FM内只需要product header的division field,然后get_single_h_with_desc_by_guid确实支持只取required field, 为什么不用?

关于CRM one order函数的一些代码审查和改进建议_第6张图片

这个和上面那个CRMS4_ORGMAN_CHECK_API_OBJ的实现是完全一样的,必须要分开实现背后有什么故事?

关于CRM one order函数的一些代码审查和改进建议_第7张图片

Issue3
这里要加error handling的TODO:

关于CRM one order函数的一些代码审查和改进建议_第8张图片

Issue4
怎么能够在LOOP里调用get_instance?!

关于CRM one order函数的一些代码审查和改进建议_第9张图片

Issue5
在我们的生产代码里,还是会有可能进入到这个COM API的分支:

关于CRM one order函数的一些代码审查和改进建议_第10张图片

Issue6
没有必要用嵌套的TRY CATCH
关于CRM one order函数的一些代码审查和改进建议_第11张图片

放在一个层级结构:
关于CRM one order函数的一些代码审查和改进建议_第12张图片

Issue7
这行语句有什么用?

关于CRM one order函数的一些代码审查和改进建议_第13张图片

关于CRM one order函数的一些代码审查和改进建议_第14张图片

Question2
那为什么line 451不直接用cs_orderadm_i_wrk-ordered_prod?
![clipboard15](https://user-ima

Issue8
只需要product,为什么CDS view里要把所有field全部读出来?
关于CRM one order函数的一些代码审查和改进建议_第15张图片

Issue9
从语义上说,为什么只取第一个uom?它是main uom?
关于CRM one order函数的一些代码审查和改进建议_第16张图片

Issue10
这种ABAP错误处理不对。如果在方法调用后用sy-subrc evaluate, 必须要求方法里用non-OO的方式declare了exception。如果用TRY CATCH,要求方法体里raise OO的exception。

关于CRM one order函数的一些代码审查和改进建议_第17张图片

ges.githubusercontent.com/5669954/54063458-7f750f00-4247-11e9-9966-0a4fea02c7cd.png)

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

你可能感兴趣的:(CRM,CRM)