サービスタスク(Add-on)

機能概要

プロセスにおいて、システムが処理する自動工程を表します。
ユーザ独自定義のサービスタスクを処理します。

現在、ベータ(Beta)機能として提供しています。
ベータ(Beta)機能に関する注意点は、「このマニュアルについて」-「ベータ(Beta)機能について」を参照してください。
アプリ管理権限を持つユーザが対象です。
ECMAスクリプトおよびJavaの使用経験者を対象としています。

機能一覧

ワークフロー図 ワークフロー図の作成を行います。
スイムレーンや各ノードを配置し、フローを作成して、作業の順序を定義します。
ヒューマンタスク プロセスにおいて、処理担当者が作業する手動工程を表します。
プロセス実行時に、データを入力するフォーム(タスク処理画面)が表示されます。
サービスタスク
(データ設定)
プロセスにおいて、システムが処理する自動工程を表します。
数値型、日付型/日時型、文字型、選択型データ項目に、動的な値や演算結果を代入します。
サービスタスク
(PDF生成)
プロセスにおいて、システムが処理する自動工程を表します。
業務データ(各データ項目に保持されている値)を埋め込んだPDF帳票を生成します。
サービスタスク
(選択肢マスタ更新)
プロセスにおいて、システムが処理する自動工程を表します。
指定の選択型データ項目の内容を、アプリ共有アドオンの[選択型データ項目で使用する選択肢マスタ]として更新します。
スクリプトタスク プロセスにおいて、システムが処理する自動工程を表します。
ECMAスクリプトを使用して、業務データ(各データ項目に保持されている値)を編集します。
受信タスク
(フォーム)
プロセスにおいて、システムが処理する自動工程を表します。
アカウントを持たないユーザに対して、プロセスの途中での入力フォームを提供します。
メッセージ開始イベント(フォーム)を使用してユーザにWeb入力フォームを提供したあとに、メールによる本人確認を経て、詳細情報を入力するようなWeb入力フォームを表示します。
受信タスク
(Webhook)
プロセスにおいて、システムが処理する自動工程を表します。
外部サービス側のWebhook通知の受信まで待機し、受信後にトークンが進みます。
サービスタスク
(Add-on)
プロセスにおいて、システムが処理する自動工程を表します。
ユーザ独自定義のサービスタスクを処理します。
タイマー開始イベント プロセスにおいて、システムが処理する自動工程を表します。
設定した日時にプロセスを自動的に開始します。
タイマー中間イベント プロセスにおいて、システムが処理する自動工程を表します。
指定した日時まで待機し、指定日時を経過するとトークンが進みます。
メッセージ開始・
受信中間イベント(HTTP)
プロセスにおいて、システムが処理する自動工程を表します。
メッセージ開始イベント(HTTP): 外部システムまたはDataSpider BPMの他のプロセスから受け取ったメッセージをもとにプロセスを開始します。
メッセージ受信中間イベント(HTTP): プロセスの実行途中で、外部システムまたはDataSpider BPMの他のプロセスから受け取ったメッセージをもとにデータを入力できます。
メッセージ開始イベント
(フォーム)
プロセスにおいて、システムが処理する自動工程を表します。
Webページの入力フォームから受け取ったメッセージをもとにプロセスを開始します。
入力フォームは、データ項目のレイアウトをWebページに埋め込んで使用します。
メッセージ開始イベント
(Webhook)
プロセスにおいて、システムが処理する自動工程を表します。
外部サービス側のWebhook通知の受信を起点とし、プロセスを自動的に開始します。
メッセージ送信中間イベント
(HTTP)
プロセスにおいて、システムが処理する自動工程を表します。
指定したURLに、HTTPリクエストを送信します。
外部システムまたはDataSpider BPMの他のプロセスへのデータ送信が可能となります。
メッセージ送信中間イベント
(メール)
プロセスにおいて、システムが処理する自動工程を表します。
設定した内容でメールを送信します。
送信先は任意に設定できます。
メール本文に、データ項目の入力内容を埋め込むことができます。
メッセージ送信中間イベント
(DataSpider Servista)
プロセスにおいて、システムが処理する自動工程を表します。
指定したDataSpider Servistaのスクリプトを実行することができます。
イベントの実行時には、DataSpider BPM側のデータ項目の値を、DataSpider Servista側で定義されている入力変数へ渡すことができます。
スクリプト終了時には、DataSpider Servista側で定義されている出力変数の値を、DataSpider BPM側のデータ項目の値として受け取ることができます。
スクリプトの実行結果(結果の戻り値:ExitStatusおよびエラー内容)を受け取り、その後のタスクや条件分岐処理等で使用することができます。
分岐 ワークフロー図に分岐がある場合、分岐・遷移先の設定を行います。

