カスタム・ワークフローの設計および作成

Flowable を使用して、特定のビジネス・プロセスを管理するための プロセス定義 を作成できます。

プロセス定義は、特定の目標を達成するために実行する必要がある一連のつながったステップです。 プロセス定義では、以下の詳細を指定します。
  • プロセスを構成するタスク。
  • タスクの順序です。
  • タスク間の遷移。

サポートされるツール

カスタム・プロセス定義を作成するには、 Flowable (https://flowable.com/open-source/) を使用する必要があります。 以下のタイプのファイルを IBM Cloud Pak for Dataにインポートできます。
  • BPMN ファイル
  • BPMN 2.0 XML ファイル
  • BPMN ファイルまたは BPMN 2.0 XML ファイル、およびプロセス定義のリソース・ファイルを含む ZIP ファイル。

必要なスキル

カスタム・プロセス定義を作成するには、以下のスキルと知識が必要です。

  • サポートしているビジネス・プロセスについての基本的な理解。
  • Flowableに精通していること。
  • プログラミング・スキル。
  • JavaScriptに精通していること。
  • Java Unified Expression Language の基本的な理解。

制限

Cloud Pak for Dataでは、ワークフローは同期ワークフロー・エンジン・モードで実行されます。これは、すべてのワークフロー・アクションが外部アクションによってトリガーされる必要があることを意味します。 例えば、要求の送信やアセットの編集など、 Cloud Pak for Dataのユーザー・アクションによってワークフローをトリガーできます。

以下のプロセス定義オプションは、 Cloud Pak for Dataではサポートされていません。
  • シグナルまたはメッセージの送信。
  • タイマー (イベントに基づくタイマーを含む)。
  • バックグラウンドでのワークフローの非同期実行。

他の Cloud Pak for Data コンポーネントまたは他のアプリケーション (REST API 呼び出しなど) との対話は、同期している必要があります。

カスタム・ワークフローの概念

Cloud Pak for Dataでは、 ワークフロー・タイプ は、ビジネス・プロセスをサポートするリソースと構成のセットです。 以下の図は、ワークフロー・タイプを定義するために Flowable で作成できるコンポーネントを示しています。

概念については、後続のテキストで説明します。 この図では、3 つの最上位テンプレートを使用したワークフロー・タイプが示されています (テンプレートの名前は、テンプレート A、テンプレート B、およびテンプレート C です)。 テンプレート A のヘルパー・テンプレートはありません。 テンプレート B は、ヘルパー・テンプレート B を使用するヘルパー・テンプレート A を使用します。 テンプレート C はヘルパー・テンプレート C を使用します。 最上位テンプレート ヘルパー・テンプレート
最上位テンプレート
少なくとも 1 つの 最上位テンプレート をワークフロー・タイプに関連付ける必要があります。 最上位テンプレートは、 Flowable プロセス定義です。

Cloud Pak for Data Web クライアントでは、最上位テンプレートは ワークフロー・テンプレートと呼ばれます。 ワークフロー管理者は、ワークフロー構成を作成するときに、最上位のテンプレートを選択します。 ワークフロー条件でワークフローがトリガーされると、このテンプレートが使用されます。 詳しくは、 カスタム・ワークフローの構成を参照してください。

ワークフロー・タイプのすべての最上位テンプレートは、以下の基準を満たしている必要があります。
  • 各テンプレートは、同じ ターゲット名前空間内になければなりません。

    詳しくは、 targetNamespaceを参照してください。

  • カスタム要求ワークフローの場合のみ、各テンプレートは同じ 開始フォーム・プロパティーを使用する必要があります。

    開始フォーム・プロパティーは、ユーザーが新規要求を送信するときに表示される入力フィールドのセットを記述する必要があります。 詳しくは、 ユーザー・タスク・フィールドを参照してください。

ヘルパー・テンプレート
オプションで、1 つ以上のヘルパー・テンプレート をワークフローに含めることができます。 ヘルパー・テンプレートは、 Flowable プロセス定義です。 ただし、ワークフロー構成を作成する際にヘルパー・テンプレートを使用することはできません。 ヘルパー・テンプレートは、最上位テンプレートまたはその他のヘルパー・テンプレートのいずれかで使用できます。
すべてのヘルパー・テンプレートは、helper 名前空間に存在している必要があります。 詳しくは、 targetNamespaceを参照してください。
制約事項: ヘルパー・テンプレートを個別にアップロードすることはできません。 それらを、少なくとも 1 つの最上位テンプレートを含む ZIP ファイルに組み込む必要があります。

ワークフロー・タイプの要件

ワークフロー・タイプを計画する際には、以下の要件を考慮してください。
  • ワークフロー・タイプには、1 つ以上の最上位テンプレート (プロセス定義) を含める必要があります。
    • 同じ targetNamespace を持つすべての最上位テンプレートは、 Cloud Pak for Dataにインポートされるときに同じワークフロー・タイプに追加されます。
    • 新規ワークフロー・タイプを作成するには、固有のターゲット名前空間を指定します。

    詳しくは、 targetNamespaceを参照してください。

  • カスタム要求ワークフローの場合のみ、ワークフロー・タイプに関連付けられたすべての最上位テンプレートは、同一の開始フォーム・プロパティーを持つ必要があります。
  • 各プロセス定義に固有の ID を指定する必要があります。 Flowableでは、この ID は プロセス定義キーと呼ばれます。 この ID は、すべてのテンプレートで固有でなければなりません。
    ID は、以下の例に示すように、 <process> XML タグの id 属性で指定されます。
    <process id="Unique_ID" name="Process name" isExecutable="true">

上記の要件が満たされていない場合は、プロセス定義 BPMN ファイルを Cloud Pak for Dataにインポートできません。

プロセス定義での必要な規則

プロセス定義を作成する際には、以下の規則を使用します。

targetNamespace
関連付けられているワークフロー・タイプに基づいて、targetNamespace を使用してプロセス定義をカテゴリー化します。 targetNamespace を使用して、ワークフロー・テンプレートを使用してグループ化したり、特定のコンテキストでユーザーが使用できるテンプレートのリストを調整したりすることができます。
重要: ワークフロー・タイプ内のすべてのテンプレートの targetNamespaceは同じでなければなりません。 targetNamespace エントリーにバリエーションがある複数のプロセス定義 BPMN ファイルをアップロードしようとした場合、それらのファイルを Cloud Pak for Dataにアップロードすることはできません。
targetNamespace は、以下のいずれかの方法で指定できます。
  • Flowable Modeler で、プロセスのプロパティーの 「名前空間」 フィールドに targetNamespace を指定します。
  • BPMN ファイルのルート definitions エレメント内。 例えば、以下のコード・サンプルを参照してください。
    <definitions
      xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
      ...
      targetNamespace="targetNamespace="https://dataplatform.cloud.ibm.com/workflows/requests/Workflow_type">
         <process id="myProcess" name="My Sample Process">
         ...
         </process>
    
    </definitions>
    
targetNamespaceの適切な形式を選択します。
  • ガバナンス成果物ワークフローの場合は、以下の形式を指定します。
    targetNamespace="https://dataplatform.cloud.ibm.com/workflows/artifacts/artifacts_cud"
  • カスタム要求ワークフローの場合は、以下の形式を指定します。
    targetNamespace="https://dataplatform.cloud.ibm.com/workflows/requests/Workflow_type"

    Workflow_type は、ご使用のワークフロー・タイプに適切な ID に置き換えてください。

  • ヘルパー・テンプレートの場合は、以下の形式を指定します。
    targetNamespace="https://dataplatform.cloud.ibm.com/workflows/helper"
ヒント: targetNamespace の強調表示された部分は、プロセス定義ファイルを Cloud Pak for Dataにインポートするときに テンプレート・カテゴリー として使用されます。
https://dataplatform.cloud.ibm.com/workflows/requests/workflow_types
ユーザー・タスク
各ユーザー・タスクに以下のエレメントを含めます。
ユーザー・タスク名
Flowable Modeler でタスクを識別するために使用される表示名。
ヒント: ユーザー・タスク名は、ワークフロー管理者が Cloud Pak for Dataでワークフロー構成を作成するときに、ワークフロー・タスクをソートするためにも使用されます。 Cloud Pak for Dataでのタスクの表示順序を決定するには、接頭部を使用します。 詳しくは、 カスタム・ワークフローの構成を参照してください。
サンプル・コード
以下のコードの強調表示部分は、ユーザー・タスク名の定義方法を示しています。
<userTask id="myTask" name="User task name" >
  ...
</userTask>
役職
タスクの短い表示名。

すべてのユーザー・タスクには、タスク受信トレイにユーザーに表示される動的タイトルと動的指示があります。 ユーザー・タスクには、ワークフローの構成時にワークフロー管理者に表示される静的タイトルと静的指示もあります。

ユーザー・タスクの <documentation> 部分に静的および動的なタイトルと手順を指定し、それらを $$$で区切ります。 ドル記号の後には必ずスペースを入れてください。

静的タイトル
静的タイトルは、ワークフロー管理者がワークフロー構成を作成するときに表示されます。
サンプル・コード
ユーザー・タスクの documentation エレメントに静的タイトルを指定します。 以下のコードの強調表示部分は、静的タイトルの定義方法を示しています。
<userTask id="myTask" name="User task name" >
  <documentation>
      dynamic title $$$ dynamic instruction $$$ static instruction $$$ static title
  </documentation>
</userTask>
動的タイトル
動的タイトルは、ユーザーがアクティブ・ワークフローでタスクを実行しているときに表示されます。
サンプル・コード
ユーザー・タスクの documentation エレメントに動的タイトルを指定します。 以下のコードの強調表示部分は、動的タイトルの定義方法を示しています。
<userTask id="myTask" name="User task name" >
  <documentation>
      dynamic title $$$ dynamic instruction $$$ static instruction $$$ static title
  </documentation>
</userTask>

動的タイトルには、${variableName} という形式のプロセス・インスタンス変数を含めることができます。

指示
タスクの詳細説明。 この手順では、ユーザーが何を行う必要があるかを説明し、タスクのコンテキストを指定する必要があります。

静的指示と動的指示を指定します。

静的指示
静的指示は、ワークフロー管理者がワークフロー構成を作成するときに表示されます。
サンプル・コード
ユーザー・タスクの documentation エレメントに静的指示を指定します。 以下のコードの強調表示部分は、静的命令の定義方法を示しています。
<userTask id="myTask" name="User task name" >
  <documentation>
      dynamic title $$$ dynamic instruction $$$ static instruction $$$ static title
  </documentation>
</userTask>
動的指示
動的指示は、ユーザーがアクティブ・ワークフローでタスクを実行しているときに表示されます。
サンプル・コード
ユーザー・タスクの documentation エレメントに動的指示を指定します。 以下のコードの強調表示部分は、動的命令の定義方法を示しています。
<userTask id="myTask" name="User task name" >
  <documentation>
      dynamic title $$$ dynamic instruction $$$ static instruction $$$ static title
  </documentation>
</userTask>

動的指示には、${variableName} という形式のプロセス・インスタンス変数を含めることができます。

ユーザー・タスク・フィールド
ユーザー・タスク・フィールドは、ユーザーがタスクの完了時に入力または選択できる情報を決定します。 ユーザー・タスクには、以下の要素を含めることができます。
ショート・テキスト・フィールド
ユーザーが英数字テキストの短ストリングを入力できるようにします。

formPropertytype="string" を指定します。 例えば、以下のコード・サンプルを参照してください。

<flowable:formProperty 
   id="request_name" 
   name="Request name" 
   type="string"
   readable="true" 
   required="true">
</flowable:formProperty>
ロング・テキスト・フィールド
ユーザーが英数字テキストの長いブロックを入力できるようにします。
formPropertyに以下の値を指定します。
  • type="string"
  • expression は、ご使用の環境に適した形式にします。
    • Flowable Modeler。 例えば、expression="${cpd:conf('{"cpd_type":"long_text"}')}" です。
    • BPMN ファイル。 例えば、expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;long_text&quot;}')}" などです。
