管理 Oracle Visual Builder 應用程式中文件

Oracle Content and Experience 's REST API for Documents 提供一系列端點,供您使用Oracle Visual Builder 應用程式的介面來執行下載、檢視及刪除Oracle Content and Experience Document 儲存中的檔案。

下面的內容為附帶範例,描述如何使用Oracle Visual Builder UI 元件、變數以及動作鏈結從Oracle Content and Experience下載文件的適當端點。您可以使用此模式來實行Oracle Visual Builder 應用程式中的功能,以便對文件執行其他任務,例如檢視或刪除。

若要下載文件 (例如相片或其他類型的檔案),您需要:

  1. 此服務連線會顯示Oracle Content and Experience REST API 針對文件所提供的「取得檔案資訊」和「下載檔案」端點。
  2. Oracle Visual Builder 應用程式中的一個頁面,可執行下列動作:
    1. 包括類型為 Object 的變數,以參照選取的檔案 (selectedFile),以及參照選定檔案之 ID (selectedFileId) 的類型為 String 的變數。
    2. 使用您先前新增的「清單檢視」元件來擷取Oracle Content and Experience的文件清單。您將設定此「清單檢視」元件,以呼叫包含「呼叫 REST 端點」動作的動作鏈結,以在使用者選取文件清單中的檔案時呼叫「取得檔案資訊」端點。
    3. 呼叫包含「呼叫 REST 端點」動作之動作鏈的按鈕元件,此動作會呼叫「下載檔案」端點,以下載使用者在文件清單中選取的檔案。
    4. 呼叫模組函數,下載「下載檔案」端點傳回的物件。

建立端點以下載文件

您可以建立端點,以使用您連線之Oracle Content and Experience 執行處理的基礎 URI 和查詢參數,來從Oracle Content and Experience 下載檔案,以存取 REST API 針對文件所顯示的取得檔案資訊和下載檔案端點。

我們假設您已經建立服務連線以及從 Oracle Content and Experience 擷取文件的端點。如果您尚未執行這項作業,請完成後者作業。下列步驟描述如何將「取得檔案資訊」和「下載檔案」端點新增至您為擷取文件所建立的服務連線。

