SAP CRM 和 Cloud for Customer 的 Document flow API 介绍

Document flow API in CRM
以一个具体的例子来说明。在 Appointment 的 Overview page 上能看见一个名叫 Reference 的区域,这里可以维护一些其他的业务文档的 ID,这样可以将该业务文档同当前正在编辑的 Appointment 关联起来。

我写了一个简单的报表来演示如何用 ABAP 代码给这个 Reference 区域的字段赋值,背后用到的实际上就是 CRM Document flow 相关的 API. 报表的源代码在我的github上:
代码的核心就是使用 CRM One Order 的 function module CRM_ORDER_MAINTAIN, 把 document flow 相关的数据传入到 changing 参数 ct_doc_flow 里。

这个 ct_doc_flow 的内容生成逻辑如下。既然是 Document Flow,必然涉及到两个 document,在 API 里用后缀为 A 和 B 的字段来存储,如下图绿色区域所示。这些字段需要分别存储两个 document 的 GUID 和 BOR 类型。

假设我执行 report 时指定的 Opportunity 的 ID 是 888,那么 report 成功执行后,我能在 References 区域看到如下的字段。Opportunity 的 ID 和描述信息已经能够正常显示了。

同时在 Transaction History 区域也能看到该关联关系:

Document flow API in C4C
假设我需要在 Cloud Application Studio 里开发一个功能,允许客户能够手动将两个 Ticket 关联起来。
1. 在 Ticket 的 BO ServiceRequest 上创建一个新的 action linkTicket 用于实现关联逻辑。同时创建一个新字段用于存储需要关联的 Ticket ID:

通过 Cloud Application Studio 将这个新字段配到 UI 上,同时在工具栏里新增一个按钮,绑定到 BO 的 action linkTicket 上。


Action 的实现代码:
2. 假设我想把 Ticket 3638 和 Ticket 3622 关联起来,我需要打开 Ticket 3638,在新字段 Reference Ticket 里手动输入 3622,然后点击按钮 Link Ticket.

成功执行之后,在 Ticket 的 Document Flow tab 即可看到这个关联关系。

要获取更多 Jerry 的原创技术文章,请关注公众号"汪子熙":

版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/fcf4afd7e8cb5977a53161aac】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论