例えば、以下のコード・サンプルを参照してください。
<flowable:formProperty 
   id="request_summary" 
   name="Summary" 
   type="string" 
   expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;long_text&quot;}')}" 
   readable="true" 
   required="true">
</flowable:formProperty>
日付フィールド
ユーザーが事前に決定された形式の日付を指定できるようにします。

formPropertyに以下の値を指定します。

  • type="date"

    Cloud Pak for Data は ISO 8601 日付形式をサポートします。

例えば、以下のコード・サンプルを参照してください。
<flowable:formProperty 
   id="fulfill_date" 
   name="Fulfill by" 
   type="date"
   readable="true">
</flowable:formProperty>
ユーザーが URL を指定できるようにします。

formPropertyに以下の値を指定します。

  • type="string"
  • expression は、ご使用の環境に適した形式にします。
    • Flowable モデラー: expression="${cpd:conf('{"cpd_type":"url"}')}"
    • BPMN ファイル: expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;url&quot;}')}"
例えば、以下のコード・サンプルを参照してください。
<flowable:formProperty 
   id="request_url" 
   name="Link to website (optional)" 
   type="string" 
   expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;url&quot;}')}" 
   readable="true">
</flowable:formProperty>
チェックボックス・グループ
ユーザーが事前定義の値リストから複数の値を選択できるようにします。

