IM-Workflow Ver.7.2 プログラミングガイド 2014/04/01 第 6 版
<< 変 更 履 歴 >> 変 更 年 月 日 変 更 内 容 2010/04/28 初 版 2010/07/30 第 2 版 2.2 リクエストパラメータ に 説 明 を 追 記 しました 3.5 制 限 事 項 を 追 加 しました 4.2 案 件 終 了 処 理 に 説 明 を 追 記 しました 4.3 アクション 処 理 に 説 明 を 追 記 しました 5.1 未 完 了 案 件 削 除 処 理 リスナー の 説 明 を 修 正 しました 5.2 完 了 案 件 削 除 処 理 リスナー の 説 明 を 修 正 しました 5.3 過 去 案 件 削 除 処 理 リスナー の 説 明 を 修 正 しました 5.4 案 件 退 避 処 理 リスナー の 説 明 を 修 正 しました 6.1 テンプレート に 説 明 を 追 加 しました 7.1 呼 び 出 し 画 面 の 初 期 表 示 値 指 定 を 追 加 しました 7.2 処 理 対 象 者 プラグインの 作 成 を 追 加 しました 7.3 IM-Workflowクローラリスナーの 作 成 を 追 加 しました 2010/10/29 第 3 版 1.3 準 備 の 説 明 を 修 正 しました 2.2 リクエストパラメータ の 説 明 を 修 正 しました 3.3 申 請 ( 起 票 案 件 )/ 再 申 請 / 処 理 画 面 の 呼 び 出 し の 説 明 を 修 正 しました 3.5 制 限 事 項 の 説 明 を 修 正 しました 5.3 過 去 案 件 削 除 処 理 リスナー の 説 明 を 修 正 しました 7.4 画 面 入 力 情 報 の 保 持 を 追 加 しました 2010/11/10 第 4 版 2.2 リクエストパラメータ の 説 明 を 修 正 しました 2011/04/01 第 5 版 2.2 リクエストパラメータ の 説 明 を 修 正 しました 3.3 申 請 ( 起 票 案 件 )/ 再 申 請 / 処 理 画 面 の 呼 び 出 し の 説 明 を 修 正 しました 3.4 確 認 画 面 の 呼 び 出 し の 説 明 を 修 正 しました 3.5 制 限 事 項 の 説 明 を 修 正 しました 4.5 分 岐 開 始 処 理 の 説 明 を 修 正 しました 4.6 分 岐 終 了 処 理 の 説 明 を 修 正 しました 6.1 テンプレート 6.2サンプルプログラム 7.2.5.3 < extend >に 指 定 するプログラム 7.3 IM-Workflowクローラリスナーの 作 成 のJavaEE 開 発 モデルのサンプルプログラムのパスを 修 正 し ました 7.1.2 実 装 例 の 説 明 を 修 正 しました 7.5 呼 び 出 し 画 面 からのコールバック 関 数 の 指 定 を 追 加 しました 2014/04/01 第 6 版 2.3 案 件 処 理 系 APIと 画 面 動 作 仕 様 の 違 い を 追 加 しました
目 次 << 目 次 >> 1 はじめに...1 1.1 目 的...1 1.2 前 提 条 件...1 1.3 準 備...1 2 概 要...2 2.1 ユーザアプリケーションデータとIM-Workflowの 関 係...2 2.1.1 システム 案 件 ID...2 2.1.2 ユーザデータID...3 2.1.3 案 件 プロパティ...3 2.2 リクエストパラメータ...4 2.3 案 件 処 理 系 APIと 画 面 動 作 仕 様 の 違 い...7 3 画 面 の 作 成...8 3.1 申 請 画 面 の 呼 び 出 し...8 3.1.1 スクリプト 開 発 モデル...9 3.1.2 JavaEE 開 発 モデル...10 3.2 一 時 保 存 画 面 の 呼 び 出 し...11 3.2.1 スクリプト 開 発 モデル...12 3.2.2 JavaEE 開 発 モデル...13 3.3 申 請 ( 起 票 案 件 )/ 再 申 請 / 処 理 画 面 の 呼 び 出 し...14 3.3.1 スクリプト 開 発 モデル...15 3.3.2 JavaEE 開 発 モデル...16 3.4 確 認 画 面 の 呼 び 出 し...17 3.4.1 スクリプト 開 発 モデル...18 3.4.2 JavaEE 開 発 モデル...19 3.5 制 限 事 項...20 3.5.1 imwプレフィックスのパラメータについて...20 3.5.2 タグライブラリの 非 推 奨 属 性 について...20 4 ユーザプログラムの 作 成...21 4.1 案 件 開 始 処 理...21 4.2 案 件 終 了 処 理...21 4.3 アクション 処 理...22 4.4 到 達 処 理...22 4.5 分 岐 開 始 処 理...23 4.6 分 岐 終 了 処 理...23 5 その 他 プログラムの 作 成...24 5.1 未 完 了 案 件 削 除 処 理 リスナー...24 5.2 完 了 案 件 削 除 処 理 リスナー...25 5.3 過 去 案 件 削 除 処 理 リスナー...26 5.4 案 件 退 避 処 理 リスナー...27 6 Appendix...28 6.1 テンプレート...28 6.2 サンプルプログラム...29 6.2.1 画 面...29 6.2.2 ユーザプログラム...34 6.2.3 リスナー...36 7 カスタマイズ...38 作 成 者 : 株 式 会 社 NTT データ イントラマート Page i
intra-mart プログラミングガイド 7.1 呼 び 出 し 画 面 の 初 期 表 示 値 指 定... 38 7.1.1 指 定 可 能 なパラメータ... 38 7.1.2 実 装 例... 39 7.2 処 理 対 象 者 プラグインの 作 成... 41 7.2.1 対 象 ノード... 41 7.2.2 サンプルの 説 明... 42 7.2.3 サンプルの 実 行 準 備... 43 7.2.4 サンプルの 実 行... 45 7.2.5 処 理 対 象 者 プラグインについて... 47 7.3 IM-Workflowクローラリスナーの 作 成... 52 7.4 画 面 入 力 情 報 の 保 持... 54 7.5 呼 び 出 し 画 面 からのコールバック 関 数 の 指 定... 55 7.5.1 実 装 例... 55 Page ii Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
1 はじめに 1 はじめに 1.1 目 的 本 書 は IM-Workflow で 利 用 することが 可 能 な 画 面 およびモジュールを 作 成 する 方 法 について 説 明 します 本 書 は IM-Workflow の 機 能 を 使 用 する 方 法 を 記 述 しています 本 書 で 使 用 するサンプルプログラムはあくまでも IM-Workflow の 機 能 および API 等 の 使 用 方 法 を 理 解 すること に 主 眼 をおいています そのため 必 ずしもベストなコーディング 方 法 とはいえない 方 法 もあえて 取 っている 個 所 があります あくまでも サンプルとしての 位 置 付 けでとらえるようにしてください 1.2 前 提 条 件 本 書 に 記 述 されているサンプルプログラムは JavaEE 開 発 モデルおよびスクリプト 開 発 モデルで 記 述 され ています そのため JavaEE 開 発 モデルおよびスクリプト 開 発 モデルに 関 する 理 解 は 必 須 です 各 開 発 モデルに 関 しては 付 属 する 各 種 マニュアルおよび API リストを 参 照 してください 本 書 を 理 解 するには 基 本 的 な IM-Workflow に 関 する 理 解 が 必 要 になります 付 属 する 各 種 マニュアル および API リストを 参 照 してください 1.3 準 備 IM-Workflow のサンプルプログラムを 実 行 するための 準 備 をします 製 品 に 付 属 するインストールガイドを 参 考 に IM-Workflow が 動 作 する 環 境 を 構 築 します 製 品 のインストール 後 は システム 管 理 者 でログインし メニュー[ライセンス]より 初 期 データインポートを 行 い サンプルデータインポートも 必 ず 行 ってください 本 書 に 記 述 されている JavaEE 開 発 モデルの[java ファイル]は 配 置 する 場 所 を 示 します 実 際 に 配 置 されているファイルは [class ファイル]です JavaEE 開 発 モデル[java ファイル]のサンプルプログラムについては 製 品 メディアに 保 存 されています また 製 品 最 新 情 報 ダウンロードページ(http://www.intra-mart.jp/download/product/index.html)から 入 手 すること もできます 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 1
intra-mart プログラミングガイド 2 概 要 2.1 ユーザアプリケーションデータとIM-Workflowの 関 係 ユーザアプリケーションデータと IM-Workflow のデータは ユーザデータ ID と システム 案 件 ID をいう 2 つの キーが 1 対 1 の 関 係 となります 2.1.1 システム 案 件 ID システム 案 件 ID とは IM-Workflow において 一 意 となるキーです IM-Workflow のモジュールにおいて 採 番 され 外 部 より 指 定 することはできません システム 案 件 ID は IM-Workflow の API やタグライブラリ 等 で 案 件 を 特 定 するために 使 用 され 画 面 等 に 表 示 さ れることはありません Page 2 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
2 概 要 2.1.2 ユーザデータID ユーザデータ ID とは ユーザアプリケーション 側 で 一 意 となるキーとして ユーザアプリケーションで 採 番 するキ ーです 申 請 または 起 票 を 行 う 場 合 に IM-Workflow の 提 供 する API およびタグライブラリの 引 数 として 渡 されます システム 案 件 ID 同 様 に API やタグライブラリにおいて 案 件 を 特 定 するために 使 用 され 画 面 等 に 表 示 されるこ とはありません 2.1.3 案 件 プロパティ 案 件 プロパティとは いわゆる Key-Value Store です Key(キー) と Value( 値 ) のペアからなるデータモデルを 案 件 単 位 に IM-Workflow で 保 存 します IM-Workflow が 提 供 する API を 通 じて 任 意 のタイミングにおいて 登 録 更 新 削 除 および 取 得 が 可 能 となりま す また IM-Workflow が 提 供 する 各 種 一 覧 画 面 に 表 示 することや 分 岐 条 件 において ルール 定 義 の 値 として 使 用 することができます 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 3
intra-mart プログラミングガイド 2.2 リクエストパラメータ 各 種 一 覧 画 面 から 呼 び 出 される 申 請 および 処 理 等 の 画 面 で 必 要 な 情 報 をリクエストパラメータとして 受 け 取 る 事 ができます No パラメータ( 物 理 名 ) パラメータ( 論 理 名 ) 詳 細 1 imwgroupid ログイングループ ID 2 imwusercode 処 理 者 CD 3 imwpagetype 画 面 種 別 表 示 された 画 面 の 種 別 申 請 画 面 一 時 保 存 画 面 申 請 ( 起 票 案 件 ) 画 面 再 申 請 画 面 処 理 画 面 確 認 画 面 処 理 詳 細 参 照 詳 細 確 認 詳 細 過 去 案 件 詳 細 4 imwuserdataid ユーザデータ ID 5 imwsystemmatterid システム 案 件 ID 6 imwnodeid ノード ID 7 imwarrivetype 到 達 種 別 8 imwauthusercode 権 限 者 CD 権 限 者 が 複 数 存 在 する 場 合 当 パラメータは 配 列 で 渡 されます ただし 権 限 者 が 複 数 存 在 する 場 合 でも 申 請 / 一 時 保 存 画 面 表 示 の 際 は 一 覧 上 で 権 限 者 が 特 定 されているた め 特 定 済 みの 権 限 者 CD のみが 渡 されます 9 imwapplybasedate 申 請 基 準 日 yyyy/mm/dd 形 式 10 imwcontentsid コンテンツ ID 11 imwcontentsversionid コンテンツバージョン ID 12 imwrouteid ルート ID 13 imwrouteversionid ルートバージョン ID 14 imwflowid フローID 15 imwflowversionid フローバージョン ID 16 imwserialprocparams 連 続 処 理 パラメータ 連 続 処 理 用 のパラメータ 17 imwcalloriginalparams 呼 出 元 パラメータ 呼 出 元 ページのパラメータ 18 imwcalloriginalpagepath 呼 出 元 ページパス 呼 出 元 のページパス Page 4 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
2 概 要 imwauthusercode( 権 限 者 CD)について 各 開 発 モデルでの 取 得 例 を 以 下 に 記 述 します スクリプト 開 発 モデル function init(request) { var imwauthusercodelist = request.getparametervalues("imwauthusercode"); // 権 限 者 CD の 配 列 } javaee 開 発 モデル HttpServletRequest request = getrequest(); String[] imwauthusercodelist = request.getparametervalues("imwauthusercode"); // 権 限 者 CD の 配 列 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 5
intra-mart プログラミングガイド No パラメータ 申 請 一 時 保 存 起 票 再 申 請 処 理 確 認 処 理 詳 細 参 照 詳 細 確 認 詳 細 過 去 案 件 詳 細 1 imwgroupid 2 imwusercode 3 imwpagetype 4 imwuserdataid - 5 imwsystemmatterid - - 6 imwnodeid - - - - 7 imwarrivetype - - - - - 8 imwauthusercode - - - - - 9 imwapplybasedate 10 imwflowid 11 imwflowversionid 12 imwcontentsid 13 imwcontentsversionid 14 imwrouteid 15 imwrouteversionid 16 imwserialprocparams - - - - - - 17 imwcalloriginalparams - - - - 18 imwcalloriginalpagepath - - - - < : 取 得 可 能 / - : 取 得 不 可 能 > Page 6 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
2 概 要 2.3 案 件 処 理 系 APIと 画 面 動 作 仕 様 の 違 い 画 面 上 からの 操 作 とは 異 なり 案 件 処 理 系 API(Web サービスを 含 む)を 直 接 利 用 して 案 件 の 処 理 を 行 う 場 合 は 業 務 的 なチェックを 行 わずに 処 理 が 実 行 されます ここでいう 業 務 的 なチェックとは 以 下 のようなチェックを 指 します API 引 数 として 指 定 した 処 理 権 限 者 が 到 達 処 理 で 展 開 された 処 理 対 象 者 に 含 まれるか API 引 数 として 指 定 した 処 理 権 限 者 と 処 理 実 行 者 が 異 なる 場 合 両 者 間 で 有 効 な 代 理 設 定 が 存 在 する か 画 面 上 からの 操 作 と 同 等 の 機 能 を API を 利 用 して 独 自 に 実 装 する 場 合 は 案 件 処 理 API の 実 行 前 に 各 種 API ( 処 理 権 限 判 定 API など)を 併 せて 利 用 してください 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 7
intra-mart プログラミングガイド 3 画 面 の 作 成 3.1 申 請 画 面 の 呼 び 出 し IM-Workflow で 提 供 する 申 請 を 行 うための 画 面 ( 以 下 申 請 画 面 )と 連 携 する 方 法 を 説 明 します 申 請 画 面 を 表 示 するためには IM-Workflow が 提 供 するタグライブラリおよび Client-side JavaScript API を 使 用 します Page 8 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
3 画 面 の 作 成 3.1.1 スクリプト 開 発 モデル 申 請 画 面 と 連 携 する 画 面 のヘッダ 部 (<head> ~ </head>)に 下 記 の IMART タグを 記 述 します <head> <imart type="workflowopenpagecsjs" /> </head> 申 請 画 面 と 連 携 する 画 面 のボディ 部 (<body> ~ </body>)に 下 記 の IMART タグを 記 述 します IMART タグに 指 定 する 属 性 は 通 常 申 請 一 覧 画 面 から 取 得 したリクエストパラメータを 指 定 します imwuserdataid は 申 請 一 覧 画 面 からのリクエストパラメータには 含 まれません ファンクション コンテナで 採 番 する 必 要 があります <body> <imart type="workflowopenpage" name="applyform" method="post" target="im_main" imwuserdataid=orequest.imwuserdataid imwsystemmatterid=orequest.imwsystemmatterid imwauthusercode=orequest.imwauthusercode imwapplybasedate=orequest.imwapplybasedate imwnodeid=orequest.imwnodeid imwflowid=orequest.imwflowid> </imart> </body> 下 記 の Client-side JavaScript API を 実 行 することにより 申 請 画 面 が 表 示 されます <script type="text/javascript"> workflowopenpage( 0 ); </script> 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 9
intra-mart プログラミングガイド 3.1.2 JavaEE 開 発 モデル 申 請 画 面 と 連 携 する 画 面 のヘッダ 部 (<head> ~ </head>)に 下 記 のタグライブラリを 記 述 します <head> <workflow:workflowopenpagecsjs /> </head> 申 請 画 面 と 連 携 する 画 面 のボディ 部 (<body> ~ </body>)に 下 記 のタグライブラリを 記 述 します タグライブラリに 指 定 する 属 性 は 通 常 申 請 一 覧 画 面 から 取 得 したリクエストパラメータを 指 定 します imwuserdataid は 申 請 一 覧 画 面 からのリクエストパラメータには 含 まれません ServiceController などで 採 番 する 必 要 があります <body> <workflow:workflowopenpage name="applyform" method="post" target="im_main" imwuserdataid='<%=(string)request.getattribute("imwuserdataid")%>' imwsystemmatterid='<%=(string)request.getattribute("imwsystemmatterid")%>' imwauthusercode='<%=(string)request.getattribute("imwauthusercode")%>' imwapplybasedate='<%=(string)request.getattribute("imwapplybasedate")%>' imwnodeid='<%=(string)request.getattribute("imwnodeid")%>' imwflowid='<%=(string)request.getattribute("imwflowid")%>'> </workflow:workflowopenpage> </body> 下 記 の Client-side JavaScript API を 実 行 することにより 申 請 画 面 が 表 示 されます <script type="text/javascript"> workflowopenpage( 0 ); </script> Page 10 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
3 画 面 の 作 成 3.2 一 時 保 存 画 面 の 呼 び 出 し IM-Workflow で 提 供 する 一 時 保 存 を 行 うための 画 面 ( 以 下 一 時 保 存 画 面 )と 連 携 する 方 法 を 説 明 します 一 時 保 存 画 面 を 表 示 するためには IM-Workflow が 提 供 するタグライブラリおよび Client-side JavaScript API を 使 用 します 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 11
intra-mart プログラミングガイド 3.2.1 スクリプト 開 発 モデル 一 時 保 存 画 面 と 連 携 する 画 面 のヘッダ 部 (<head> ~ </head>)に 下 記 の IMART タグを 記 述 します <head> <imart type="workflowopenpagecsjs" /> </head> 一 時 保 存 画 面 と 連 携 する 画 面 のボディ 部 (<body> ~ </body>)に 下 記 の IMART タグを 記 述 します IMART タグに 指 定 する 属 性 は 通 常 申 請 一 覧 画 面 から 取 得 したリクエストパラメータを 指 定 します <body> <imart type="workflowopenpage" name="tempform" method="post" target="im_main" imwuserdataid=orequest.imwuserdataid imwsystemmatterid=orequest.imwsystemmatterid imwauthusercode=orequest.imwauthusercode imwapplybasedate=orequest.imwapplybasedate imwnodeid=orequest.imwnodeid imwflowid=orequest.imwflowid> </imart> </body> 下 記 の Client-side JavaScript API を 実 行 することにより 一 時 保 存 画 面 が 表 示 されます <script type="text/javascript"> workflowopenpage( 1 ); </script> Page 12 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
3 画 面 の 作 成 3.2.2 JavaEE 開 発 モデル 一 時 保 存 画 面 と 連 携 する 画 面 のヘッダ 部 (<head> ~ </head>)に 下 記 のタグライブラリを 記 述 します <head> <workflow:workflowopenpagecsjs /> </head> 一 時 保 存 画 面 と 連 携 する 画 面 のボディ 部 (<body> ~ </body>)に 下 記 のタグライブラリを 記 述 します タグライブラリに 指 定 する 属 性 は 通 常 申 請 一 覧 画 面 から 取 得 したリクエストパラメータを 指 定 します <body> <workflow:workflowopenpage name="tempform" method="post" target="im_main" imwuserdataid='<%=(string)request.getattribute("imwuserdataid")%>' imwsystemmatterid='<%=(string)request.getattribute("imwsystemmatterid")%>' imwauthusercode='<%=(string)request.getattribute("imwauthusercode")%>' imwapplybasedate='<%=(string)request.getattribute("imwapplybasedate")%>' imwnodeid='<%=(string)request.getattribute("imwnodeid")%>' imwflowid='<%=(string)request.getattribute("imwflowid")%>'> </workflow:workflowopenpage> </body> 下 記 の Client-side JavaScript API を 実 行 することにより 一 時 保 存 画 面 が 表 示 されます <script type="text/javascript"> workflowopenpage( 1 ); </script> 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 13
intra-mart プログラミングガイド 3.3 申 請 ( 起 票 案 件 )/ 再 申 請 / 処 理 画 面 の 呼 び 出 し IM-Workflow で 提 供 する 申 請 ( 起 票 案 件 )/ 再 申 請 / 処 理 を 行 うための 画 面 ( 以 下 処 理 画 面 )と 連 携 する 方 法 を 説 明 します 処 理 画 面 を 表 示 するためには IM-Workflow が 提 供 するタグライブラリおよび Client-side JavaScript API を 使 用 します Page 14 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
3 画 面 の 作 成 3.3.1 スクリプト 開 発 モデル 処 理 画 面 と 連 携 する 画 面 のヘッダ 部 (<head> ~ </head>)に 下 記 の IMART タグを 記 述 します <head> <imart type="workflowopenpagecsjs" /> </head> 処 理 画 面 と 連 携 する 画 面 のボディ 部 (<body> ~ </body>)に 下 記 の IMART タグを 記 述 します IMART タグに 指 定 する 属 性 は 通 常 未 処 理 一 覧 画 面 から 取 得 したリクエストパラメータを 指 定 します <body> <imart type="workflowopenpage" name="approveform" method="post" target="im_main" imwsystemmatterid=orequest.imwsystemmatterid imwnodeid=orequest.imwnodeid > </imart> </body> 下 記 の Client-side JavaScript API を 実 行 することにより 処 理 画 面 が 表 示 されます 申 請 ( 起 票 案 件 ) <script type="text/javascript"> workflowopenpage( 2 ); </script> 再 申 請 <script type="text/javascript"> workflowopenpage( 3 ); </script> 処 理 <script type="text/javascript"> workflowopenpage( 4 ); </script> 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 15
intra-mart プログラミングガイド 3.3.2 JavaEE 開 発 モデル 処 理 画 面 と 連 携 する 画 面 のヘッダ 部 (<head> ~ </head>)に 下 記 のタグライブラリを 記 述 します <head> <workflow:workflowopenpagecsjs /> </head> 処 理 画 面 と 連 携 する 画 面 のボディ 部 (<body> ~ </body>)に 下 記 のタグライブラリを 記 述 します タグライブラリに 指 定 する 属 性 は 通 常 未 処 理 一 覧 画 面 から 取 得 したリクエストパラメータを 指 定 します <body> <workflow:workflowopenpage name="approveform" method="post" target="im_main" imwsystemmatterid='<%=(string)request.getattribute("imwsystemmatterid")%>' imwnodeid='<%=(string)request.getattribute("imwnodeid")%>'> </workflow:workflowopenpage> </body> 下 記 の Client-side JavaScript API を 実 行 することにより 処 理 画 面 が 表 示 されます 申 請 ( 起 票 案 件 ) <script type="text/javascript"> workflowopenpage( 2 ); </script> 再 申 請 <script type="text/javascript"> workflowopenpage( 3 ); </script> 処 理 <script type="text/javascript"> workflowopenpage( 4 ); </script> Page 16 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
3 画 面 の 作 成 3.4 確 認 画 面 の 呼 び 出 し IM-Workflow で 提 供 する 確 認 を 行 うための 画 面 ( 以 下 確 認 画 面 )と 連 携 する 方 法 を 説 明 します 確 認 画 面 を 表 示 するためには IM-Workflow が 提 供 するタグライブラリおよび Client-side JavaScript API を 使 用 します 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 17
intra-mart プログラミングガイド 3.4.1 スクリプト 開 発 モデル 確 認 画 面 と 連 携 する 画 面 のヘッダ 部 (<head> ~ </head>)に 下 記 の IMART タグを 記 述 します <head> <imart type="workflowopenpagecsjs" /> </head> 確 認 画 面 と 連 携 する 画 面 のボディ 部 (<body> ~ </body>)に 下 記 の IMART タグを 記 述 します IMART タグに 指 定 する 属 性 は 通 常 確 認 一 覧 画 面 から 取 得 したリクエストパラメータを 指 定 します <body> <imart type="workflowopenpage" name="confirmform" method="post" target="im_main" imwsystemmatterid=orequest.imwsystemmatterid imwnodeid=orequest.imwnodeid> </imart> </body> 下 記 の Client-side JavaScript API を 実 行 することにより 確 認 画 面 が 表 示 されます <script type="text/javascript"> workflowopenpage( 5 ); </script> Page 18 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
3 画 面 の 作 成 3.4.2 JavaEE 開 発 モデル 確 認 画 面 と 連 携 する 画 面 のヘッダ 部 (<head> ~ </head>)に 下 記 のタグライブラリを 記 述 します <head> <workflow:workflowopenpagecsjs /> </head> 確 認 画 面 と 連 携 する 画 面 のボディ 部 (<body> ~ </body>)に 下 記 のタグライブラリを 記 述 します タグライブラリに 指 定 する 属 性 は 通 常 確 認 一 覧 画 面 から 取 得 したリクエストパラメータを 指 定 します <body> <workflow:workflowopenpage name="confirmform" method="post" target="im_main" imwsystemmatterid='<%=(string)request.getattribute("imwsystemmatterid")%>' imwnodeid='<%=(string)request.getattribute("imwnodeid")%>'> </workflow:workflowopenpage> </body> 下 記 の Client-side JavaScript API を 実 行 することにより 確 認 画 面 が 表 示 されます <script type="text/javascript"> workflowopenpage( 5 ); </script> 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 19
intra-mart プログラミングガイド 3.5 制 限 事 項 3.5.1 imwプレフィックスのパラメータについて workflowopenpage タグでは ワークフロー 処 理 時 の 制 御 用 に imw プレフィックスの hidden タグを 複 数 出 力 しま す パラメータ 名 が 重 複 すると 処 理 が 正 常 に 行 われない 恐 れがあるため 以 下 で 明 示 的 に 記 載 を 許 可 されたもの 以 外 imw プレフィックス 名 称 のパラメータは 記 述 しないでください 7.1 呼 び 出 し 画 面 の 初 期 表 示 値 指 定 7.4 画 面 入 力 情 報 の 保 持 3.5.2 タグライブラリの 非 推 奨 属 性 について workflowopenpage タグでは セキュリティ 対 応 のため 以 下 の 属 性 は 非 推 奨 扱 いとなりました 属 性 値 を 指 定 した 場 合 も 問 題 なく 動 作 しますが 指 定 値 は 無 視 され セッションから 取 得 した 情 報 により 動 作 しま す imwgroupid : ログイングループ ID imwusercode : 処 理 者 CD ( 代 理 先 ユーザ CD) Page 20 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
4 ユーザプログラムの 作 成 4 ユーザプログラムの 作 成 No 処 理 名 項 番 1 案 件 開 始 処 理 1 2 案 件 終 了 処 理 8 3 アクション 処 理 2 4 6 4 到 達 処 理 3 5 7 4.1 案 件 開 始 処 理 案 件 開 始 処 理 とは 案 件 が 開 始 する 時 に 一 度 実 行 される 処 理 です 下 記 の 場 合 に 実 行 されます 申 請 者 が 申 請 を 行 った 場 合 起 票 の 案 件 を 作 成 した 場 合 (API のみ) 案 件 開 始 処 理 は IM-Workflow モジュールのトランザクション 内 で 実 行 されるため このプログラム 中 では DB トラ ンザクション 制 御 を 行 うことはできません 4.2 案 件 終 了 処 理 案 件 終 了 処 理 とは 案 件 が 終 了 する 時 に 一 度 実 行 される 処 理 です 下 記 の 場 合 に 実 行 されます 最 後 の 承 認 者 が 承 認 を 行 った 場 合 承 認 者 が 承 認 終 了 を 行 った 場 合 承 認 者 が 否 認 を 行 った 場 合 申 請 者 が 取 止 め を 行 った 場 合 案 件 操 作 で 終 了 ノードに 到 達 した 場 合 案 件 終 了 処 理 は 直 前 のアクション 処 理 や 到 達 処 理 とは 独 立 した 処 理 (トランザクション)となります そのため 案 件 終 了 処 理 でエラーが 発 生 した 場 合 直 前 の 処 理 を 戻 す(ロールバック)することはできません 案 件 終 了 処 理 は IM-Workflow モジュールのトランザクション 内 で 実 行 されるため このプログラム 中 では DB トラ ンザクション 制 御 を 行 うことはできません 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 21
intra-mart プログラミングガイド 4.3 アクション 処 理 アクション 処 理 とは 下 記 のような 行 為 を 行 った 場 合 に 実 行 される 処 理 です No アクション メソッド 1 申 請 apply 2 再 申 請 reapply 3 申 請 ( 一 時 保 存 ) applyfromtempsave 4 申 請 ( 未 処 理 ) applyfromunapply 5 取 止 め discontinue 6 引 戻 し pullback 7 差 戻 し 後 引 戻 し sendbacktopullback 8 承 認 approve 9 承 認 終 了 approveend 10 否 認 deny 11 差 戻 し sendback 12 保 留 reserve 13 保 留 解 除 reservecancel 14 案 件 操 作 matterhandle 15 一 時 保 存 ( 新 規 登 録 ) tempsavecreate 16 一 時 保 存 ( 更 新 ) tempsaveupdate 17 一 時 保 存 ( 削 除 ) tempsavedelete アクション 処 理 は IM-Workflow モジュールのトランザクション 内 で 実 行 されるため このプログラム 中 では DB トラ ンザクション 制 御 を 行 うことはできません 4.4 到 達 処 理 到 達 処 理 とは ノードに 到 達 した 場 合 に 実 行 される 処 理 です この 処 理 は アクション 処 理 や IM-Workflow の 内 部 処 理 とは 独 立 した 処 理 (thread)として 実 行 されます そのため 到 達 処 理 でエラーが 発 生 した 場 合 直 前 の 処 理 を 戻 す(ロールバック)することはできません ( 直 前 のアクション 処 理 とは トランザクションも 別 となります ) このプログラム 中 で データベースの 登 録 / 更 新 / 削 除 処 理 を 行 う 場 合 は 独 自 に DB トランザクション 制 御 を 行 ってください 下 記 のような 場 合 に 実 行 されます 前 ノードの 処 理 者 が 申 請 または 承 認 を 行 って 到 達 した 場 合 他 のノードから 差 戻 し され 到 達 した 場 合 引 戻 し を 行 って 到 達 した 場 合 案 件 操 作 で 到 達 した 場 合 Page 22 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
4 ユーザプログラムの 作 成 4.5 分 岐 開 始 処 理 分 岐 開 始 処 理 とは 分 岐 開 始 ノードで ユーザプログラムで 分 岐 する を 選 択 した 場 合 に 実 行 される 処 理 です 分 岐 先 ノード 毎 に 順 番 に 実 行 されます 分 岐 開 始 処 理 は IM-Workflow モジュールのトランザクション 内 で 実 行 されるため このプログラム 中 では DB トラ ンザクション 制 御 を 行 うことはできません 分 岐 開 始 処 理 において ルート 遷 移 可 否 として 遷 移 する(true) を 返 却 することにより 実 行 中 の 分 岐 開 始 処 理 が 設 定 された 分 岐 先 ノードに 進 みます 全 ての 分 岐 開 始 処 理 のルート 遷 移 可 否 が 遷 移 しない(false) の 場 合 は 案 件 は 分 岐 開 始 ノードで 停 止 します このような 場 合 は 案 件 操 作 処 理 で 案 件 を 進 めて 下 さい 4.6 分 岐 終 了 処 理 分 岐 終 了 処 理 とは 分 岐 終 了 ノードで ユーザプログラムで 分 岐 終 了 する を 選 択 した 場 合 に 実 行 される 処 理 で す 分 岐 終 了 ノードに 案 件 が 到 達 する 度 に 実 行 されます 分 岐 終 了 処 理 は IM-Workflow モジュールのトランザクション 内 で 実 行 されるため このプログラム 中 では DB トラ ンザクション 制 御 を 行 うことはできません 分 岐 終 了 処 理 において ルート 遷 移 可 否 として 結 合 する(true) を 返 却 することにより 未 到 達 のノードを 待 たず に 次 のノードに 進 みます 全 てのノードが 到 達 しても 結 果 が 全 て 結 合 しない(false) の 場 合 は 案 件 は 分 岐 終 了 ノードで 停 止 します このような 場 合 は 案 件 操 作 処 理 で 案 件 を 進 めて 下 さい 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 23
intra-mart プログラミングガイド 5 その 他 プログラムの 作 成 5.1 未 完 了 案 件 削 除 処 理 リスナー 未 完 了 案 件 削 除 処 理 リスナーとは 未 完 了 案 件 を 削 除 した 際 に 実 行 されるプログラムです 通 常 案 件 操 作 画 面 より 案 件 削 除 を 行 った 場 合 または 未 完 了 案 件 を 削 除 する API を 実 行 した 際 に 呼 び 出 されます 未 完 了 案 件 削 除 処 理 リスナーは 通 常 コンテンツ 定 義 に 設 定 します また ログイングループ 単 位 で 処 理 を 行 う 場 合 は 下 記 のファイルに 設 定 します %StorageService%/workflow/conf/param/param_group_%ログイングループ ID%.xml <!-- 未 完 了 案 件 削 除 リスナの 種 類 [java] or [script] or []( 指 定 なし) []( 指 定 なし)を 設 定 した 場 合 はリスナを 起 動 しない --> <param> <param-name>delete-active-matter-type</param-name> <param-value></param-value> </param> <!-- 未 完 了 案 件 削 除 リスナのパス 1. 案 件 削 除 リスナの 種 類 が java:パッケージ 名 2. 案 件 削 除 リスナの 種 類 が script:js のパス --> <param> <param-name>delete-active-matter-listener-path</param-name> <param-value></param-value> </param> [ワークフローパラメータ]] 画 面 からも 設 定 することが 可 能 です 設 定 方 法 の 詳 細 については IM-Workflow 管 理 者 操 作 ガイド または IM-Workflow 仕 様 書 を 参 照 下 さい Page 24 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
5 その 他 プログラムの 作 成 5.2 完 了 案 件 削 除 処 理 リスナー 完 了 案 件 削 除 処 理 リスナーとは 完 了 案 件 を 削 除 した 際 に 実 行 されるプログラムです 通 常 参 照 画 面 の 完 了 案 件 タブより 案 件 の 削 除 を 行 った 場 合 または 完 了 案 件 を 削 除 する API を 実 行 した 際 に 呼 び 出 されます 完 了 案 件 削 除 処 理 リスナーは 通 常 コンテンツ 定 義 に 設 定 します また ログイングループ 単 位 で 処 理 を 行 う 場 合 は 下 記 のファイルに 設 定 します %StorageService%/workflow/conf/param/param_group_%ログイングループ ID%.xml <!-- 完 了 案 件 削 除 リスナの 種 類 [java] or [script] or []( 指 定 なし) []( 指 定 なし)を 設 定 した 場 合 はリスナを 起 動 しない --> <param> <param-name>delete-complete-matter-listener-type</param-name> <param-value></param-value> </param> <!-- 完 了 案 件 削 除 リスナのパス 1. 案 件 削 除 リスナの 種 類 が java:パッケージ 名 2. 案 件 削 除 リスナの 種 類 が script:%resourceservice%からのパス --> <param> <param-name>delete-complete-matter-listener-path</param-name> <param-value></param-value> </param> [ワークフローパラメータ]] 画 面 からも 設 定 することが 可 能 です 設 定 方 法 の 詳 細 については IM-Workflow 管 理 者 操 作 ガイド または IM-Workflow 仕 様 書 を 参 照 下 さい 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 25
intra-mart プログラミングガイド 5.3 過 去 案 件 削 除 処 理 リスナー 過 去 案 件 削 除 処 理 リスナーとは 過 去 案 件 を 削 除 した 際 に 実 行 されるプログラムです 過 去 案 件 削 除 処 理 リスナーは 通 常 コンテンツ 定 義 に 設 定 します また ログイングループ 単 位 で 処 理 を 行 う 場 合 は 下 記 のファイルに 設 定 します %StorageService%/workflow/conf/param/param_group_%ログイングループ ID%.xml ------------------------------------------------------------------------------------------------------------------------ <!-- 過 去 案 件 削 除 リスナの 種 類 [java] or [script] or []( 指 定 なし) []( 指 定 なし)を 設 定 した 場 合 はリスナを 起 動 しない --> <param> <param-name>delete-archive-matter-listener-type</param-name> <param-value></param-value> </param> <!-- 過 去 案 件 削 除 リスナのパス 1. 案 件 削 除 リスナの 種 類 が java:パッケージ 名 2. 案 件 削 除 リスナの 種 類 が script:%resourceservice%からのパス --> <param> <param-name>delete-archive-matter-listener-path</param-name> <param-value></param-value> </param> [ワークフローパラメータ]] 画 面 からも 設 定 することが 可 能 です 設 定 方 法 の 詳 細 については IM-Workflow 管 理 者 操 作 ガイド または IM-Workflow 仕 様 書 を 参 照 下 さい Page 26 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
5 その 他 プログラムの 作 成 5.4 案 件 退 避 処 理 リスナー 案 件 退 避 処 理 リスナーとは 案 件 を 退 避 した 際 に 実 行 されるプログラムです 通 常 バッチ 処 理 IM-Workflow アーカイブバッチ を 実 行 した 際 に 呼 び 出 されます 案 件 退 避 処 理 リスナーは 通 常 コンテンツ 定 義 に 設 定 します また ログイングループ 単 位 で 処 理 を 行 う 場 合 は 下 記 のファイルに 設 定 します %StorageService%/workflow/conf/param/param_group_%ログイングループ ID%.xml ------------------------------------------------------------------------------------------------------------------------ <!-- 案 件 退 避 リスナの 種 類 [java] or [script] or []( 指 定 なし) []( 指 定 なし)を 設 定 した 場 合 はリスナを 起 動 しない --> <param> <param-name>archive-proc-listener-type</param-name> <param-value>java</param-value> </param> <!-- 案 件 退 避 リスナのパス 1. 案 件 退 避 リスナの 種 類 が java:パッケージ 名 2. 案 件 退 避 リスナの 種 類 が script:%resourceservice%からのパス --> <param> <param-name>archive-proc-listener-path</param-name> <param-value></param-value> </param> [ワークフローパラメータ]] 画 面 からも 設 定 することが 可 能 です 設 定 方 法 の 詳 細 については IM-Workflow 管 理 者 操 作 ガイド または IM-Workflow 仕 様 書 を 参 照 下 さい 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 27
intra-mart プログラミングガイド 6 Appendix 6.1 テンプレート ユーザプログラムおよび 各 リスナーのプログラムを 作 成 する 際 のテンプレートが 提 供 されています スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/template/ No 処 理 物 理 名 1 案 件 開 始 処 理 MatterStartProcess.js 2 案 件 終 了 処 理 MatterEndProcess.js 3 アクション 処 理 ActionProcess.js 4 到 達 処 理 ArriveProcess.js 5 分 岐 開 始 処 理 / 分 岐 終 了 処 理 RuleCondition.js 6 未 完 了 案 件 削 除 処 理 リスナー WorkflowActvMatterDeleteListener.js 7 完 了 案 件 削 除 処 理 リスナー WorkflowCplMatterDeleteListener.js 8 過 去 案 件 削 除 処 理 リスナー WorkflowArcMatterDeleteListener.js 9 案 件 退 避 処 理 リスナー WorkflowMatterArchiveListener.js 10 処 理 対 象 者 プラグイン WorkflowAuthorityExecEventListener.js JavaEE 開 発 モデル JavaEE 開 発 モデル[java ファイル]のサンプルプログラムについては 製 品 メディアに 保 存 されています また 製 品 最 新 情 報 ダウンロードページ(http://www.intra-mart.jp/download/product/index.html)から 入 手 すること もできます %サンプルプログラムディレクトリ%/src/main/java/jp/co/intra_mart/sample/workflow/template/ No 処 理 物 理 名 1 案 件 開 始 処 理 MatterStartProcess.java 2 案 件 終 了 処 理 MatterEndProcess.java 3 アクション 処 理 ActionProcess.java 4 到 達 処 理 ArriveProcess.java 5 分 岐 開 始 処 理 / 分 岐 終 了 処 理 RuleCondition.java 6 未 完 了 案 件 削 除 処 理 リスナー WorkflowActvMatterDeleteListener.java 7 完 了 案 件 削 除 処 理 リスナー WorkflowCplMatterDeleteListener.java 8 過 去 案 件 削 除 処 理 リスナー WorkflowArcMatterDeleteListener.java 9 案 件 退 避 処 理 リスナー WorkflowMatterArchiveListener.java 10 処 理 対 象 者 プラグイン WorkflowAuthorityExecEventListener.java 11 クローラ 登 録 文 書 追 加 リスナー WorkflowCrawlingAddListener.java Page 28 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
6 Appendix 6.2 サンプルプログラム IM-Workflow のインストール 時 サンプルのインストール を 行 い サンプルデータをインポートした 場 合 に 使 用 で きるサンプルプログラムについて 説 明 します サンプルプログラムは スクリプト 開 発 モデルと JavaEE 開 発 モデルのサンプルプログラムがあります 開 発 モデルの 違 いはありますが どちらのサンプルも 物 品 購 買 の 申 請 書 であり 動 作 仕 様 は 同 一 です 6.2.1 画 面 6.2.1.1 申 請 / 一 時 保 存 / 申 請 ( 起 票 案 件 )/ 再 申 請 画 面 スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/screen/apply.html %ResourceService%/pages/src/sample/workflow/purchase/screen/apply.js JavaEE 開 発 モデル %ApplicationRuntime%/doc/imart/WEB-INF/classes/service-config-imw_sample_purchase.xml ------------------------------------------------------------------------------------------------------------------------ <service> <service-id>apply</service-id> <controller-class>jp.co.intra_mart.sample.workflow.purchase.controller.service. ApplyServiceController</controller-class> <transition-class>jp.co.intra_mart.sample.workflow.purchase.controller.service. ApplyServiceTransition</transition-class> <next-page> <page-path>/sample/workflow/purchase/apply.jsp</page-path> </next-page> </service> 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 29
intra-mart プログラミングガイド 6.2.1.2 処 理 画 面 スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/screen/approve.html %ResourceService%/pages/src/sample/workflow/purchase/screen/approve.js JavaEE 開 発 モデル %ApplicationRuntime%/doc/imart/WEB-INF/classes/service-config-imw_sample_purchase.xml ------------------------------------------------------------------------------------------------------------------------ <service> <service-id>approve</service-id> <controller-class>jp.co.intra_mart.sample.workflow.purchase.controller.service. ApproveServiceController</controller-class> <transition-class>jp.co.intra_mart.sample.workflow.purchase.controller.service. ApproveServiceTransition</transition-class> <next-page> <page-path>/sample/workflow/purchase/approve.jsp</page-path> </next-page> </service> Page 30 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
6 Appendix 6.2.1.3 確 認 画 面 スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/screen/confirm.html %ResourceService%/pages/src/sample/workflow/purchase/screen/confirm.js JavaEE 開 発 モデル %ApplicationRuntime%/doc/imart/WEB-INF/classes/service-config-imw_sample_purchase.xml ------------------------------------------------------------------------------------------------------------------------ <service> <service-id>confirm</service-id> <controller-class>jp.co.intra_mart.sample.workflow.purchase.controller.service. ConfirmServiceController</controller-class> <transition-class>jp.co.intra_mart.sample.workflow.purchase.controller.service. ConfirmServiceTransition</transition-class> <next-page> <page-path>/sample/workflow/purchase/confirm.jsp</page-path> </next-page> </service> 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 31
intra-mart プログラミングガイド 6.2.1.4 処 理 詳 細 / 参 照 詳 細 / 過 去 案 件 詳 細 / 確 認 詳 細 画 面 スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/screen/detail.html %ResourceService%/pages/src/sample/workflow/purchase/screen/detail.js JavaEE 開 発 モデル %ApplicationRuntime%/doc/imart/WEB-INF/classes/service-config-imw_sample_purchase.xml ------------------------------------------------------------------------------------------------------------------------ <service> <service-id>detail</service-id> <controller-class>jp.co.intra_mart.sample.workflow.purchase.controller.service. DetailServiceController</controller-class> <transition-class>jp.co.intra_mart.sample.workflow.purchase.controller.service. DetailServiceTransition</transition-class> <next-page> <page-path>/sample/workflow/purchase/detail.jsp</page-path> </next-page> </service> Page 32 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
6 Appendix 処 理 詳 細 / 参 照 詳 細 / 過 去 案 件 詳 細 / 確 認 詳 細 画 面 ( 以 下 詳 細 画 面 )では コンテンツ 定 義 で 定 義 した 画 面 が 表 示 されます そのため 詳 細 画 面 に IM-Workflow の 情 報 ( 案 件 名 や 添 付 ファイルなど)を 表 示 する 場 合 は IM-Workflow が 提 供 するタグライブラリを 使 用 します 案 件 の 情 報 を 表 示 するためのタグライブラリです スクリプト 開 発 モデル 16 <br> 17 <imart type="workflowmatterdata" systemmatterid=orequest.imwsystemmatterid 18 displayitem="matter_number,matter_name,apply_user,apply_base_date" /> 19 <br> JavaEE 開 発 モデル 22 <br> 23 <workflow:workflowmatterdata systemmatterid='<%=(string)request.getattribute("imwsystemmatterid")%>' 24 displayitem="matter_number,matter_name,apply_user,apply_base_date" /> 25 <br> 案 件 の 添 付 ファイルを 表 示 するためのタグライブラリです スクリプト 開 発 モデル 76 <br> 77 <imart type="workflowmatterfile" systemmatterid=orequest.imwsystemmatterid /> 78 </body> JavaEE 開 発 モデル 77 <br> 78 <workflow:workflowmatterfile systemmatterid='<%=(string)request.getattribute("imwsystemmatterid")%>' /> 79 </body> 案 件 に 添 付 ファイルがない 場 合 は 表 示 されません 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 33
intra-mart プログラミングガイド 6.2.2 ユーザプログラム 6.2.2.1 アクション 処 理 プログラム スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/action/ActionProcess1.js JavaEE 開 発 モデル %サンプルプログラムディレクトリ%/src/main/java/ jp/co/intra_mart/sample/workflow/purchase/action/actionprocess1.java サンプルデータでは[ActionProcess1]を 申 請 ノードのアクション 処 理 として 定 義 されています [ActionProcess1]では 下 記 の 2 つの 処 理 を 行 っています ユーザプリケーションのデータをテーブルに 保 存 する 申 請 または 一 時 保 存 を 行 った 場 合 に 画 面 に 入 力 された 情 報 をユーザアプリケーションで 定 義 し ている 独 自 のテーブルに 登 録 / 更 新 しています 案 件 番 号 を 採 番 する 案 件 番 号 は 申 請 のアクション 処 理 で 設 定 する 必 要 があります ここでは IM-Workflow が 提 供 する WorkflowNumberingManager#getNumber() で 案 件 番 号 の 採 番 を 行 っています スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/action/ActionProcess2.js JavaEE 開 発 モデル %サンプルプログラムディレクトリ%/src/main/java/ jp/co/intra_mart/sample/workflow/purchase/action/actionprocess2.java サンプルデータでは[ActionProcess2]を 申 請 ノードのアクション 処 理 として 定 義 されています [ActionProcess2]では 画 面 から 入 力 された 数 量 金 額 である 合 計 金 額 を 案 件 プロパティとして 登 録 する 処 理 を 行 っています Page 34 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
6 Appendix 6.2.2.2 案 件 終 了 処 理 プログラム スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/action/MatterEndProcess.js JavaEE 開 発 モデル %サンプルプログラムディレクトリ%/src/main/java/ jp/co/intra_mart/sample/workflow/purchase/action/matterendprocess.java サンプルデータでは[MatterEndProcess]を 案 件 終 了 処 理 として 定 義 されています [MatterEndProcess]では ユーザアプリケーションで 定 義 している 独 自 のテーブルの 更 新 処 理 を 行 っています 6.2.2.3 分 岐 開 始 処 理 プログラム フロー 定 義 分 岐 ルート[スクリプト 開 発 モデル] で 使 用 されている 分 岐 開 始 処 理 プログラム %ResourceService%/pages/src/sample/workflow/purchase/action/RuleCondition1.js %ResourceService%/pages/src/sample/workflow/purchase/action/RuleCondition2.js %ResourceService%/pages/src/sample/workflow/purchase/action/RuleCondition3.js フロー 定 義 分 岐 ルート[JavaEE 開 発 モデル] で 使 用 されている 分 岐 開 始 処 理 プログラム %サンプルプログラムディレクトリ%/src/main/java/ jp/co/intra_mart/sample/workflow/purchase/action/rulecondition1.java %サンプルプログラムディレクトリ%/src/main/java/ jp/co/intra_mart/sample/workflow/purchase/action/rulecondition2.java %サンプルプログラムディレクトリ%/src/main/java/ jp/co/intra_mart/sample/workflow/purchase/action/rulecondition3.java [RuleCondition1]では 合 計 金 額 が 10000 未 満 の 場 合 に 結 果 フラグに 成 功 (true)を 返 却 します [RuleCondition2]では 合 計 金 額 が 10000 以 上 50000 未 満 の 場 合 に 結 果 フラグに 成 功 (true)を 返 却 します [RuleCondition3]では 合 計 金 額 が 50000 以 上 の 場 合 に 結 果 フラグに 成 功 (true)を 返 却 します 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 35
intra-mart プログラミングガイド 6.2.3 リスナー 6.2.3.1 未 完 了 案 件 削 除 処 理 リスナー スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/listener/WorkflowActvMatterDeleteListener.js JavaEE 開 発 モデル %サンプルプログラムディレクトリ%/src/main/java/ jp/co/intra_mart/sample/workflow/purchase/listener/workflowactvmatterdeletelistener.java [WorkflowActvMatterDeleteListener]では 下 記 の 2 つの 処 理 を 行 っています ユーザプリケーションのデータをテーブルから 削 除 する 申 請 時 に 登 録 したユーザアプリケーションのデータを 案 件 削 除 と 同 タイミングで 削 除 しています 案 件 プロパティを 削 除 する 申 請 時 に 案 件 プロパティに 登 録 した 合 計 金 額 を 案 件 プロパティから 削 除 しています 6.2.3.2 完 了 案 件 削 除 処 理 リスナー スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/listener/WorkflowCplMatterDeleteListener.js JavaEE 開 発 モデル %サンプルプログラムディレクトリ%/src/main/java/ jp/co/intra_mart/sample/workflow/purchase/listener/workflowcplmatterdeletelistener.java [WorkflowCplMatterDeleteListener]では 次 の 処 理 を 行 っています 申 請 時 に 登 録 したユーザアプリケーションのデータを 案 件 削 除 と 同 タイミングで 削 除 しています 案 件 プロパティの 情 報 は 案 件 削 除 のタイミングで IM-Workflow モジュールが 自 動 的 に 削 除 しますの で 個 別 の 削 除 は 不 要 です Page 36 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
6 Appendix 6.2.3.3 過 去 案 件 削 除 処 理 リスナー スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/listener/WorkflowArcMatterDeleteListener.js JavaEE 開 発 モデル %サンプルプログラムディレクトリ%/src/main/java/ jp/co/intra_mart/sample/workflow/purchase/listener/workflowarcmatterdeletelistener.java [WorkflowArcMatterDeleteListener]では 次 の 処 理 を 行 っています 申 請 時 に 登 録 したユーザアプリケーションのデータを 案 件 削 除 と 同 タイミングで 削 除 しています 案 件 プロパティの 情 報 は 案 件 削 除 のタイミングで IM-Workflow モジュールが 自 動 的 に 削 除 しますの で 個 別 の 削 除 は 不 要 です 6.2.3.4 案 件 退 避 処 理 リスナー スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/listener/WorkflowMatterArchiveListener.js JavaEE 開 発 モデル %サンプルプログラムディレクトリ%/src/main/java/ jp/co/intra_mart/sample/workflow/purchase/listener/workflowmatterarchivelistener.java [WorkflowMatterArchiveListener]では 次 の 処 理 を 行 っています ユーザアプリケーションで 定 義 している 独 自 のテーブルの 更 新 処 理 を 行 っています 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 37
intra-mart プログラミングガイド 7 カスタマイズ 7.1 呼 び 出 し 画 面 の 初 期 表 示 値 指 定 IM-Workflow で 提 供 する 各 処 理 ( 申 請 / 再 申 請 / 申 請 ( 未 申 請 )/ 一 時 保 存 / 処 理 / 確 認 ) 画 面 の 呼 び 出 し 時 に 呼 び 出 し 画 面 における 初 期 表 示 値 を 外 部 指 定 する 方 法 を 説 明 します 7.1.1 指 定 可 能 なパラメータ workflowopenpage タグの 内 部 に 下 記 パラメータを 記 述 することにより 呼 び 出 し 画 面 における 初 期 表 示 値 を 外 部 指 定 することが 可 能 です No パラメータ( 物 理 名 ) パラメータ( 論 理 名 ) 呼 び 出 し 画 面 側 の 動 作 対 象 呼 び 出 し 画 面 対 応 項 目 1 imwmattername 案 件 名 案 件 名 申 請 / 一 時 保 存 / 申 請 ( 起 票 案 件 )/ 再 申 請 2 imwcomment コメント コメント すべて 3 imwforcedparamflag 強 制 パラメータフラグ 動 作 制 御 用 フラグ - また 下 記 のような 条 件 のとき imwforcedparamflag ( 強 制 パラメータフラグ)の 値 に"1"を 指 定 した 場 合 のみ 初 期 表 示 値 指 定 が 反 映 されます imwforcedparamflag ( 強 制 パラメータフラグ)の 値 に"1"を 指 定 しない 場 合 または imwforcedparamflag ( 強 制 パラメータフラグ)を 記 述 しない 場 合 は 登 録 されている 情 報 が 優 先 されます No 呼 び 出 し 画 面 条 件 1 申 請 一 時 保 存 からの 申 請 時 2 一 時 保 存 一 時 保 存 情 報 の 再 保 存 時 3 申 請 ( 起 票 案 件 ) - 4 再 申 請 - Page 38 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
7 カスタマイズ 7.1.2 実 装 例 サンプルとして 提 供 されている 物 品 購 買 の 申 請 書 において 申 請 画 面 で 入 力 される 品 名 を 案 件 名 に 備 考 ) を コメント に 初 期 表 示 する 例 です 下 記 のプログラムが 初 期 表 示 を 行 うための 処 理 が 記 述 されたプログラムとなります スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/screen/apply_display.html JavaEE 開 発 モデル %ApplicationRuntime%/doc/imart/sample/workflow/purchase/apply_display.jsp 上 記 ファイルを 以 下 のファイル 名 に 変 更 し 上 書 き 保 存 することで 申 請 画 面 において 本 機 能 の 動 作 確 認 を 行 うことが 出 来 ます 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 39
intra-mart プログラミングガイド スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/screen/apply.html JavaEE 開 発 モデル %ApplicationRuntime%/doc/imart/sample/workflow/purchase/apply.jsp 以 下 のような 処 理 を 記 述 することで 初 期 表 示 を 行 うことが 出 来 ます <html> <head> <imart type="imdesigncss" /> <imart type="workflowopenpagecsjs" /> <script type="text/javascript"> function onclickopenpage(pagetype) { if (pagetype!= "1") { if(!inputcheck()) { return; } } document. workflowopenpageform.imwmattername.value = document. workflowopenpageform.item_name.value; document. workflowopenpageform.imwcomment.value = document. workflowopenpageform.item_comment.value; document. workflowopenpageform.imwforcedparamflag.value = "1"; } workflowopenpage(pagetype); </table> <input type="hidden" name="imwmattername" value=""> <input type="hidden" name="imwcomment" value=""> <input type="hidden" name="imwforcedparamflag" value=""> </imart> <imart type="form" name="backform" method="post" page=orequest.imwcalloriginalpagepath> <imart type="hidden" imwcalloriginalparams=orequest.imwcalloriginalparams /> </imart> </body> </html> Page 40 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
7 カスタマイズ 7.2 処 理 対 象 者 プラグインの 作 成 IM-Workflow の 各 ノードに 指 定 する 処 理 対 象 者 に 独 自 に 作 成 した 処 理 対 象 者 を 追 加 する 方 法 を 説 明 しま す IM-Workflow の 処 理 対 象 者 は プラグインという 形 で 機 能 を 拡 張 できるようになっています プラグインを 追 加 する 場 合 には 拡 張 ポイントに 応 じた 内 容 でプラグインの 実 装 を 作 成 し 対 象 の 拡 張 ポイントへ Plugin するための 設 定 ファイルを 記 述 します 拡 張 ポイントと プラグインの 関 係 は intra-mart WebPlatform / AppFramework の API である PluginManager によ って 管 理 されます そのため PluginManager について 理 解 しておく 必 要 があります PluginManager の 詳 細 については intra-mart WebPlaform / AppFramework デベロッパーズガイド を 参 照 ください 7.2.1 対 象 ノード 処 理 対 象 者 プラグインは ノードの 種 類 により extension point が 決 められています No ノード extension point 1 承 認 ( 1) jp.co.intra_mart.workflow.plugin.authority.node.approve 2 承 認 ( 2) jp.co.intra_mart.workflow.plugin.authority.node.approve.static 3 動 的 承 認 jp.co.intra_mart.workflow.plugin.authority.node.dynamic 4 確 認 jp.co.intra_mart.workflow.plugin.authority.node.confirm 1 前 ノードが 申 請 ノード または 承 認 ノード の 場 合 2 前 ノードが 申 請 ノード または 承 認 ノード 以 外 の 場 合 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 41
intra-mart プログラミングガイド 7.2.2 サンプルの 説 明 サンプルで 提 供 する 処 理 対 象 者 プラグイン は 同 じくサンプルで 提 供 されている 物 品 購 買 の 画 面 と 連 携 して います 物 品 購 買 の 画 面 で 入 力 された 数 量 と 金 額 からの 合 計 金 額 により 次 の 承 認 者 を 決 定 します 具 体 的 には 合 計 金 額 により 1 万 円 未 満 課 長 1 万 円 以 上 かつ 5 万 円 未 満 部 長 5 万 円 以 上 社 長 と 処 理 対 象 者 に 役 職 が 割 り 当 てられます Page 42 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
7 カスタマイズ 7.2.3 サンプルの 実 行 準 備 ここでは 承 認 ノードの 対 して 合 計 金 額 で 処 理 対 象 者 を 決 めるプラグインを 使 用 してみます 下 記 のファイルを 編 集 します %ServerManager%/plugin/ jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.approve/plugin.xml <?xml version="1.0" encoding="utf-8"?> <plugin> <extension point="jp.co.intra_mart.workflow.plugin.authority.node.approve" > スクリプト 開 発 モデル JavaEE 開 発 モデル <authority name="%jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.approve.item_total.script" id="jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.approve.item_total.script" version="7.2.0" rank="910" enable="true"> <configpage> <script pagepath="sample/workflow/purchase/plugin/authority/item_total/itemtotalconfig"> <parameter key="pluginname" value="sample.imw.cap.030" /> </script> </configpage> <extend> <script file="sample/workflow/purchase/plugin/authority/ item_total/workflowauthorityexeceventlistener" /> </extend> </authority> <authority name="%jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.approve.item_total.javaee" id="jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.approve.item_total.javaee" version="7.2.0" rank="920" enable="true"> <configpage> <javaee applicationid="imw_sample_purchase" serviceid="authority_item_total"> <parameter key="pluginname" value="sample.imw.cap.031" /> </javaee> </configpage> <extend> <java class="jp.co.intra_mart.sample.workflow.purchase.plugin.authority. item_total.workflowauthorityexeceventlistener" /> </extend> </authority> </extension> </plugin> 上 記 ファイルを 編 集 後 サーバを 再 起 動 します 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 43
intra-mart プログラミングガイド [ルート 定 義 ] 画 面 より 次 のようなルートを 作 成 します 承 認 ノードの 処 理 対 象 者 の 検 索 を 行 うと 下 記 のように 合 計 金 額 [Script] および 合 計 金 額 [JavaEE] が 表 示 さ れます 合 計 金 額 [Script] および 合 計 金 額 [JavaEE] は 実 装 方 法 ( 開 発 言 語 )の 違 いによるもので 処 理 内 容 に 関 しては 違 いが りません 合 計 金 額 [Script] または 合 計 金 額 [JavaEE] を 選 択 し ルートを 作 成 します 次 に [フロー 定 義 ] 画 面 より 上 記 で 作 成 したルート 定 義 を 使 用 したフロー 定 義 を 作 成 します この 時 コンテンツは サンプルで 提 供 されている スクリプト 開 発 モデル または JavaEE 開 発 モデル を 選 択 し てください Page 44 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
7 カスタマイズ 7.2.4 サンプルの 実 行 7.2.3 サンプルの 実 行 準 備 で 作 成 したフロー 定 義 で 申 請 を 行 ないます 入 力 した 数 量 と 金 額 からの 合 計 金 額 により 承 認 ノードの 処 理 対 象 者 が 変 わることを 確 認 します [ 処 理 済 ] 一 覧 画 面 より 申 請 を 行 った 案 件 のフローを 参 照 します 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 45
intra-mart プログラミングガイド 合 計 金 額 が 1 万 円 未 満 の 場 合 合 計 金 額 が 1 万 円 以 上 かつ 5 万 円 未 満 の 場 合 合 計 金 額 が 5 万 円 以 上 の 場 合 合 計 金 額 により 処 理 対 象 者 が 違 うことを 確 認 します Page 46 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
7 カスタマイズ 7.2.5 処 理 対 象 者 プラグインについて 処 理 対 象 者 プラグインを 作 成 するには 次 の 3 ファイルを 作 成 する 必 要 があります 7.2.5.1 plugin.xml plugin.xml は PluginManager によって 管 理 されるファイルです 詳 細 は PluginManager のドキュメントを 参 照 ください <?xml version="1.0" encoding="utf-8"?> <plugin> <extension point="jp.co.intra_mart.workflow.plugin.authority.node.approve" > </extension> </plugin> <authority name="%jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.approve.item_total.script" id="jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.approve.item_total.script" version="7.2.0" rank="910" enable="true"> <configpage> <script pagepath="sample/workflow/purchase/plugin/authority/item_total/itemtotalconfig"> <parameter key="pluginname" value="sample.imw.cap.030" /> </script> </configpage> <extend> <script file="sample/workflow/purchase/plugin/authority/i tem_total/workflowauthorityexeceventlistener" /> </extend> </authority> <authority name="%jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.approve.item_total.javaee" id="jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.approve.item_total.javaee" version="7.2.0" rank="920" enable="true"> <configpage> <javaee applicationid="imw_sample_purchase" serviceid="authority_item_total"> <parameter key="pluginname" value="sample.imw.cap.031" /> </javaee> </configpage> <extend> <java class="jp.co.intra_mart.sample.workflow.purchase.plugin.authority. item_total.workflowauthorityexeceventlistener" /> </extend> </authority> 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 47
intra-mart プログラミングガイド 処 理 対 象 者 プラグインで 重 要 になるのは 下 記 の 要 素 です <extension point> 処 理 対 象 者 プラグインを 差 し 込 むノードの 種 類 によ り <extension point>が 変 わります 差 し 込 みたいノードの<extension point>を 指 定 しま す <configpage> <script pagepath> <configpage>は [ルート 定 義 ] 画 面 において ノード に 設 定 する 処 理 対 象 者 の 一 覧 画 面 から 処 理 対 象 者 プラグインが 選 択 されたときに 呼 ばれるプログラムで す <javaee applicationid serviceid> このプログラムは スクリプト 開 発 モデルおよび JavaEE 開 発 モデルで 記 述 することが 可 能 です スクリプト 開 発 モデルで このプログラムを 作 成 する 場 合 は <script pagepath>にパスを 指 定 します JavaEE 開 発 モデルで このプログラムを 作 成 する 場 合 は applicationid および serviceid を 指 定 します < extend > <script file> < extend > に 指 定 するプラグラムは 処 理 対 象 者 を 決 定 するプログラムとなります <java class> このプログラムは スクリプト 開 発 モデルおよび JavaEE 開 発 モデルで 記 述 することが 可 能 です スクリプト 開 発 モデルで このプログラムを 作 成 する 場 合 は <script file>にパスを 指 定 します JavaEE 開 発 モデルで このプログラムを 作 成 する 場 合 は <java class>にパッケージを 指 定 します Page 48 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
7 カスタマイズ サンプルは 下 記 のようになります 承 認 ノード %ServerManager%/ plugin/jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.approve/ plugin.xml 承 認 ノード %ServerManager%/ plugin/jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.approve.static/ plugin.xml 動 的 承 認 ノード %ServerManager%/ plugin/jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.dynamic/ plugin.xml 確 認 ノード %ServerManager%/ plugin/jp.co.intra_mart.sample.workflow.purchase.plugin.authority.node.confirm/ plugin.xml 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 49
intra-mart プログラミングガイド 7.2.5.2 <configpage>に 指 定 するプログラム [ルート 定 義 ] 画 面 において ノードに 設 定 する 処 理 対 象 者 の 一 覧 画 面 から 処 理 対 象 者 プラグインが 選 択 された ときに 呼 ばれるプログラムです 選 択 された 対 象 者 プラグインの 情 報 を [ルート 定 義 ] 画 面 に 引 き 渡 します サンプルプログラムは 下 記 のようになります スクリプト 開 発 モデル %ResourceService%/ pages/src/sample/workflow/purchase/plugin/authority/item_total/itemtotalconfig.html %ResourceService%/ pages/src/sample/workflow/purchase/plugin/authority/item_total/itemtotalconfig.js JavaEE 開 発 モデル %ApplicationRuntime%/doc/imart/WEB-INF/classes/service-config-imw_sample_purchase.xml ------------------------------------------------------------------------------------------------------------------------ <service> <service-id>authority_item_total</service-id> <controller-class>jp.co.intra_mart.sample.workflow.purchase.plugin.authority. item_total.controller.service.itemtotalconfigservicecontroller</controller-class> <transition-class>jp.co.intra_mart.sample.workflow.purchase.plugin.authority. item_total.controller.service.itemtotalconfigtransition</transition-class> <next-page> <page-path>/sample/workflow/purchase/plugin/authority/item_total/itemtotalconfig.jsp</page-path> </next-page> </service> Page 50 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
7 カスタマイズ 7.2.5.3 < extend >に 指 定 するプログラム 処 理 対 象 者 を 決 定 する 際 に 実 行 されるプログラムとなります ここで 指 定 するプログラムには 次 の3つのメソッドを 実 装 する 必 要 があります execute メソッド 処 理 対 象 者 を 取 得 するメソッド 概 要 gettargetuserlist 対 象 のノードに 案 件 が 到 達 したときに 実 行 されます 処 理 対 象 ユーザの 一 覧 を 取 得 するメソッド getdisplayname [ 案 件 操 作 ]-[ノード 編 集 ] 画 面 の 状 況 確 認 ボタン 押 下 時 に 表 示 さ れる[ 対 象 者 状 況 確 認 ] 画 面 で 使 用 されます 処 理 対 象 者 プラグインの 名 称 を 取 得 するメソッド プラグインの 名 称 を 表 示 するため 使 用 されます サンプルプログラムは 下 記 のようになります スクリプト 開 発 モデル %ResourceService%/ pages/src/sample/workflow/purchase/plugin/authority/item_total/ WorkflowAuthorityExecEventListener.js JavaEE 開 発 モデル %サンプルプログラムディレクトリ%/src/main/java/jp/co/intra_mart/sample/ workflow/purchase/plugin/authority/item_tota/workflowauthorityexeceventlistener.java 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 51
intra-mart プログラミングガイド 7.3 IM-Workflowクローラリスナーの 作 成 IM-Workflow クローラ 実 行 時 に アプリケーションデータを 同 時 にインデックスします サンプルとして 提 供 されている 物 品 購 買 の 申 請 書 において アプリケーションデータである 品 名 を 追 加 登 録 するサンプルを 示 します IM-Workflow クローラ 登 録 文 書 追 加 リスナー %サンプルプログラムディレクトリ%/src/main/java/ jp/co/intra_mart/sample/workflow/purchase/listener/workflowcrawlingaddlistener.java /** * 登 録 文 書 に 物 品 購 買 のアプリケーションデータ 品 名 を 追 加 します * * @param inputdoc 入 力 文 書 * @param logingroupid ログイングループID * @param localeid ロケールID * @param systemmatterid システム 案 件 ID * @param userdataid ユーザデータID * @throws SolrCrawlerException リスナー 処 理 で 例 外 が 発 生 した 場 合 */ public void adddocumentinfo(intramartsolrinputdocument inputdoc, String logingroupid, String localeid, String systemmatterid, String userdataid) throws SolrCrawlerException { try { // 1 引 数 のパラメータ 情 報 から 該 当 の 購 買 情 報 を 取 得 する SessionInfo sessioninfo = AccessSecurityManager.getInstance().getSessionInfo(); ConfigurationUserInfo userinfo = new ConfigurationUserInfo(); userinfo.setuserid(sessioninfo.getuser()); userinfo.setlogingroupid(logingroupid); EventManager eventmanager = EventManager.getEventManager(); SelectEvent selectevent = (SelectEvent)eventManager. createevent("imw_sample_purchase", "select", userinfo); selectevent.setuserdataid(userdataid); SelectEventResult eventresult = (SelectEventResult)eventManager.dispatch(selectEvent, true); // 2この 案 件 情 報 が 追 加 対 象 となるかの 判 定 を 行 う if (eventresult.getmodelobject() == null) { return; } // 3 引 数 の 文 書 登 録 用 オブジェクトに アプリケーションデータを 設 定 する (NULL 値 の 設 定 不 可 ) // 1. テキストフィールドに 品 名 を 追 加 inputdoc.addtext(eventresult.getmodelobject().getitemname()); // 2. ダイナミックフィールドに 品 名 を 追 加 inputdoc.addfield("item_name_string", eventresult.getmodelobject().getitemname()); // 文 書 種 別 の 追 加 ( 親 文 書 種 別 imw > purchase とする) inputdoc.addtype("purchase"); } } catch (Exception e) { throw new SolrCrawlerException(e.getMessage(), e); } Page 52 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
7 カスタマイズ 業 務 テンプレート %ApplicationRuntime%/doc/imart/ sample/workflow/purchase/solr/purchase_template.jsp サンプルプログラムを 動 作 させるには 下 記 のファイルに %Server Manager%/conf/ system-install.xml 以 下 の 設 定 を 記 述 します <listener> <imwcrawler-add-listener> <listener-class>jp.co.intra_mart.sample.workflow.purchase.listener.workflowcrawlingaddlistener</listener-class> </imwcrawler-add-listener> </listener> 下 記 のファイルに %Server Manager%/conf/ solr-display-config_imw.xml 以 下 の 設 定 を 記 述 します <document> <document-type id = "purchase"> <parent-document-type>imw</parent-document-type> <display-string-key>sample.imw.cap.012</display-string-key> <templete-url>sample/workflow/purchase/solr/purchase_template.jsp</templete-url> <require-fields> <field name="matter_number_string"/> <field name="flow_name_string"/> <field name="item_name_string"/> </require-fields> </document-type> </document> リスナで アプリケーションデータを 登 録 していない 場 合 リスナで アプリケーションデータを 登 録 した 場 合 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 53
intra-mart プログラミングガイド 7.4 画 面 入 力 情 報 の 保 持 申 請 画 面 一 時 保 存 画 面 申 請 ( 起 票 案 件 ) 画 面 再 申 請 画 面 処 理 画 面 確 認 画 面 において 閉 じる リンク によって 各 画 面 を 閉 じた 後 に 画 面 の 再 表 示 を 行 ったとき 入 力 内 容 を 保 持 した 状 態 で 画 面 表 示 されます 当 機 能 の 仕 様 概 要 は 以 下 の 通 りです 各 処 理 画 面 の 閉 じる リンク 押 下 時 に 呼 出 元 ユーザコンテンツ 中 の 画 面 呼 出 用 タグライブラリによって 生 成 された FORM に 対 して imwworkflowparams というパラメータ 名 の hidden タグを 追 加 し そこに 入 力 情 報 を 格 納 再 度 画 面 表 示 した 際 にリクエストパラメータとして imwworkflowparams が 含 まれている 場 合 画 面 の 初 期 表 示 処 理 で 保 持 情 報 による 復 元 表 示 を 実 行 リクエストパラメータの 受 け 渡 しによって 入 力 情 報 再 表 示 が 行 われるため ユーザコンテンツが 単 一 画 面 構 成 の 場 合 は 意 識 する 必 要 がありませんが 複 数 画 面 で 構 成 されている 場 合 は 以 下 対 応 が 必 要 です 各 処 理 画 面 を 閉 じてからユーザコンテンツ 間 の 画 面 遷 移 が 行 われ その 後 入 力 内 容 を 保 持 した 状 態 で 各 処 理 画 面 の 再 表 示 を 行 う 必 要 がある 場 合 imwworkflowparams パラメータをユーザコンテンツ 間 で 引 き 回 し 各 処 理 画 面 表 示 用 のタグライブラリの Body コンテンツ 内 に imwworkflowparams パラメータを hidden タグで 明 示 的 に 記 述 してください < ユーザコンテンツ 複 数 画 面 構 成 での 実 装 イメージ > ユーザコンテンツ 画 面 ( 入 力 ) 2 ユーザコンテンツ 間 で imwworkflowparams パラメータを 引 き 回 してください ユーザコンテンツ 画 面 ( 確 認 ) 1 閉 じる リンク 押 下 時 に imwworkflowparams パラメータが 処 理 画 面 呼 出 用 FORMにセットされます 3 処 理 画 面 呼 出 用 FORMの パラメータとして imwworkflowparams をセットしてください 処 理 画 面 Page 54 Copyright 2000-2011 株 式 会 社 NTT データ イントラマート All rights Reserved.
7 カスタマイズ 7.5 呼 び 出 し 画 面 からのコールバック 関 数 の 指 定 申 請 画 面 一 時 保 存 画 面 申 請 ( 起 票 案 件 ) 画 面 再 申 請 画 面 処 理 画 面 確 認 画 面 において 閉 じる リンク によって 各 画 面 を 閉 じる 際 のコールバック 関 数 として 呼 出 元 のユーザコンテンツ 画 面 の 関 数 を 実 行 する 方 法 に ついて 説 明 します 7.5.1 実 装 例 サンプルとして 提 供 されている 物 品 購 買 の 申 請 書 において GreyBox で 表 示 される 申 請 画 面 の 閉 じる 処 理 が 実 行 された 際 に 物 品 購 買 の 申 請 書 で 定 義 された 関 数 をコールバック 関 数 として 実 行 する 例 です 下 記 のプログラムが コールバック 関 数 の 実 行 を 行 うための 処 理 が 記 述 されたプログラムとなります スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/screen/apply_callback.html JavaEE 開 発 モデル %ApplicationRuntime%/doc/imart/sample/workflow/purchase/apply_callback.jsp 上 記 ファイルを 以 下 のファイル 名 に 変 更 し 上 書 き 保 存 することで 申 請 画 面 において 本 機 能 の 動 作 確 認 を 行 うことが 出 来 ます スクリプト 開 発 モデル %ResourceService%/pages/src/sample/workflow/purchase/screen/apply.html JavaEE 開 発 モデル %ApplicationRuntime%/doc/imart/sample/workflow/purchase/apply.jsp 作 成 者 : 株 式 会 社 NTT データ イントラマート Page 55