資料動作 Plug-in 檔案參照

每個資料動作 Plug-in 都需要 plugin.xml 檔案,且每個 plugin.xml 檔案可以包含任意數目的資料動作。

資料動作 plugin.xml 檔案範例

plugin.xml 檔案包含 tns:obiplugintns:resources 以及 tns:extension 這三個主要區段。

plugin.xml 範例

此範例顯示一個資料動作的典型 plugin.xml 檔案。

1 <?xml version="1.0" encoding="UTF-8"?>
2 <tns:obiplugin xmlns:tns="http://plugin.frameworks.tech.bi.oracle"
3                id="obitech-currencyconversion"
4                name="Oracle BI Currency Conversion"
5                version="0.1.0.@qualifier@"
6                optimizable="true"
7                optimized="false">
8 
9 
10   <tns:resources>
11      <tns:resource id="currencyconversion" path="scripts/currencyconversion.js" type="script" optimizedGroup="base"/>
12      <tns:resource-folder id="nls" path="resources/nls" optimizable="true">
13         <tns:extensions>
14            <tns:extension name="js" resource-type="script"/>
15         </tns:extensions>
16      </tns:resource-folder>
17   </tns:resources>
18  
19 
20   <tns:extensions>
21      <tns:extension id="oracle.bi.tech.currencyconversiondataaction" point-id="oracle.bi.tech.plugin.dataaction" version="1.0.0">
22         <tns:configuration>
23         {
24            "host": { "module": "obitech-currencyconversion/currencyconversion" },
25            "resourceBundle": "obitech-currencyconversion/nls/messages",
26            "properties":
27            {
28               "className": "obitech-currencyconversion/currencyconversion.CurrencyConversionDataAction",
29               "displayName": { "key" : "CURRENCY_CONVERSION", "default" : "Currency Conversion" },
30               "order": 100
31            }
32         }
33         </tns:configuration>
34      </tns:extension>
35   </tns:extensions>
36 
37 </tns:obiplugin>

資料動作 plugin.xml 檔案特性區段 - tns:obiplugin

tns:obiplugin 區段主要定義所有類型之 Plug-in 的通用特性。

Plug-in 特性

tns:obiplugin 區段會定義所有 Plug-in 類型通用的特性。

1 <?xml version="1.0" encoding="UTF-8"?>
2 <tns:obiplugin xmlns:tns="http://plugin.frameworks.tech.bi.oracle"
3                id="obitech-currencyconversion"
4                name="Oracle BI Currency Conversion"
5                version="0.1.0.@qualifier@"
6                optimizable="true"
7                optimized="false">
  • 行 1:XML 宣告。
  • 行 2:Plug-in 之根 XMLElement 的開頭標記,以及整個 plugin.xml 檔案中使用的 tns 命名空間宣告。
  • 行 3:Plug-in 的唯一 ID。
  • 行 4:Plug-in 的預設顯示名稱 (無法使用本地化版本時使用)。
  • 行 5:Plug-in 的版本號碼。
  • 行 6:指示 JS/CSS 是否可以最佳化 (壓縮) 的布林值。
  • 行 7:指示 JS/CSS 是否已經最佳化 (壓縮) 的布林值。

資料動作 plugin.xml 檔案資源區段 - tns:resources

tns:resources 區段主要註冊計入 Plug-in 的所有檔案。

資源

1 <tns:resources>
2    <tns:resource id="currencyconversion" path="scripts/currencyconversion.js" type="script" optimizedGroup="base"/>
3    <tns:resource-folder id="nls" path="resources/nls" optimizable="true">
4       <tns:extensions>
5          <tns:extension name="js" resource-type="script"/>
6       </tns:extensions>
7    </tns:resource-folder>
8 </tns:resources>

您需要在此處註冊每個 JavaScript、CSS、影像以及翻譯資源檔案。此區段包含在 <tns:resources> 元素內,其中包含下列任何數目的元素:

  • <tns:resource>

    這些元素用來註冊單一檔案 (例如,JavaScript 或 CSS 檔案)。

  • <tns:resource-folder>

    這些元素用來同時註冊指定資料夾底下的所有檔案。例如,影像資料夾或包含原生語言支援的資源檔案的資料夾。

以下各節提供如何註冊每個檔案類型的其他資訊。

JavaScript 檔案

Plug-in 中的每個 JavaScript 檔案必須使用類似下列所示的行註冊。

<tns:resource id="currencyconversion" path="scripts/currencyconversion.js" type="script" optimizedGroup="base"/>

其中:

  • id 是指定給檔案的 ID。

    將 ID 設為與沒有 .js 副檔名的 JavaScript 檔案名稱相同。

  • path 是從 plugin.xml 檔案至 JavaScript 檔案的相對路徑。JavaScript 檔案必須儲存在 Plug-in 的 scripts 目錄底下。

    請對 JavaScript 檔案全部使用小寫字元,不可包含特殊字元 (例如,底線、連字號)。

  • type 是正在註冊的檔案類型。對於 JavaScript 檔案,它必須設為 script
  • optimizedGroup 將多個 JavaScript 檔案分組成單一壓縮檔案。第三方 Plug-in 必須將此項目保留為 base

CSS 檔案

Plug-in 中的每個 CSS 檔案必須使用類似下列所示的行註冊。

<tns:resource id="currencyconversionstyles" path="resources/currencyconversion.css" type="css"/>