formPropertyに以下の値を指定します。

  • type="enum"
  • expression は、ご使用の環境に適した形式にします。
    • Flowable モデラー: expression="${cpd:conf('{"cpd_type":"multi_select"}')}"
    • BPMN ファイル: expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;multi_select&quot;}')}"

また、各オプションは、enum セットの値として表されます。

例えば、以下のコード・サンプルを参照してください。
<flowable:formProperty 
  id="options_list" 
  type="enum" 
  expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;multi_select&quot;}')}" 
  readable="true" 
  required="true">
     <flowable:value id="option1" name="Option 1" />
     <flowable:value id="option2" name="Option 2" />
     <flowable:value id="option3" name="Option 3" />
</flowable:formProperty>
ラジオ・ボタン
ユーザーが事前定義の値リストからオプションを 1 つだけ選択できるようにします。 オプションは、ラジオ・ボタンとして表示されます。

formPropertyに以下の値を指定します。

  • type="enum"
  • expression は、ご使用の環境に適した形式にします。
    • Flowable モデラー: expression="${cpd:conf('{"cpd_type":"radio"}')}"
    • BPMN ファイル: expression=“${cpd:conf(‘{&quot;cpd_type&quot;:&quot;radio&quot;}’)}”

また、各オプションは、enum セットの値として表されます。

