如何使用代码创建和读取 SAP CRM 订单的 Text 数据

SAP CRM Fiori 应用里,可以为 Opportunity 等订单,维护 note.

note creation 后台实现实际上很简单. GM6上创建一个note:

HTTP post的request payload里就只有opp guid和user输入的note

后台返回的response也只有这两个attribute:

最后到webclient UI上却发现两条只读的text,类型为Description和Preparation

后台实现:

直接用OPEN SQL 找当前创建的opportunity的transaction type对应的text determination 信息。

Opportunity 对应的text object type hardcode成CRM_ORDERH,changeable的属性也写死成P,因此当前的实现,通过Fiori UI创建出来的note 类型都为log ( changeable = P )

最后Opportunity OData的实现并没有call 底层的text API,而是直接call One order的modification FM,

只需要把text determination ID和待创建的note content和language传入 modify FM:

在webclient UI上看到两个不同text type的note的原因是因为backend system 配置里,指定类型为P的text的content会自动transfer到 changes = R的text里,即Description和Preparation。

note 数据的读取

没有采取 One Order API 即 CRM_ORDER_READ.

读的时候,传入的参数是Opp header的guid:

OData的read实现里,根据opp的guid直接去text header的数据库表里取所有该opp上维护的note:

Note实际的内容读取直接通过note底层的API READ_TEXT,( 而不是one order的CRM_ORDER_READ ), 传入的参数就是note的determination id,language code,text header id和hard code的text type CRM_ORDERH:

(0)

相关推荐