4.8. 画面連携¶
画面連携の仕様について説明します。
4.8.1. 画面連携について¶
- IM-FormaDesignerにより作成された画面
- IM-BloomMakerにより作成された画面
- TERASOLUNA Frameworkにより作成された画面
- スクリプト開発モデルにより作成された画面
- フレームワークを利用せず、HTMLのみで構成された画面
- チケットモジュールにより作成された、チケット画面
4.8.2. フォームキー¶
forma:{APPLICATION_ID}
IM-FormaDesignerと連携するための方式です。“forma:”プレフィックスと共に、IM-FormaDesignerにより作成されたアプリケーションIDを設定してください。また、”?”と共に、クエリ文字列の形式で、表示するIM-FormaDesignerのアプリケーションの履歴番号および、連携するプロセスインスタンス変数を指定できます。クエリパラメータとしてimfr_application_noを設定すると指定されたアプリケーション履歴のIM-FormaDesignerのアプリケーション実行画面が表示されます。imfr_application_noを設定しない場合、最新のアプリケーション履歴のIM-FormaDesignerのアプリケーション実行画面が表示されます。変数連携の詳細については フォームの値と変数の連携 を参照してください。以下のような形式です。forma:{APPLICATION_ID}?imfr_application_no={APPLICATION_NO}&inputVariableNames={variableName1}&resultVariableName={variableName2}注意
IM-FormaDesignerのアプリケーションの履歴番号の指定について
IM-FormaDesignerのアプリケーションの履歴番号は、2023 Autumn(Hollyhock)または、8.0.7-PATCH_001以降のバージョンから設定できます。指定できるIM-FormaDesignerのアプリケーションの履歴は、IM-FormaDesignerのアプリケーション実行画面の呼び出し時点で有効である必要があります。コラム
IM-FormaDesignerのアプリケーションの履歴について
IM-FormaDesignerのアプリケーションの履歴については、「IM-FormaDesigner 仕様書」-「アプリケーション履歴の仕様」を参照してください。forward:{PATH}
スクラッチ画面、および、IM-BloomMakerで作成した画面と連携するための方式です。“forward:”プレフィックスと共に、遷移先の画面パスを指定してください。画面パスは必ず “/” から始まる必要があります。例: https://example.org/imart/foo/bar 画面と連携する場合forward:/foo/barredirect:{URL}
外部システムと連携するための方式です。“redirect:”プレフィックスと共に、遷移先のURLを指定してください。例: https://example.org/foo/bar 画面と連携する場合redirect:https://example.org/foo/barticket:{チケットマスタID}
チケットモジュールのチケット画面と連携するための方式です。“ticket:”プレフィックスと共に、チケットマスタ管理により作成されたチケットマスタIDを指定してください。アドホックタスクのみで使用できる方式です。例: “ticket_master_id” というチケットマスタIDを指定する場合ticket:ticket_master_id
4.8.3. 詳細画面のURL¶
- プロセス開始画面
プロセスの開始画面を表示し、プロセスを開始できます。%ベースURL%/bpm/task/form/{プロセス定義ID}?callbackPath={遷移先パス}
- タスク処理画面
「ユーザタスク」の処理画面を表示し、タスクを処理できます。%ベースURL%/bpm/task/task/{タスクID}?callbackPath={遷移先パス}
- プロセス開始詳細画面
プロセスが開始された「開始イベント」の詳細画面を表示します。%ベースURL%/bpm/task/reference/form/{プロセスインスタンスID}
- タスク詳細画面
「ユーザタスク」の詳細画面を表示します。%ベースURL%/bpm/task/reference/task/{タスクID}
コラム
注意
4.8.4. IM-FormaDesigner連携¶
アプリケーション種別が標準であること
テーブル設定が行われていること
権限設定が行われていること
IM-BPM for Accel Platformと連携する場合権限として “登録” と “参照” が必要です。
4.8.4.1. 前処理と後処理¶
- 前処理: jp.co.intra_mart.activiti.extension.forma.BPMPreProcessExecutor
- 後処理: jp.co.intra_mart.activiti.extension.forma.BPMPostProcessExecutor
注意
- プロセス開始の場合、処理対象プロセスに設定された権限(ユーザ、ロール)を保持していない場合例外を通知する
- タスク処理の場合、処理対象ユーザタスクに設定された権限(ユーザ、ロール)を保持していない場合例外を通知する
- タスク実行履歴からの参照の場合、処理対象ユーザタスクに設定された権限(ユーザ、ロール)を保持していない場合例外を通知する
プロセスインスタンスに格納されている変数情報を取得し、フォームの初期値として設定する。
フォームの初期値として利用されるプロセスインスタンス変数は、フォームに含まれるフィールド識別IDと同名の変数が利用されます。
- プロセス開始の場合、処理対象プロセスに設定された権限(ユーザ、ロール)を保持していない場合例外を通知する
- タスク開始の場合、処理対象ユーザタスクに設定された権限(ユーザ、ロール)を保持していない場合例外を通知する
- プロセス開始の場合、{アプリケーションID}${アプリケーションの履歴番号}${FormaID}を業務キーとして設定する。
- プロセス開始の場合、フォームに入力された内容をプロセスインスタンス変数として業務プロセスの開始を行う。
- タスク処理の場合、フォームに入力された内容をプロセスインスタンス変数としてユーザタスクを進める。
コラム
- im_frで始まるデータ
- im_で始まるデータ
- __が前後に付与されているデータ
4.8.4.2. フォームの値と変数の連携¶
- フォームの画面を開いた際、各アイテムの初期値として、フィールド識別IDと同名のプロセスインスタンス変数の値が利用される
- フォームが登録された際、各アイテムに入力された値が、フィールド識別IDと同名のプロセスインスタンス変数に保存される
初期値の連携(inputVariableNames)
フォームの画面を開いた際、各アイテムの初期値として、指定されたMap型変数内のフィールド識別IDと同名のフィールドの値が利用されます。次の形式で指定します。inputVariableNames={入力変数名1},{入力変数名2}, ...入力結果の連携(resultVariableName)
フォームが登録された際、各アイテムに入力された値が、指定されたMap型変数内のフィールド識別IDと同名のフィールドに保存されます。次の形式で指定します。resultVariableName={結果変数名}ただし、フィールド識別IDと同名の変数を、連携元の開始イベントまたはユーザタスクのフォームプロパティに設定している場合は、そちらが優先され、Map型変数内のフィールドではなく通常通り同名の変数に保存されます。
forma:xxxx?inputVariableNames=inputVar&resultVariableName=resultVar
- アイテムの初期値として ${ inputVar.yyyy } の値が利用されます。
- アイテムに入力された値は ${ resultVar.yyyy } にバインドされます。
コラム
コラム
- プロセス一覧画面においてプロセスインスタンスを検索する際、「変数検索」として検索条件に指定したい場合
- タスク一覧画面において「一覧表示設定」で表示対象に指定し、かつ検索条件に指定したい場合
4.8.5. スクラッチ画面連携¶
4.8.5.1. パラメータ¶
プロセス開始時における画面初期表示パラメータ
callbackPath: 戻り先のURLprocessDefinitionId: プロセス定義IDタスク処理時における画面初期表示パラメータ
callbackPath: 戻り先のURLtaskId: タスクIDプロセス開始時の情報を履歴から参照する場合の画面初期表示パラメータ
callbackPath: 戻り先のURLhistoricProcessInstanceId: 実行済プロセスインスタンスIDタスク処理後の情報を履歴から参照する場合の画面初期表示パラメータ
callbackPath: 戻り先のURLhistoricTaskId: タスクID
4.8.5.2. 検証¶
プロセス開始画面の場合
プロセス定義に設定された権限の検証を行う必要があります。プロセス開始時の処理画面の場合、JavaEE開発モデルでは「BPMAuthorityHelper#canStartProcess」メソッドを使用することで、アカウントコンテキストのユーザにプロセス定義を開始する権限があるかを判定できます。(スクリプト開発モデルの場合は「bpm.BPMAuthorityHelper#canStartProcess」メソッドを使用してください。)履歴画面からの参照の場合、JavaEE開発モデルでは「BPMAuthorityHelper#canReferProcessInstance」メソッドを使用することで、アカウントコンテキストのユーザにプロセスインスタンス履歴を参照する権限があるかを判定できます。(スクリプト開発モデルの場合は「bpm.BPMAuthorityHelper#canReferProcessInstance」メソッドを使用してください。)タスク画面の場合
タスクに設定された権限の検証を行う必要があります。タスク処理時のタスク処理画面の場合、JavaEE開発モデルでは「BPMAuthorityHelper#canCompleteTask」メソッドを使用することで、アカウントコンテキストのユーザにアクティブなタスクを完了する権限があるかを判定できます。(スクリプト開発モデルの場合は「bpm.BPMAuthorityHelper#canCompleteTask」メソッドを使用してください。)履歴画面からの参照の場合、JavaEE開発モデルでは「BPMAuthorityHelper#canReferTask」メソッドを使用することで、アカウントコンテキストのユーザにタスク履歴を参照する権限があるかを判定できます。(スクリプト開発モデルの場合は「bpm.BPMAuthorityHelper#canReferTask」メソッドを使用してください。)コラム
「BPMAuthorityHelper」および「bpm.BPMAuthorityHelper」について
4.8.6. IM-BloomMaker画面連携¶
コラム
コラム
4.8.6.1. パラメータ¶
4.8.6.2. 検証¶
コラム
4.8.7. ユーザタスク処理者の取得¶
コラム
ユーザタスクに指定するIDにハイフン等EL式で直接利用できない文字が含まれている場合には ${im_operation_users['foo-bar-baz']}形式で指定することにより値の取得ができます。
注意
システム変数の格納方式の設定