例えば、以下のコード・サンプルを参照してください。
<flowable:formProperty 
  id="options_list_2" 
  type="enum"
  expression=“${cpd:conf(‘{&quot;cpd_type&quot;:&quot;radio&quot;}’)}”  
  readable="true" 
  required="true">
     <flowable:value id="option1" name="Option 1" />
     <flowable:value id="option2" name="Option 2" />
     <flowable:value id="option3" name="Option 3" />
</flowable:formProperty>
ドロップダウン・リスト
ユーザーが事前定義の値リストからオプションを 1 つだけ選択できるようにします。 オプションは、ドロップダウン・リストとして表示されます。

formPropertyに以下の値を指定します。

  • type="enum"
  • expression は、ご使用の環境に適した形式にします。
    • Flowable モデラー: expression="${cpd:conf('{"cpd_type":"dropdown"}')}"
    • BPMN ファイル: expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;dropdown&quot;}')}"

また、各オプションは、enum セットの値として表されます。

例えば、以下のコード・サンプルを参照してください。
<flowable:formProperty 
   id="request_priority" 
   name="Priority" 
   type="enum" 
   expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;dropdown&quot;}')}"
   readable="true">
      <flowable:value id="low" name="Low"></flowable:value>
      <flowable:value id="medium" name="Medium"></flowable:value>
      <flowable:value id="high" name="High"></flowable:value>
</flowable:formProperty>
ユーザー・ピッカー
ユーザーが 1 人以上のユーザーを選択して、ワークフロー・ロジックに渡すことができるようにします。

formPropertyに以下の値を指定します。

  • type="string"
  • expression は、ご使用の環境に適した形式にします。
    • Flowable モデラー: expression="${cpd:conf('{"cpd_type":"cpd_user"}')}"
    • BPMN ファイル: expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;cpd_user&quot;}')}"
例えば、以下のコード・サンプルを参照してください。
<flowable:formProperty 
	id="user" 
	name="Some user" 
	type="string" 
	expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;cpd_user&quot;}')}" 
	readable="true"
	required="true">
