跳轉到

配置與設定

外掛欄位開發後要由 UOF X 預覽使用時需先調整Config內容的設定,UOF X 的 BPM 表單才能正常的掛載外掛欄位的內容。

Json 檔位置

plugin.manifest.json
plugin.versions.json
assets\configs\fields-design.json
assets\configs\fields-runtime.json

配置檔 plugin.manifest.json

  • name: 外掛模組名稱。
  • code: 必須在 Plugin 管理中為唯一值,僅能使用英文、數字和 .
  • description: 外掛模組描述。
  • manufacturerCode: 供應商代碼。
  • manufacturer: 供應商名稱。
  • production: 設定false會在 Plugin 管理中的更多下拉按鈕中出現「重載設定檔」,重載設定可以直接強制更新所有除了code以外的設定,不必透過標準的操作檢查更新流程。
  • schemaVersion: 設定false會在 Plugin 管理中的更多下拉按鈕中出現「重載設定檔」,重載設定可以直接強制更新所有除了code以外的設定,不必透過標準的操作檢查更新流程。
  • plugin.manifest.json
    {
      "$schema": "../node_modules/@uofx/plugin/schema/plugin-manifest.schema.json",
      "schemaVersion": "94",
      "name": "一等一外掛模組範例",
      "code": "Ede.Sample",
      "description": "新一代 UOF X 外掛模組",
      "manufacturerCode": "Ede",
      "manufacturer": "一等一科技",
      "production": false
    }
    

版本設定檔 plugin.versions.json

用來設定模組版本與 UOF X 相依性及變更說明,UOF X 會依照版本設定順序由上而下排序,所以版本需要由大到小進行設定。

  • version: 模組版本。
  • minimumUOFXVersion: 最小 UOF X 支援版號,共 3 碼,以下方範本為例,2.92 會執行並使用 2.0 版本程式,2.95 則會執行並使用 3.0 版本程式。
  • changelog: 提供string陣列,條列式呈現。
plugin.versions.json
{
  "$schema": "../node_modules/@uofx/plugin/schema/plugin-versions.schema.json",
  "versions": [
    {
      "version": "3.0",
      "minimumUOFXVersion": "2.94.0",
      "changelog": [
        "新增了2個欄位",
        "修正了一些錯誤"
      ]
    },
    {
      "version": "2.0",
      "minimumUOFXVersion": "2.90.0",
      "changelog": [
        "本次更新除掉了幾條蟲"
      ]
    },
    {
      "version": "1.0",
      "minimumUOFXVersion": "2.89.1",
      "changelog": [
        "全新對話功能上線!"
      ]
    }
  ]
}

version 的版本需和 nginx 的 location/1_0/ 相對應,1_0 代表版本 1.0。

nginx.conf
http {
    # 其他設定省略...

    upstream Remote {
        server localhost:40001;
    }

    # 主要設定
    server{

        # 對外要使用的port
        listen 8888;

        location /1_0/ {
                proxy_pass http://Remote/;
        }

        location / {
                proxy_pass http://Remote/;
        }
    }
} 

💡 詳細設定請參考 開發環境設定

欄位設計檔 fields-design.json

fields-design.json 內的欄位代表在 BPM 表單設計時左邊的欄位類型下拉中讀取外掛欄位的類型加入,注意需調整 fieldGroups 屬性中的 code 和 fields 屬性中的 group 需對應

fields-design.json
{
  "$schema": "../../../node_modules/@uofx/plugin/schema/fields-design.schema.json",
  "fieldGroups": [
    {
      "code": "group1",
      "name": "群組一"
    }
  ],
  "fields": [
    {
      "group": "group1",
      "code": "sampleField",
      "name": "sample欄位",
      "icon": "assets/icons/u-plugin-form.svg",
      "sizeConfig": {
        "defaultCols": 2,
        "defaultRows": 1,
        "minCols": 1,
        "minRows": 1
      }
    },
    {
      "group": "group1",
      "code": "anotherField",
      "name": "進階欄位",
      "icon": "assets/icons/u-plugin-form.svg",
      "sizeConfig": {
        "defaultCols": 8,
        "defaultRows": 2,
        "minCols": 8,
        "minRows": 2
      }
    }
  ]
}

欄位執行設定檔 fields-runtime.json

fields-runtime.json 代表外掛欄位執行時從 UOF X 能讀取外掛欄位內容的設定,其中第一個屬性 sampleField 代表外掛欄位 Id, 外掛欄位Id必須和 fields-design.json 中 fields 屬性的 code 相對應

fields-runtime.json
{
  "$schema": "../../../node_modules/@uofx/plugin/schema/fields-runtime.schema.json",
  "sampleField": {
    "exposedModule": "./HelloWorld",
    "moduleName": "HelloWorldModule",
    "app": {
      "exposedModule": "./HelloWorld",
      "moduleName": "FieldHelloWorldAppModule"
    }
  },
  "anotherField": {
    "exposedModule": "./AdvancedField",
    "moduleName": "AdvancedFieldModule",
    "app": {
      "exposedModule": "./AdvancedField",
      "moduleName": "FieldAdvancedAppModule"
    }
  }
}