6.2. 動的処理対象者設定 外部連携(JAVA)サンプル¶
Contents
6.2.1. 動的処理対象者設定 外部連携(JAVA)サンプルについて¶
動的処理対象者設定では、動的に処理対象者を設定するノード(動的承認、縦配置、横配置)に対し、処理対象者設定条件を設定することができます。動的処理対象者設定で外部連携設定を利用した場合は、処理対象者を自動で設定したり、手動で選択できる処理対象者の範囲を限定したりすることができます。このサンプルでは、外部連携設定で選択可能なデータソース種別のうち、JAVAでの設定方法を使用します。「承認者の初期設定サンプル」は、処理対象者を自動で設定する方法を使用します。「承認者の絞込条件設定サンプル」は、手動で選択できる処理対象者の範囲を限定する方法を使用します。コラム
処理対象者、動的ノードについては、「 IM-Workflow 仕様書 」を参照してください。コラム
動的ノード(動的承認、縦配置、横配置)の処理対象者条件の設定については、「 IM-BIS 業務管理者操作ガイド 」 - 「 動的ノード(動的承認、縦配置、横配置)の処理対象者条件を設定する 」を参照してください。コラム
動的処理対象者設定については、「 IM-BIS 業務管理者操作ガイド 」 - 「 動的処理対象者設定 」または、「 IM-BIS 仕様書 」 - 「 動的処理対象者設定に関する仕様 」を参照してください。コラム
6.2.2. 動的処理対象者設定 外部連携(JAVA)サンプルのダウンロード¶
サンプルは、以下のリンクより入手できます。
サンプルプログラム bis_sample_dynamic-1.0.0.imm
データソース定義
絞込条件設定サンプル datasource_DynamicCondition.zipIM-Workflow 定義
絞込条件設定サンプル IM-Workflow_DynamicCondition.zipIM-Forma定義
初期設定サンプル IM-Forma_DynamicInitialProposal.zip絞込条件設定サンプル IM-Forma_DynamicCondition.zipIM-BIS定義
初期設定サンプル IM-BIS_DynamicInitialProposal.zip絞込条件設定サンプル IM-BIS_DynamicCondition.zip
6.2.3. 動的処理対象者設定 外部連携(JAVA)サンプルのインポート¶
ダウンロードしたファイルは、下記手順にてインポートすることができます。
IM-Jugglingを起動し、Jugglingプロジェクト内にあるjuggling.imを IM-Juggling Editorで開きます。
「ユーザモジュール」タブを選択し、右上にある「+」のアイコンをクリックします。
ダウンロードした「 bis_sample_dynamic-1.0.0.imm 」ファイルを選択します。
Jugglingプロジェクトからwarファイルを作成します。サンプルを含めるにチェックを入れます。
コラム
warファイルの作成については、「 intra-mart Accel Platform セットアップガイド 」 - 「 WARファイルの作成 」を参照してください。作成したWARファイルを、 Web Application Server ( Resin ) 上にデプロイ(展開)します。
注意
「BIS管理者」ロールを付与したユーザで、インポートを実施してください。注意
IM-Workflow 定義については、zipファイルを解凍してから、インポートしてください。ダウンロードしたファイルをインポートします。 インポート方法は、「 IM-BIS 業務管理者操作ガイド 」 - 「 インポート・エクスポートを行う 」を参照してください。
これで、必要な設定作業はすべて完了しましたので、実際にフローで申請・承認を行ってみましょう。コラム
このサンプルでは、「BIS担当者」ロールを付与したユーザで、申請を行います。コラム
申請については、「 IM-BIS ユーザ 操作ガイド 」 - 「 BPMの処理を開始する/ワークフローの申請を行う 」を参照してください。
6.2.4. 動的処理対象者設定 外部連携(JAVA)サンプルのコード¶
このサンプルの外部連携(JAVA)は、以下のように実装しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 package jp.co.intra_mart.system.bis.soa.func; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; public class DynamicPersonJavaSample { public DynamicPersonJavaSample() { } //初期設定 public Map<String,Map<String,List<Map<String,String>>>> getDynamicPerson(Map<String,Object> param) { System.out.println("\n\n---start DynamicPersonJavaSample#getDynamicPerson----"); for (Entry<String, Object> entry : param.entrySet() ) { System.out.println("key[" + entry.getKey()+"] value["+entry.getValue() +"]"); } System.out.println("\n\n---start DynamicPersonJavaSample#getDynamicPerson----"); List<Map<String,String>> dynamicSettingList = new ArrayList<Map<String,String>>(); // ユーザ Map<String,String> detail = new HashMap<String,String>(); detail.put("code", "1"); detail.put("processSetNo", "1"); detail.put("userCd", "aoyagi"); dynamicSettingList.add(detail); // 組織 detail = new HashMap<String,String>(); detail.put("code", "2"); detail.put("processSetNo", "1"); detail.put("companyCd", "comp_sample_01"); detail.put("departmentSetCd", "comp_sample_01"); detail.put("departmentCd", "dept_sample_11"); detail.put("compare", "eq"); dynamicSettingList.add(detail); // パブリックグループ detail = new HashMap<String,String>(); detail.put("code", "3"); detail.put("processSetNo", "1"); detail.put("publicGroupSetCd", "sample_public"); detail.put("publicGroupCd", "public_team_a"); detail.put("compare", "eq"); dynamicSettingList.add(detail); // 役職 detail = new HashMap<String,String>(); detail.put("code", "4"); detail.put("processSetNo", "1"); detail.put("companyCd", "comp_sample_01"); detail.put("departmentSetCd", "comp_sample_01"); detail.put("postCd", "ps002"); detail.put("compare", "eq"); dynamicSettingList.add(detail); Map<String,List<Map<String,String>>> returnObject = new HashMap<String,List<Map<String,String>>>(); returnObject.put("settings", dynamicSettingList); Map<String,Map<String,List<Map<String,String>>>> returnMap = new HashMap<String,Map<String,List<Map<String,String>>>>(); returnMap.put("ResponseObject", returnObject); System.out.println("---End DynamicPersonJavaSample#getDynamicPerson----\n\n\n"); return returnMap; } //絞込条件設定 public Map<String,Map<String,List<Map<String,String>>>> getDynamicPersonDepartment(Map<String,Object> param) { System.out.println("\n\n---start DynamicPersonJavaSample#getDynamicPersonDepartment----"); for (Entry<String, Object> entry : param.entrySet() ) { System.out.println("key[" + entry.getKey()+"] value["+entry.getValue() +"]"); } System.out.println("\n\n---start DynamicPersonJavaSample#getDynamicPersonDepartment----"); List<Map<String,String>> dynamicSettingList = new ArrayList<Map<String,String>>(); Map<String,String> detail = new HashMap<String,String>(); // 組織+役職(上位階層検索) detail.put("code", "6"); detail.put("processSetNo", "1"); detail.put("companyCd", "comp_sample_01"); detail.put("departmentSetCd", "comp_sample_01"); detail.put("departmentCd", "dept_sample_11"); detail.put("compare", "ge"); detail.put("postCd", "ps003"); dynamicSettingList.add(detail); Map<String,List<Map<String,String>>> returnObject = new HashMap<String,List<Map<String,String>>>(); returnObject.put("settings", dynamicSettingList); Map<String,Map<String,List<Map<String,String>>>> returnMap = new HashMap<String,Map<String,List<Map<String,String>>>>(); returnMap.put("ResponseObject", returnObject); System.out.println("---End DynamicPersonJavaSample#getDynamicPersonDepartment----\n\n\n"); return returnMap; } }