</flowable:formProperty>
Long 値
int よりも広い範囲が必要な場合に、ユーザーが長い数値を入力できるようにします。

formPropertyに以下の値を指定します。

  • type="long"

例えば、以下のコード・サンプルを参照してください。

<flowable:formProperty 
id="long_value" 
name="Any long value" 
type="long"
writable="true" 
required="false">
</flowable:formProperty>
周期
ユーザーが期間を選択できるようにします。

formPropertyに以下の値を指定します。

  • type="string"
  • expression は、ご使用の環境に適した形式にします。
    • Flowable モデラー: expression="${cpd:conf('{"cpd_type":"period"}')}"
    • BPMN ファイル: expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;period&quot;}')}"
<flowable:formProperty 
id="my_period" 
name="Any period" 
type="string" 
expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;period&quot;}')}">
</flowable:formProperty>
タスク入力フィールドの義務化

Flowable ではrequired="true"でタスクレベルでフォームプロパティの必須性を定義できますが、アクションに依存した条件付きの必須性を設定することもできます。

以下の強制性プロパティが利用可能である:
  • optional_for_actions - 入力フィールドは任意です。
  • ignore_for_actions - この入力フィールドはバルクアクションでは表示されず、タスク受信箱の単一タスクの optional_for_actions と同じように振る舞います。
  • required_for_actions - 入力フィールドは必須です。
  • hide_in_ui - タスクの受信箱の依頼者タブで依頼を表示するときなど、入力フィールドが読み取り専用になっているときは非表示になります。

値はアクションIDのカンマ区切りリスト。

例:
${cpd:conf('{"cpd_type":"cpd_user","optional_for_actions":"abc,def","ignore_for_actions":"jkl","required_for_actions":"ghi,yzx"}')}

各アクションIDは、これらのプロパティの中で一度だけ出現しなければならないことに注意してください。

フォームプロパティのrequiredプロパティは、mandatorinessプロパティにリストされていないアクションにのみ適用されます。

カテゴリー-タスク・タイプ
各ユーザー・タスクには、タスク・タイプとも呼ばれる カテゴリー が必要です。 タスク受信トレイおよびタスク状況ページで、タスクをタスク・タイプでフィルタリングできます。 カテゴリーには任意の値を使用できますが、 Cloud Pak for Dataでは、以下のカテゴリーによって特殊な動作がトリガーされます。
authoring
ガバナンス成果物ワークフローのみ。このカテゴリーはドラフト作成ステップを記述します。 ドラフトが作成されましたが、まだ承認のために送信されていません (またはワークフローで定義されている他の最初のユーザー・タスク)。

オーサリング・タスクは構成ページに表示されないため、このステップの通知を構成することはできません。 デフォルトでは、割り当て対象者はカテゴリー・ロール「所有者」、「管理者」、および「編集者」に設定されます。

期限を設定できないため、タスクを期限切れにすることはできません。

通常、作成者が成果物の詳細ページを表示した場合、「承認のために送信 (Send for approval)」ボタンが表示されます。

approval
通常のユーザー・タスクを示します。
voting
承認ユーザー・タスクに承認オプションのドロップダウン・メニューを含めることを指示します。

ワークフロー・テンプレートで特殊な承認を処理できる必要があります。 例については、Multiple_approval_steps_and_one_review_step.bpmn20.xml ガバナンス成果物ワークフロー・テンプレートを参照してください。

レビュー
オプションのユーザー・タスクを示します。 ワークフロー管理者は、ワークフロー構成を作成するときに、割り当て対象者を空のままにすることができます。
publish
ガバナンス成果物ワークフローの場合のみ、このカテゴリーは、ワークフロー管理者がワークフロー構成を作成するときに、そのステップに対して 「成果物を自動的に公開する」 チェック・ボックスが表示される必要があることを示します。
チェック・ボックスを表示するには、ID が publishing_step_modeの追加のワークフロー・レベル構成プロパティーもテンプレートに含まれている必要があります。
<flowable:formProperty id="publishing_step_mode" type="enum" readable="true">
          <flowable:value id="auto_action" name="Automatically publish artifacts. Skip publishing approval."></flowable:value>
          <flowable:value id="explicit_action" name=""></flowable:value>
        </flowable:formProperty>