若要新增從Oracle Content and Experience下載檔案的端點:

  1. 在「導覽器」中開啟「服務連線」,然後選取您先前建立用於從 Oracle Content and Experience 擷取文件的服務連線。
  2. 在「端點」頁籤中,按一下+端點以新增「取得檔案資訊」端點。
  3. 在「新增端點」對話方塊中,從方法下拉式清單中選取 GET,在 URI 輸入欄位中輸入 files/{fileID},然後從動作提示下拉式清單中選取 Get One
    視情況按一下 URI 輸入欄位旁邊的省略號 (...),確認完整端點 URL 為 https://cec-instance-url.com/documents/api/1.2/files/{fileID},其中 https://cec-instance-url.com 是您連線之 Oracle Content and Experience 執行處理的基礎 URI,而 /documents/api/1.2/files/{fileID} 是呼叫端點的查詢參數。
  4. 在「新增端點」對話方塊的回應頁籤中,輸入端點的回應主體範例。

    「回應」頁籤中有一個文字區域,可供您貼入回應主體的範例。「回應」中的範例是傳回之物件結構的定義。輸入下列物件範例來回應取得檔案資訊 API 的呼叫。

    {
        "count":"13",
        "createdBy":{
            "displayName":"Tenant1 UserB",
            "id":"Service1.UserB",
            "loginName":"Service1.UserB",
            "type":"user"
        },
        "createdTime":"2018-02-28T20:00:22Z",
        "errorCode":"0",
        "id":"DFB10CF19A743BF1338CFF01AB7008277F375F0158F1",
        "mimeType":"image/jpeg",
        "modifiedBy":{
            "displayName":"Tenant1 UserB",
            "id":"Service1.UserB",
            "loginName":"Service1.UserB",
            "type":"user"
        },
        "modifiedTime":"2018-02-28T20:00:22Z",
        "name":"BlueSquare.jpg",
        "ownedBy":{
            "displayName":"Tenant1 UserB",
            "id":"Service1.UserB",
            "loginName":"Service1.UserB",
            "type":"user"
        },
        "parentID":"F26D598E507E96F9B41C98BA36219C7DA83E60B83105",
        "size":"24205",
        "type":"file",
        "version":"1",
        "items":[
            {
                "type":"uithumbnail",
                "name":"thumbnail",
                "format":"png",
                "exists":"true",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/thumbnail?version=1",
                "size":"2478",
                "width":"300",
                "height":"180"
            },
            {
                "type":"imagepreview",
                "name":"page1",
                "format":"jpg",
                "exists":"false",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/rendition?rendition=page1&version=1",
                "size":"0",
                "width":"0",
                "height":"0"
            },
            {
                "type":"imagepreview",
                "name":"thumbnail1",
                "format":"png",
                "exists":"false",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/rendition?rendition=thumbnail1&version=1",
                "size":"0",
                "width":"0",
                "height":"0"
            },
            {
                "type":"native",
                "name":"asset",
                "format":"jpg",
                "exists":"true",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data?version=1",
                "size":"24205",
                "width":"360",
                "height":"216"
            },
            {
                "type":"responsiveimage",
                "name":"ImageThumbnailjpg",
                "format":"jpg",
                "exists":"true",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/thumbnailImage?version=1",
                "size":"2275",
                "width":"150",
                "height":"90"
            },
            {
                "type":"responsiveimage",
                "name":"ImageThumbnailwebp",
                "format":"webp",
                "exists":"false",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/thumbnailImage?format=webp&version=1",
                "size":"0",
                "width":"150",
                "height":"90"
            },
            {
                "type":"responsiveimage",
                "name":"ImageSmalljpg",
                "format":"jpg",
                "exists":"false",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/smallImage?version=1",
                "size":"0",
                "width":"300",
                "height":"180"
            },
            {
                "type":"responsiveimage",
                "name":"ImageSmallwebp",
                "format":"webp",
                "exists":"true",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/smallImage?format=webp&version=1",
                "size":"380",
                "width":"300",
                "height":"180"
            },
            {
                "type":"responsiveimage",
                "name":"ImageMediumjpg",
                "format":"jpg",
                "exists":"true",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/mediumImage?version=1",
                "size":"24205",
                "width":"360",
                "height":"216"
            },
            {
                "type":"responsiveimage",
                "name":"ImageMediumwebp",
                "format":"webp",
                "exists":"false",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/mediumImage?format=webp&version=1",
                "size":"0",
                "width":"360",
                "height":"216"
            },
            {
                "type":"responsiveimage",
                "name":"ImageLargejpg",
                "format":"jpg",
                "exists":"true",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/largeImage?version=1",
                "size":"24205",
                "width":"360",
                "height":"216"
            },
            {
                "type":"responsiveimage",
                "name":"ImageLargewebp",
                "format":"webp",
                "exists":"false",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/largeImage?format=webp&version=1",
                "size":"0",
                "width":"360",
                "height":"216"
            },
            {
                "type":"customrendition",
                "name":"Desert",
                "format":"jpeg",
                "exists":"true",
                "link":"http://service1-tenant1:8080/documents/api/1.2/files/DFB10CF19A743BF1338CFF01AB7008277F375F0158F1/data/rendition?rendition=Desert&renditionType=uploaded&version=1",
                "size":"845941",
                "width":"1024",
                "height":"768"
            }
        ]
    }
    
  5. 按一下新增
    這會將端點 ID 為 getFilesFileID 的端點新增至服務連線。
  6. 在「端點」頁籤中,按一下+端點以新增「下載檔案」端點。
  7. 在「新增端點」對話方塊中,從方法下拉式清單中選取 GET,在 URI 輸入欄位中輸入 /files/{fileID}/data,然後從動作提示下拉式清單中選取 Get One

    如同上一個端點,選擇性地按一下 URI 輸入欄位旁邊的省略號按鈕 (...),確認完整的端點 URL 為 https://cec-instance-url.com/documents/api/1.2/files/{fileID}/data

  8. 在「新增端點」對話方塊的「回應」頁籤中,將支援的回應主體媒體類型編輯為 application/octet-stream,並移除預先填入的 application/json 值。
  9. 按一下新增
    這會將端點 ID 為 getFilesFileIDData 的端點新增至服務連線。