項目説明

プロパティ設定ダイアログ表示されるプロパティは、定義ファイル(アドオンXML)で定義した内容に依存します。
項目名 必須 説明
工程名 任意 タスクの名称を入力します。
メモ 任意 タスクの注意点や目的などに関するメモを入力します。
サービスタスク定義ファイル 必須 ユーザ独自定義のプロパティを表示します。
表示されるプロパティおよび実行時の処理内容は、定義ファイル(アドオンXML)で定義した内容に依存します。
定義ファイル(アドオンXML)に関する詳細は、こちらを参照してください。
処理失敗時に、
トークンをエラー境界イベントに移動
任意 処理が失敗した際のフローを定義したい場合は、有効にします。
有効にした場合は、タスクの下部にエラー境界イベントが表示されます。

操作メニュー説明

表示
(HTML5版)
表示
(Flash版)
操作メニュー 説明
[ヘルプ]アイコン
[ヘルプ]ボタン
このマニュアルページを表示します。
定義ファイル(アドオンXML)に、<help-page-url>要素が定義されている場合に表示されます。
[適用して閉じる]ボタン
[閉じる]ボタン
設定した値を適用して、サービスタスク(Add-on)のプロパティ設定ダイアログを閉じます。
- [適用する]ボタン 設定した値を適用します。
- [キャンセル]ボタン 設定した値を適用せずに、サービスタスク(Add-on)のプロパティ設定ダイアログを閉じます。
[参照を挿入する...]アイコン
[データの参照を挿入する...]リストボックス
定義したプロパティに、プロセス情報や変数の参照を挿入します。
  • [件名]: #{processInstanceTitle}
  • [プロセスID]: #{processInstanceId}
  • [プロセス開始ユーザ]: #{processInstanceInitQuserName}
  • [プロセス開始組織]: #{processInstanceInitQgroupName}
  • [プロセス開始日時]: #{processInstanceStartDatetime}
  • [プロセス連番]: #{processInstanceSequenceNumber}
  • [アプリID]: #{processModelInfoId}
  • [アプリ名]: #{processModelInfoName}
  • [<データ項目>]: #{#<データ項目の[フィールド名]>}
  • [アプリ変数]: ${var[<変数名>]}
  • [システム変数]: ${var[applicationRoot]}
定義ファイル(アドオンXML)に、<config>要素のform-type属性に「TEXTFIELD」および「TEXTAREA」が定義されている場合に表示されます。
アプリ変数に関する詳細は、「変数設定(アプリ変数)」を参照してください。
システム変数に関する詳細は、「設定ファイル(qbpms.config)」を参照してください。
- [変数の利用]ボタン 定義したプロパティに、変数の参照を挿入します。
  • [アプリ変数]: ${var[<変数名>]}
  • [システム変数]: ${var[applicationRoot]}
定義ファイル(アドオンXML)に、<config>要素のform-type属性に「TEXTFIELD」および「TEXTAREA」が定義されている場合に表示されます。
アプリ変数に関する詳細は、「変数設定(アプリ変数)」を参照してください。
システム変数に関する詳細は、「設定ファイル(qbpms.config)」を参照してください。

定義ファイル(アドオンXML)について

