关于sap:SAP-CRM-organization-Model组织架构模型自动决定的逻辑分析

46次阅读

共计 1555 个字符,预计需要花费 4 分钟才能阅读完成。

看一下规范的 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 的原创文章,尽在:” 汪子熙 ”:

正文完
 0