Document flow API in SAP CRM and C4C

Document flow API in CRM

以一個具體的例子來講明。在Appointment的Overview page上能看見一個名叫Reference的區域,這裏能夠維護一些其餘的業務文檔的ID,這樣能夠將該業務文檔同當前正在編輯的Appointment關聯起來。javascript

我寫了一個簡單的報表來演示如何用ABAP代碼給這個Reference區域的字段賦值,背後用到的實際上就是CRM Document flow相關的API. 報表的源代碼在個人github上:java

代碼的核心就是使用CRM One Order的function module CRM_ORDER_MAINTAIN, 把document flow相關的數據傳入到changing參數ct_doc_flow裏。git

這個ct_doc_flow的內容生成邏輯以下。既然是Document Flow,必然涉及到兩個document,在API裏用後綴爲A和B的字段來存儲,以下圖綠色區域所示。這些字段須要分別存儲兩個document的GUID和BOR類型。github

假設我執行report時指定的Opportunity的ID是888,那麼report成功執行後,我能在References區域看到以下的字段。Opportunity的ID和描述信息已經可以正常顯示了。工具

同時在Transaction History區域也能看到該關聯關係:this

Document flow API in C4C

假設我須要在Cloud Application Studio裏開發一個功能,容許客戶可以手動將兩個Ticket關聯起來。code

1. 在Ticket的BO ServiceRequest上建立一個新的action linkTicket用於實現關聯邏輯。同時建立一個新字段用於存儲須要關聯的Ticket ID:ip

經過Cloud Application Studio將這個新字段配到UI上,同時在工具欄裏新增一個按鈕,綁定到BO的action linkTicket上。element

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的原創技術文章,請關注公衆號"汪子熙"或者掃描下面二維碼:

相關文章
相關標籤/搜索