自動工程を自作する際、サービスタスクの定義を行うアドオン XML の書式です。
要素の構成
アドオン XML は、ルート要素 <service-task-definition> の下に次の要素を記述します。
<?xml version="1.0" encoding="UTF-8"?>
<service-task-definition>
<label>Number: Generate Random</label>
<label locale="ja">数値: 乱数生成</label>
<summary>Generates a random number.</summary>
<summary locale="ja">乱数を生成します。</summary>
<license>…</license>
<help-page-url>…</help-page-url>
<help-page-url locale="ja">…</help-page-url>
<configs>
<config name="conf_Lower" required="true" el-enabled="true" form-type="TEXTFIELD">
<label>A: Set Lower Limit</label>
<label locale="ja">A: 下限値をセットしてください</label>
</config>
</configs>
<engine-type>3</engine-type>
<last-modified>2023-08-08</last-modified>
<deprecated>false</deprecated>
<script><![CDATA[
// ここにサーバサイドスクリプトを記述します
]]></script>
<icon>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAB...
</icon>
</service-task-definition>
設定項目をグループ分けする場合は、ルート直下の <configs> に代えて、<tabs> をルート直下に置き、その下の <tab> ごとに <configs> を記述します。<tabs> を使う場合、ルート直下に <configs> を置くことはできません。
<service-task-definition>
<tabs>
<tab>
<configs>
<config name="conf_Lower" required="true" form-type="TEXTFIELD">
<label>A: Set Lower Limit</label>
</config>
<config name="conf_Upper" required="true" form-type="TEXTFIELD">
<label>B: Set Upper Limit</label>
</config>
</configs>
</tab>
<tab>
<configs>
<config name="conf_DataIdC" required="true" form-type="SELECT" select-data-type="DECIMAL">
<label>C: Select NUMERIC DATA for Generated Number</label>
</config>
</configs>
</tab>
</tabs>
</service-task-definition>
要素別一覧
| 要素 | 内容 | 制約・書式 |
|---|---|---|
<label> |
自動工程(サービスタスク)の抽象名 | 最大 64 文字。locale 属性で言語別に指定できる(en, ja など) |
<summary> |
概要 | 最大 256 文字。locale 属性が使用できる |
<license> |
ライセンス表記 | — |
<help-page-url> |
ヘルプページの URL | 最大 1000 文字。locale 属性が使用できる |
<last-modified> |
最終更新日 | YYYY-MM-DD |
<deprecated> |
廃止予定アイテムかどうか | true / false |
<engine-type> |
スクリプトエンジン | 必須。3(GraalJS)を指定する |
<icon> |
工程のロゴ | 64px 以下の JPEG / GIF / PNG を Base64 エンコードした文字列。ワークフロー図に Drag&Drop で配置された際に表示される |
<configs> / <config>
|
設定項目 |
<config> は <configs> の子要素として最大 20 件まで列挙できる。<configs> はルート直下か <tab> の下のいずれかに置く |
<tabs> / <tab>
|
設定項目のグルーピング |
<tabs> はルート直下に置き、その下の <tab> ごとに <configs> を持つ。<tabs> を使う場合、ルート直下に <configs> は置けない |
<script> |
サーバサイドスクリプト |
<![CDATA[ と ]]> の間に記述する。[スクリプトタスク]と同じ制約(処理時間は最長 30 秒、HTTP リクエストは 1 自動処理工程につき 10 回まで、など)を受ける |
スクリプトからの設定値の参照
サービスタスク定義(Addon-XML)内に記述するスクリプトからは、configs オブジェクトで設定値を参照します。
const processId = configs.get( "conf_ProcessId" );
String get(String configName) — form-type の設定に応じて、次の文字列を返します。
| form-type | 戻り値 |
|---|---|
| TEXTFIELD, TEXTAREA | 入力された文字列、または SpEL 式が評価された結果の文字列(el-enabled="true" の場合)を返す |
| SELECT | 指定されたデータ項目のデータ項目番号、または入力された文字列(editable="true")を返す |
| SELECT_LIST_SUB_DATA | 選択されたサブデータ項目のフィールド名を返す |
| SELECT_ITEM | 選択された選択肢(item)の value を返す |
| TOGGLE | ブール値(boolean)を文字列(true or false)で返す |
| QUSER | 選択された Quser(ユーザ)のユーザ ID を返す |
| QGROUP | 選択された Qgroup(組織)の組織 ID を返す |
| OAUTH2 | 選択された OAuth2 設定の settingName を返す |
Object getObject(String configName) — form-type の設定に応じて、次のオブジェクトを返します。
| form-type | 戻り値 |
|---|---|
| TEXTFIELD, TEXTAREA | null |
| SELECT | データ定義オブジェクト(ProcessDataDefinitionView)。editable="true" で、固定値が指定された場合は null |
| SELECT_LIST_SUB_DATA | サブデータ項目オブジェクト(SubDataDefinitionView) |
| SELECT_ITEM | 選択肢オブジェクト(ItemView) |
| TOGGLE | boolean (true or false) |
| QUSER | Quser オブジェクト(QuserView) |
| QGROUP | Qgroup オブジェクト(QgroupView) |
| OAUTH2 | HTTP 認証設定オブジェクト(AuthSettingWrapper) |
戻り値のオブジェクト(ProcessDataDefinitionView、SubDataDefinitionView、ItemView、QuserView、QgroupView、AuthSettingWrapper)の詳細は R2300: スクリプトタスクで利用できる Java クラス をご参照ください。
属性別設定値一覧
name *
| 設定値 | 説明 |
|---|---|
| name="conf_MaxNum" | 英数字と "_"(アンダーバー)が使用できます 最大64文字 |
form-type
| 設定値 | 説明 |
|---|---|
| form-type="TEXTFIELD" | 文字入力により指定(単一行) |
| form-type="TEXTAREA" | 文字入力により指定(複数行) |
| form-type="SELECT" | データ項目を選択することにより指定("select-data-type" でデータ型を指定) |
| form-type="SELECT_LIST_SUB_DATA" | テーブル型のサブデータ項目を選択することにより指定。"depends-on" とセットで利用し、その先には form-type="SELECT" の設定項目を指定する。指定先でテーブル型データ項目が選択されている場合のみ、この設定項目が表示される |
| form-type="SELECT_ITEM" | 選択肢リストから選択することにより指定(<item> で選択肢を定義) |
| form-type="TOGGLE" | ON / OFF で指定 |
| form-type="QUSER" | ユーザを選択することにより指定 |
| form-type="QGROUP" | 組織を選択することにより指定 |
| form-type="OAUTH2" | HTTP 認証設定名を選択することにより指定。HTTP 認証設定で「BASIC 認証 / トークン直接指定」を利用している場合も "OAUTH2" を指定する |
省略時のデフォルトは "TEXTFIELD" です
"SELECT_ITEM" での選択肢の定義例:
<item value="editor"><label>Editor</label></item> <item value="viewer"><label>Viewer</label></item>
select-data-type
| 設定値 | 説明 |
|---|---|
| select-data-type="STRING" | 文字型データ項目に絞って選択 |
| select-data-type="STRING_TEXTFIELD" | 文字型(単一行)データ項目に絞って選択 |
| select-data-type="STRING_TEXTAREA" | 文字型(複数行)データ項目に絞って選択 |
| select-data-type="STRING_MARKDOWN" | 文字型(Markdown)データ項目に絞って選択 |
| select-data-type="STRING_MULTILINE" | 文字型(複数行/Markdown)データ項目に絞って選択 |
| select-data-type="DECIMAL" | 数値型データ項目に絞って選択 |
| select-data-type="DATE" | 日付型データ項目に絞って選択 |
| select-data-type="DATE_Y" | 日付型(年)データ項目に絞って選択 |
| select-data-type="DATE_YM" | 日付型(年月)データ項目に絞って選択 |
| select-data-type="DATE_MD" | 日付型(月日)データ項目に絞って選択 |
| select-data-type="DATE_YMD" | 日付型(年月日)データ項目に絞って選択 |
| select-data-type="DATETIME" | 日時型データ項目に絞って選択 |
| select-data-type="SELECT" | 選択型データ項目に絞って選択 |
| select-data-type="SELECT_SINGLE" | 選択型(単一選択)データ項目に絞って選択(単一選択: ラジオボタン/セレクトボックス/検索セレクトボックス) |
| select-data-type="SELECT_CHECKBOX" | 選択型(チェックボックス)データ項目に絞って選択 |
| select-data-type="QUSER" | ユーザ型データ項目に絞って選択 |
| select-data-type="QGROUP" | 組織型データ項目に絞って選択 |
| select-data-type="LIST" | テーブル型データ項目に絞って選択 |
| select-data-type="FILE" | ファイル型データ項目に絞って選択 |
| select-data-type="DISCUSSION" | 掲示板型データ項目に絞って選択 |
省略時のデフォルトは "STRING" です
required
| 設定値 | 説明 |
|---|---|
| required="true" | "required=true" を指定すると必須項目となる |
| required="false" |
省略時のデフォルトは "false" です
el-enabled
| 設定値 | 説明 |
|---|---|
| el-enabled="true" | SpEL 式を許可する/しない。許可した場合に、この設定項目へ指定する値の書式は R2272: 件名/文字型への自動代入(データ設定式) を参照 |
| el-enabled="false" |
省略時のデフォルトは "false" です
editable (for form-type="SELECT")
| 設定値 | 説明 |
|---|---|
| editable="true" | form-type="SELECT" の設定項目で、テキストフィールドへの入力を許可する/しない |
| editable="false" |
省略時のデフォルトは "false" です
depends-on
| 設定値 | 説明 |
|---|---|
| depends-on="configName" | form-type="TOGGLE" の設定項目の name の値(configName)を指定し、TOGGLE の選択に応じてこの設定項目の表示/非表示を切り替える。form-type="SELECT_LIST_SUB_DATA" の設定項目では、form-type="SELECT" の設定項目の name の値を指定する |
設定サンプル:
<config name="checked" form-type="TOGGLE"> <label>Checked</label> <label locale="ja">チェック済</label> </config> <config name="note" form-type="TEXTFIELD" depends-on="checked"> <label>Note</label> </config>