サービスタスク(Add-on)では、ユーザ独自定義のサービスタスクを作成および使用することができます。
指定の定義様式を用いて、XML形式の定義ファイルとして作成し、アプリ共有アドオンまたはアドオンとして登録します。
正常に登録された場合は、ワークフロー図のパレットに表示されますので、適宜スイムレーンに配置して使用してください。
アプリ共有アドオンに関する詳細は、
「アプリ共有アドオン(管理)」を参照してください。
アドオンに関する詳細は、「アドオンの管理」を参照してください。

定義ファイル(アドオンXML)の基本構造


 <?xml version="1.0" encoding="UTF-8"?>
 <service-task-definition>

   <label>ラベル名を定義します。</label>
   <help-page-url>マニュアルページを定義します。</help-page-url>
   <summary>サービスタスクの概要説明を定義します。</summary>
   <license>サービスタスクのライセンス情報を定義します。</license>
   <engine-type>定義したスクリプトの実行エンジンの種類を設定します。</engine-type>
   <last-modified>定義したスクリプトの最終更新日を設定します。</last-modified>

   <configs>
     <config プロパティ設定ダイアログに表示するプロパティを定義します。>
       <label>プロパティの説明を定義します。</label>
     </config>
     ...
   </configs>

   <script><![CDATA[
     実行時の処理内容をスクリプトで定義します。
     ...
   ]]></script>

   <icon>
     サービスタスク(Add-on)に表示するロゴアイコンを定義します。
   </icon>

 </service-task-definition>

定義ファイル(アドオンXML)の要素詳細

要素名 説明
<service-task-definition> 定義ファイル(アドオンXML)のルート要素です。
  <label> ラベル名を定義します。
プロパティ設定ダイアログのタイトル名称およびパレットでのポップアップで表示します。
多言語対応する場合は、locale属性を以下のように指定します。
  • 日本語: <label locale="ja">ここに日本語のラベル名を定義します。</label>
  • English: <label>ここに英語のラベル名を定義します。</label>
  • 中文(簡体): <label locale="zh_CN">ここに中文のラベル名を定義します。</label>
64文字以下で定義してください。
<help-page-url> マニュアルへのURLリンクを定義します。
プロパティ設定ダイアログに[ヘルプ]アイコンを表示します。
多言語対応する場合は、locale属性を以下のように指定します。
  • 日本語: <help-page-url locale="ja">ここに日本語のマニュアルへのURLリンクを定義します。</help-page-url>
  • English: <help-page-url>ここに英語のマニュアルへのURLリンクを定義します。</help-page-url>
  • 中文(簡体): <help-page-url locale="zh_CN">ここに中文のマニュアルへのURLリンクを定義します。</help-page-url>
<summary> サービスタスクの概要説明を定義します。
多言語対応する場合は、locale属性を以下のように指定します。
  • 日本語: <summary locale="ja">ここに日本語のマニュアルへのURLリンクを定義します。</summary>
  • English: <summary>ここに英語のマニュアルへのURLリンクを定義します。</summary>
  • 中文(簡体): <summary locale="zh_CN">ここに中文のマニュアルへのURLリンクを定義します。</summary>
<license> サービスタスクのライセンス情報を定義します。
プロパティ設定ダイアログには表示されません。
<engine-type> 定義したスクリプトの実行エンジンの種類を設定します。
  • Rhino: [0] デフォルト
  • Nashorn: [1]
プロパティ設定ダイアログには表示されません。
<last-modified> 定義したスクリプトの最終更新日を設定します。
プロパティ設定ダイアログには表示されません。
<configs> プロパティ設定ダイアログに表示するプロパティ定義のルート要素です。
  <config> プロパティ設定ダイアログに表示する1つのプロパティを定義します。
複数のプロパティを指定する場合は、繰り返し定義してください。

config要素の以下の属性において、そのプロパティの選択および入力方法を指定します。
属性名 説明
name そのプロパティの内部名称を定義します。
例) name="conf_DataIdA"
数字、アルファベットおよびアンダーバー「_」が使用できます。
64文字以下で定義してください。
form-type そのプロパティの入力方式を定義します。
例) form-type="SELECT"
  • SELECT: 選択リストから、そのアプリに定義してある各データ項目を指定する方式
  • TEXTFIELD: 単一行の文字入力方式 デフォルト
  • TEXTAREA: 複数行の文字入力方式
  • QUSER: リストからユーザを指定または入力する方式
select-data-type form-typeが「SELECT」の場合の、選択リストに表示するデータ項目のデータタイプ(データ型)を定義します。
例) select-data-type="STRING"
  • STRING: 文字型のデータ項目 デフォルト
  • STRING_TEXTFIELD: 文字型(単一行)のデータ項目
  • STRING_TEXTAREA: 文字型(複数行)のデータ項目
  • DECIMAL: 数値型のデータ項目
  • DATE: 日付型のデータ項目
  • DATE_YMD: 日付型(年月日)のデータ項目
  • DATE_YM: 日付型(年月)のデータ項目
  • DATE_MD: 日付型(月日)のデータ項目
  • DATE_Y: 日付型(年)のデータ項目
  • DATETIME: 日時型のデータ項目
  • SELECT: 選択型のデータ項目
  • SELECT_SINGLE: 選択型(ラジオボタン、リストボックスなどの単一選択)のデータ項目
  • SELECT_CHECKBOX: 選択型(チェックボックスなどの複数選択)のデータ項目
  • QUSER: ユーザ型のデータ項目
  • QGROUP: 組織型のデータ項目
  • LIST: テーブル型のデータ項目
  • FILE: ファイル型のデータ項目
  • DISCUSSION: 掲示板型のデータ項目
required そのプロパティの指定が必須かどうかを定義します。
例) required="true"
  • true: 必須の指定項目
  • false: 任意の指定項目 デフォルト
el-enabled そのプロパティにおいて、データ参照を可能にする[参照を挿入する...]の選択リストを追加するかどうかを定義します。
データ参照を挿入した場合、実行時にデータの値をそのプロパティに適用します。
例) el-enabled="true"
  • true: [参照を挿入する...]の選択リストを追加する
  • false: [参照を挿入する...]の選択リストを追加しない デフォルト
form-typeが「TEXTFIELD」および「TEXTAREA」の場合に指定します。
[参照を挿入する...]の選択リストでは、以下の参照を選択することができます。
  • 件名: #{processInstanceTitle}
  • プロセスID: #{processInstanceId}
  • プロセス開始ユーザ: #{processInstanceInitQuserName}
  • プロセス開始組織: #{processInstanceInitQgroupName}
  • プロセス開始日時: #{processInstanceStartDatetime}
  • プロセス連番: #{processInstanceSequenceNumber}
  • アプリID: #{processModelInfoId}
  • アプリ名: #{processModelInfoName}
  • [<データ項目>]: #{#<データ項目の[フィールド名]>}
  • [アプリ変数]: ${var[<変数名>]}
  • [システム変数]: ${var[applicationRoot]}
例) <config name="conf_DataPrefix" required="false" form-type="SELECT" select-data-type="STRING_TEXTFIELD">...</config>
上記の例では、データの接頭辞を指定するプロパティで、「conf_DataPrefix」という名前の、任意指定項目で文字型(単一行)のデータ項目から選択するプロパティとなります。
  <label> プロパティの説明を定義します。
多言語対応する場合は、locale属性を以下のように指定します。
  • 日本語: <label locale="ja">ここに日本語のプロパティ説明を定義します。</label>
  • English: <label>ここに英語のプロパティ説明を定義します。</label>
  • 中文(簡体): <label locale="zh_CN">ここに中文のプロパティ説明を定義します。</label>
64文字以下で定義してください。
<script> 実行時の処理内容を定義します。
スクリプトタスクと同様に、ECMAスクリプトを使用して記述します。

<script><![CDATA[

 ~この間にスクリプトを記述します~

]]></script>

プロパティの値を取得するには、configs.get("<プロパティ名>")を使用します。
スクリプトの記述方法に関しての詳細は、「スクリプトタスク」を参照してください。
<icon> サービスタスク(Add-on)に表示するロゴアイコンを定義します。
画像ファイル(JPEG, GIF, PNG)をBase64エンコードした値を設定します。


64px以下の画像ファイルにしてください。

定義ファイル(アドオンXML)の定義例

2つの日付(YYYY-MM-DD)から、その経過日数を算出します。

 <?xml version="1.0" encoding="UTF-8"?>
 <service-task-definition>

   <label>Days Calculator</label>
   <label locale="ja">日数計算</label>
   <summary locale="ja">2つの日付(YYYY-MM-DD)から、その経過日数を算出します。</summary>
   <engine-type>0</engine-type>
   <last-modified>2020-03-15</last-modified>

   <configs>
     <config name="conf_DataIdA" required="true" form-type="SELECT" select-data-type="DATE">
       <label>A: Select DATE DATA [e.g.2016-09-01]</label>
       <label locale="ja">A: 日付型データを選択してください [例:2017-09-01]</label>
     </config>
     <config name="conf_DataIdB" required="true" form-type="SELECT" select-data-type="DATE">
       <label>B: Select DATE DATA [e.g.2016-09-03]</label>
       <label locale="ja">B: 日付型データを選択してください [例:2017-09-03]</label>
     </config>
     <config name="conf_DataIdC" required="true" form-type="SELECT" select-data-type="DECIMAL">
       <label>C: Select NUM OF ELAPSED DAYS DATA [2] (update)</label>
       <label locale="ja">C: AからBまでの経過日数[2]が格納される数値型データを選択してください(更新)</label>
     </config>
   </configs>

   <script><![CDATA[
   //// == 各プロパティに設定された値の取得 / Config Retrieving ==
   var dataIdA = configs.get( "conf_DataIdA" ); // (returns Number)
   var dataIdB = configs.get( "conf_DataIdB" ); // (returns Number)
   var dataIdC = configs.get( "conf_DataIdC" ); // (returns Number)

   //// == 実行時データの参照 / Data Retrieving ==
   var dayA = data.get( dataIdA );
   var dayB = data.get( dataIdB );

   //// == 演算 / Calculating ==
   var msec = dayB.getTime() - dayA.getTime();
   var days = Math.round( msec / 1000 / 3600 / 24 );

   //// == 実行時データへの代入 / Data Updating ==
   retVal.put( dataIdC, java.math.BigDecimal( days ) );
   ]]></script>

   <icon>
     iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABv0lEQVRYR+1XPU7DMBj1l0xpJcQFUBkZYe2Cx9bJ0CP0COUEl
     BPAEXqEDo1ToQ6uxA5HgBuwVJ3qD32ortxUKc5PE4HIEiV+iV/e+75nB1jqEEKMAeA+fb+Ka0R8kFKO7XfBP4GfFCDZyshv21
     nIgjiOD2w6RkgIcU3jUso3OodhiAZ/cgI0udb6CgDOEPF5Pp+/10qg2+126GtbrdbFYrF4aUKBMbVZGIajOI6faidAE1KOaK0
     nJH8lBBBxLzjydgQA7J4vVIR5JzyG/50EEHGZ9VUAcEtjLpgtLv9acCyITI+7YCohIIRQUkpuFKmNQK/XuwSAjud5SmvNEfHD
     TjlSwGCs2N3DlFJACDFkjA3J863fEynlxFbAYKx62cOUImBLbvtdmwWGQBRFfDabqVprgDzPakOqCRpzwRS2oPEkdAkZF0xhB
     VxCxgVTigDn/DwIAp4kybTf7w/W67VSSn3aXUAFqrX+jmY6PM9bUsFWsiMiAu12WyHiKwDcrFYrnkFgV7BUoJUR2G4sRoyxR8
     bYXXq3c3ILKGZ9359uNpuBOaejOP1HZdb+SizIasVaktAlZFwwhbug8SD68wS+AAh8Lj/CJSvYAAAAAElFTkSuQmCC
   </icon>

 </service-task-definition>

定義ファイル(アドオンXML)の画面表示例