例えば、以下のコード・サンプルを参照してください。
<userTask 
   id="review" 
   name="Review" 
   flowable:dueDate="${review_due_date}" 
   flowable:category="review" 
   flowable:formFieldValidation="true">
5.1.1 以降のバージョンでは、 category パラメーターの代わりに task_config_behavior フォーム・プロパティーを使用して、タスクの動作を定義できます。 ただし、 category は引き続き割り当てられる必要があり、 task_config_behavior が指定されていない場合は、以前のリリースとの後方互換性を確保するために、タスクの動作を定義することもあります。
task_config_behavior
task_config_behavior フォーム・プロパティーを使用すると、割り当てられたタスク・カテゴリーに関係なくタスクの処理方法を定義する一連の値を指定できます。
formPropertyに以下の値を指定します。
  • id="task_config_behavior"
  • type="string"
  • expression は、ご使用の環境に適した形式にします。
    • Flowable モデラー: expression="${cpd:conf('{"kind":"config"}')}"
    • BPMN ファイル: expression="${cpd:conf('{&quot;kind&quot;:&quot;config&quot;}')}"
  • default="<value1>,<value2>" ここで、以下の値を使用できます。
    hide_step
    構成ページにタスクが表示されないようにするために使用します。
    hide_assignee_selection
    ワークフロー構成ページに割り当て対象者選択コントロールを表示しません。 これは、担当者がコードによって提供される場合に使用されます。
    assignees_optional
    ワークフロー構成 UI では、担当者の設定は強制されず、 担当者 フィールドは空のままでもかまいません。
    is_voting_step
    構成 UI に投票関連のコントロールを表示する場合に使用します。 これは、承認ユーザー・タスクに承認オプションのドロップダウン・メニューがあることを示します。 ワークフロー・テンプレートで特殊な承認を処理できる必要があります。 例については、Multiple_approval_steps_and_one_review_step.bpmn20.xml ガバナンス成果物ワークフロー・テンプレートを参照してください。
    最初の 3 つの値のうち 1 つだけを指定できます。 これらを組み合わせて使用することはできません。 その後、 is_voting_stepを最初の 3 つの値のいずれかと結合することができます。 値が指定されない場合、特別な動作は起動されません。
    注: task_config_behavior プロパティーが特殊なタスク・タイプ (オーサリング、投票、レビュー) のいずれかで使用されている場合、 task_config_behavior プロパティーの設定はタスクのデフォルトの動作を上書きします。 これらの 3 つのタイプのいずれかを使用する予定であるが、特別な動作はしない場合は、空のデフォルト値を持つ task_config_behavior を追加します。
    default=""
サンプル・コード:
<flowable:formProperty 
id="task_config_behavior" 
type="string" 
expression="${cpd:conf('{&quot;kind&quot;:&quot;config&quot;}')}" 
default="assignees_optional" 
writable="false">
</flowable:formProperty>
アクション・ボタン
ユーザーが実行できるアクションを表すフォーム・プロパティー。 フォーム・プロパティーには、以下のエレメントを含める必要があります。
  • id="action"
  • type="enum"

各アクション・ボタンは、enum セットの値として表されます。

サンプル・コード
<flowable:formProperty 
   id="action" 
   type="enum" 
   readable="true" 
   required="true">
     <flowable:value id="option1" name="Action Button 1" />
     <flowable:value id="option2" name="Action Button 2" />
     <flowable:value id="option3" name="Action Button 3" />
</flowable:formProperty>

name エレメントで指定された値は、ユーザー・インターフェースにおけるボタンの表示名です。

サポートされる接頭辞
オプションとして、以下のいずれかの接頭辞を id で使用して、特殊な動作をトリガーできます。
接頭部 説明
# 当該アクションがワークフロー内の最終ステップであることを指示します。

ガバナンス成果物ワークフローのインターフェースで、ドラフトではなく公開済み成果物が、ユーザーに表示されます。

? ユーザーがこのアクションを選択したときに、インターフェースが確認ダイアログを表示する必要があることを示します。 この確認ダイアログには、このアクションの危険性を示す赤いボタンが表示されます。 コメント・フィールドは提供されません。

例えば、ユーザーが要求を破棄しようとした場合に確認ダイアログを表示できます。

