SAP CRM使用Attachments這個UI給用戶提供內容管理的功能。經過新建按鈕能夠上傳本地文檔到CRM系統:數據庫
該內容管理支持簡單的版本管理功能,用戶可點擊Check Out將一個文檔導出到本地,編輯結束以後經過Check In按鈕將修改版本導入至CRM。瀏覽器
每次Check Out / Check In會生成一個新的版本。安全
從技術上來講,每個文件上傳到CRM後,會自動生成一個Logical Info Object(LOIO)和Physical Info Object(PHIO)。僅從這對概念的名稱就能猜到它們的用途:LOIO是一個邏輯上的概念,描述一個文件的客觀存在。PHIO則承載一個文件的具體內容,每次Check In以後,用戶在UI上看到一個新版本的生成,然後臺則對應一個新的PHIO實例的生成。這也是爲何查看Content Management對應的API CL_CRM_DOCUMENTS, 會發現不少方法的參數裏都有LOIO/PHIO出現的緣由。服務器
內容管理系統要實現的一個重要功能就是內容存儲。我給CRM系統裏某個product上傳了一個文本文件。框架
點擊文件名"Jerry"這個超連接,在瀏覽器裏打開了文本文件。函數
那麼這個文本文件如何存儲在CRM服務器上的?仔細查看這個瀏覽器連接:工具
/sap/bc/contentserver/001/jerry?get&pVersion=0045&contRep=BDS_DB22&docId=FA163EE56C3A1EE8908EFBAA20D4FC6C&compId=jerry.txturl
在其方法HANDLE_REQUEST設置斷點便可調試。調試
介紹瞭如何經過BDS_DB22這個編號找到對應的後臺數據庫表名稱。經過文章裏介紹的步驟,找到數據庫表BDSCONT22。視頻
docId=FA163EE56C3A1EE8908EFBAA20D4FC6C
把這個docId放到BDS_DB22這張表裏根據PHIO_ID查詢,便可找到上述例子裏文本文件jerry.txt在這張表裏存儲的內容。
由於除了文本文件,內容管理系統還須要支持其餘諸如PDF或視頻文件的存儲,所以數據庫表對應字段採用了特殊的數據類型INDX_CLSTR和INDX_CLUST,所以文件的具體內容沒法直接經過在事物碼SE16查表瀏覽。
而須要使用function module SCMS_R3DB_IMPORT。若是查看其代碼,會發現這個函數正是使用了ABAP關鍵字IMPORT去操做這兩個特殊的表字段從而讀取出文件的實際內容。
做爲企業級管理軟件的一個模塊,病毒掃描的支持是必不可少的。SAP在CRM內容管理系統裏實現了病毒掃描的框架,而具體執行病毒掃描的引擎由客戶自行配置:
在個人公衆號文章SAP S4CRM vs C4C, 諸葛亮和周瑜?裏提到SAP CRM內容管理的一個特點功能:用戶能夠點擊下圖step 1中的"With Template"按鈕,在本地開發一個word模板文件,將裏面的字段綁定到CRM標準的BO模型字段上,以下圖step 2所示。運行時渲染的word文件裏就會顯示其從屬的業務文檔裏的對應數據,如圖step 3所示。
這個運行時word文件的渲染實現,其技術原理在個人博客Manipulate Docx document with ABAP裏介紹過。
關於SAP CRM內容管理的更多介紹,請參考個人博客合集:
A collection of technical details about Content Management
做爲一款雲產品,用戶從瀏覽器裏沒法像在SAP CRM那樣,可以輕易地查看其服務器端的存儲明細。在Chrome開發者工具裏看到文件的超連接是一個簡單的"#"。
實際狀況是,每次點擊超連接,C4C的ABAP後臺會動態計算出該文件供用戶下載或者預覽的url:
由於C4C的後臺對客戶和Partner不可見,所以這個url的計算邏輯不便透露。
C4C同CRM同樣,對於上傳的文件和發送的郵件均有內置的病毒掃描引擎以確保C4C解決方案的安全性。
除此以外,您也能經過Business Configuration工做中內心配置容許哪些MIME Type的文件上傳到C4C系統。
對於在Cloud Application Studio裏本身建立的Custom BO,也可經過簡單的步驟便可一樣支持文件上傳的功能。具體步驟參考個人博客:
Step by step to enable your custom BO with attachment upload functionality
若是上傳的文件是圖片,您甚至能夠在Cloud Application Studio裏作些簡單的開發,將這些圖片和Custom BO的數據合併起來,渲染成一個PDF文件。
具體步驟參考個人博客:
How to render PDF which displays picture from the image attachment of your custom BO
要獲取更多Jerry的原創技術文章,請關注公衆號"汪子熙"或者掃描下面二維碼: