電子フォームワークフローセット アプリケーション開発ガイド
一括承認受信ボックス画面で,承認作業の案件だけが表示されるようにカスタマイズします。
カスタマイズ後の一括承認受信ボックス画面は,次のようになります。
図2-12 カスタマイズ後の一括承認受信ボックス画面
BLCLinboxItemBC.jspでは,「BLC_INBOX_WI_LIST_V」ビューに対し,SQL文を発行しています。「BLC_INBOX_WI_LIST_V」ビューは,拡張受信ボックス機能の仕組みを利用しています。
画面に承認作業の案件だけを表示させるには,SQLに「作業定義名が"承認"である案件を取得する」という条件を追加します。このとき,「2.3 承認業務ステップのスキップ」のカスタマイズをしているかどうかでカスタマイズ方法が異なります。
一括承認受信ボックス画面をカスタマイズする手順を次に示します。
承認業務ステップのスキップのカスタマイズをしている場合は(1)から(3)を,承認業務ステップのスキップのカスタマイズをしていない場合は(3)を実施してください。
承認業務ステップのスキップのカスタマイズをしていない場合,ここで説明しているカスタマイズは不要です。(3)に進んでください。
「BLC_INBOX_WI_LIST_V」ビューには,提供価格の合計カラム(NMITEM2カラム)が存在しないため,提供価格の合計カラムを追加した「BLC_INBOX_WI_LIST2_V」ビューを作成するよう定義します。
「BLC_INBOX_WI_LIST2_V」ビューの定義例を次に示します。
CREATE READ ONLY VIEW BLC_INBOX_WI_LIST2_V ( CDPINAME, /*案件名*/ CDPI, /*案件ID*/ NMBP, /*ビジネスプロセス定義名*/ NMAPPLICANT, /*申請者名*/ NMAPPLICANTBELONGTO, /*申請者所属組織略称*/ DTCREATEPI, /*案件開始日時*/ DTLIMITPI, /*案件処理期限*/ CDWI, /*作業ID*/ NMWIDEF, /*作業定義名*/ NMWI, /*作業名*/ DTCREATEWI, /*作業開始日時*/ CDPARTICIPANT, /*作業者ID*/ NMITEM2 /*提供価格合計*/ ) AS SELECT CSCIW.ProcessInstanceName, CSCIW.ProcessInstanceID, BLC.NMBP, BLC.NMAPPLICANT, BLC.NMAPPLICANTBELONGTO, BLC.DTCREATE, BLC.DTLIMIT, CSCIW.ID, CSCIW.WorkDefinitionName, CSCIW.Name, CSCIW.CreationDate, CSCIW.Participant, BLC.NMITEM2 /*追加したカラムにマッピングするカラムを追加してください。*/ FROM BLC.BLC_WORK_ITEM CSCIW ,BLC_INBOX_T BLC /*結合するユーザテーブルを追加してください*/ WHERE CSCIW.StateCode='j' AND BLC.CDPINAME=CSCIW.ProcessInstanceName /*結合する条件を追加してください*/ ; |
太字部分が,提供価格の合計カラムを追加している部分になります。
CREATE OR REPLACE VIEW BLC_INBOX_WI_LIST2_V ( CDPINAME, /*案件名*/ CDPI, /*案件ID*/ NMBP, /*ビジネスプロセス定義名*/ NMAPPLICANT, /*申請者名*/ NMAPPLICANTBELONGTO, /*申請者所属組織略称*/ DTCREATEPI, /*案件開始日時*/ DTLIMITPI, /*案件処理期限*/ CDWI, /*作業ID*/ NMWIDEF, /*作業定義名*/ NMWI, /*作業名*/ DTCREATEWI, /*作業開始日時*/ CDPARTICIPANT, /*作業者ID*/ NMITEM2 /*提供価格合計*/ ) AS SELECT CSCIW.ProcessInstanceName, CSCIW.ProcessInstanceID, BLC.NMBP, BLC.NMAPPLICANT, BLC.NMAPPLICANTBELONGTO, BLC.DTCREATE, BLC.DTLIMIT, CSCIW.ID, CSCIW.WorkDefinitionName, CSCIW.Name, CSCIW.CreationDate, CSCIW.Participant, BLC.NMITEM2 /*追加したカラムにマッピングするカラムを追加してください。*/ FROM BLC.BLC_WORK_ITEM CSCIW ,BLC_INBOX_T BLC /*結合するユーザテーブルを追加してください*/ WHERE CSCIW.StateCode='j' AND BLC.CDPINAME=CSCIW.ProcessInstanceName /*結合する条件を追加してください*/ WITH READ ONLY ; |
太字部分が,提供価格の合計カラムを追加している部分になります。
CREATE VIEW BLC_INBOX_WI_LIST2_V ( CDPINAME, /*案件名*/ CDPI, /*案件ID*/ NMBP, /*ビジネスプロセス定義名*/ NMAPPLICANT, /*申請者名*/ NMAPPLICANTBELONGTO, /*申請者所属組織略称*/ DTCREATEPI, /*案件開始日時*/ DTLIMITPI, /*案件処理期限*/ CDWI, /*作業ID*/ NMWIDEF, /*作業定義名*/ NMWI, /*作業名*/ DTCREATEWI, /*作業開始日時*/ CDPARTICIPANT, /*作業者ID*/ NMITEM2 /*提供価格合計*/ ) AS SELECT CSCIW.ProcessInstanceName, CSCIW.ProcessInstanceID, BLC.NMBP, BLC.NMAPPLICANT, BLC.NMAPPLICANTBELONGTO, BLC.DTCREATE, BLC.DTLIMIT, CSCIW.ID, CSCIW.WorkDefinitionName, CSCIW.Name, CSCIW.CreationDate, CSCIW.Participant, BLC.NMITEM2 /*追加したカラムにマッピングするカラムを追加してください。*/ FROM BLC.BLC_WORK_ITEM CSCIW ,BLC_INBOX_T BLC /*結合するユーザテーブルを追加してください*/ WHERE CSCIW.StateCode='j' AND BLC.CDPINAME=CSCIW.ProcessInstanceName /*結合する条件を追加してください*/ ; |
太字部分が,提供価格の合計カラムを追加している部分になります。
承認業務ステップのスキップのカスタマイズをしていない場合,ここで説明しているカスタマイズは不要です。(3)に進んでください。
BLCLinboxItemBC.jspの初期化部分に,提供価格の合計カラム(NMITEM2カラム)を追加します。
BLCLinboxItemBC.jspの表示カラムの変更例を次に示します。BLCLinboxItemBC.jspは,「<BLC2のインストールディレクトリ>\tools\sample\BatchComplete\<データベース種別>\webhome\app\main」の下にあります。
/** make column titles*/
String[] colTitle = {
BLCSTRPortal.get(BLCSTRPortal.PINAME),
BLCSTRPortal.get(BLCSTRPortal.WORK_NAME),
BLCSTRPortal.get(BLCSTRPortal.BPNAME),
BLCSTRPortal.get(BLCSTRPortal.ARRIVED_TIME),
BLCSTRPortal.get(BLCSTRPortal.APPLY_NAME),
BLCSTRPortal.get(BLCSTRPortal.APPLY_ORG),
BLCSTRPortal.get(BLCSTRPortal.START_TIME)
,"NMITEM2" /* add */
};
/** access column names*/
String[] column = {
"CDPINAME",
"NMWIDEF",
"NMBP",
"DTCREATEWI",
"NMAPPLICANT",
"NMAPPLICANTBELONGTO",
"DTCREATEPI"
,"NMITEM2" /* add */
};
/** getter instances*/
BLCInboxVColumn[] getter = {
BLCInboxVColString.getInstance("CDPINAME"),
BLCInboxVColNMWI.getInstance(),
BLCInboxVColString.getInstance("NMBP"),
BLCInboxVColDTCreateWI.getInstance(),
BLCInboxVColString.getInstance("NMAPPLICANT"),
BLCInboxVColString.getInstance("NMAPPLICANTBELONGTO"),
BLCInboxVColDTCreatePI.getInstance()
,BLCInboxVColString.getInstance("NMITEM2") /* add */
};
/** anchor flags true:anchor/false:text */
boolean[] isAnchor ={
true,
false,
false,
false,
false,
false,
false
,false /* add */
};
|
太字部分が,表示カラムを追加している部分になります。
承認業務ステップのスキップのカスタマイズをしていない場合,ここで説明している「BLC_INBOX_WI_LIST2_V」は「BLC_INBOX_WI_LIST_V」に読み替えてください。
作業定義名が"承認"である案件を取得するようSQLを変更します。"承認"というテキストは,ストリングリソースプロパティファイルから取得するようにします。
BLCLinboxItemBC.jspのSQLの変更例を次に示します。BLCLinboxItemBC.jspは,「<BLC2のインストールディレクトリ>\tools\sample\BatchComplete\<データベース種別>\webhome\app\main」の下にあります。
final int COMPLETE = 50000;
StringBuffer sql =
new StringBuffer("SELECT * FROM BLC_INBOX_WI_LIST2_V WHERE CDPARTICIPANT='")
.append(
BLCStringOperation.escapeDBString(
blc.getAuthenticateObject().getUserId()))
.append("'");
if(strSelectBp.length() > 0) {
sql.append(" AND NMBP='")
.append(BLCStringOperation.escapeDBString(strSelectBp))
.append("'");
}
sql.append(" AND NMWIDEF = '")
.append(BLCSTRPortal.get(COMPLETE))
.append("'");
if(strSkey.length() > 0) {
sql.append(" ORDER BY ").append(strSkey).append(" ").append(strSmode);
}
sql.append(" WITHOUT LOCK NOWAIT");
|
太字部分が,変更部分です。
All Rights Reserved. Copyright (C) 2007, 2010, Hitachi, Ltd.