- ユーザーがコメントを入力するまでアクションを無効にする必要があることを示します。 コメントはテンプレートで処理する必要があります。 それ以外の場合、コメントは不要です。
例えば、以下のコード・サンプルを参照してください。
<flowable:formProperty id="action" type="enum" readable="true" required="true">
  <flowable:value id="#approve" name="Approve" />
  <flowable:value id="-reject" name="Reject" />
  <flowable:value id="?" name="Cancel" />
</flowable:formProperty>
タスク所要時間
タスクが期限切れとマークされるまでの期間をユーザーが指定できるようにします。 タスクの構成時に設定された値は、引き続き上書きできます。例えば、前のタスクの完了時にこのタスクの期限が設定された場合や、 「タスク受信トレイ」から新しい要求を発行する際にユーザーが特定の期限を設定した場合などです。
formPropertyに以下の値を指定します。
  • id="due_date_period"
  • type="string"
  • expression は、ご使用の環境に適した形式にします。
    • Flowable モデラー: expression="${cpd:conf('{"cpd_type":"period","kind":"config"}')}"
    • BPMN ファイル: expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;period&quot;,&quot;kind&quot;:&quot;config&quot;}')}"
例えば、以下のコード・サンプルを参照してください。
<flowable:formProperty 
id="due_date_period" 
name="Due date period" 
type="string" 
expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;period&quot;,&quot;kind&quot;:&quot;config&quot;}')}" 
readable="true" 
required="true">
</flowable:formProperty>
追加のワークフローおよびタスクの構成プロパティー
ワークフロー全体のいくつかの追加構成プロパティーと、ワークフローで定義する個々のタスクを含むセクションを追加できます。 これらの追加プロパティーは、 Flowableで定義されると、ワークフロー構成パネルの新規セクションにリストされます。
  • ワークフロー全体の場合- 「プロパティー」 セクション
  • 個々のタスクの場合-各ワークフロー・ステップの 「タスク構成プロパティー」 セクション
ユーザー・タスク・フィールドの場合と同じエレメントを使用できます。
テンプレートにプロパティーを追加するには、以下のセクションに flowable:formProperty セクションを追加します。
  • ワークフロー・レベルの構成プロパティー: startEventについては、以下の例を参照してください。
        <startEvent>
          <extensionElements>
            <flowable:formProperty></flowable:formProperty>
          </extensionElements>
        </startEvent>
  • タスク・レベルの構成プロパティーの場合: 各タスクの userTask セクションについては、以下の例を参照してください。
        <userTask>
          <extensionElements>
            <flowable:formProperty></flowable:formProperty>
          </extensionElements>
        </userTask>
expressionで、 type または cpd_type を必要なフィールドのタイプに設定し、 "kind":"config"を追加します。
  • Flowable モデラー: expression="${cpd:conf('{"cpd_type":"date","kind":"config"}')}"
  • BPMN ファイル: expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;date&quot;,&quot;kind&quot;:&quot;config&quot;}')}"
プロパティーを必須にする場合は、以下の例のように required="true" を追加します。
 <flowable:formProperty id="workflow_level_config_prop3" name="Required String" type="string" expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;short_text&quot;,&quot;kind&quot;:&quot;config&quot;}')}" readable="true" required="true"></flowable:formProperty>

ワークフロー・プロパティーとして使用されるドロップダウン・リストのサンプル・コード。

    <startEvent id="startevent1" name="Start" flowable:formFieldValidation="true">
      <extensionElements>
        <flowable:formProperty id="publishing_step_mode" type="enum" readable="true">
          <flowable:value id="auto_action" name="Automatically publish artifacts. Skip publishing approval."></flowable:value>
          <flowable:value id="explicit_action" name=""></flowable:value>
        </flowable:formProperty>
        <flowable:formProperty id="workflow_level_config_prop6" name="Any priority" type="enum" default="med" readable="true" expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;dropdown&quot;,&quot;kind&quot;:&quot;config&quot;}')}">
          <flowable:value id="low" name="Low"></flowable:value>
          <flowable:value id="med" name="Medium"></flowable:value>
          <flowable:value id="high" name="High"></flowable:value>
        </flowable:formProperty>
      </extensionElements>
    </startEvent>

