1. 程式人生 > >Document flow API in SAP CRM and C4C

Document flow API in SAP CRM and C4C

relation 兩個 lap 原創 nts 綠色 需要 ima reference

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的實現代碼:

import ABSL;

var eleBTD: elementsof ServiceRequest.BusinessTransactionDocumentReference;

eleBTD.BusinessTransactionDocumentReference
.ID.content = this.refTicket; eleBTD.BusinessTransactionDocumentReference.TypeCode = "118"; // type code of BO ServiceRequest eleBTD.BusinessTransactionDocumentRelationshipRoleCode = "2"; // Successor document this.BusinessTransactionDocumentReference.Create(eleBTD);

2. 假設我想把Ticket 3638和Ticket 3622關聯起來,我需要打開Ticket 3638,在新字段Reference Ticket裏手動輸入3622,然後點擊按鈕Link Ticket.

技術分享圖片

成功執行之後,在Ticket的Document Flow tab即可看到這個關聯關系。

技術分享圖片

要獲取更多Jerry的原創技術文章,請關註公眾號"汪子熙"或者掃描下面二維碼:

技術分享圖片

技術分享圖片

Document flow API in SAP CRM and C4C