订单上Contact Person的地址

订单上Contact Person地址读取的顺序是这样的:

  1. The system determines all addresses of the contact person. The system uses the access sequence assigned to the contact person in the partner determination procedure to determine from where the contact person should be determined. For example, if the contact person should be determined from the activity partner, the system uses a possibly existing relationship address between contact person and activity partner if the document contains an activity partner.
  2. If this relationship address cannot be identified, the system uses any other relationship address.
  3. If no relationship address exists at all, the system uses the private address.

Via: Note 502447

Function Module:COM_PARTNER_ADDRESS_DETERMINE

 

Inheritance of appointments from header level to item level

Inheritance of appointments from header level to item level. The inheritance process happens as follow:

  • If the appointment is assigned with a rule in the corresponding item dates profile, then the date is calculated according to the rule, and hence, is not copied from the header corresponding appointment
  • If the appointment is not assigned with a rule in the corresponding item dates profile, then the date is inherited from the header to the item level. In this case, it is possible to bypass this process by using the BADI CRM_APPOINTMENT_BADI, method CRM_APPOINTMENT_INHERIT.
  • In the case where the header and item have the same dates profile assigned, then the inheritance process is always executed independently from the appointment being assigned with a rule in the profile.

Note: 925790

PS. 身边的IBM顾问,很有钻研精神

Logon Language

没想到这也能成为一个话题,只能侧面反映SAP考虑得很多。

首先,看看CRM Web UI登陆页面的语言是确定的优先级:

  1. SICF的设置
  2. HTTP Request的language参数
  3. 浏览器默认语言的设置
  4. SU01用户的设定

Via SAP Help

然后,如需调整Web UI登陆的可选语言(即下拉框内容),可通过报表程序RSCPINST。

详见Notes: 42305, 73606

Pricing及Configuration

CRM中Pricing不是必须的,Item Categories中摘掉Sales Transaction Category中的Pricing-rel就行了。如果所有Item都是非定价相关的,那就不会去determine pricing procedure了。参见Note 702735,关掉IPC部分内容。

但是如果Item的产品是可配置的(Configurable)的话,项目必然是Pricing-rel的,即便你摘掉该选项。Note 743918提到:The configuration only works correctly if pricing is performed for the header。相关Note还有851523,832436。

程序可参考FM: CRM_PRIDOC_UPDATE_EC

Reporting Framework

近日在处理IC的Last Interactions问题的时候,无意触及这么一个东西Reporting Framework,它用于订单的搜索,即输入查询条件点击搜索后,Reporting Framework就上场了。常规的订单读取方式,包括权限检查,显然无法满足检索性能(Performance)的需要。那Reporting Framework是如何工作的呢?主要分两步:

  1. Selection – 根据检索条件,搜索出符合条件的GUID;
  2. Edition – 根据展示要求,填充GUID相应的字段;

这里用到两个表:CRMC_REPDY和CRMC_REPDY_DB,来构建检索的SQL语句。

权限检查发生在Selection阶段,跟常规的一张订单一张订单检查又有不同。简单来说,Reporting Framework会根据用户的User Profile去构建检索语句,把权限检查前置,从而减少了对数据库的访问。例如用户只有TA订单类型的权限,那么检索的语句会根据User Profile加入这个限制,而不是把订单检索出来,再去做权限检查,再过滤掉非TA的订单。也正因为如此,订单搜索和单张订单的权限检查不完全一致的,请参考Note 1305096。

其他有用的Notes: 1318262, 615670, 1226594

BTW,由于Performance的原因,R3AC6里头Reporting Framework的参数(CRMRF)很多,建议多查查Notes。

VMC的两个程序

CRM的VMC出错,原因不明。查到两个程序,有一定的帮助。

  • RSVMCRT_HEALTH_CHECK,用于检查VMC的状态,Note 1328019;
  • RSVMCRT_REDEPLOY,重新Deploy VMC组件,Note 1279389;

一开始的时候,GUI弹出消息“CRM:SAP系统消息:############”。在Update了Kernel后,运行报表程序一提示“Java Services Runtime Error”。在运行报表程序二,故障排除。至于是何原因,惭愧,不知道。