タスク構成プロパティーとして使用されるチェック・ボックス・グループのサンプル・コード。

        <flowable:formProperty id="config_prop7" name="Multi select property name" type="enum" default="c" readable="true" expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;multi_select&quot;,&quot;kind&quot;:&quot;config&quot;}')}">
          <flowable:value id="a" name="Option A"></flowable:value>
          <flowable:value id="b" name="Option B"></flowable:value>
          <flowable:value id="c" name="Option C"></flowable:value>
        </flowable:formProperty>

開始フォーム・プロパティーへのトリガーの追加

ワークフロー管理者は、ワークフロー構成を作成するときに、ワークフローをトリガーする条件を指定できます。 詳しくは、『 カスタム・ワークフローの構成 』を参照してください。

ワークフロー管理者は、トリガーの値に基づいてさまざまな構成を作成できます。 ワークフロー・タイプごとにトリガーを定義できます。 以下のトリガーの組み合わせを使用できます。
  • トリガーなし
  • 1 つのカテゴリー・トリガー
  • 1 つのenumトリガー
  • 2 つのenumトリガー
  • 1 つのカテゴリー・トリガーと 1 つのenumトリガー
  • 1 つのカテゴリー・トリガーと 2 つのenumトリガー
IBM® Knowledge Catalogカテゴリー
ガバナンス成果物ワークフローのみ: ユーザーが開始フォームでガバナンス・カテゴリーを選択または指定すると、別のワークフローをトリガーできます。

formProperty で以下の値を指定します。

  • ご使用の環境に適したフォーマットの expression:
    • Flowable モデラー: expression="${cpd:conf('{"cpd_type":"wkc_category","kind":"trigger"}')}"
    • BPMN ファイル: expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;wkc_category&quot;,&quot;kind&quot;:&quot;trigger&quot;}')}"
例えば、以下のサンプル・コードを参照してください。
<flowable:formProperty 
   id="category" 
   name="Category" 
   type="string" 
   expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;wkc_category&quot;,&quot;kind&quot;:&quot;trigger&quot;}')}" 
   readable="true" 
   required="true">
</flowable:formProperty>
開始フォームのドロップダウン・リスト
ユーザーがドロップダウン・リストからオプションを選択したときに各種ワークフローをトリガーできます。

formProperty で以下の値を指定します。

  • ご使用の環境に適したフォーマットの expression:
    • Flowable モデラー: expression="${cpd:conf('{"cpd_type":"dropdown","kind":"trigger"}')}"
    • BPMN ファイル: expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;dropdown&quot;,&quot;kind&quot;:&quot;trigger&quot;}')}"
例えば、以下のコード・サンプルを参照してください。
<flowable:formProperty 
   id="request_priority" 
   name="Priority" 
   type="enum" 
   expression="${cpd:conf('{&quot;cpd_type&quot;:&quot;dropdown&quot;,&quot;kind&quot;:&quot;trigger&quot;}')}" 
   readable="true">
      <flowable:value id="low" name="Low"></flowable:value>
      <flowable:value id="medium" name="Medium"></flowable:value>
      <flowable:value id="high" name="High"></flowable:value>
</flowable:formProperty>
開始フォームのラジオ・ボタン
ユーザーがラジオ・ボタンのリストからオプションを選択したときに各種ワークフローをトリガーできます。

formProperty で以下の値を指定します。

  • ご使用の環境に適したフォーマットの expression:
    • Flowable モデラー: expression="${cpd:conf('{"kind":"trigger"}')}"
    • BPMN ファイル: expression="${cpd:conf('{&quot;kind&quot;:&quot;trigger&quot;}')}"
例えば、以下のコード・サンプルを参照してください。
<flowable:formProperty 
  id="options_list_2" 
  type="enum"
  expression="${cpd:conf('{&quot;kind&quot;:&quot;trigger&quot;}')}"  
  readable="true" 
  required="true">
     <flowable:value id="option1" name="Option 1" />
     <flowable:value id="option2" name="Option 2" />
     <flowable:value id="option3" name="Option 3" />
</flowable:formProperty>

サンプル・ワークフロー

もう少し詳細な説明が必要な場合は、 GitHub 上のサンプル CP4Dworkflows を参照してください。