uCosminexus 電子フォームワークフロー 解説
サーバ側のユーザ追加処理で,帳票ボタン処理などをカスタマイズするには,帳票クラスを継承して,BLCFormBaseクラスのメソッドをオーバーライドします。オーバーライドするBLCFormBaseクラスのメソッドを次に示します。
BLCFormBaseクラスについては,マニュアル「uCosminexus 電子フォームワークフロー APIリファレンス」の「BLCFormBaseクラス」の説明を参照してください。
サーバ側のユーザ追加処理で設定するエラー処理については,「2.4.6 サーバ側のユーザ追加処理で設定するエラー処理の概要」を参照してください。
表5-2 オーバーライドするBLCFormBaseクラスのメソッド
カスタマイズの種類 | BLCFormBaseクラスのメソッド | 備考 |
---|---|---|
帳票開始処理の追加 | ufsv_addFormStartUp | 帳票開始処理は,DBから帳票データを読み出す前に呼び出され,帳票の新規表示時だけ呼ばれます。 |
帳票前処理の追加 | ufsv_addFormPreparation | 帳票前処理は,DBからの案件情報や帳票データの呼び出し後,帳票のHTML生成処理の直前で呼ばれます。新規表示と再表示の両方で呼ばれます。 |
帳票タイトル表示処理の変更 | ufsv_overrideFormTitle | 帳票のタイトルHTMLを置き換えます。 |
コメント表示処理の変更 | ufsv_overrideCommentArea | 帳票のコメント記述テキスト領域のHTMLを置き換えます。 |
宛先選択表示処理の変更 | ufsv_overrideGetAvailableParticipant | 帳票の宛先選択領域のHTMLを置き換えます。 |
ボタン表示処理の変更 | ufsv_overrideSubmitButtons | 帳票の処理ボタンのHTMLを置き換えます。 |
ボタンDB更新前処理の追加 | ufsv_addButtonPreparation | 申請ボタンや承認ボタンなどのボタンをクリックしたあと,BLCの申請/承認処理の延長(BLCのDB処理の前)で呼ばれます。
|
ボタンDB更新処理の追加 | ufsv_addButtonExecution | ボタンDB更新前処理のあと,BLCのDBトランザクション中に呼ばれます。
|
ボタンDB更新後処理の追加 | ufsv_addButtonPostHandling | ボタンDB更新処理のあと,BLCとCSCIWの同一トランザクション処理の終了後に呼ばれます。 ただし,ボタンDB更新前処理,ボタンDB更新処理,またはBLCとCSCIWの同一トランザクション処理のどれかでエラーが発生した場合は呼ばれません。
|
案件履歴表示処理の変更 | ufsv_overrideProcessHistory | 帳票の承認履歴領域のHTMLを置き換えます。 |
宛先選択リスト情報取得処理の変更 | ufsv_overrideGetDirsData | 帳票の宛先選択リストの取得処理を変更します。 |
表5-2の「宛先選択表示処理の変更」メソッドは,帳票の宛先選択部分に表示されるHTML全体を置き換えるカスタマイズです。
BLCFormTargetクラスによる表示動作を変更するために,帳票前処理で,次に示すBLCValDicクラスのキーによって,表示条件を変更できます。
BLCFormTargetクラスについては,マニュアル「uCosminexus 電子フォームワークフロー APIリファレンス」の「BLCFormTargetクラス」の説明を参照してください。
宛先選択の表示方法はそのままで,表示するデータだけをカスタマイズしたい場合は,「宛先選択リスト情報取得処理の変更」メソッドをオーバーライドして実装します。また,宛先選択リストのデータが不要な場合(宛先選択リストを表示しないようBLSGで設定している場合)は,このメソッドを空のメソッドでオーバーライドすることによって,データの取得処理(SQL文発行)を抑止できます。
BLCFormButtonクラスによる処理ボタンの表示動作を変更するために,帳票前処理で,BLCFormButtonクラスのメソッドによって,ボタンの配置順序,ボタン名,および動作JavaScript関数を変更できます。
BLCFormButtonクラスの詳細は,マニュアル「uCosminexus 電子フォームワークフロー APIリファレンス」の「BLCFormButtonクラス」の説明を参照してください。
表5-2の「ボタン表示処理の変更」のメソッドは,帳票の処理ボタン部分に表示されるHTML全体を置き換えるカスタマイズです。
帳票前処理で帳票のタイトル文字を変更する例を次に示します。
図5-1 帳票のタイトル文字のカスタマイズ例
サーバ側ユーザ追加処理を行う際,BLCFormBaseクラスのメソッドを呼び出す順序を説明します。
帳票開始時には,次の順序でBLCFormBaseクラスのメソッドを呼び出します。
申請または承認時には,次の順序でBLCFormBaseクラスのメソッドを呼び出します。
DBアクセス専用帳票の読み込み時には,「(a) 帳票開始時」と同じ順序でBLCFormBaseクラスのメソッドを呼び出します。
DBアクセス専用帳票の更新時には,「(b) 申請または承認時」と同じ順序でBLCFormBaseクラスのメソッドを呼び出します。
カスタム申請帳票のソース帳票で申請書の表示時には,ターゲット帳票では,「(a) 帳票開始時」と同じ順序でBLCFormBaseクラスのメソッドを呼び出します。
案件履歴表示時には,次の順序でBLCFormBaseクラスのメソッドを呼び出します。
内容確認表示時には,「(a) 帳票開始時」と同じ順序でBLCFormBaseクラスのメソッドを呼び出します。
保留時には,次の順序でBLCFormBaseクラスのメソッドを呼び出します。
ユーザ追加処理クラスでアクセスできる項目を次に示します。
表5-3 ユーザ追加処理クラスでアクセスできる項目
項目名 | 変数名 | 内容 | 設定の可否 |
---|---|---|---|
ビジネスプロセス名 | BLC_BpName | ビジネスプロセス名 | − |
作業名 | BLC_NodeName |
|
− |
完全作業名 | BLC_NodeInstName |
|
− |
処理モード | BLC_ProcMode |
|
− |
案件ID | BLC_PIID |
|
− |
申請ID | BLC_PIName |
|
○ |
作業ID | BLC_WIID |
|
− |
帳票ID | BLC_FormID | 帳票ID | − |
申請作業者ID | BLC_ApplyUID | 申請をしたユーザID | − |
処理期限 | BLC_PILimit |
|
○ |
帳票モジュール表示種別 | BLC_show_<帳票モジュールID> |
|
− |
案件状態 | BLC_PIStatus | 申請時は"処理中",帳票ジェネレータ(BLSG)機能の業務完了指示作業で"完了"を設定します。値を設定する場合は,ボタンDB更新前処理で設定する必要があります。 | ○ |
宛先ユーザ | BLC_SendToData |
|
○ |
フッターHTML | BLC_PageFooterHtml | 帳票前処理で指定すると,帳票の最下部にエンコードしないで,値文字列をそのまま出力します。 | ○ |
DBアクセス定義ファイルパス | BLC_DBDefFile | BLCDBDefクラスを使用する場合のloadメソッドに指定するフルパス情報です。実行中の帳票のDBアクセス定義ファイル名を保持します。 | ○ |
BODY bgcolor指定 | BLC_htmlbody_bgcolor | 帳票のBODYタグに出力するbgcolorタグオプションの値を指定できます。 | ○ |
BODYオプションタグ指定 | BLC_htmlbody_option | 帳票のBODYタグに出力するbgcolor,onLoad,およびonUnload以外のタグオプションを指定できます。タグオプションと値全体を文字列で指定します。 | ○ |
ボタン名 | BLC_AcceptMode | ボタンDB更新前処理で参照できます。 | − |
ボタンID | BLC_AcceptID | ボタンDB更新前処理で参照できます。 | − |
帳票モジュールプレフィックスリスト | BLC_MdlList |
|
− |
履歴項目数 | phist_total |
|
− |
業務ステップ名 | phist_actdef_$n |
|
− |
作業名 | phist_winm_$n |
|
− |
作業日付 | phist_date_$n | 承認履歴の作業日付がYYYYMMDDHHMMSSの形式で格納されています。 | − |
実行処理名 | phist_exenm_$n | 承認履歴の処理名(ボタン名)が格納されています。 | − |
実行処理ID | phist_exeid_$n | 承認履歴の処理ID(ボタンID)が格納されています。 | − |
作業者組織略称 | phist_parblg_$n | 承認履歴の作業者組織略称が格納されています。 | − |
作業者名 | phist_parnm_$n | 承認履歴の作業者氏名が格納されています。 | − |
作業者ID | phist_parid_$n | 承認履歴の作業者IDが格納されています。 | − |
案件属性の項目数 | BLC_AttrNum | 案件属性の項目を利用する数を指定します。 デフォルトは10です。 0〜10の値を指定してください。 0は項目値を利用しない場合に指定します。 1〜10の値を指定した場合は,指定した値の個数の項目値を利用できます。 0〜10以外の値を指定した場合は,正常に動作しません。 値を変更しない場合は,申請/承認などを行った次ノードでも値が引き継がれます。 値を設定する場合は,ボタンDB更新前処理で指定してください。 |
○ |
案件属性の項目値 | BLC_AttrData$n | 案件属性の項目値を指定します。 デフォルトは""(空文字列)です。$nには,「1〜BLC_AttrNumで指定した値」を指定してください。 $nにBLC_AttrNumで指定した値の範囲以外を指定した場合は,案件属性の項目値として有効になりません。 値を変更しない場合は,申請/承認などを行った次ノードでも値が引き継がれます。 値を設定する場合は,ボタンDB更新前処理で指定してください。 |
○ |
ユーザ追加項目 | (例)u_userdata | ユーザ追加処理で利用する任意の値を格納/参照できます。 "u"で始まるキー名を使用できます。 |
○ |
帳票の最下部にデバッグ情報を表示する帳票前処理メソッドの例を次に示します。
図5-2 帳票の最下部にデバッグ情報を表示する帳票前処理メソッド
帳票が送信するデータや帳票表示時のデータは,帳票ページの処理開始時にBLCValDicクラスのキーにマップします。帳票前処理やボタンDB更新前処理とBLCの間は,BLCValDicクラスが保持するキーと値の組(データ)をインタフェースに各機能を実現します。
BLCValDicクラスの"u"で始まるキー名は,ユーザ追加処理に使用できます。そのほかのキー名は,BLCで使用するので,注意が必要です。
BLCで帳票を実行すると,帳票の各項目のデータは,BLCValDicオブジェクトに格納されます。各項目のデータは,帳票内でユニークに付けられた項目のキー名("帳票モジュールプレフィックス"+"項目名")と,項目の値を組として,BLCValDicオブジェクトにマッピングされます。
各項目のデータがBLCValDicオブジェクトに格納されるイメージを,次に示します。
図5-3 BLCValDicオブジェクトへのデータの格納
BLCでは,BLSGで定義された項目変数名を,次の規則でBLCValDicオブジェクトのキー名に変換します。項目のデータを使用する場合は,キー名を使用してBLCValDicオブジェクトにアクセスします。
図5-3の場合,DBアクセス定義で定義された項目変数"item.module1"からデータベースへの出力は,BLCValDicクラスの"m1_item"キー対応する値をデータベースに出力する処理となります。また,データベースから項目変数"item.module2"への入力は,データベース上のデータを,"m2_item"キーに対応する値としてBLCValDicオブジェクトに格納する処理となります。
BLC帳票では,「申請帳票」と「承認帳票」の2種類の帳票ごとに,各項目の表示属性を帳票ジェネレータ(BLSG)で定義できます。
項目の表示属性の変更機能を使用してユーザ追加処理をJavaで記述することによって,ビジネスプロセスに複数の承認ノードが存在する場合でも,ノードごとに項目変数の表示属性を変更できるようになります。
項目の表示属性変更機能では,次のメソッドをBLCFormControlクラスで提供しています。
setInputItem:項目の表示属性を「入力」に設定します。
setReferItem:項目の表示属性を「参照」に設定します。
setHiddenItem:項目の表示属性を「非表示」に設定します。
これらのメソッドは,次のどちらかのユーザ追加処理メソッドで使用します。
項目の表示属性変更機能の実装例を次に示します。
この例では,承認ノード「承認-承認」で項目「m1_item1」を入力属性に変更しています。
// パッケージ宣言 package jp.co.Hitachi.soft.blc.[パッケージ名]; //インポート文 import java.io.*; import java.util.*; import jp.co.Hitachi.soft.blc.*; // ユーザ定義クラス public class [ユーザ定義クラス名] extends [BLSG自動生成帳票クラス名] { : 省略 : // 帳票前処理の追加 public void usfv_addFormPreparation( ) throws BLCException { String strProcMode = null; String strNodeName = null; try{ // 処理モード取得 strProcMode = blse.m_DataValue.item("BLC_ProcMode"); // 完全作業名取得 strNodeName = blse.getNodeName(); if(strProcMode.equals("1") && strNodeName.equals("承認-承認")){ // 処理モードが「1」,かつ作業名が「承認-承認」の場合 // 項目「m1_item1」を入力に設定 blse.setInputItem("m1_item1"); } } catch( Exception ex){ BLCException blcEx = BLCException.getUserException( ex, 50001, new String [] { "arg1"} ); throw blcEx; } } }
All Rights Reserved. Copyright (C) 2010, 2014, Hitachi, Ltd.