準備下載文件

您可以在從Oracle Content and Experience下載文件的Oracle Visual Builder 應用程式頁面中建立一些變數,並撰寫呼叫模組函數。您也會設定頁面中的「清單檢視」元件以允許選取檔案,以及擷取所選檔案的相關檔案資訊。

完成這些作業之後,即可新增 UI 元件 (例如按鈕),供使用者呼叫包含呼叫「下載檔案」端點之「REST 呼叫端點」動作的動作鏈結。

在將包含按鈕元件之頁面的「變數」編輯器中,按一下+變數按鈕來新增下列將用來參照要下載之檔案的兩個變數:

  • 類型為 ObjectselectedFile
  • 類型為 StringselectedFileId
Vb-cec-var-download.png 的描述請參見下方
Vb-cec-var-download.png 圖解描述

如果先前未建立,也要新增名為 folderId 的變數。將類型指定為 String,其預設值為 self,然後選取輸入參數核取方塊。

您寫入的呼叫模組函數會下載使用者選取的檔案。

若要寫入呼叫模組函數以下載選取的檔案:

在頁面的「函數」編輯器中,新增下列在註解行 (//) 之間出現的函數。

define(['vb/helpers/rest', 'vb/helpers/rest'], (Rest, RestHookHandler) => {
  'use strict';

  var PageModule = function PageModule() { };
 
// Download the file
  PageModule.prototype.saveFile = function(data, mimeType, filename) {
    const blob = new Blob([data], {
      type: mimeType
    });
    // IE/Edge
    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
      window.navigator.msSaveOrOpenBlob(blob);
      return;
    }
    var link = document.createElement('a');
    link.href = URL.createObjectURL(blob);
    link.download = filename;
    link.click();
    // Firefox: delay revoking the ObjectURL
    setTimeout(function() {
  
      URL.revokeObjectURL(blob);
    }, 100);
  };
  
  // ...
  return PageModule;
});

若要設定「清單檢視」元件,以選取和擷取所選檔案的相關檔案資訊:

  1. 在應用程式頁面的「設計工具」檢視中,選取清檢視元件,然後從「特性偵測器」的選擇模式下拉式清單中選取單一。Vb-cec-list-single elect.png 的描述請參見下方 vb-cec-single elect.png
    圖解描述
  2. 在「清單檢視」元件之「特性偵測器」的「事件」頁籤中,按一下+新事件,然後按一下快速開始:選擇項目

    這會在「動作鏈結」工作區中建立並開啟新的動作鏈結 ListViewSelectionChangeChain

  3. 在「動作鏈結」工作區的動作底下的篩選輸入欄位中輸入 If,然後將「邏輯」區段中的 If 動作拖放到「動作鏈結」工作區。
  4. 利用您剛剛新增的「如果」動作,按一下「條件」輸入欄位右邊的下拉式箭頭,並選取「動作鏈結的變數」區段中選取項目 [0]Vb-cec-list-change-selection.png 的描述請參見下方
    Vb-cec-list-change-selection.png 圖解描述
  5. 在「動作鏈結」工作區的動作底下的篩選輸入欄位中輸入 Call REST,然後將「呼叫 REST 端點」動作拖放至「動作鏈結」工作區,如果動作評估為 true,則將「動作鏈結」工作區視為結果。
  6. 使用您剛剛新增的「呼叫 REST 端點」動作,按一下選取端點按鈕。
  7. 在選取端點對話方塊中,選取取得檔案資訊端點 (files/{fileID}),然後按一下選取。vb-cec-add-endpoint-fileinfo.png
    圖解的 Vb-cec-add-endpoint-fileinfo.png 的描述請參見下方 描述
  8. 在「動作鏈結」工作區中,選取呼叫 REST 端點動作,然後在輸入參數區段中,按一下fileID 即可呼叫「呼叫 REST 端點」對話方塊,您可以在此對話方塊中將選取的檔案對應至 fileID 參數。Vb-cec-call-endpoint-fileinfo.png 的描述請參見下方
    Vb-cec-call-endpoint-fileinfo.png 圖解描述
  9. 按一下儲存
  10. 在動作底下的篩選輸入欄位中,輸入 Assign,然後將指派變數動作拖放至工作區,作為「呼叫 REST 端點」動作的成功結果。
  11. 選取您剛剛新增至工作區的「指派變數」動作,然後按一下「變數」區段下方的指派
  12. 在顯示的「指定變數」對話方塊中,於來源中的動作鏈結變數與目標頁面底下的selectedFileId 節點之下,取得項目 [0] 節點之間的連線。
  13. 此外,也會在「結果中的 callRestEndpoint1」下的主體節點與「目標中頁面」下的「selectedFile」節點之間繪製連線。
  14. 按一下儲存
  15. 將其他「指派變數」動作拖放到工作區,作為「呼叫 REST 端點」動作的失敗結果。
  16. 選取您剛剛新增至工作區的「指派變數」動作,然後按一下「變數」區段下方的指派
  17. 在顯示的「指定變數」對話方塊中,於來源中的動作鏈結變數與目標頁面底下的folderId 節點之下,取得項目 [0] 節點之間的連線。
  18. Click Save.Vb-cec-fileinfo-final-action.png 的描述請參見下方
    Description of the illustration vb-cec-fileinfo-final-action.png

