uCosminexus 電子フォームワークフロー 解説

[目次][用語][索引][前へ][次へ]

5.8.2 ユーザアプリケーションからの申請BLCWFPIStartクラス

ユーザアプリケーションなどBLC帳票の画面以外から案件を投入するようカスタマイズできます。これによって,案件投入(申請)はシステムのバッチ処理で一括申請し,承認など申請よりあとの作業は,帳票画面で行うというようなことができます。例えば,次のようなカスタマイズができます。

カスタマイズ方法

ユーザアプリケーションなどから案件を投入できるようにする方法を次に示します。

  1. 実行情報オブジェクト(BLCInfo)を生成し,ユティリティ専用のBLC初期化処理(BLCInfo#initUtil)を実行します。
  2. DBアクセスオブジェクト(BLCDBAccess)を生成し,オープンします。
  3. ユーザの業務DBへのアクセス処理を行います。
    トランザクションの決着はstartメソッド内で行います。
  4. BLCValDicクラスのインスタンスを生成します。
  5. BLCValDicクラスのputメソッドなどを利用して,BLCValDicに対して案件の情報を設定します。
  6. DBアクセスオブジェクト,申請者ID,およびBLCValDicを引数として,startメソッドを実行します。
    startメソッド内でエラーがあった場合は,BLC例外をスローします。このとき,rollbackはstartメソッド内で行うため,ユーザがrollback処理を作成する必要はありません。
  7. ユティリティ専用のBLC終了処理(BLCInfo#finalUtil)を実行します。

帳票データについては,次の方法で設定します。

次にサンプルで提供している,販売契約稟議EUR帳票をベースにしたアプリケーション名が”UPApply”の場合の実装例を示します。

public static void main( String args[] ) throws BLCException {
 
    BLCInfo info = null;
    BLCDBAccess db = null;
 
    String l_userID = "A02203";    // UP申請者
    String l_SendToData = "A02202"; // 宛先設定
 
    try {
         // BLCInfoクラスオブジェクトを構築
        info = new BLCInfo();
        // ユティリティ専用のBLC初期化処理
        info.initUtil( "UPApply", "UPApply" );
        // BLCDBAccessクラスオブジェクトを構築
        db = new BLCDBAccess( "BLCMASTER" );
        // BLCValDicクラスオブジェクトを構築
        BLCValDic upFormData = new BLCValDic();
 
        // 案件情報の設定
        // ビジネスプロセス名称
        upFormData.put("BLC_BpName",    "販売契約稟議EUR");
        // 帳票ID
        upFormData.put("BLC_FormID",    "SampleConsultationEUR");
        // 帳票バージョン
        upFormData.put("BLC_FormVer",   "1");
        // 帳票のファイル名
        upFormData.put("BLC_StartForm",
               "/form/Hitachi/SampleConsultationEUR/SampleConsultationEUR_1.jsp");
        // 案件の処理期限
        upFormData.put("BLC_PILimit",   "20201231235959");
        // 案件状態名(任意の文字列)
        upFormData.put("BLC_PIStatus",  "処理中");
        // 次の作業の作業者ID
        upFormData.put("BLC_SendToData", l_SendToData);
        // 帳票属性項目値の上限(帳票属性がなければ0)
        upFormData.put("BLC_AttrNum",   "10");
        // 帳票モジュールプレフィックス
        upFormData.put("BLC_MdlList",   "mBLCEUR");
        // ボタン名
        upFormData.put("BLC_AcceptMode",  "UP申請");
        // ボタンID
        upFormData.put("BLC_AcceptID",  "UPSTART");
        // forward先URL
        upFormData.put("BLC_CloseObj",  " ");
 
        // データベースに接続
        db.open();
        // BLCWFPIStartオブジェクトを構築
        BLCWFPIStart upStart = new BLCWFPIStart();
 
        // 案件を申請
        upStart.start(db,l_userID,upFormData);
 
    } catch ( BLCException exp ) {
        System.out.println( exp.getMessageIdText() + exp.getMessageText() );
    } catch ( Exception exp ) {
        System.out.println( "UserProgram Exception=" +exp );
    } catch ( Throwable exp ) {
        System.out.println( "UserProgram Throwable=" +exp );
    } finally {
        try {
            // データベースの切断
            db.close();
        } catch ( BLCException exp ) {
        }
        // ユティリティ専用のBLC終了処理
        info.finalUtil();
    }
}
環境設定
UP申請を使用する場合の環境設定について次に記載します。
  1. 環境変数の設定
    次の環境変数を設定します。

    表5-23 環境変数

    # 変数名 変数値
    1 COSMINEXUS_HOME <Cosminexusインストールディレクトリ>
    2 CSCIW_HOME <CSCIWインストールディレクトリ>
    3 BLC2_HOME <BLC2インストールディレクトリ>
  2. UP申請用プロパティファイルの作成
    BLC.BLCpropertiesファイルをコピーして,<アプリケーション名>.BLCpropertiesを作成します。
    <例>
    アプリケーション名が”UPApply”でHiRDBを使用する場合の設定例を次に示します。
    ファイル名:%BLC2_HOME%\conf\UPApply.BLCproperties
    TracePath = C:\\Program Files\\HITACHI\\HBPM2\\logs
    TraceFileNum = 2
    TraceFileSize = 20971520
    TraceLevel = 20
    TraceEncoding=Shift_JIS
     
    BLCMASTER.drv = JP.co.Hitachi.soft.HiRDB.JDBC.HiRDBDriver
    BLCMASTER.url = jdbc:hitachi:hirdb://DBID=22200,DBHOST=<接続先ホスト名>,ENCODELANG=MS932
     
    BLCMASTER.method = direct
    BLCMASTER.properties = user=BLC,password=BLC
    BLCMASTER.name = java:comp/env/BLC
     
    RequestDataEncode = Shift_JIS
    TimeZone = GMT+09:00
  3. 実行時のクラスパス設定
    cjclstartapコマンドの-classpath引数に次の表に示す設定値を指定します。
    注 cjclstartapコマンドの詳細については,マニュアル「Cosminexus V9 アプリケーションサーバ リファレンス コマンド編」を参照してください。

    表5-24 クラスパス設定値

    # 設定値 備考
    1 %BLC2_HOME%\conf classpathの先頭に記載します。
    2 %BLC2_HOME%\blc\lib\blc.jar  
    3 %CSCIW_HOME%\lib\%CSCIW_HOME%\lib\csciw.jar  
    4 %COSMINEXUS_HOME%\CC\lib\hitj2ee.jar  
    5 C:\Program Files\HITACHI\HNTRLib2\classes\hntrlib2j.jar※1  
    6 <HiRDBインストールディレクトリ>\CLIENT\UTL\pdjdbc2.jar※2 HiRDBを使用する場合
    7 <Oracleインストールディレクトリ>\jdbc\lib\ojdbc6.jar※2 Oracle 11gを使用する場合
    8 <SQL Server JDBC Driver インストールディレクトリ>\sqljdbc_<バージョン>\<言語>\sqljdbc4.jar※2 SQL Serverを使用する場合
    注※1
    システムドライブがCドライブの場合の例を記載しています。
    注※2
    JDBCドライバの格納フォルダはデータベースのインストール先によって変わるため使用するデータベースのインストール先を参照してください。

注意事項
ユーザアプリケーションからの申請機能を利用して案件を投入し,帳票データが存在しない案件は,次の操作ができません。
  • [案件履歴]画面から内容確認画面を表示できません。この場合,KDLC1271-Eのメッセージが表示されます。
  • [案件履歴]画面から「送信ログからの申請」はできません。この場合,KDLC1271-Eのメッセージが表示されます。
  • CSCIWのAPIを使用する業務アプリケーションを作成する場合は,BLCのAPIを使用する場合と同様の手順で初期化したあと,BLCInfo#getCIWFactory()を使用して,CIWFactoryインスタンスを取得するようにします。
    BLCで使用するCSCIWの初期化およびCIWFactoryインスタンスはBLCInfoクラスで管理するため,CSCIWの初期化メソッドであるCIWAdmin#initializeCIWFactoryおよびCIWFactory#getInstanceはBLCの業務アプリケーションから呼び出さないでください。
    CSCIWのAPIの詳細は,マニュアル「uCosminexus Service Coordinator Interactive Workflow AP開発ガイド」を参照してください。
  • バッチ処理からJ2EEサーバ上のJSPを動作させる場合には,初期化処理に(BLCInfo#setInfoメソッド)を使用してください。ユティリティ専用BLC初期化処理(BLCInfo#initUtilメソッド)を使用すると,J2EEサーバ上のメッセージリソース情報がユティリティ用メッセージリソースに上書きされてしまい,エラーが発生します。
  • ユティリティ専用BLC初期化処理(BLCInfo#initUtilメソッド)を使用する場合には,パラメタには”BLC”以外の名称を指定して,バッチのトレースとJ2EEのトレースを分けてください。