SAP CRM organization Model(组织架构模型)自动决定的逻辑分析
看一下標準的OPPT是如何determine organization的:
查看Transaction Type OPPT的配置,找到Organization Data Profile:
SPRO->CRM->Transactions->Basic Settings->Define Transaction Types
發現配的profile為000000000005,雙擊進入,找到對應的profile:
可以看到對應的Organizational Model Determin. Rule為10000144, 而Responsibilities Determin. Rule沒有配。
參考CR100上的解釋:
Organizational Model Rule是需要根據search的結果來確定Organizational Unit. Responsibilities Rule是直接指定對應的Organizational Unit.
查看Determination Rule:
SPRO->CRM->Master Data->Organizational Management->Organizational Data Determination->Maintain Determination Rules
找到對應的10000144的rule:
可以看到對應的determination用的FM是CRM_ORGMAN_ORGOBJECTS_FIND_4
點擊Container tab可以看到rule 10000144配置的parameter:
說明在執行FM CRM_ORGMAN_ORGOBJECTS_FIND_4需要的兩個參數為BP Number和Transaction Type:
SPRO文檔里面有對標準的determination function的解釋:
前兩個是針對Sales Transaction的,后兩個是Service Transaction,根據解釋FM CRM_ORGMAN_ORGOBJECTS_FIND_4是根據BP的Sales Area來查找對應的Organizational Unit。
進入CRM_ORGMAN_ORGOBJECTS_FIND_4的代碼:
從Container里面拿到BP Number, 在根據BP Number拿到對應的GUID:
根據BP GUID獲取對應的Sales Area:
從CRMM_BUT_LNK0011表里面拿BP Number對應的Sales Area
上一步沒有找到Sales Area的情況下從CRMM_BUT_LNK0031表里面拿
E.g. 拿到BP 4103080的Sales Area:
上面講到的Container配的另外一個參數Transaction Type在這里只是用來檢查根據BP Number拿到的Sales Area是否valid:
然后調用FM CRM_ORGMAN_ORGOBJECTS_FIND_1根據Sales Area的attribute來查找organization。參考上面的文檔,CRM_ORGMAN_ORGOBJECTS_FIND_1其實是一個通用的根據organization attribute來查詢的FM
這里的attribute就是Organizational Unit在Web UI里面維護的attribute:
注意在這里并沒有用Transaction Type去直接跟Organizational Unit維護的Transaction Type attribute作比較。
E.g. 最后根據BP 4103080得到的Organization為50000732:
還有一個更抽象的查詢Org的API FM: CRM_ORGMAN_DETERMINE_ORGOBJS,該API返回sales areas結果集。
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP CRM organization Model(组织架构模型)自动决定的逻辑分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3d杀跨技巧准确率高 3d杀跨度最准的方
- 下一篇: 关于用 ABAP 代码手动触发 SAP