設定特定業務物件整合
在此最後一個區段中,您將執行在特定 Oracle Sales and Service 應用程式業務物件內新增 OCM 內嵌資料夾 UI 所需的步驟。
在此區段中,我們將再次使用機會,但您可以使用服務要求、行銷活動、事件等步驟來更新任何業務物件。這需要在機會中建立自訂欄位,以儲存唯一的 OCM 資料夾 ID。這些步驟也會將「文件」頁標新增至機會詳細資料頁面,該頁面會使用機會特定的 OCM 資料夾 ID,透過 Mashup 來顯示 OCM 內嵌資料夾 UI。
建立自訂欄位
自訂欄位專用於建立該欄位的業務物件。這些變數對於建立的每個業務物件實例都是唯一的。
建立自訂欄位以包含與特定機會項目相關的唯一 OCM 資料夾 ID:
- 若要重新輸入應用程式編寫器,請按一下頁面左上角的工具,然後從下拉式清單中選取應用程式編寫器。
- 依序選擇物件、標準物件、商機以及欄位 (從左側導覽功能表中)。
- 在「欄位」頁面上,選取自訂頁籤,然後按一下建立自訂欄位圖示。
- 在「選取欄位類型」對話方塊中,選取文字選項,然後按一下確定。
- 在「建立文字欄位」頁面上,執行下列作業:
- 在顯示標籤欄位中,將名稱指定為 OCMFolderId 。系統會根據顯示標籤欄位中指定的值自動填入名稱欄位。
- 在描述欄位中,輸入文字 「特定機會物件的自訂變數 , 以儲存 OCM 機會協同合作整合所使用的唯一資料夾 ID」。
- 按一下儲存並關閉。
擴充業務物件
您可以使用混搭 (例如上面建立的物件) 來擴充業務物件,以在業務物件 UI 中顯示外部應用程式 (例如 OCM)。
若要建立新的機會頁面版面配置以包含 OCM 整合:
- 選擇標準物件、商機,然後從左側導覽功能表中選擇頁面。
- 在「機會:頁面」頁面的「詳細資料頁面配置」區段中,按一下複製詳細資料頁面配置。
注意:
如果自訂頁面已建立,則該頁面可用於「OCM 整合」,而非建立新頁面,可略過步驟 3。 - 在「複製版面配置」對話方塊中,完成下列欄位:
- 在新版面配置名稱欄位中,將名稱指定為 OCMEmbeddedUIIntegration 。
- 在來源版面配置欄位中,從下拉式功能表中選取標準版面配置。
- 按一下儲存並編輯。
- 在「詳細資料版面配置」頁面中,選取「子頁標區域」區段左側導覽功能表底部的新增圖示,以新增 OCM 內嵌 UI。
- 選取合併內容選項。按一下下一步。
- 在下一頁,選取先前建立的 OCMEmbeddedFolderUIMashup 選項,然後按一下插入。
- 在下一頁,完成下列欄位:
- 在顯示標籤欄位中,輸入文件。
- 針對顯示圖示,請按一下變更圖示,讓商機 UI 中的文件查看圖示會顯示為頁標。
- 在編輯指令碼欄位中,貼上下列指令碼:
println("Opportunity Documents Tab Selected: " + Name) // Get the current user security context def secCtx = adf.context.getSecurityContext() // Get the current OCM user id based off the current Oracle Sales and Service User def OCMUserId = adf.util.OCMSearchUserFunction(secCtx.getUserName()) // Now check to see if the OCM user has been shared to this folder boolean isFolderShared = adf.util.OCMIsFolderSharedFunction(OCMFolderId_c, OCMUserId) if (!isFolderShared) { // Share the current user as a Manager to the OCM Folder associated to this item adf.util.OCMShareFolderFunction(OCMFolderId_c, OCMUserId, "manager") } println("Loading OCM Embedded Docs UI") return OCMFolderId_c +'?options={"documentsView":{"layout":"grid","header":{"create":{"folder":true},"upload":true,"trash":true},"actions":{"open":{"file":true},"uploadNewVersion":true,"download":true,"delete":true,"shareLink":true,"members":true}},"documentViewer":{"actions":{"download":true,"uploadNewVersion":true,"shareLink":true},"sidebar":{"conversation":true}}}'注意:
此程序檔會自動將管理員角色指派給存取該資料夾的每位使用者。這可能會進一步拒絕授予機會擁有者經理角色,同時將提供者角色授予其他使用者。 - 按下一步按鈕。
- 按一下儲存並關閉。
新增事件觸發程式
事件觸發器會檢查事件,當事件發生時,會執行與觸發器關聯的代碼。
OCMCreateFolderTrigger
新增伺服器指令碼物件觸發器,以在建立機會時建立相關的 OCM 資料夾:
- 選擇標準物件、機會,然後從左側導覽窗格選擇伺服器指令碼。
- 在「伺服器指令碼商機」頁面上,選取觸發器頁籤。
- 在「物件觸發程式」區段下,按一下新增觸發程式。
- 在「建立物件觸發器」頁面上,完成下列欄位:
- 從觸發程式下拉式功能表中選取在資料庫中插入之前。
- 在觸發程式名稱欄位中,將觸發程式的名稱指定為 OCMCreateFolderTrigger 。
- 在描述欄位中,輸入「建立與所建立機會相關聯的 OCM 資料夾」文字。
- 在編輯指令碼欄位中,貼上下列指令碼,將
<OCMRootFolderId>取代為上列初始步驟中 OCM 中所擷取的實際 OCM 根資料夾 ID (例如,F572711F9E557436A646AEC295F044A3C39B0):println("Opportunity.BeforeInsert(OCMCreateFolderTrigger): " + Name) def OCMParentFolderId = "<OCMRootFolderId>" // Create a new OCM folder under the parent folder based off the item name println("Create OCM Opportunity Folder under Pararent Folder Id: " + OCMParentFolderId) def OCMFolderId = adf.util.OCMCreateFolderFunction(OCMParentFolderId, Name) // and assign that new folder id to the OCMFolderId item variables setAttribute("OCMFolderId_c", OCMFolderId) - 按一下儲存並關閉。
OCMDeleteFolderTrigger
若要新增伺服器指令碼物件觸發程式,請在新的「建立物件觸發程式」頁面中,移除刪除機會時的相關 OCM 資料夾:
注意:
如果已瞭解置於 OCM 機會資料夾中的任何內容,即使機會被刪除,實作者也可能選擇不實作此步驟。- 從觸發程式下拉式功能表中選取在資料庫中刪除之前。
- 在觸發程式名稱欄位中,將觸發程式的名稱指定為 OCMDeleteFolderTrigger 。
- 在描述欄位中,輸入「移除與所刪除機會相關聯的 OCM 資料夾」。
- 在編輯指令碼欄位中,貼上下列指令碼:
println("Opportunity.BeforeDelete(OCMDeleteFolderTrigger): " + Name + "(" + OCMFolderId_c + ")") // Make sure that we have a folder to delete if (OCMFolderId_c != null) { adf.util.OCMDeleteFolderFunction(OCMFolderId_c) } else { println("Warning: No OCMFolderId associated to the Opportunity?") } - 按一下儲存並關閉。




