2.4.4 一括承認用受信ボックス画面のカスタマイズ

一括承認受信ボックス画面で,承認作業の案件だけが表示されるようにカスタマイズします。

カスタマイズ後の一括承認受信ボックス画面は,次のようになります。

図2-13 カスタマイズ後の一括承認用受信ボックス画面

[図データ]

BLCLinboxItemBC.jspでは,「BLC_INBOX_WI_LIST_V」ビューに対し,SQL文を発行しています。「BLC_INBOX_WI_LIST_V」ビューは,拡張受信ボックス機能の仕組みを利用しています。

画面に承認作業の案件だけを表示させるには,SQLに「作業定義名が"承認"である案件を取得する」という条件を追加します。このとき,「2.3 承認業務ステップのスキップ」のカスタマイズをしているかどうかでカスタマイズ方法が異なります。

承認業務ステップのスキップのカスタマイズをしている場合
2.3 承認業務ステップのスキップ」で設定した提供価格の合計を表示するカラム「NMITEM2」を追加したビューを作成し,このビューに対してSQL文を発行するようにします。このため,次のカスタマイズが必要になります。
  • 「BLC_INBOX_WI_LIST2_V」ビューの作成(新規に作成)
  • BLCLinboxItemBC.jspの表示カラムの変更
  • BLCLinboxItemBC.jspのSQLの変更
承認業務ステップのスキップのカスタマイズをしていない場合
「BLC_INBOX_WI_LIST_V」ビューに対して,条件を追加したSQL文を発行するようにします。このため,次のカスタマイズが必要になります。
  • BLCLinboxItemBC.jspのSQLの変更

 

一括承認用受信ボックス画面をカスタマイズする手順を次に示します。

承認業務ステップのスキップのカスタマイズをしている場合は(1)から(3)を,承認業務ステップのスキップのカスタマイズをしていない場合は(3)を実施してください。

<この項の構成>
(1) 「BLC_INBOX_WI_LIST2_V」ビューの作成
(2) BLCLinboxItemBC.jspの表示カラムの変更
(3) BLCLinboxItemBC.jspのSQLの変更

(1) 「BLC_INBOX_WI_LIST2_V」ビューの作成

承認業務ステップのスキップのカスタマイズをしていない場合,ここで説明しているカスタマイズは不要です。(3)に進んでください。

「BLC_INBOX_WI_LIST_V」ビューには,提供価格の合計カラム(NMITEM2カラム)が存在しないため,提供価格の合計カラムを追加した「BLC_INBOX_WI_LIST2_V」ビューを作成するよう定義します。

「BLC_INBOX_WI_LIST2_V」ビューの定義例を次に示します。

(データベースがHiRDBの場合)

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
/*結合する条件を追加してください*/
;

太字部分が,提供価格の合計カラムを追加している部分になります。

(データベースがOracleの場合)

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
;

太字部分が,提供価格の合計カラムを追加している部分になります。

(データベースがSQL Serverの場合)

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
/*結合する条件を追加してください*/
;

太字部分が,提供価格の合計カラムを追加している部分になります。

(2) BLCLinboxItemBC.jspの表示カラムの変更

承認業務ステップのスキップのカスタマイズをしていない場合,ここで説明しているカスタマイズは不要です。(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 */
   };

太字部分が,表示カラムを追加している部分になります。

(3) BLCLinboxItemBC.jspのSQLの変更

承認業務ステップのスキップのカスタマイズをしていない場合,ここで説明している「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");

太字部分が,変更部分です。