CRM Access Control Engine

Access Control Engine (ACE) 用“规则”控制CRM用户对Object的访问权限,是原Authorization的补充(换句话,需要先有权限,再做ACE检查)。


接下来三幅图讲ACE是如何执行的。ACE其实是三套表做文章(先不考虑Cache),最重要的是CRM_ACE2_XX_GRP(XX代表的是不同的Superobject Type)。


  1. Right + Actor组成一个ACE Group;
  2. User Context的更新需要手工触发的,而Object的更新通过后台设置的Dispatcher自动触发。

blog_ace_01_v1  blog_ace_02_v1



Sales Team Assignment Block

SAP CRM中,Transaction中的”Parties Involved” Assignment Block中的Business Partner会拆分到几个其他AB中去,比方说Sales Team、Competitors等等,但其拆分逻辑并没见文档说明。


WHEN ‘ST’. " Sales Team
ls_filter_range-sign = ‘I’.
ls_filter_range-option = ‘EQ’.

ls_filter_range-low = gc_partner_pft-responsible.
INSERT ls_filter_range INTO TABLE lt_filter_range.
ls_filter_range-low = gc_partner_pft-employee.
INSERT ls_filter_range INTO TABLE lt_filter_range.
ls_filter_range-low = gc_partner_pft-vendor.
INSERT ls_filter_range INTO TABLE lt_filter_range.
ls_filter_range-low = gc_partner_pft-sales_partner.
INSERT ls_filter_range INTO TABLE lt_filter_range.
ls_filter_range-low = gc_partner_pft-responsible_at_partner.
INSERT ls_filter_range INTO TABLE lt_filter_range.

所以,Partner Function Category为:

  • 0008 – RESPONSIBLE
  • 0005 – EMPLOYEE
  • 0012 – VENDOR
  • 0010 – SALES_PARTNER

将落到Sales Team AB里(当然还要是Partner Procedure里的条目)。

SAP Cloud for Customer(C4C)

对于越来越复杂的SAP CRM产品线,下文是不错的概览。

via: SAP Cloud for Customer(C4C) – What’s in it for SAP CRM Consultants

SAP’s Cloud for Customer(C4C) is making its presence felt in the CRM market with its inbuilt integration to SAP CRM, ECC and several other Third party applications. This also raises the following questions in the minds of customers and CRM consultants alike.

  • What kind of features are Customers looking for in C4C?
  • What does this mean to the SAP CRM consultants and their future ?
  • Will there be needs to customize the C4C ?
  • What will be the needs to integrate SAP CRM with SAP C4C?
  • What will the CRM landscape look like?

BP -> Customer

CRM中客户的双向同步是老话题了,Note 1541354介绍了CRM -> ECC 方向Debug的方法:

  1. Display the BDOC in SMW01
  2. Enter /h in the transaction code field
  3. Press the ‘retry to process message’ button.
  4. In the debugger – select the Settings button and ‘In background task  do not process’ (Classical debugger)  // 新的叫TRFC(In Background Task): Block Sending
  5. Enter F8
  6. Create a new session for the outbound queue (/osmq1) there will be an entry R3AUBUPA*** or CSA_BUPA**
  7. Double-Click on this queue entry twice and choose Debug for the CRM_UPLOAD_TRIGGER
  8. In the debugger, set a breakpoint at statement ‘CALL TRANSACTION’ and then press F8.
  9. At this statement double-click on the statement CALL_TRANSACTION and change the variable CALL_TRANSACTION_MODE from N to A, press the ‘change field content’ button and then press F8
  10. Now you will be in the R/3 System and you can see the batch input screen for this customer and you will then be prompted for the missing field in the BDOC.


前段时间当了回CR300的Instructor,想着教都教了,干脆把证也拿了吧。所以就去拿了个P_CRMSLS_71(SAP Certified Application Professional – Sales with SAP CRM 7.0 EhP1)回来。查了一下记录,上次考CR700已经是2年多前的事情了,真是光阴如梭啊。CR300要比CR700简单。同样的对于有基础的朋友光看CR300一本书就够了,题目一贯的分散,祝你好运啦!


之前一直以为单据中Territory的确定只能通过录入Employee Responsible来实现,这样的话操作流程就变成了:确定Territory后检查录入的Sold-to是否合规。难道系统标准就不支持先录入Sold-to自动带出Territory吗?

其实是可以的,通过对Employee Responsible分配Access Sequence: 0030可实现这个需求。不过整个过程有点绕:

  1. 在合作伙伴确定阶段,通过FM: CRM_TERRMAN_GET_TERR_BY_OBJ找到负责的Employee;
  2. 在UI展示的时候,通过FM: CRM_TERRMAN_GET_TERR_BY_SCOPE找到Territory;

综上Territory还真只能通过Employee Responsible得到,但是我们可以借助Territory从Sold-to得到Employee Responsible再得到Territory。。。