下載選取的文件

您將新增一個「按鈕」元件,供一般使用者按一下此按鈕來呼叫動作鏈結,此動作鏈結會包含呼叫「下載檔案」端點的「呼叫 REST 端點」動作,以及下載「下載檔案」端點所傳回之檔案的「呼叫模組函數」動作。

新增按鈕元件供使用者下載文件:
  1. 在 Oracle Visual Builder 應用程式頁面中,新增「按鈕」元件。
  2. 在按鈕元件之「特性偵測器」的「事件」區段中,按一下新建事件下拉式清單,然後選取快速開始:ojAction
  3. 在「動作鏈結」工作區的動作底下的篩選輸入欄位中輸入 Call REST,然後將「呼叫 REST 端點」動作拖放至「動作鏈結」工作區。
  4. 使用您剛剛新增的「呼叫 REST 端點」動作,按一下選取端點按鈕。
  5. 在「選取端點」對話方塊中,選取您先前新增的「下載檔案」端點 (files/{fileID}/data),然後按一下選取
  6. 在「動作鏈結」工作區中,選取呼叫 REST 端點動作,然後在「特性偵測器」中按一下輸入參數區段旁邊的指派連結。
  7. 在呼叫 REST 端點對話方塊中,從來源中的變數底下的selectedFileId 節點中取得連線至目標中參數下的fileID 節點,然後按一下儲存
  8. 在「動作鏈結」工作區的動作底下的篩選輸入欄位中輸入 Function,然後將「呼叫模組函數」動作拖放至「動作鏈結」工作區,作為「呼叫 REST 端點」動作的成功結果。
  9. 使用您剛新增的呼叫模組函數動作,按一下選取模組函數,然後在顯示的「選取模組函數」對話方塊中,選取頁面函數下的saveFile,再按一下選取
  10. 在輸入參數區段中,按一下指派,然後在顯示的「呼叫模組函數」對話方塊中,從 callRestEndpoint1 的主體節點 (在「動作鏈結果」底下) 將連線從目標中參數底下的資料節點擷取至資料節點。
  11. 針對兩個剩餘的參數 (mimeTypefilename),撰寫下列表示式,然後針對每個參數選取表示式核取方塊。
    • $page.variables.selectedFile.mimeType
    • $page.variables.selectedFile.name
    Vb-cec-call-module-function-savefile.png 的描述請參見下方
    Vb-cec-call-module-function-savefile.png 圖解描述
  12. 按一下儲存
Oracle Visual Builder 應用程式的頁面現在會顯示從Oracle Content and Experience的文件儲存體擷取的文件清單。一般使用者可以選取這些檔案並按一下下載,將選取的檔案下載到其裝置。Vb-cec-list-download-rt.png 的描述請參見下方
Vb-cec-list-download-rt.png 圖解描述