其中:

  • id 是指定給檔案的 ID。

    將 ID 設為與沒有 .css 副檔名的 CSS 檔案名稱相同。

  • path 是從 plugin.xml 檔案至 CSS 檔案的相對路徑。CSS 檔案必須儲存在 Plug-in 的 resources 目錄底下。

    請對 CSS 檔案全部使用小寫字元,不可包含特殊字元 (例如,底線、連字號)。

  • type 是正在註冊的檔案類型。對於 CSS 檔案,它必須一律設為 css

影像資料夾

如果 Plug-in 具有您需要從 Javascript 程式碼內進行參照的影像,請將它們放置在 Plug-in 目錄結構內的 resources/images 目錄中,並將 <tns:resource-folder> 元素新增至 plugin.xml 檔案,如下所示:

<tns:resource-folder id="images" path="resources/images" optimizable="false"/>

如果只有 CSS 檔案參照您的影像,則您不需要將 <tns:resource-folder> 元素新增至 plugin.xml 檔案。在此情況下,您仍然必須將它們新增至 resources/images 目錄,以便可以從 CSS 檔案使用相對路徑參照它們。

原生語言支援資源資料夾

Oracle Analytics 實行原生語言支援。這需要開發人員將顯示在其使用者介面中的字串具體化成個別的 JSON 資源檔案。您可以接著在指定的目錄結構中提供這些檔案的各種本地化版本,Oracle Analytics 會針對使用者選擇的語言自動使用正確的檔案。您可以視需要提供資源檔案所需的翻譯版本。原生語言支援資源資料夾會將 Oracle Analytics 指向 Plug-in 所使用之指定的原生語言支援目錄結構的根。使用原生語言支援資源檔案的所有 Plug-in 必須具有與以下範例所示完全相同的 <tns:resource-folder> 項目。

1 <tns:resource-folder id="nls" path="resources/nls" optimizable="true">
2    <tns:extensions>
3       <tns:extension name="js" resource-type="script"/>
4    </tns:extensions>
5 </tns:resource-folder>

請參閱產生的資料夾和檔案以瞭解檔案內容與應遵循的指定目錄結構詳細資訊。

資料動作 plugin.xml 檔案擴充區段 - tns:extension

對於您要 Plug-in 提供的每個資料動作,您必須使用 <tns:extension> 元素註冊資料動作擴充,類似以下所示:

<tns:extension id="oracle.bi.tech.currencyconversiondataaction" point-id="oracle.bi.tech.plugin.dataaction" version="1.0.0">
   <tns:configuration>
   {
      "host": { "module": "obitech-currencyconversion/currencyconversion" },
      "resourceBundle": "obitech-currencyconversion/nls/messages",
      "properties":
      {
         "className": "obitech-currencyconversion/currencyconversion.CurrencyConversionDataAction",
         "displayName": { "key" : "CURRENCY_CONVERSION", "default" : "Currency Conversion" },
         "order": 100
      }
   }
   </tns:configuration>
</tns:extension>

其中:

  • id 是您提供給資料動作的唯一 ID。
  • point-id 是您要註冊的擴充類型。針對資料動作擴充,此項目必須設為 oracle.bi.tech.plugin.dataaction
  • version 是您的擴充定義使用的擴充 API 版本 (請保留設定為 1.0.0)。

<tns:configuration> 元素包含進行下列定義的 JSON 字串:

  • host.module - 此為包含資料動作之模組的完整名稱。此完整模組名稱採用 %PluginID%/%ModuleName% 的格式,其中:
    • %PluginID% 必須取代為您在 <tns:obiplugin> 元素之 ID 屬性中指定的 Plug-in ID。
    • %ModuleName% 必須取代為包含資料動作之 JavaScript 檔案的 <tns:resource> 元素 ID 屬性中指定的資源 ID。
  • resourceBundle - 此為包含此資料動作之本地化資源的資源檔案其「原生語言支援」路徑。如果您的資源檔案名稱為 messages.js 且正確儲存在指定的 nls 目錄結構中,則請將此特性設為 %PluginID%/nls/messages (其中 %PluginID% 必須取代為您在 plugin.xml 檔案頂端之 <tns:obiplugin> 元素的 ID 屬性中指定的 Plug-in ID)。
  • properties.className - 此為指定給正在進行註冊之資料動作的完整類別名稱。此完整類別名稱採用 %PluginID%/%ModuleName%.%ClassName% 的格式,其中:
    • %PluginID% 必須取代為您在 <tns:obiplugin> 元素之 ID 屬性中指定的 Plug-in ID。
    • %ModuleName% 必須取代為包含資料動作之 JavaScript 檔案的 <tns:resource> 元素 ID 屬性中指定的資源 ID。
    • %ClassName% 必須取代為您在 JavaScript 檔案中提供給資料動作類別的名稱。
  • properties.displayName - 此特性包含一個物件以及兩個進一步的特性:
    • key為「原生語言支援」訊息索引鍵,可用來在指定的 resourceBundle 內查尋資料動作的本地化顯示名稱。
    • default 為預設顯示名稱,會在因某些原因找不到本地化版本的顯示名稱時使用。
  • properties.order - 此特性可讓您提供提示,可用來決定此資料動作在資料動作中顯示時應該顯示的位置。在順序特性中具有較小號碼的資料動作會出現在具有較大號碼的資料動作之前。如果出現等值的情況,資料動作將依系統載入它們的順序顯示。