設定特定業務物件整合

在此最後一個區段中,您將執行在特定 Oracle Sales and Service 應用程式業務物件內新增 OCM 內嵌資料夾 UI 所需的步驟。

在此區段中,我們將再次使用機會,但您可以使用服務要求、行銷活動、事件等步驟來更新任何業務物件。這需要在機會中建立自訂欄位,以儲存唯一的 OCM 資料夾 ID。這些步驟也會將「文件」頁標新增至機會詳細資料頁面,該頁面會使用機會特定的 OCM 資料夾 ID,透過 Mashup 來顯示 OCM 內嵌資料夾 UI。

建立自訂欄位

自訂欄位專用於建立該欄位的業務物件。這些變數對於建立的每個業務物件實例都是唯一的。

建立自訂欄位以包含與特定機會項目相關的唯一 OCM 資料夾 ID:
  1. 若要重新輸入應用程式編寫器,請按一下頁面左上角的工具,然後從下拉式清單中選取應用程式編寫器
  2. 依序選擇物件標準物件商機以及欄位 (從左側導覽功能表中)。
  3. 在「欄位」頁面上,選取自訂頁籤,然後按一下建立自訂欄位圖示。
  4. 在「選取欄位類型」對話方塊中,選取文字選項,然後按一下確定
  5. 在「建立文字欄位」頁面上,執行下列作業:

    1. 顯示標籤欄位中,將名稱指定為 OCMFolderId 。系統會根據顯示標籤欄位中指定的值自動填入名稱欄位。
    2. 描述欄位中,輸入文字 「特定機會物件的自訂變數 , 以儲存 OCM 機會協同合作整合所使用的唯一資料夾 ID」。
    3. 按一下儲存並關閉

擴充業務物件

您可以使用混搭 (例如上面建立的物件) 來擴充業務物件,以在業務物件 UI 中顯示外部應用程式 (例如 OCM)。

若要建立新的機會頁面版面配置以包含 OCM 整合:
  1. 選擇標準物件商機,然後從左側導覽功能表中選擇頁面
  2. 在「機會:頁面」頁面的「詳細資料頁面配置」區段中,按一下複製詳細資料頁面配置

    注意:

    如果自訂頁面已建立,則該頁面可用於「OCM 整合」,而非建立新頁面,可略過步驟 3。
  3. 在「複製版面配置」對話方塊中,完成下列欄位:

    1. 新版面配置名稱欄位中,將名稱指定為 OCMEmbeddedUIIntegration
    2. 來源版面配置欄位中,從下拉式功能表中選取標準版面配置
    3. 按一下儲存並編輯
  4. 在「詳細資料版面配置」頁面中,選取「子頁標區域」區段左側導覽功能表底部的新增圖示,以新增 OCM 內嵌 UI。
  5. 選取合併內容選項。按一下下一步
  6. 在下一頁,選取先前建立的 OCMEmbeddedFolderUIMashup 選項,然後按一下插入
  7. 在下一頁,完成下列欄位:

    1. 顯示標籤欄位中,輸入文件
    2. 針對顯示圖示,請按一下變更圖示,讓商機 UI 中的文件查看圖示會顯示為頁標。
    3. 編輯指令碼欄位中,貼上下列指令碼:
      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}}}'
      

      注意:

      此程序檔會自動將管理員角色指派給存取該資料夾的每位使用者。這可能會進一步拒絕授予機會擁有者經理角色,同時將提供者角色授予其他使用者。
    4. 下一步按鈕。
    5. 按一下儲存並關閉

新增事件觸發程式

事件觸發器會檢查事件,當事件發生時,會執行與觸發器關聯的代碼。

OCMCreateFolderTrigger

新增伺服器指令碼物件觸發器,以在建立機會時建立相關的 OCM 資料夾:

  1. 選擇標準物件機會,然後從左側導覽窗格選擇伺服器指令碼
  2. 在「伺服器指令碼商機」頁面上,選取觸發器頁籤。
  3. 在「物件觸發程式」區段下,按一下新增觸發程式
  4. 在「建立物件觸發器」頁面上,完成下列欄位:

    1. 觸發程式下拉式功能表中選取在資料庫中插入之前
    2. 觸發程式名稱欄位中,將觸發程式的名稱指定為 OCMCreateFolderTrigger
    3. 描述欄位中,輸入「建立與所建立機會相關聯的 OCM 資料夾」文字。
    4. 編輯指令碼欄位中,貼上下列指令碼,將 <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)
    5. 按一下儲存並關閉

OCMDeleteFolderTrigger

若要新增伺服器指令碼物件觸發程式,請在新的「建立物件觸發程式」頁面中,移除刪除機會時的相關 OCM 資料夾:

注意:

如果已瞭解置於 OCM 機會資料夾中的任何內容,即使機會被刪除,實作者也可能選擇不實作此步驟。


  1. 觸發程式下拉式功能表中選取在資料庫中刪除之前
  2. 觸發程式名稱欄位中,將觸發程式的名稱指定為 OCMDeleteFolderTrigger
  3. 描述欄位中,輸入「移除與所刪除機會相關聯的 OCM 資料夾」。
  4. 編輯指令碼欄位中,貼上下列指令碼:
    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?")
    }
  5. 按一下儲存並關閉