uCosminexus 電子フォームワークフロー アプリケーション開発ガイド

解説・手引書

3020-3-Q33-30

目　　次

前書き

変更内容

はじめに

1.　Web帳票アプリケーションの開発

1.1　Web帳票アプリケーションの開発の概要

1.2　EUR Form連携帳票の開発の流れ

1.3　BLC帳票の開発の流れ

1.4　カスタマイズ

2.　Web帳票アプリケーションのカスタマイズ

2.1　サンプル「販売契約稟議EUR」のカスタマイズ

2.1.1　サンプル「販売契約稟議EUR」の概要

2.1.2　カスタマイズの準備

2.1.3　カスタマイズの概要

2.1.4　Web帳票アプリケーションの開発での位置づけ

2.1.5　参照先

2.2　日付の自動設定

2.2.1　カスタマイズするファイル

2.2.2　EUR Form帳票定義ファイルのカスタマイズ

2.2.3　帳票の生成とBLC実行環境へのデプロイ

2.2.4　参照先

2.3　承認業務ステップのスキップ

2.3.1　カスタマイズするファイル

2.3.2　ビジネスプロセス定義のカスタマイズ（分岐条件のカスタマイズ）

2.3.3　ビジネスプロセス定義のカスタマイズ（業務ステップの完了条件のカスタマイズ）

2.3.4　ユーザ追加処理のカスタマイズ

2.3.5　帳票の生成，BLC実行環境へのデプロイとワーク管理データベースへの登録

2.3.6　参照先

2.4　承認作業での一括承認

2.4.1　カスタマイズするファイル

2.4.2　ストリングリソースプロパティファイルのカスタマイズ

2.4.3　一括承認用受信ボックス（業務別件数）画面のカスタマイズ

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

2.4.5　BLC実行環境へのデプロイ

2.4.6　参照先

2.5　複数の宛先の選択

2.5.1　カスタマイズするファイル

2.5.2　EUR Form帳票定義ファイルのカスタマイズ

2.5.3　ビジネスプロセス定義および振り分けルール定義のカスタマイズ

2.5.4　ユーザ追加処理のカスタマイズ

2.5.5　帳票定義のカスタマイズ

2.5.6　帳票の生成，BLC実行環境へのデプロイとワーク管理データベースへの登録

2.5.7　参照先

付録

付録A　Web帳票アプリケーションの開発で使用する主な処理

付録A.1　フォームデータの取得

付録A.2　宛先ドロップダウンリストの追加

付録B　このマニュアルの参考情報

付録B.1　関連マニュアル

付録B.2　このマニュアルでの表記

付録B.3　英略語

付録C　用語解説

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2010, 2014, Hitachi, Ltd.

前書き

■ 対象製品

P-2443-A294　 uCosminexus 電子フォームワークフロー Set　 09-50　（適用OS：Windows Server 2008 x86，Windows Server 2008 x64※，Windows Server 2008 R2※，Windows Server 2012※，Windows Server 2012 R2※）
P-2443-AA94　 uCosminexus 電子フォームワークフロー ユーザライセンスセット　 09-50　（適用OS：Windows Server 2008 x86，Windows Server 2008 x64※，Windows Server 2008 R2※，Windows Server 2012※，Windows Server 2012 R2※）
P-2943-A294　 uCosminexus 電子フォームワークフロー Set　 09-50　（適用OS：Windows Server 2008 x64，Windows Server 2008 R2，Windows Server 2012，Windows Server 2012 R2）
P-2943-AA94　 uCosminexus 電子フォームワークフロー ユーザライセンスセット　 09-50　（適用OS：Windows Server 2008 x64，Windows Server 2008 R2，Windows Server 2012，Windows Server 2012 R2）
P-2643-A394　 uCosminexus 電子フォームワークフロー Developer　 09-50　（適用OS：Windows Vista，Windows 7，Windows 7 x64※，Windows 8.1，Windows 8.1 x64※）
P-2943-A394　 uCosminexus 電子フォームワークフロー Developer　 09-50　（適用OS：Windows 7 x64，Windows 8.1 x64）

注※　WOW64（Windows On Windows 64）環境で動作します。

■ 輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。
なお、不明な場合は、弊社担当営業にお問い合わせください。

■ 商標類

Microsoft Office Wordは，米国Microsoft Corporation の商品名称です。
Microsoft OfficeおよびExcelは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
MicrosoftおよびSQL Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
OracleとJavaは，Oracle Corporation 及びその子会社，関連会社の米国及びその他の国における登録商標です。
Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Vistaは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Eclipseは，開発ツールプロバイダのオープンコミュニティであるEclipse Foundation, Inc.により構築された開発ツール統合のためのオープンプラットフォームです。
その他記載の会社名，製品名は，それぞれの会社の商標もしくは登録商標です。

■ マイクロソフト製品の表記について

このマニュアルでは，マイクロソフト製品の名称を次のように表記しています。

表記
製品名

Excel
Microsoft(R) Office Excel

SQL Server
Microsoft(R) SQL Server 2005

Windows 7
Microsoft(R) Windows(R) 7 Professional 日本語版
Microsoft(R) Windows(R) 7 Enterprise 日本語版
Microsoft(R) Windows(R) 7 Ultimate 日本語版

Windows 7 x64
Microsoft(R) Windows(R) 7 Professional日本語版(64ビット版)
Microsoft(R) Windows(R) 7 Enterprise日本語版(64ビット版)
Microsoft(R) Windows(R) 7 Ultimate日本語版(64ビット版)

Windows 8.1
Windows(R) 8.1 Pro 日本語版
Windows(R) 8.1 Enterprise 日本語版

Windows 8.1 x64
Windows(R) 8.1 Pro 日本語版(64ビット版)
Windows(R) 8.1 Enterprise 日本語版(64ビット版)

Windows Server 2008
Microsoft(R) Windows Server(R) 2008 Enterprise 32-bit 日本語版
Microsoft(R) Windows Server(R) 2008 Standard 32-bit 日本語版

Windows Server 2008 R2
Microsoft(R) Windows Server(R) 2008 R2 Enterprise 日本語版
Microsoft(R) Windows Server(R) 2008 R2 Standard 日本語版

Windows Server 2012
Microsoft(R) Windows Server(R) 2012 Standard 日本語版
Microsoft(R) Windows Server(R) 2012 Datacenter 日本語版

Windows Server 2012 R2
Microsoft(R) Windows Server(R) 2012 R2 Standard 日本語版
Microsoft(R) Windows Server(R) 2012 R2 Datacenter 日本語版

Windows Vista
Microsoft(R) Windows Vista (R) Business 日本語版
Microsoft(R) Windows Vista (R) Enterprise 日本語版
Microsoft(R) Windows Vista (R) Ultimate 日本語版

Word
Microsoft(R) Office Word

Windows 8.1，Windows Server 2012，Windows Server 2012 R2，Windows 7，Windows Server 2008，Windows Server 2008 R2，およびWindows Vistaを総称してWindowsと表記することがあります。

■ 発行

2014年5月　3020-3-Q33-30

■ 著作権

All Rights Reserved. Copyright (C) 2010, 2014, Hitachi, Ltd.

変更内容

変更内容（3020-3-Q33-30）　uCosminexus 電子フォームワークフロー Set　09-50，uCosminexus 電子フォームワークフロー ユーザライセンスセット　09-50，uCosminexus 電子フォームワークフロー Developer　09-50

追加・変更内容
変更個所

Cosminexus V9.5に対応しました。
－

64bit版の製品をリリースしました。
－

次の適用OSを追加しました。

Windows Server 2012

Windows Server 2012 R2

Windows 8.1

－

Internet Explorer 10およびInternet Explorer 11に対応しました。
－

EUR Formの開発用製品名を修正・除外しました。
1.2，付録B.2，付録C

参照するEURのマニュアル名称を最新情報に修正しました。
1.2，2.2.4，2.3.6，2.5.7，付録B.1

同梱されなくなったMyEclipseの記述を廃止しました。
2.3.2(1)，2.3.3(1)，2.5.3(1)，2.5.3(3)

EURFormで提供するgetvalueメソッドを使用した例を追加しました。
2.3.4(5)

EFormModelクラス，EFormModelInstanceクラスの参照先を追加しました。
2.3.6

単なる誤字・脱字などはお断りなく訂正しました。

はじめに

このマニュアルは，電子フォームワークフローを利用したWeb帳票アプリケーションの開発について説明したものです。

＜はじめにの構成＞

対象読者

マニュアルで使用する記号

インストール先の表記

対象読者

電子フォームワークフローを利用したWeb帳票アプリケーションを開発する方を対象としています。また，システムを構成する各プログラムの基本的な知識を持っていることを前提としています。

マニュアルで使用する記号

このマニュアルでは，次に示す記号を使用しています。

記号
意味

［　］
メニュー，コマンド，ウィンドウ，ダイアログの名称，ボタン，およびキーボードのキーを示します。
（例）
［ファイル］メニュー
［OK］ボタン

［A］－［B］
－の前に示した［A］メニューから［B］コマンドを選択することを示します。

「　」
ウィンドウまたはダイアログ中に表示される項目を示します。

インストール先の表記

このマニュアルでは，Hitachi Business Logic - Container 2およびHitachi Business Logic - Container - Script Generatorのインストール先を次のように表記しています。

表記
意味

<BLC2のインストールディレクトリ>
Hitachi Business Logic - Container 2をCドライブにインストールした場合，デフォルトでは次のようになります。
C:¥Program Files¥HITACHI¥HBPM2

<BLSGのインストールディレクトリ>
Hitachi Business Logic - Container - Script GeneratorをCドライブにインストールした場合，デフォルトでは次のようになります。
C:¥Program Files¥HITACHI¥HBPM¥blsg

なお，64ビットOSに32ビット版をインストールした場合は，上記「C:¥Program Files」の部分は「C:¥Program Files (x86)」となります。

1.　Web帳票アプリケーションの開発

この章では，Web帳票アプリケーションの開発の流れについて説明します。また，サンプルのカスタマイズによる開発についても説明します。

＜この章の構成＞

1.1　Web帳票アプリケーションの開発の概要

1.2　EUR Form連携帳票の開発の流れ

1.3　BLC帳票の開発の流れ

1.4　カスタマイズ

1.1　Web帳票アプリケーションの開発の概要

電子フォームワークフローシステムでは，帳票画面，ビジネスプロセス定義および振り分けルール定義，ユーザ追加処理（業務プログラム）を作成し，これらを基にWeb帳票アプリケーションを生成します。このWeb帳票アプリケーションをBLC実行環境にデプロイ，またビジネスプロセス定義および振り分けルール定義をワーク管理データベースへ登録することで，電子帳票をワークフローで運用できるようになります。

また，一部の処理については，BLCで提供しているサンプルをカスタマイズして開発することもできます。

Web帳票アプリケーションの開発では，電子フォームワークフローシステムの次の部分を開発します。

図1-1　Web帳票アプリケーションの開発部分

以降の節で，Web帳票アプリケーションの開発の一般的な流れを説明します。開発の流れは，EUR Form連携帳票の場合とBLC帳票の場合で異なる部分があります。それぞれの帳票ごとに開発の流れを説明します。また，サンプルのカスタマイズによる開発についても以降の節で説明します。

参照先
この節で取り上げた内容の参照先を次に示します。

内容
参照先

Web帳票アプリケーション，ユーザ追加処理
マニュアル「uCosminexus 電子フォームワークフロー 解説」

Web帳票アプリケーションの構成要素

電子フォームワークフローのシステム構成
マニュアル「uCosminexus 電子フォームワークフロー システム構築ガイド」

システム構成

EUR Form連携帳票とBLC帳票
マニュアル「uCosminexus 電子フォームワークフロー 解説」

BLCの帳票

1.2　EUR Form連携帳票の開発の流れ

EUR Form連携帳票の開発の流れを次に示します。

図1-2　EUR Form連携帳票の開発の流れ

図について説明します。

EUR Form帳票の生成
WordやExcelで作成した文書から，EUR Form帳票定義ファイルを生成します。また，EUR Form帳票定義ファイルから，EUR Form帳票ファイルおよび送信ユニット情報の一覧を生成します。

使用するツール
uCosminexus EUR Developer

生成されるファイル
EUR Form帳票定義ファイル（例：SellingAgreementEUR.efs）
EUR Form帳票ファイル（例：SellingAgreementEUR.efd）
送信ユニット情報の一覧（例：SellingAgreementEURC.csv，SellingAgreementEURD.csv，SellingAgreementEURM.csv，SellingAgreementEURP.csv）

ビジネスプロセス定義および振り分けルール定義の作成
帳票の申請ルートに従って，ビジネスプロセス定義および振り分けルール定義を作成します。

使用するツール
CSCIW-Definer

生成されるファイル
ビジネスプロセス定義（例：販売契約稟議EUR.hbx）
振り分けルール定義（例：申請者振り分けルール.hcx）

ユーザ追加処理の作成
帳票のボタン処理などに任意の処理を追加したい場合は，ユーザ追加処理を作成します。ユーザ追加処理を作成する際，BLCで提供しているサンプルファイルを参考にできます。

使用するツール
Eclipseなど

生成されるファイル
ユーザ追加処理（例：SampleConsultationEUR_1_userServerSideClass.java）

注意事項

ビジネスプロセス定義を作成する際，CSCIW-Definerの文字コードの設定は「Shift_JIS」を選択してください。これ以外の文字コード設定で作成したビジネスプロセス定義ファイルは，BLSGで読み込むことができません。

帳票定義の作成
手順1.から手順3.で作成した次のファイルを関連づけます。
EUR Form帳票定義ファイルおよび送信ユニット情報の一覧
ビジネスプロセス定義および振り分けルール定義
ユーザ追加処理

使用するツール
BLSG

生成されるファイル
BLSGのリポジトリ情報

注意事項

リポジトリフォルダは，BLSGで設定したデータフォルダパス下の「repository」フォルダ（デフォルトは，「<BLSGのインストールディレクトリ>¥data¥repository」）内に作成されます。このリポジトリファイルは，必ずBLSGから編集してください。エディタなどで直接編集しないでください。

帳票の生成
帳票定義から帳票ファイルを生成します。

使用するツール
BLSG

生成されるファイル
帳票登録用定義ファイル（例：SampleConsultationEUR_def.dat）
自動生成帳票ファイル（例：SampleConsultationEUR_1.jsp）
自動生成帳票クラス（例：SampleConsultationEUR_1_Class.java）
DBアクセス定義ファイル（例：SampleConsultationEUR_1_d.dat）

BLC実行環境へのデプロイ
手順1.で生成したEUR Form帳票ファイル，手順3.および手順5.で生成したファイルをWARファイルにし，BLC実行環境にデプロイします。

使用するツール
Eclipseなど

生成されるファイル
なし

ワーク管理データベースへの登録
CSCIWのコマンド，またはCSCIW-Definerで，手順2.で作成したビジネスプロセス定義および振り分けルール定義をワーク管理データベースへ登録します。コマンドは，コマンドプロンプトで実行します。CSCIW-DefinerはEclipseのPlug-inとして利用します。

使用するツール
コマンドプロンプト

生成されるファイル
なし

運用
BLC実行環境に帳票を登録して，帳票を運用できるようにします。

使用するツール
BLC実行環境の帳票の登録／削除機能

生成されるファイル
なし

参照先
この節で取り上げた内容の参照先を次に示します。

内容
参照先

手順1.
EUR Form帳票の生成
マニュアル「帳票システム構築支援　uCosminexus EUR　uCosminexus EUR 帳票設計（EUR Form帳票）」全体

手順2.
ビジネスプロセス定義および振り分けルール定義の作成
マニュアル「uCosminexus Service Coordinator Interactive Workflow ビジネスプロセス開発ガイド」全体
マニュアル「uCosminexus Service Coordinator Interactive Workflow AP開発ガイド」

ビジネスプロセス定義の開発方法

手順3.
ユーザ追加処理の作成
マニュアル「uCosminexus 電子フォームワークフロー 解説」

BLCのカスタマイズ方法（EUR Form連携帳票の場合）

手順4.
帳票定義の作成
マニュアル「uCosminexus 電子フォームワークフロー 解説」

帳票定義を作成する（EUR Form連携帳票の場合）

データフォルダパスの指定
マニュアル「uCosminexus 電子フォームワークフロー 解説」

開発環境を設定する（EUR Form連携帳票の場合）

手順5.
帳票の生成
マニュアル「uCosminexus 電子フォームワークフロー 解説」

帳票ファイル（JSP形式）を生成する（EUR Form連携帳票の場合）

手順6.
BLC実行環境へのデプロイ
マニュアル「uCosminexus 電子フォームワークフロー システム構築ガイド」

BLCのアプリケーションの作成

手順7.
ワーク管理データベースへの登録
マニュアル「uCosminexus 電子フォームワークフロー システム構築ガイド」

ビジネスプロセスの登録

手順8.
運用（帳票の登録）
マニュアル「uCosminexus 電子フォームワークフロー 解説」

帳票の登録

1.3　BLC帳票の開発の流れ

BLC帳票の開発の流れを次に示します。

図1-3　BLC帳票の開発の流れ

図について説明します。

画面HTMLの作成
HTMLエディタで，帳票の画面HTMLを作成します。

使用するツール
Eclipseなど

生成されるファイル
画面HTML（例：販売契約.htm）

ビジネスプロセス定義および振り分けルール定義の作成
EUR Form連携帳票の場合と同様に，ビジネスプロセス定義および振り分けルール定義を作成します。

使用するツール
CSCIW-Definer

生成されるファイル
ビジネスプロセス定義（例：販売契約稟議.hbx）
振り分けルール定義（例：申請者振り分けルール.hcx）

ユーザ追加処理の作成
EUR Form連携帳票の場合と同様に，ユーザ追加処理を作成します。

使用するツール
Eclipseなど

生成されるファイル
ユーザ追加処理（例：SampleConsultation_1_userClientSideScript.inc，SampleConsultation_1_userServerSideClass.java）

帳票モジュール定義の作成
手順1.で作成した画面HTMLと帳票の要素（テキスト領域やボタンなど）を関連づけます。

使用するツール
BLSG

生成されるファイル
BLSGのリポジトリ情報

帳票定義の作成
手順2.から手順3.で作成した次のファイルを関連づけます。
ビジネスプロセス定義
ユーザ追加処理

使用するツール
BLSG

生成されるファイル
BLSGのリポジトリ情報

注意事項

リポジトリフォルダは，BLSGで設定したデータフォルダパス下の「repository」フォルダ（デフォルトは，「<BLSGのインストールディレクトリ>¥data¥repository」）内に作成されます。このリポジトリファイルは，必ずBLSGから編集してください。エディタなどで直接編集しないでください。

帳票の生成
帳票モジュール定義と帳票定義から帳票ファイルを生成します。

使用するツール
BLSG

生成されるファイル
帳票登録用定義ファイル（例：SampleConsultation_def.dat）
自動生成帳票ファイル（例：SampleConsultation_1.jsp）
自動生成帳票クラス（例：SampleConsultation_1_Class.java）
DBアクセス定義ファイル（例：SampleConsultation_1_d.dat）

BLC実行環境へのデプロイ
手順3.および手順6.で生成したファイルをWARファイルにし，BLC実行環境にデプロイします。

使用するツール
Eclipseなど

生成されるファイル
なし

ワーク管理データベースへの登録
EUR Form連携帳票の場合と同様に，CSCIWのコマンド，またはCSCIW-Definerで，手順2.で作成したビジネスプロセス定義および振り分けルール定義をワーク管理データベースへ登録します。コマンドは，コマンドプロンプトで実行します。
CSCIW-DefinerはEclipseのPlug-inとして利用します。

使用するツール
コマンドプロンプト

生成されるファイル
なし

運用
EUR Form連携帳票の場合と同様に，BLC実行環境に帳票を登録して，帳票を運用できるようにします。

使用するツール
BLC実行環境の帳票管理機能

生成されるファイル
なし

参照先
この節で取り上げた内容の参照先を次に示します。

内容
参照先

手順1.
画面HTMLの作成
なし

手順2.
ビジネスプロセス定義および振り分けルール定義の作成
マニュアル「uCosminexus Service Coordinator Interactive Workflow ビジネスプロセス開発ガイド」全体
マニュアル「uCosminexus Service Coordinator Interactive Workflow AP開発ガイド」

ビジネスプロセス定義の開発方法

手順3.
ユーザ追加処理の作成
マニュアル「uCosminexus 電子フォームワークフロー 解説」

BLCのカスタマイズ方法（BLC帳票の場合）

手順4.
帳票モジュール定義の作成
マニュアル「uCosminexus 電子フォームワークフロー 解説」

帳票モジュール定義を作成する

手順5.
帳票定義の作成
マニュアル「uCosminexus 電子フォームワークフロー 解説」

帳票定義を作成する（BLC帳票の場合）

データフォルダパスの指定
マニュアル「uCosminexus 電子フォームワークフロー 解説」

開発環境を設定する（BLC帳票の場合）

手順6.
帳票の生成
マニュアル「uCosminexus 電子フォームワークフロー 解説」

帳票ファイル（JSP形式）を生成する（BLC帳票の場合）

手順7.
BLC実行環境へのデプロイ
マニュアル「uCosminexus 電子フォームワークフロー システム構築ガイド」

BLCのアプリケーションの作成

手順8.
ワーク管理データベースへの登録
マニュアル「uCosminexus 電子フォームワークフロー システム構築ガイド」

ビジネスプロセスの登録

手順9.
運用（帳票の登録）
マニュアル「uCosminexus 電子フォームワークフロー 解説」

帳票の登録

1.4　カスタマイズ

帳票を開発する際，一部の処理については，BLCで提供しているサンプルをカスタマイズして開発することもできます。

BLCでは，次の機能および画面のサンプルを提供しています。これらのサンプルを基に，Eclipseなどのツールを使ってカスタマイズしてください。

一括承認機能（EUR Form連携帳票の場合だけ）
複数の案件を一括して承認する機能です。

引き戻し機能（EUR Form連携帳票の場合だけ）
申請または処理した案件を送付先のノードから引き戻す機能です。

拡張受信ボックス機能
受信ボックスにユーザの業務テーブルの情報を表示する機能です。

申請帳票画面へのリンク機能
イントラネット上のポータルなど，電子フォームワークフロー以外のページのリンクから，直接申請帳票画面を表示できるようにする機能です。

保管案件の照会機能
保管されている案件の情報を検索して参照できるようにする機能です。

エラー画面
実行環境でエラーが発生したときに，エラー情報を表示する画面です。

参照先
この節で取り上げた内容の参照先を次に示します。

内容
参照先

一括承認機能
マニュアル「uCosminexus 電子フォームワークフロー 解説」

一括承認機能

引き戻し機能
マニュアル「uCosminexus 電子フォームワークフロー 解説」

引き戻し機能

拡張受信ボックス機能
マニュアル「uCosminexus 電子フォームワークフロー 解説」

拡張受信ボックス機能

申請帳票画面へのリンク機能
マニュアル「uCosminexus 電子フォームワークフロー 解説」

申請帳票画面へのリンク機能

保管案件の照会機能
マニュアル「uCosminexus 電子フォームワークフロー 解説」

保管案件の照会機能

エラー画面
マニュアル「uCosminexus 電子フォームワークフロー 解説」

エラー情報表示ページのカスタマイズ

2.　Web帳票アプリケーションのカスタマイズ

この章では，マニュアル「uCosminexus 電子フォームワークフロー システム構築ガイド」で取り上げている，簡易構築ツールで構築したシステムのサンプル「販売契約稟議EUR」のカスタマイズ方法について説明します。

このカスタマイズを通して，電子フォームワークフローを利用したワークフロー業務の開発がどのようなものか，理解を深めてください。

＜この章の構成＞

2.1　サンプル「販売契約稟議EUR」のカスタマイズ

2.2　日付の自動設定

2.3　承認業務ステップのスキップ

2.4　承認作業での一括承認

2.5　複数の宛先の選択

2.1　サンプル「販売契約稟議EUR」のカスタマイズ

ここでは，サンプル「販売契約稟議EUR」の概要，および取り上げるカスタマイズ項目の概要を説明します。また，カスタマイズ項目が1章で説明したWeb帳票アプリケーションの開発のどこに位置するかを説明します。

＜この節の構成＞

2.1.1　サンプル「販売契約稟議EUR」の概要

2.1.2　カスタマイズの準備

2.1.3　カスタマイズの概要

2.1.4　Web帳票アプリケーションの開発での位置づけ

2.1.5　参照先

2.1.1　サンプル「販売契約稟議EUR」の概要

サンプル「販売契約稟議EUR」では，販売契約の内容を稟議するという業務を取り上げています。業務のおおまかな流れは次のようになります。

担当者が販売契約の内容について起票し，稟議を申請します。

担当者の上司が申請内容を審査・承認し，受付部署に送付します。

受付部署が稟議先の部署を判定して，稟議を依頼します。

稟議先の部署で申請内容を稟議します。

2.1.2　カスタマイズの準備

カスタマイズの前に，次に示すコピー元のフォルダをコピー先にコピーしておいてください。

コピー元
<BLSGのインストールディレクトリ>¥sample¥dataフォルダ

コピー先
<BLSGのインストールディレクトリ>フォルダ下

2.1.3　カスタマイズの概要

サンプル「販売契約稟議EUR」に対し，次のカスタマイズをします。

日付の自動設定

承認業務ステップのスキップ

承認作業での一括承認

複数の宛先の選択

各カスタマイズの概要を次に説明します。

カスタマイズ方法の詳細は，以降の節で説明します。

＜この項の構成＞

(1)　日付の自動設定

(2)　承認業務ステップのスキップ

(3)　承認作業での一括承認

(4)　複数の宛先の選択

(1)　日付の自動設定

［名称別帳票一覧］画面から選択したときに表示される販売契約稟議EUR帳票の状態を次のようにカスタマイズします。

（カスタマイズ前）

帳票の契約日の欄には何も選択されていません。ユーザが契約日を選択します。

（カスタマイズ後）

帳票の契約日の欄に，当日の日付がデフォルトで選択されています。

カスタマイズ後の販売契約稟議EUR帳票を次に示します。

図2-1　カスタマイズ後の販売契約稟議EUR帳票

(2)　承認業務ステップのスキップ

審査業務ステップを実行したあとの処理を次のようにカスタマイズします。

（カスタマイズ前）

必ず承認業務ステップに遷移します。承認業務ステップを実行しないと，受付業務ステップへ遷移しません。

（カスタマイズ後）

販売契約稟議EUR帳票の提供価格の合計が10,000よりも小さい場合，承認業務ステップをスキップし，受付業務ステップに遷移します。提供価格の合計が10,000以上の場合は，カスタマイズ前と同様に，承認業務ステップに遷移します。

承認業務ステップのスキップの例を次に示します。例では提供価格の合計が10,000未満で申請されているため，審査業務ステップを実行したあとは承認業務ステップをスキップして受付業務ステップに遷移します。

図2-2　承認業務ステップのスキップの例

(3)　承認作業での一括承認

一括承認機能の利用について次のようにカスタマイズします。

（カスタマイズ前）

一括承認機能に関する提供ファイルをカスタマイズしないで環境設定している場合，承認作業や受付作業など，販売契約稟議ワークフローのすべての作業で一括承認できます。

（カスタマイズ後）

承認作業でだけ，一括承認できます。

カスタマイズ後の一括承認用受信ボックス画面を次に示します。承認作業でだけ一括承認できるようカスタマイズしたため，画面には承認作業の案件だけが表示されます。

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

(4)　複数の宛先の選択

受付作業で稟議先を指定するときの処理を次のようにカスタマイズします。

（カスタマイズ前）

宛先を一人だけ指定できます。

（カスタマイズ後）

宛先を二人指定できます。

カスタマイズ後の販売契約稟議EUR帳票を次に示します。カスタマイズ後は，受付作業で帳票を開くと宛先ドロップダウンリストが二つ表示されるようになります。

図2-4　カスタマイズ後の販売契約稟議EUR帳票

2.1.4　Web帳票アプリケーションの開発での位置づけ

サンプル「販売契約稟議EUR」の各カスタマイズは，1章で説明したWeb帳票アプリケーションの開発のどこに位置するかを次に示します。

表2-1　サンプル「販売契約稟議EUR」のカスタマイズ項目の位置づけ

開発手順またはカスタマイズ項目 | サンプル「販売契約稟議EUR」のカスタマイズ項目
(1)日付の自動設定 | (2)承認業務ステップのスキップ | (3)承認作業での一括承認 | (4)複数の宛先の選択
手順1. | EUR Form帳票の生成 | ○ | － | － | ○
手順2. | ビジネスプロセス定義および振り分けルール定義の作成 | － | ○ | － | ○
手順3. | ユーザ追加処理の作成 | － | ○ | － | ○
手順4. | 帳票定義の作成 | ○ | ○ | － | ○
手順5. | 帳票の生成 | ○ | ○ | － | ○
手順6. | BLC実行環境へのデプロイ | ○ | ○ | ○ | ○
手順7. | ワーク管理データベースへの登録 | － | ○ | － | ○
手順8. | 運用 | ○ | ○ | ○ | ○
カスタマイズ項目 | 一括承認機能 | － | － | ○ | －
引き戻し機能 | － | － | － | －
拡張受信ボックス機能 | － | － | － | －
申請帳票画面へのリンク機能 | － | － | － | －
ログイン認証機能 | － | － | － | －
保管案件の照会機能 | － | － | － | －
エラー画面 | － | － | － | －

（凡例）

○：該当します。

－：該当しません。

2.1.5　参照先

この節で取り上げた内容の参照先を次に示します。

内容
参照先

サンプル「販売契約稟議EUR」の動作環境
マニュアル「uCosminexus 電子フォームワークフロー システム構築ガイド」

簡易構築ツールを利用したシステム構築

2.2　日付の自動設定

ここでは，［名称別帳票一覧］画面から販売契約稟議EUR帳票を選択したとき，帳票の契約日の欄に当日の日付がデフォルトで表示されるようにする方法を説明します。

処理の概要

「契約日の年が選択されていない場合，契約日に当日の日付を表示する」というEUR Form帳票のスクリプトを作成し，帳票を読み込んだときにこのスクリプトが実行されるようにします。

＜この節の構成＞

2.2.1　カスタマイズするファイル

2.2.2　EUR Form帳票定義ファイルのカスタマイズ

2.2.3　帳票の生成とBLC実行環境へのデプロイ

2.2.4　参照先

2.2.1　カスタマイズするファイル

カスタマイズの対象となるファイルを次に示します。

ファイル種別 | ファイル名
EUR Form帳票定義ファイル | SellingAgreementEUR.efs

2.2.2　EUR Form帳票定義ファイルのカスタマイズ

EUR Form帳票定義ファイルをカスタマイズする手順を次に示します。

＜この項の構成＞

(1)　ファイルのコピーとオープン

(2)　EUR Form帳票名の変更

(3)　スクリプトの編集

(4)　スクリプトを実行するタイミングの設定

(5)　EUR Form帳票ファイルと送信ユニット情報の生成

(1)　ファイルのコピーとオープン

カスタマイズの作業では，SellingAgreementEUR.efsを直接編集するのではなく，SellingAgreementEUR.efsをコピーして名称を変更し，このファイルを編集していきます。

ファイルのコピーからオープンまでの手順を次に示します。

操作手順

次のフォルダにあるSellingAgreementEUR.efsをコピーし，任意のフォルダに保存します。
<BLSGのインストールディレクトリ>¥data¥eurform

コピーしたファイルの名称を「Custom_SellingAgreementEUR.efs」に変更します。

「Custom_SellingAgreementEUR.efs」をダブルクリックします。
UCosminexus EUR Developerが起動し，EUR Form帳票ウィンドウが開きます。Custom_SellingAgreementEUR.efsを編集できるようになります。

(2)　EUR Form帳票名の変更

EUR Form帳票名を変更する手順を次に示します。

操作手順

EUR Form帳票ウィンドウの［ファイル］－［文書情報］を選択します。
［EUR Form 帳票 文書情報］ダイアログが表示されます。

［管理情報］タブで，次のように変更します。

EUR Form帳票名
Custom_SellingAgreementEUR

［OK］ボタンをクリックして，ダイアログを閉じます。

(3)　スクリプトの編集

スクリプトを編集する手順を次に示します。

操作手順

EUR Form帳票ウィンドウの［編集］－［スクリプトの設定］－［編集］を選択します。
テキストエディタが起動します。

テキストエディタで「SellingAgreementEUR.js」を開きます。

「年が未選択のとき，当日日付を自動設定する」というスクリプト（u_setDateメソッド）を次のように追加します。

//当日日付の自動生成処理
function u_setDate(){
 if(-1 == eurformdoc.GetControlSelectedItem("Year")){
   var objDate = new Date();
   var year  = objDate.getFullYear();
   var selectyear = year - 2001;
   var selectmonth = objDate.getMonth();
   var selectdate  = objDate.getDate()-1;
   var ret;
   ret=eurformdoc.SetControlSelectedItem( "Year" , selectyear);
   ret=eurformdoc.SetControlSelectedItem( "Month" , selectmonth);
   ret=eurformdoc.SetControlSelectedItem( "Day" , selectdate);
 }
 return true;
}

帳票ファイルに対する値の設定および取得には，eurformdocオブジェクトを使用します。

SellingAgreementEUR.jsの編集内容を保存し，テキストエディタを閉じます。

(4)　スクリプトを実行するタイミングの設定

スクリプト実行のタイミングを設定する手順を次に示します。

操作手順

EUR Form帳票ウィンドウの［ファイル］－［文書情報］を選択します。
［EUR Form 帳票 文書情報］ダイアログが表示されます。

［スクリプト定義］タブで，次の内容を設定します。

実行の契機
帳票読み込み時

スクリプトファイル名
<インポートしたスクリプト>

スクリプト関数名
u_setDate（（3）で作成したスクリプト）

［OK］ボタンをクリックして，ダイアログを閉じます。

(5)　EUR Form帳票ファイルと送信ユニット情報の生成

EUR Form帳票ファイルおよび送信ユニット情報を生成する手順を次に示します。

操作手順

EUR Form帳票ウィンドウの［ツール］－［EUR Form帳票定義情報の出力］を選択します。
「EUR Form帳票定義情報の出力」がチェックされます。

［ファイル］－［上書き保存］を選択します。
Custom_SellingAgreementEUR.efsが上書き保存されます。
次の送信ユニット情報がCustom_SellingAgreementEUR.efsと同じフォルダに出力されます。

Custom_SellingAgreementEURC.csv

Custom_SellingAgreementEURD.csv

Custom_SellingAgreementEURM.csv

Custom_SellingAgreementEURP.csv

［ファイル］－［EUR Form帳票ファイルの生成］を選択します。
［名前を付けて保存］ダイアログが表示されます。ダイアログには，保存するファイル名「Custom_SellingAgreementEUR.efd」が表示されています。

［OK］ボタンをクリックして，ダイアログを閉じます。
EUR Form帳票ファイル「Custom_SellingAgreementEUR.efd」が生成されます。

2.2.3　帳票の生成とBLC実行環境へのデプロイ

2.2.2項で作成・生成した各ファイルを使用して，帳票定義を作成し（1.2の手順4.），帳票ファイルを生成します（1.2の手順5.）。また，BLC実行環境へデプロイし（1.2の手順6.），帳票を登録（1.2の手順8.）します。

2.2.4　参照先

この節で取り上げた内容の参照先を次に示します。

内容
参照先

スクリプトの設定
マニュアル「帳票システム構築支援　uCosminexus EUR　uCosminexus EUR 帳票設計（EUR Form帳票）」

スクリプトの設定

EUR Form帳票ウィンドウの使用方法
マニュアル「帳票システム構築支援　uCosminexus EUR　uCosminexus EUR 帳票設計（EUR Form帳票）」

EUR Form帳票ウィンドウ，EUR Form帳票の作成

eurformdocオブジェクト
マニュアル「帳票システム構築支援　uCosminexus EUR　uCosminexus EUR 帳票設計（EUR Form帳票）」

eurformdocオブジェクト

2.3　承認業務ステップのスキップ

ここでは，販売契約稟議EUR帳票の提供価格の合計が10,000よりも小さい場合，承認業務ステップをスキップし受付業務ステップに遷移するようにする方法を説明します。

処理の概要

ビジネスプロセス定義で，次の内容を定義します。
BLCの受信ボックステーブル（以降，BLC_INBOX_Tと表記します）のNMITEM2カラムに設定された値（提供価格の合計）が10,000よりも小さかったら承認業務ステップをスキップする。
承認業務ステップをスキップする処理は，分岐条件をカスタマイズして承認業務ステップに遷移させないようにする方法と，承認業務ステップの完了条件をカスタマイズする方法の二つがあります。どちらか一つの方法でカスタマイズします。

ユーザ追加処理で，次の処理を追加します。
審査業務ステップ内の審査作業（承認業務ステップの一つ前の作業）で帳票の［承認］ボタンをクリックしたときに，BLC_INBOX_TのNMITEM2カラムに提供価格の合計を設定する。

＜この節の構成＞

2.3.1　カスタマイズするファイル

2.3.2　ビジネスプロセス定義のカスタマイズ（分岐条件のカスタマイズ）

2.3.3　ビジネスプロセス定義のカスタマイズ（業務ステップの完了条件のカスタマイズ）

2.3.4　ユーザ追加処理のカスタマイズ

2.3.5　帳票の生成，BLC実行環境へのデプロイとワーク管理データベースへの登録

2.3.6　参照先

2.3.1　カスタマイズするファイル

カスタマイズの対象となるファイルを次に示します。

ファイル種別 | ファイル名
ビジネスプロセス定義 | 販売契約稟議EUR.hbx
ユーザ追加処理 | SampleConsultationEUR_1_userServerSideClass.java

2.3.2　ビジネスプロセス定義のカスタマイズ（分岐条件のカスタマイズ）

ここでは，分岐条件をカスタマイズして，承認業務ステップをスキップするよう定義します。

カスタマイズ後のビジネスプロセス定義は，次のようになります。「承認スキップ」の［条件プロパティ］ダイアログで分岐条件を追加することで，承認業務ステップをスキップさせます。

図2-5　カスタマイズ後のビジネスプロセス定義（分岐条件のカスタマイズ）

ビジネスプロセス定義をカスタマイズする手順を次に示します。

＜この項の構成＞

(1)　ファイルのコピーとオープン

(2)　ビジネスプロセス名の変更

(3)　先着ノードの追加

(4)　分岐条件の追加

(1)　ファイルのコピーとオープン

カスタマイズの作業では，販売契約稟議EUR.hbxを直接編集するのではなく，販売契約稟議EUR.hbxをコピーして名称を変更し，このファイルを編集していきます。

ファイルのコピーからオープンまでの手順を次に示します。

操作手順

次のフォルダにある販売契約稟議EUR.hbxをコピーし，任意のフォルダに保存します。
<BLSGのインストールディレクトリ>¥data¥bp

コピーしたファイルの名称を「Custom_販売契約稟議EUR.hbx」に変更します。

Eclipseを起動し，「CSCIW-Definer」パースペクティブを開きます。メニューの［ファイル］－［ファイルを開く］を選択し，「Custom_販売契約稟議EUR.hbx」を開きます。
［ビジネスプロセス遷移エディタ］にビジネスプロセスが表示されCustom_販売契約稟議EUR.hbxを編集できるようになります。
Custom_販売契約稟議EUR.hbxが表示された［ビジネスプロセス遷移エディタ］を次に示します。

図2-6　［ビジネスプロセス遷移エディタ］（カスタマイズ前）

(2)　ビジネスプロセス名の変更

ビジネスプロセス名を変更する手順を次に示します。

操作手順

［アウトライン］ビューで，トップにある「販売契約稟議EUR」を右クリックし，［プロパティ］を選択します。
［ビジネスプロセス定義プロパティ］ダイアログが表示されます。
［アウトライン］ビューから表示される［ビジネスプロセス定義プロパティ］ダイアログを次に示します。

図2-7　［アウトライン］ビューから表示される［ビジネスプロセス定義プロパティ］ダイアログ

ダイアログで，次のように変更します。

ビジネスプロセス名
Custom_販売契約稟議EUR

［OK］ボタンをクリックして，ダイアログを閉じます。

(3)　先着ノードの追加

業務ステップ（受付）は，複数のノードから遷移するよう定義できないため，先着ノードを追加します。

先着ノードを追加する手順を次に示します。

操作手順

［ビジネスプロセス遷移エディタ］で，承認と受付の間に入るよう，先着ノードを追加します。先着ノードは，［ビジネスプロセス遷移エディタ］の右側にある［パレット］を開いて選択することができます。

貼り付けた先着ノードアイコンを右クリックし，［プロパティ］を選択します。
［制御ノードプロパティ］ダイアログが表示されます。

ダイアログで，次のように変更します。

定義名
先着3

［OK］ボタンをクリックして，ダイアログを閉じます。

(4)　分岐条件の追加

分岐1から先着3へ遷移する条件を追加します。

条件を追加する手順を次に示します。

操作手順

［アウトライン］ビューの「条件」を右クリックし，［新規作成］を選択します。条件に「新規条件定義1」が追加されます。

追加された「新規条件定義1」を右クリックし，［プロパティ］を選択します。
［条件プロパティ］ダイアログが表示されます。

ダイアログで，次のように変更します。

定義名
承認スキップ

SQL文
HiRDB，SQL Serverの場合（integer型を利用した場合）
SELECT NMITEM2 FROM BLC_INBOX_T WHERE CDPINAME = '@PIName' AND CAST(NMITEM2 AS INTEGER) < 10000
NMITEM2カラムの値がinteger型の範囲を超えていると，キャストエラーが発生します。利用する型は，業務に合わせて選択してください。必要に応じて，NMITEM2カラムに値を設定する前に，EUR Form帳票のプロパティ設定などによって入力チェックを実施してください。
Oracleの場合
SELECT NMITEM2 FROM BLC_INBOX_T WHERE CDPINAME = '@PIName' AND CAST(NMITEM2 AS NUMBER) < 10000

［OK］ボタンをクリックして，ダイアログを閉じます。

［ビジネスプロセス遷移エディタ］で，分岐1から先着3へ遷移するよう，遷移定義アイコンを貼り付けます。次に，分岐1から先着3へ接続します。遷移定義は，［ビジネスプロセス遷移エディタ］の右側にある［パレット］を開いて選択することができます。

分岐１のアイコンを右クリックし，［プロパティ］を選択します。［制御ノードプロパティ］ダイアログが表示されるので，［分岐条件］ボタンをクリックします。
［分岐条件の設定］ダイアログが表示されます。

［遷移先一覧］内［遷移先名］列の「先着3」の行を選択した状態で，［分岐条件名］のプルダウンから「承認スキップ」を選択します。
［遷移先一覧］内の［遷移先名］列「先着3」行に，［条件名］列の値として「承認スキップ」が設定されます。

［OK］ボタンをクリックして，ダイアログを閉じます。
さらに，［制御ノードプロパティ］ダイアログで［OK］ボタンをクリックしてダイアログを閉じます。

また，次のノードについても，遷移定義を追加・変更します。

承認から受付への遷移定義を承認から先着3へに変更します。

先着3から受付への遷移定義を追加します。

2.3.3　ビジネスプロセス定義のカスタマイズ（業務ステップの完了条件のカスタマイズ）

ここでは，業務ステップの完了条件をカスタマイズして，承認業務ステップをスキップするよう定義します。

カスタマイズ後のビジネスプロセス定義は，次のようになります。承認業務ステップの［条件プロパティ］ダイアログで完了条件を追加することで，承認業務ステップをスキップさせます。

図2-8　カスタマイズ後のビジネスプロセス定義（業務ステップの完了条件のカスタマイズ）

ビジネスプロセス定義をカスタマイズする手順を次に示します。

＜この項の構成＞

(1)　ファイルのコピーとオープン

(2)　ビジネスプロセス名の変更

(3)　業務ステップの完了条件の追加

(1)　ファイルのコピーとオープン

カスタマイズの作業では，販売契約稟議EUR.hbxを直接編集するのではなく，販売契約稟議EUR.hbxをコピーして名称を変更し，このファイルを編集していきます。

ファイルのコピーからオープンまでの手順を次に示します。

操作手順

次のフォルダにある販売契約稟議EUR.hbxをコピーし，任意のフォルダに保存します。
<BLSGのインストールディレクトリ>¥data¥bp

コピーしたファイルの名称を「Custom2_販売契約稟議EUR.hbx」に変更します。

Eclipseを起動し，「CSCIW-Definer」パースペクティブを開きます。メニューの［ファイル］－［ファイルを開く］を選択し，「Custom2_販売契約稟議EUR.hbx」を開きます。
［ビジネスプロセス遷移エディタ］にビジネスプロセスが表示されCustom2_販売契約稟議EUR.hbxを編集できるようになります。

(2)　ビジネスプロセス名の変更

ビジネスプロセス名を変更する手順を次に示します。

操作手順

［アウトライン］ビューで，トップにある「販売契約稟議EUR」を右クリックし，［プロパティ］を選択します。
［ビジネスプロセス定義プロパティ］ダイアログが表示されます。

ダイアログで，次のように変更します。

ビジネスプロセス名
Custom2_販売契約稟議EUR

［OK］ボタンをクリックして，ダイアログを閉じます。

(3)　業務ステップの完了条件の追加

承認業務ステップの完了条件を追加します。

条件を追加する手順を次に示します。

操作手順

［アウトライン］ビューの「条件」を右クリックし，［新規作成］を選択します。
条件に「新規条件定義1」が追加されます。

追加された「新規条件定義1」を右クリックし，［プロパティ］を選択します。
［条件プロパティ］ダイアログが表示されます。

ダイアログで，次のように変更します。

定義名
承認スキップ

SQL文
HiRDB，SQL Serverの場合（integer型を利用した場合）
SELECT NMITEM2 FROM BLC_INBOX_T WHERE CDPINAME = '@PIName' AND CAST(NMITEM2 AS INTEGER) < 10000
NMITEM2カラムの値がinteger型の範囲を超えていると，キャストエラーが発生します。利用する型は，業務に合わせて選択してください。必要に応じて，NMITEM2カラムに値を設定する前に，EUR Form帳票のプロパティ設定などによって入力チェックを実施してください。
Oracleの場合
SELECT NMITEM2 FROM BLC_INBOX_T WHERE CDPINAME = '@PIName' AND CAST(NMITEM2 AS NUMBER) < 10000

［OK］ボタンをクリックして，ダイアログを閉じます。

［ビジネスプロセス管理遷移エディタ］で，承認業務ステップのアイコンを右クリックし，［プロパティ］を選択します。［業務ステッププロパティ］ダイアログが表示されるので，［完了条件名］のプルダウンから「承認スキップ」を選択します。

［OK］ボタンをクリックして，ダイアログを閉じます。

2.3.4　ユーザ追加処理のカスタマイズ

審査業務ステップ内の審査作業（承認業務ステップの一つ前の作業）で帳票の［承認］ボタンをクリックしたときに，BLC_INBOX_TのNMITEM2カラムに提供価格の合計が設定されるようにします。

ユーザ追加処理をカスタマイズする手順を次に示します。

参考

カスタマイズ前の「販売契約稟議EUR」では，BLC_INBOX_TのNMITEM1カラムには，［相談］ボタンをクリックしたときに相談元が格納されるようになっています。

＜この項の構成＞

(1)　ファイルのコピーとオープン

(2)　ユーザ定義クラスのクラス名とコンストラクタ名の変更

(3)　提供価格の合計を設定するタイミングの決定

(4)　メソッドのカスタマイズ（XMLから取得する方法）

(5)　メソッドのカスタマイズ（EURFormのgetvalueメソッドから取得する方法）

(1)　ファイルのコピーとオープン

カスタマイズの作業では，SampleConsultationEUR_1_userServerSideClass.javaを直接編集するのではなく，SampleConsultationEUR_1_userServerSideClass.javaをコピーして名称を変更し，このファイルを編集していきます。

ファイルのコピーからオープンまでの手順を次に示します。

操作手順

次のフォルダにあるSampleConsultationEUR_1_userServerSideClass.javaをコピーし，任意のフォルダに保存します。
<BLSGのインストールディレクトリ>¥data¥usersource

コピーしたファイルの名称を「Custom_SampleConsultationEUR_1_userServerSideClass.java」に変更します。

EclipseなどでCustom_SampleConsultationEUR_1_userServerSideClass.javaを開きます。
Custom_SampleConsultationEUR_1_userServerSideClass.javaを編集できるようになります。

(2)　ユーザ定義クラスのクラス名とコンストラクタ名の変更

クラス名とコンストラクタ名を変更する手順を次に示します。

操作手順

クラス名とコンストラクタ名を次のように「Custom_SampleConsultationEUR_1_userServerSideClass」に変更します。

//サンプルソース（ご参考）
public class Custom_SampleConsultationEUR_1_userServerSideClass extends SampleConsultationEUR_1_Class {

 //コンストラクタ
 public Custom_SampleConsultationEUR_1_userServerSideClass(){
 }
・・・

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

変更内容を保存します。

(3)　提供価格の合計を設定するタイミングの決定

ユーザ定義クラス（Custom_SampleConsultationEUR_1_userServerSideClass）は，帳票クラス（SampleConsultationEUR_1_Class）を継承して，BLCEURFormBaseクラスのメソッドをオーバーライドしています。このため，BLCEURFormBaseクラスのどのメソッドを使用するかを決定することで，提供価格の合計を設定するタイミングを決定します。

ここではボタンをクリックしたタイミングで処理を実行させたいため，ufsv_addEURButtonPreparation（ボタンDB更新前処理）メソッドを使用します。

参考

帳票クラスは，「帳票の生成」時，BLSGによって生成されます。「SampleConsultationEUR_1_Class」は，マニュアル「uCosminexus 電子フォームワークフロー システム構築ガイド」に従って作成したときに，BLSGが生成した帳票クラスです。

帳票クラス名（SampleConsultationEUR_1_Class）は，BLSGで帳票定義を作成する際に設定する帳票IDから決定されます。
このため，「帳票の生成」時，帳票IDを変更（帳票定義を新たに作成するなど）し，ユーザ追加処理として，「Custom_SampleConsultationEUR_1_userServerSideClass」を使用する設定をした場合，「Custom_SampleConsultationEUR_1_userServerSideClass」が継承する帳票クラスを「SampleConsultationEUR_1_Class」から変更したあとの帳票クラスに変更する必要があります。
帳票IDと帳票クラス名の対応を次に示します。

図2-9　帳票IDと帳票クラス名の対応

(4)　メソッドのカスタマイズ（XMLから取得する方法）

ufsv_addEURButtonPreparation（ボタンDB更新前処理）メソッドを次のようにカスタマイズします。

if("審査-審査".equals(befpi.getInfo(befpi.BEF_NODENAME)) && "ID_WICOMPLETE".equals(befpi.getInfo(befpi.BEF_ACCEPTID))){
         //フォームデータの取得
         String l_strFormData = befpi.getInfo(befpi.BEF_EURFORMDATA);

         //DOMオブジェクトの生成
         DocumentBuilderFactory l_dbfObj = null;
         DocumentBuilder l_dbObj = null;

         StringReader l_srReader = null;
         InputSource l_isSource = null;

         Document l_doc = null;

         l_srReader = new StringReader(l_strFormData);
         l_isSource = new InputSource((Reader)l_srReader);

         l_dbfObj = DocumentBuilderFactory.newInstance();
         l_dbObj = l_dbfObj.newDocumentBuilder();
         l_doc =l_dbObj.parse(l_isSource);

         //提供価格の取得
         NodeList l_nodeList = null;
         Node l_nodeWork = null;
         Node l_nodeChildWork = null;

         String l_str = null;

         // 指定されたメンバ名（タグ名）のノードリストを取得
         l_nodeList = l_doc.getElementsByTagName("提供合計");

         if(l_nodeList.getLength() == 1){
             // 1個存在した場合
             l_nodeWork = l_nodeList.item(0);

             // 子ノードを取得
             l_nodeChildWork = l_nodeWork.getFirstChild();

             if(l_nodeChildWork != null &&
                 l_nodeChildWork.getNodeType() == Node.TEXT_NODE){
                 // 子ノードが存在，かつノード種別がTextの場合
                 l_str = l_nodeChildWork.getNodeValue();
             }
         }else{
             // 存在しない or 複数存在
             // error
         }

         befpi.setInfo(befpi.BEF_ATTRNUM,"2");
         befpi.setInfo(befpi.BEF_ATTRDATA+"2",l_str);
}

なお，コンパイルを通すには，次のパッケージをインポートする必要があります。

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;

ufsv_addEURButtonPreparationメソッドのカスタマイズの詳細を以降で説明します。

(a)　提供価格の合計を設定する条件の決定

（3）で決定したメソッド（ボタンをクリックしたタイミングで呼ばれるメソッド）に，審査作業の［承認］ボタンがクリックされたときに提供価格の合計をデータベースに追加するよう，条件文を設定します。条件判定には，BLCEURFormProcessInfoクラス（SampleConsultationEUR_1_Class.javaでの変数名は「befpi」）のgetInfoメソッドを使用します。

条件文の設定内容を次に示します。

引数にbefpi.BEF_NODENAMEを指定して，作業名を取得できるようにします。
作業名は，「業務ステップ定義名」+「-」（半角ハイフン）+「作業定義名」となります。

引数にbefpi.BEF_ACCEPTIDを指定して，ボタンIDを取得できるようにします。

カスタマイズの内容を次に示します。

if("審査-審査".equals(befpi.getInfo(befpi.BEF_NODENAME))
&& "ID_WICOMPLETE".equals(befpi.getInfo(befpi.BEF_ACCEPTID))){
}

(b)　提供価格の合計の取得

提供価格の合計の取得は，次の三つの部分に分かれます。

フォームデータの取得

DOMオブジェクトの生成

提供価格の合計の取得

それぞれについて説明します。

フォームデータの取得

フォームデータを取得するには，BLCEURFormProcessInfoクラス（SampleConsultationEUR_1_Class.javaでの変数名はbefpi）のgetInfoメソッドを使用します。

getInfoメソッドの引数にbefpi.BEF_EURFORMDATAを指定して，フォームデータを取得できるようにします。フォームデータには送信ユニットを文字列化したデータが格納されています。

カスタマイズの内容を次に示します。

String l_strFormData = befpi.getInfo(befpi.BEF_EURFORMDATA);

DOMオブジェクトの生成

フォームデータからDOMオブジェクトを生成します。

カスタマイズの内容を次に示します。

//DOMオブジェクトの生成
DocumentBuilderFactory l_dbfObj = null;
DocumentBuilder l_dbObj = null;

StringReader l_srReader = null;
InputSource l_isSource = null;

Document l_doc = null;

l_srReader = new StringReader(l_strFormData);
l_isSource = new InputSource((Reader)l_srReader);

l_dbfObj = DocumentBuilderFactory.newInstance();
l_dbObj = l_dbfObj.newDocumentBuilder();
l_doc =l_dbObj.parse(l_isSource);

提供価格の合計の取得

DOMオブジェクトから提供価格の合計を取得するには，getElementsByTagNameメソッドの引数にタグ名を指定します。指定するタグ名は，帳票作成時に指定したメンバ名になります。

帳票作成時に指定したメンバ名を次に示します。

図2-10　帳票作成時に指定したメンバ名

ここでは，「提供合計」をgetElementsByTagNameメソッドの引数に指定します。

カスタマイズの内容を次に示します。

//提供価格の取得
NodeList l_nodeList = null;
Node l_nodeWork = null;
Node l_nodeChildWork = null;

String l_str = null;

// 指定されたメンバ名（タグ名）のノードリストを取得
l_nodeList = l_doc.getElementsByTagName("提供合計");

if(l_nodeList.getLength() == 1){
   // 1個存在した場合
   l_nodeWork = l_nodeList.item(0);
  // 子ノードを取得
   l_nodeChildWork = l_nodeWork.getFirstChild();

   if(l_nodeChildWork != null &&
       l_nodeChildWork.getNodeType() == Node.TEXT_NODE){
         // 子ノードが存在，かつノード種別がTextの場合
         l_str = l_nodeChildWork.getNodeValue();
   }
}else{
   // 存在しない or 複数存在
   // error
}

(c)　BLC_INBOX_TのNMITEM2カラムへの設定

提供価格の合計をNMITEM2カラムへ設定するには，BLCEURFormProcessInfoクラス（SampleConsultationEUR_1_Class.javaでの変数名はbefpi）のsetInfoメソッドを使用します。

カスタマイズの内容を次に示します。

befpi.setInfo(befpi.BEF_ATTRNUM,"2");
befpi.setInfo(befpi.BEF_ATTRDATA+"2",l_str);

(5)　メソッドのカスタマイズ（EURFormのgetvalueメソッドから取得する方法）

ufsv_addEURButtonPreparation（ボタンDB更新前処理）メソッドを次のようにカスタマイズします。

if("審査-審査".equals(befpi.getInfo(BLCEURFormProcessInfo.BEF_NODENAME)) && "ID_WICOMPLETE".equals(befpi.getInfo(BLCEURFormProcessInfo.BEF_ACCEPTID))){

     // EFormModelオブジェクトを取得
     EFormModel efModel = befpi.getEFormModel();
     // EFormModelInstanceオブジェクトを生成
     EFormModelInstance efModelinst = efModel.getModelInstance();

     // 提供合計を取得
     String l_str = efModelinst.getValue("root/提供合計");

     befpi.setInfo(BLCEURFormProcessInfo.BEF_ATTRNUM,"2");
     befpi.setInfo(BLCEURFormProcessInfo.BEF_ATTRDATA+"2",l_str);

}

なお，コンパイルを通すには，次のパッケージをインポートする必要があります。

import jp.co.Hitachi.soft.EURForm.EFormModel;
import jp.co.Hitachi.soft.EURForm.EFormModelInstance;

ufsv_addEURButtonPreparationメソッドのカスタマイズの詳細を以降で説明します。

(a)　提供価格の合計を設定する条件の決定

「(4)　メソッドのカスタマイズ （XMLから取得する方法）」の「(a)　提供価格の合計を設定する条件の決定」を参照してください。

(b)　提供価格の合計の取得

提供価格の合計の取得は，次の二つの部分に分かれます。

EFormModelInstanceオブジェクトの生成

提供価格の合計の取得

それぞれについて説明します。

EFormModelInstanceオブジェクトの生成

EformModelInstanceオブジェクトを生成するには，BLCEURFormProcessInfoクラス（SampleConsultationEUR_1_Class.javaでの変数名はbefpi）のgetEFormModelメソッドから取得した，EFormModelオブジェクトのgetModelInstanceメソッドを使用します。

カスタマイズの内容を次に示します。

EFormModel efModel = befpi.getEFormModel();
EFormModelInstance efModelinst = efModel.getModelInstance();

提供価格の合計の取得

EformModelInstanceオブジェクトから提供価格の合計を取得するには，getValueメソッドの引数にメンバパスを指定します。指定するメンバパスは，帳票作成時に指定したメンバパスになります。

帳票作成時に指定したメンバパスを次に示します。

図2-11　帳票作成時に指定したメンバパス

ここでは，「root/提供合計」をgetValueメソッドの引数に指定します。

カスタマイズの内容を次に示します。

String l_str = efModelinst.getValue("root/提供合計");

(c)　BLC_INBOX_TのNMITEM2カラムへの設定

「(4)　メソッドのカスタマイズ （XMLから取得する方法）」の「(c)　BLC_INBOX_TのNMITEM2カラムへの設定」を参照してください。

2.3.5　帳票の生成，BLC実行環境へのデプロイとワーク管理データベースへの登録

2.3.2項から2.3.4項までで作成・生成した各ファイルを使用して，帳票定義を作成し（1.2の手順4.），帳票ファイルを生成します（1.2の手順5.）。また，BLC実行環境へデプロイし（1.2の手順6.），ワーク管理データベースへビジネスプロセス定義を登録します（1.2の手順7.）。さらに，帳票を登録（1.2の手順8.）します。

2.3.6　参照先

この節で取り上げた内容の参照先を次に示します。

内容
参照先

BLCの受信ボックステーブル（BLC_INBOX_T）
マニュアル「uCosminexus 電子フォームワークフロー 解説」

BLCのデータベース

ビジネスプロセス定義
マニュアル「uCosminexus Service Coordinator Interactive Workflow ビジネスプロセス開発ガイド」全体
マニュアル「uCosminexus Service Coordinator Interactive Workflow AP開発ガイド」

ビジネスプロセス定義の開発方法

ユーザ追加処理
マニュアル「uCosminexus 電子フォームワークフロー 解説」

帳票ボタン処理などのカスタマイズ（EUR Form連携帳票の場合）

ユーザ追加処理による帳票データの変更方法

BLCEURFormBaseクラスの各メソッド
マニュアル「uCosminexus 電子フォームワークフロー 解説」

サーバ側のユーザ追加処理で行うカスタマイズ（EUR Form連携帳票の場合）

ボタンID
マニュアル「uCosminexus 電子フォームワークフロー APIリファレンス」

BLCFormButtonクラス

BLCEURFormProcessInfoクラス
マニュアル「uCosminexus 電子フォームワークフロー APIリファレンス」

BLCEURFormProcessInfoクラス

送信ユニット
マニュアル「帳票システム構築支援　uCosminexus EUR　uCosminexus EUR 帳票設計（EUR Form帳票）」全体

EFormModelクラス
マニュアル「電子フォームシステム EUR Form　uCosminexus EUR Form サーバプログラム開発」

EFormModelクラスのメソッド一覧

EFormModelInstanceクラス
マニュアル「電子フォームシステム EUR Form　uCosminexus EUR Form サーバプログラム開発」

EFormModelInstanceクラスのメソッド一覧

2.4　承認作業での一括承認

ここでは，承認作業でだけ，一括承認（複数の案件をまとめて承認）できるようにする方法を説明します。一括承認機能を利用するための環境設定が実行されていることを前提として説明します。

処理の概要

一括承認用受信ボックス（業務別件数）画面および一括承認用受信ボックス画面で発行される，表示案件を取得するSQLをカスタマイズします。

＜この節の構成＞

2.4.1　カスタマイズするファイル

2.4.2　ストリングリソースプロパティファイルのカスタマイズ

2.4.3　一括承認用受信ボックス（業務別件数）画面のカスタマイズ

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

2.4.5　BLC実行環境へのデプロイ

2.4.6　参照先

2.4.1　カスタマイズするファイル

カスタマイズの対象となるファイルを次に示します。

ファイル種別
ファイル名

ストリングリソースプロパティファイル
BLCstringResourcePortal.properties

一括承認用受信ボックス（業務別件数）画面
「BLC_INBOX_WI_PIGROUP2_V」ビュー作成SQL
BLCLinboxBC.jsp

一括承認用受信ボックス画面
「BLC_INBOX_WI_LIST2_V」ビュー作成SQL
BLCLinboxItemBC.jsp

2.4.2　ストリングリソースプロパティファイルのカスタマイズ

一括承認受信ボックス（業務別件数）画面および一括承認受信ボックス画面で承認作業だけを表示させるには，SQLに「作業定義名が"承認"である案件を取得する」という条件を追加します。このSQLでは，"承認"というテキストはストリングリソースプロパティファイルから取得するようにします。"承認"というテキストをストリングリソースプロパティファイルへ記述しておくことで，JSPファイル内で再利用できるようになります。

ストリングリソースプロパティファイルをカスタマイズする手順を次に示します。

操作手順

ストリングリソースプロパティファイル（BLCstringResourcePortal.properties）に，次の値を追加します。

50000 = 承認

「承認」は，作業定義名として，承認業務ステップ内の作業に割り当てられた名前です。

Cosminexus付属のJDKコマンド（native2asciiコマンド）を使って，ストリングリソースプロパティファイルをエンコードします。

参考

作業定義名を確認する方法を次に示します。

操作手順

［アウトライン］ビューで，ビジネスプロセス名の左側の［＋］アイコンをクリックします。

ビジネスプロセス内の業務ステップがツリー上に表示されます。確認する承認業務ステップの左側の［＋］アイコンを右クリックします。
業務ステップ内の作業が表示されます。

表示されている作業定義名を確認します。

2.4.3　一括承認用受信ボックス（業務別件数）画面のカスタマイズ

一括承認受信ボックス（業務別件数）画面で，承認作業にある案件だけが件数としてカウントされるようにカスタマイズします。

カスタマイズ後の一括承認受信ボックス（業務別件数）画面は，次のようになります。

図2-12　カスタマイズ後の一括承認受信ボックス（業務別件数）画面

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

画面に承認作業の案件だけを表示させるには，SQLに「作業定義名が"承認"である案件を取得する」という条件を追加します。しかし，「BLC_INBOX_WI_PIGROUP_V」ビューには，作業定義名カラム（NMWIDEF）が存在しないため，次のカスタマイズが必要になります。

「BLC_INBOX_WI_PIGROUP2_V」ビューの作成（新規に作成）

BLCLinboxBC.jspのSQLの変更

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

＜この項の構成＞

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

(2)　BLCLinboxBC.jspのSQLの変更

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

「BLC_INBOX_WI_PIGROUP_V」ビューには，作業定義名カラム（NMWIDEF）が存在しないため，作業定義名カラムを追加した「BLC_INBOX_WI_PIGROUP2_V」ビューを作成するよう定義します。

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

（データベースがHiRDBの場合）

CREATE READ ONLY VIEW BLC_INBOX_WI_PIGROUP2_V (
CDPARTICIPANT,
NMBP,
CDWI,
NMWIDEF ) AS
SELECT
CSCIW.Participant,
BLC.NMBP,
CSCIW.ID,
CSCIW.WorkDefinitionName
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_PIGROUP2_V (
CDPARTICIPANT,
NMBP,
CDWI,
NMWIDEF ) AS
SELECT
CSCIW.Participant,
BLC.NMBP,
CSCIW.ID,
CSCIW.WorkDefinitionName
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_PIGROUP2_V (
CDPARTICIPANT,
NMBP,
CDWI,
NMWIDEF ) AS
SELECT
CSCIW.Participant,
BLC.NMBP,
CSCIW.ID,
CSCIW.WorkDefinitionName
FROM BLC.BLC_WORK_ITEM CSCIW
,BLC_INBOX_T BLC
WHERE CSCIW.StateCode='j' AND BLC.CDPINAME=CSCIW.ProcessInstanceName
;

太字部分が，作業定義名カラムを追加している部分になります。

(2)　BLCLinboxBC.jspのSQLの変更

作業定義名が"承認"である案件を取得するようSQLを変更します。"承認"というテキストは，ストリングリソースプロパティファイルから取得するようにします。

BLCLinboxBC.jspのSQLの変更例を次に示します。BLCLinboxBC.jspは，「<BLC2のインストールディレクトリ>¥tools¥sample¥BatchComplete¥<データベース種別>¥webhome¥app¥main」の下にあります。

final int COMPLETE = 50000;
String sql =
new StringBuffer("SELECT NMBP,COUNT(*) AS WICOUNT FROM BLC_INBOX_WI_PIGROUP2_V WHERE CDPARTICIPANT='")
.append(BLCStringOperation.escapeDBString(blc.getAuthenticateObject().getUserId()))
.append("'")
.append(" AND NMWIDEF = '")
.append(BLCSTRPortal.get(COMPLETE))
.append("'")
.append(" GROUP BY NMBP ORDER BY NMBP WITHOUT LOCK NOWAIT")

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

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");

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

2.4.5　BLC実行環境へのデプロイ

2.4.3項から2.4.4項までで作成した「BLCLinboxBC.jsp」および「BLCLinboxItemBC.jsp」をBLC実行環境へデプロイ（1.2の手順6.）します。

2.4.6　参照先

この節で取り上げた内容の参照先を次に示します。

内容
参照先

一括承認機能
マニュアル「uCosminexus 電子フォームワークフロー 解説」

一括承認機能

ストリングリソースプロパティファイル
マニュアル「uCosminexus 電子フォームワークフロー 解説」

ストリングリソースプロパティファイルのカスタマイズ

拡張受信ボックス機能
マニュアル「uCosminexus 電子フォームワークフロー 解説」

拡張受信ボックス機能

2.5　複数の宛先の選択

ここでは，受付作業で稟議先を同時に二人指定できるようにする方法を説明します。

処理の概要

販売契約稟議EUR帳票に，宛先ドロップダウンリストを追加します。

振り分けルール定義で，次の内容を定義します。
BLCの受信ボックステーブル（以降，BLC_INBOX_Tと表記します）のNMITEM3カラムおよびNMITEM4カラムの値を稟議作業の作業者として割り当てる振り分けルールを作成する。
稟議業務ステップに稟議2作業を追加し，二つの作業に振り分けルールを設定する。
稟議業務ステップのあとに，申請者確認業務ステップを追加する。
申請者確認業務ステップでは，承認作業または受付作業が完了したあとに，申請者本人が処理の状況を確認します。

ユーザ追加処理で，次の処理を追加します。
受付作業（稟議業務ステップの一つ前の作業）で帳票を表示したときに，稟議2作業の宛先情報をドロップダウンリストへ追加する。
受付作業で帳票の［承認］ボタンをクリックしたときに，BLC_INBOX_TのNMITEM3カラムおよびNMITEM4カラムに稟議1作業および稟議2作業の宛先を設定する。

帳票定義を編集して，受付作業でだけ，稟議2作業の宛先ドロップダウンリストを表示するようにします。

＜この節の構成＞

2.5.1　カスタマイズするファイル

2.5.2　EUR Form帳票定義ファイルのカスタマイズ

2.5.3　ビジネスプロセス定義および振り分けルール定義のカスタマイズ

2.5.4　ユーザ追加処理のカスタマイズ

2.5.5　帳票定義のカスタマイズ

2.5.6　帳票の生成，BLC実行環境へのデプロイとワーク管理データベースへの登録

2.5.7　参照先

2.5.1　カスタマイズするファイル

カスタマイズの対象となるファイルを次に示します。

ファイル種別
ファイル名

EUR Form帳票定義ファイル
SellingAgreementEUR.efs

ビジネスプロセス定義および振り分けルール定義
販売契約稟議EUR.hbx
rinngi1_rule.hcx（新規に作成）
rinngi2_rule.hcx（新規に作成）
申請者振り分けルール.hcx

ユーザ追加処理
SampleConsultationEUR_1_userServerSideClass.java

2.5.2　EUR Form帳票定義ファイルのカスタマイズ

ここでは，販売契約稟議EUR帳票に宛先ドロップダウンリストを追加します。

カスタマイズ後の販売契約稟議EUR帳票は，次のようになります。

図2-14　カスタマイズ後の販売契約稟議EUR帳票

EUR Form帳票定義ファイルをカスタマイズする手順を次に示します。

＜この項の構成＞

(1)　ファイルのコピーとオープン

(2)　EUR Form帳票名の変更

(3)　バックグラウンドの編集

(4)　帳票部品の編集

(5)　リスト項目変更用オプション情報の設定先の指定

(6)　EUR Form帳票ファイルと送信ユニット情報の生成

(1)　ファイルのコピーとオープン

カスタマイズの作業では，SellingAgreementEUR.efsを直接編集するのではなく，SellingAgreementEUR.efsをコピーして名称を変更し，このファイルを編集していきます。

ファイルのコピーからオープンまでの手順を次に示します。

操作手順

次のフォルダにあるSellingAgreementEUR.efsをコピーし，任意のフォルダに保存します。
<BLSGのインストールディレクトリ>¥data¥eurform

コピーしたファイルの名称を「Custom_SellingAgreementEUR.efs」に変更します。

「Custom_SellingAgreementEUR.efs」をダブルクリックします。
UCosminexus EUR Developerが起動し，EUR Form帳票ウィンドウが開きます。Custom_SellingAgreementEUR.efsを編集できるようになります。

(2)　EUR Form帳票名の変更

EUR Form帳票名を変更する手順を次に示します。

操作手順

EUR Form帳票ウィンドウの［ファイル］－［文書情報］を選択します。
［EUR Form 帳票 文書情報］ダイアログが表示されます。

［管理情報］タブで，次のように変更します。

EUR Form帳票名
Custom_SellingAgreementEUR

［OK］ボタンをクリックして，ダイアログを閉じます。

(3)　バックグラウンドの編集

EUR Form帳票のバックグラウンドを編集する手順を次に示します。

操作手順

EUR Form帳票ウィンドウの［ページ］－［バックグラウンドの編集］を選択します。
EURのレポート編集ウィンドウに，バックグラウンドとして読み込んだ帳票ファイルが表示されます。

宛先のバックグラウンド部分をコピーし，その下に貼り付けます。

貼り付けた宛先バックグラウンドの文字「宛先」を「稟議2宛先」に変更します。

(4)　帳票部品の編集

EUR Form帳票の帳票部品を編集する手順を次に示します。

操作手順

EUR Form帳票ウィンドウで，宛先のドロップダウンリストをコピーして，稟議2宛先部分に貼り付けます。

貼り付けたドロップダウンリストを右クリックし，［帳票コントロールのプロパティ］を選択します。
［帳票コントロールのプロパティ］ダイアログが表示されます。

［DropdownList］タブで，次の内容を設定します。

帳票コントロールID
CID_DL_ADDRESS2

メンバ名
宛先2

既存のドロップダウンリストの「宛先」の上に「稟議1宛先」EditFieldを載せます。

「稟議1宛先」EditFieldを右クリックし，［帳票コントロールのプロパティ］を選択します。
［帳票コントロールのプロパティ］ダイアログが表示されます。

［EditField］タブで，次の内容を設定します。

帳票コントロールID
CID_EF_ADDRESS1

メンバ名
稟議1宛先

［データ］タブで，次の内容を設定します。

初期値
稟議1宛先

［文字と色］タブで，次の内容を設定します。

フォント
MSゴシック

スタイル
標準

サイズ
11

背景色
色合い140，鮮やかさ240，明るさ226，赤225，緑240，青255

(5)　リスト項目変更用オプション情報の設定先の指定

リスト項目を動的に変更する手順を次に示します。

操作手順

EUR Form帳票ウィンドウで，「メンバ一覧」のrootを右クリックし，［エレメントの作成］を選択します。
rootの下位に，「新しいエレメント」が追加されます。

「新しいエレメント」の名称を「BLC_Drop_Work」に変更します。

宛先2のドロップダウンリストを右クリックし，［帳票コントロールのプロパティ］を選択します。
［帳票コントロールのプロパティ］ダイアログが表示されます。

［DropdownList］タブで，「リスト項目変更用オプション情報の設定先」の［参照］ボタンをクリックします。
［オプション情報設定先の選択］ダイアログが表示されます。

ダイアログで「BLC_Drop_Work」を選択して，［OK］ボタンをクリックします。

(6)　EUR Form帳票ファイルと送信ユニット情報の生成

EUR Form帳票ファイルおよび送信ユニット情報を生成する手順を次に示します。

操作手順

EUR Form帳票ウィンドウの［ツール］－［EUR Form帳票定義情報の出力］を選択します。
「EUR Form帳票定義情報の出力」がチェックされます。

［ファイル］－［上書き保存］を選択します。
Custom_SellingAgreementEUR.efsが上書き保存されます。
次の送信ユニット情報がCustom_SellingAgreementEUR.efsと同じフォルダに出力されます。

Custom_SellingAgreementEURC.csv

Custom_SellingAgreementEURD.csv

Custom_SellingAgreementEURM.csv

Custom_SellingAgreementEURP.csv

［ファイル］－［EUR Form帳票ファイルの生成］を選択します。
［名前を付けて保存］ダイアログが表示されます。ダイアログには，保存するファイル名「Custom_SellingAgreementEUR.efd」が表示されています。

［OK］ボタンをクリックして，ダイアログを閉じます。
EUR Form帳票ファイル「Custom_SellingAgreementEUR.efd」が生成されます。

2.5.3　ビジネスプロセス定義および振り分けルール定義のカスタマイズ

ここでは，ビジネスプロセス定義および振り分けルール定義で次の内容を定義します。

BLC_INBOX_TのNMITEM3カラムおよびNMITEM4カラムの値を稟議作業の作業者として割り当てる振り分けルールを作成する。

稟議業務ステップに稟議2作業を追加し，二つの作業に振り分けルールを設定する。

稟議業務ステップのあとに，申請者確認業務ステップを追加する。

カスタマイズ後のビジネスプロセス定義および振り分けルール定義は，次のようになります。

図2-15　カスタマイズ後のビジネスプロセス定義および振り分けルール定義（稟議2作業のカスタマイズ）

ビジネスプロセス定義および振り分けルール定義をカスタマイズする手順を次に示します。

＜この項の構成＞

(1)　ファイルのコピーとオープン

(2)　ビジネスプロセス名の変更

(3)　振り分けルールの作成

(4)　稟議作業（稟議）の変更

(5)　稟議作業（稟議2）の追加

(6)　申請者確認業務ステップの追加

(1)　ファイルのコピーとオープン

カスタマイズの作業では，販売契約稟議EUR.hbxを直接編集するのではなく，販売契約稟議EUR.hbxをコピーして名称を変更し，このファイルを編集していきます。

ファイルのコピーからオープンまでの手順を次に示します。

操作手順

次のフォルダにある販売契約稟議EUR.hbxをコピーし，任意のフォルダに保存します。
<BLSGのインストールディレクトリ>¥data¥bp

コピーしたファイルの名称を「Custom_販売契約稟議EUR.hbx」に変更します。

Eclipseを起動し，「CSCIW-Definer」パースペクティブを開きます。メニューの［ファイル］－［ファイルを開く］を選択し，「Custom_販売契約稟議EUR.hbx」を開きます。
［ビジネスプロセス遷移エディタ］にビジネスプロセスが表示されCustom_販売契約稟議EUR.hbxを編集できるようになります。
Custom_販売契約稟議EUR.hbxが表示された［ビジネスプロセス遷移エディタ］を次に示します。

図2-16　［ビジネスプロセス管理］ウィンドウ（カスタマイズ前）

(2)　ビジネスプロセス名の変更

ビジネスプロセス名を変更する手順を次に示します。

操作手順

［アウトライン］ビューで，トップにある「販売契約稟議EUR」を右クリックし，［プロパティ］を選択します。
［ビジネスプロセス定義プロパティ］ダイアログが表示されます。
［アウトライン］ビューから表示される［ビジネスプロセス定義プロパティ］ダイアログを次に示します。

図2-17　［アウトライン］ビューから表示される［ビジネスプロセス定義プロパティ］ダイアログ

ダイアログで，次のように変更します。

ビジネスプロセス名
Custom_販売契約稟議EUR

［OK］ボタンをクリックして，ダイアログを閉じます。

(3)　振り分けルールの作成

稟議1作業および稟議2作業の作業者としてBLC_INBOX_TのNMITEM3カラムおよびNMITEM4カラムの値を割り当てるため，次の振り分けルールを作成します。

表2-2　稟議作業の振り分けルール

振り分けルール名 | 作業者
ringi1_rule | BLC_INBOX_T. NMITEM3
ringi2_rule | BLC_INBOX_T. NMITEM4

振り分けルールを作成する手順を次に示します。

操作手順

Eclipseのメニューから，［ファイル］－［新規］－［振り分けルール定義］を選択します。
［新規振り分けルール定義］ウィンドウが表示されます。

ダイアログで，振り分けルール「ringi1_rule」として，次の内容を設定します。

プロジェクト
（任意）

作成ファイル名
ringi1_rule.hcx

振分けルール名
ringi1_rule

バージョン
1

［終了］ボタンをクリックして，ダイアログを閉じます。

［振り分けルールエディタ］の［プロパティ］タブで，次の内容を設定します。

振り分けルール名
ringi1_rule（設定済み）

バージョン
1（設定済み）

状態
活性

管理者
BLC

［振り分けルールエディタ］の［SQL］タブで，次の内容を設定します。
SELECT NMITEM3 FROM BLC_INBOX_T WHERE CDPINAME = '@PIName'

［ファイル］－［別名保管］を選択します。
［別名保管］ウィンドウが表示されます。

ファイル名を「ringi1_rule.hcx」にして保存します。

手順1.から手順6.を繰り返し，振り分けルール「ringi2_rule」を作成します。
各手順で次のように設定してください。これ以外は「ringi1_rule」と同じです。
手順4.のSQL文：SELECT NMITEM4 FROM BLC_INBOX_T WHERE CDPINAME = '@PIName'
手順2.の振り分けルール名：ringi2_rule
手順2.の作成ファイル名：ringi2_rule.hcx

(4)　稟議作業（稟議）の変更

既存の稟議作業（稟議）の作業名を「稟議1」に変更して，振り分けルールを設定します。

稟議作業（稟議）を変更する手順を次に示します。

操作手順

［アウトライン］ビューで，稟議業務ステップのアイコンの左側の［＋］アイコンをクリックします。
稟議業務ステップの下に稟議作業が表示されます。

稟議作業を右クリックし，［プロパティ］を選択します。
稟議作業の［一般作業プロパティ］ダイアログが表示されます。

ダイアログで，次のように変更します。

作業定義名
稟議1

次の内容を設定します。

振り分けルール名
ringi1_rule

［OK］ボタンをクリックして，ダイアログを閉じます。

(5)　稟議作業（稟議2）の追加

稟議作業（稟議2）を追加して，振り分けルールを設定します。また，「稟議2」作業は稟議2の宛先が指定された場合だけ実行されるため，作業の発生条件を設定します。

稟議作業（稟議2）を追加する手順を次に示します。

操作手順

［アウトライン］ビューの「条件」を右クリックし，［新規作成］を選択します。
条件に「新規条件定義1」が追加されます。

追加された「新規条件定義1」を右クリックし，［プロパティ］を選択します。
［条件プロパティ］ダイアログが表示されます。

ダイアログで，次のように変更します。

定義名
稟議2作業発生条件

SQL文
「稟議2」作業は，稟議2の宛先が指定されたときだけ実行します。ユーザ追加処理では，宛先が未指定の場合は，「未選択」というテキストをNMITEM4カラムに設定するため，次の発生条件を設定します。
SELECT NMITEM4 FROM BLC_INBOX_T WHERE CDPINAME = '@PIName' AND NMITEM4 = '未選択'

「True/Falseの結果を反対にする」
チェックします。

［OK］ボタンをクリックして，ダイアログを閉じます。

［アウトライン］ビューで，稟議業務ステップを右クリックし，［新規作成］－［一般作業］を選択します。
稟議業務ステップの下に新規一般作業定義が追加されます。

追加されたアイコンを選択し，［プロパティ］を選択します。
［一般作業プロパティ］ダイアログが表示されます。

ダイアログで，次の内容を設定します。

作業定義名
稟議2

振り分けルール名
ringi2_rule

発生条件名
稟議2作業発生条件

［OK］ボタンをクリックして，ダイアログを閉じます。

(6)　申請者確認業務ステップの追加

申請者確認業務ステップを稟議業務ステップのあとに追加します。

申請者確認業務ステップでは，承認作業または受付作業が完了したあとに，申請者本人が処理の状況を確認します。

申請者確認業務ステップを追加する手順を次に示します。

操作手順

［ビジネスプロセス遷移エディタ］で，稟議と先着2の間に入るよう，業務ステップアイコンを貼り付けます。業務ステップアイコンは，［ビジネスプロセス遷移エディタ］の右側にある［パレット］を開いて選択することができます。

貼り付けた業務ステップアイコンを右クリックし，［プロパティ］を選択します。
［業務ステッププロパティ］ダイアログが表示されます。

ダイアログで，次のように変更します。

業務ステップ定義名
申請者確認

［OK］ボタンをクリックして，ダイアログを閉じます。

稟議から先着2への遷移定義を稟議から申請者確認へに変更します。

遷移定義アイコンを貼り付けて，申請者確認から先着2への遷移定義を追加します。

［アウトライン］ビューの申請者確認のアイコンを右クリックし［新規作成］－［一般作業］を選択します。
申請者確認業務ステップの下に新規一般作業定義1が追加されます。

追加された「新規条件定義1」を右クリックし，[プロパティ]を選択します。
［一般作業プロパティ］ダイアログが表示されます。

ダイアログで，次の内容を設定します。

作業定義名
申請者確認

振り分けルール名
申請者振り分けルール
申請者振り分けルールは，BLSGで提供されているサンプルです。「<BLSGのインストールディレクトリ>¥data¥bp」の下にあります。

［OK］ボタンをクリックして，ダイアログを閉じます。

2.5.4　ユーザ追加処理のカスタマイズ

ここでは，ユーザ追加処理で次の処理を追加します。

受付作業（稟議作業の一つ前の作業）で帳票を表示したときに，稟議2作業の宛先情報をドロップダウンリストへ追加する。

受付作業で帳票の［承認］ボタンをクリックしたときに，BLC_INBOX_TのNMITEM3カラムおよびNMITEM4カラムに稟議1作業および稟議2作業の宛先を設定する。

ユーザ追加処理をカスタマイズする手順を次に示します。

＜この項の構成＞

(1)　ファイルのコピーとオープン

(2)　ユーザ定義クラスのクラス名とコンストラクタ名の変更

(3)　宛先情報をドロップダウンリストへ追加するタイミングの決定

(4)　メソッドのカスタマイズ

(5)　宛先情報をデータベースへ格納するタイミングの決定

(6)　メソッドのカスタマイズ

(1)　ファイルのコピーとオープン

カスタマイズの作業では，SampleConsultationEUR_1_userServerSideClass.javaを直接編集するのではなく，SampleConsultationEUR_1_userServerSideClass.javaをコピーして名称を変更し，このファイルを編集していきます。

ファイルのコピーからオープンまでの手順を次に示します。

操作手順

次のフォルダにあるSampleConsultationEUR_1_userServerSideClass.javaをコピーし，任意のフォルダに保存します。
<BLSGのインストールディレクトリ>¥data¥usersource

コピーしたファイルの名称を「Custom_SampleConsultationEUR_1_userServerSideClass.java」に変更します。

EclipseなどでCustom_SampleConsultationEUR_1_userServerSideClass.javaを開きます。
Custom_SampleConsultationEUR_1_userServerSideClass.javaを編集できるようになります。

(2)　ユーザ定義クラスのクラス名とコンストラクタ名の変更

クラス名とコンストラクタ名を変更する手順を次に示します。

操作手順

クラス名とコンストラクタ名を次のように「Custom_SampleConsultationEUR_1_userServerSideClass」に変更します。

//サンプルソース（ご参考）
public class Custom_SampleConsultationEUR_1_userServerSideClass extends SampleConsultationEUR_1_Class {

 //コンストラクタ
 public Custom_SampleConsultationEUR_1_userServerSideClass(){
 }
・・・

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

変更内容を保存します。

(3)　宛先情報をドロップダウンリストへ追加するタイミングの決定

ユーザ定義クラス（Custom_SampleConsultationEUR_1_userServerSideClass）は，帳票クラス（SampleConsultationEUR_1_Class）を継承して，BLCEURFormBaseクラスのメソッドをオーバーライドしています。このため，BLCEURFormBaseクラスのどのメソッドを使用するかを決定することで，稟議2作業の宛先情報をドロップダウンリストへ追加するタイミングを決定します。

ここではEUR Form帳票を表示する直前のタイミングで処理を実行させたいため，ufsv_addEURFormPreparation（帳票前処理）メソッドを使用します。

参考

帳票クラスは，「帳票の生成」時，BLSGによって生成されます。「SampleConsultationEUR_1_Class」は，マニュアル「uCosminexus 電子フォームワークフロー システム構築ガイド」に従って作成したときに，BLSGが生成した帳票クラスです。

帳票クラス名（SampleConsultationEUR_1_Class）は，BLSGで帳票定義を作成する際に設定する帳票IDから決定されます。
このため，「帳票の生成」時，帳票IDを変更（帳票定義を新たに作成するなど）し，ユーザ追加処理として，「Custom_SampleConsultationEUR_1_userServerSideClass」を使用する設定をした場合，「Custom_SampleConsultationEUR_1_userServerSideClass」が継承する帳票クラスを「SampleConsultationEUR_1_Class」から変更したあとの帳票クラスに変更する必要があります。
帳票IDと帳票クラス名の対応を次に示します。

図2-18　帳票IDと帳票クラス名の対応

(4)　メソッドのカスタマイズ

ufsv_addEURFormPreparation（帳票前処理）メソッドを次のようにカスタマイズします。

try{
 if("受付-受付".equals(befpi.getInfo(befpi.BEF_NODENAME))){
     ////////////////////////////////////////////////////////////
     // 宛先プルダウンのソート処理開始(EUR Form連携帳票)
     ////////////////////////////////////////////////////////////

     // ユーザIDの取得
     String l_strUserID = befpi.getBLCInfo().getAuthenticateObject().getUserId();

     // BLCDirsオブジェクトの取得
     BLCDirs l_blcdir = new BLCDirsLoader().getDirsObject();
     ArrayList l_arrylist = new ArrayList();

     //取得属性を指定：指定可能な属性は，以下のマニュアル参照。
     //「uCosminexus 電子フォームワークフロー APIリファレンス」
     //「BLCDirsクラス　getTargetInfo メソッド」
     l_arrylist.add("CDTARGET");    // 宛先ユーザID
     l_arrylist.add("NMBELONGTO");  // 宛先の所属組織略称
     l_arrylist.add("CDJOBTITLE");  // 宛先の役職コード
     l_arrylist.add("NMJOBTITLE");  // 宛先の役職略称
     l_arrylist.add("NMLASTNAME");  // 宛先の名字
     l_arrylist.add("NMFIRSTNAME"); // 宛先の名前

     //役職コード昇順でソートした宛先リストを取得し，宛先情報ディクショナリに設定。
     //例：宛先の役職コードの降順
     BLCDictionary l_DicTarget = l_blcdir.getTargetInfo(l_strUserID,l_arrylist,"CDJOBTITLE DESC");

     //EUR Formドロップダウンオブジェクトの生成
     EFormDropdownListSetter l_efDDLSetter = new EFormDropdownListSetter();

     //宛先ドロップダウンにデフォルト表示項目を追加
     //「宛先を選択してください。」
     l_efDDLSetter.add(BLCSTRPortal.get(BLCSTRPortal.FMTARGETCLICK),"未選択");
     StringBuffer l_sbTarget = null;
     String l_strIndex = null;
     String l_strTargetUser = null;

     // 宛先登録件数取得
     int l_cntTarget = ((Integer)l_DicTarget.get("blc_target_total")).intValue();

     // 宛先登録件数分ループ
     for (int i=1;i <= l_cntTarget;i++){
       l_strIndex = String.valueOf(i);

       //宛先ユーザIDの取得
       l_strTargetUser = l_DicTarget.item("blc_target_id_" + l_strIndex);

       // 宛先ユーザの表示文字列生成
       // 表示内容は「氏名(組織略称 役職略称)」
       l_sbTarget = new StringBuffer();
       l_sbTarget.append(l_DicTarget.item("blc_target_nmfull_" + l_strIndex));
       l_sbTarget.append("(");;
       l_sbTarget.append(l_DicTarget.item("blc_target_aborg_" + l_strIndex));
       l_sbTarget.append(" ");
       l_sbTarget.append(l_DicTarget.item("blc_target_abjob_" + l_strIndex));
       l_sbTarget.append(")");

       // 宛先ユーザをプルダウンリストに追加
       l_efDDLSetter.add(l_sbTarget.toString(),l_strTargetUser);
       l_sbTarget = null;
     }

     // EUR帳票コントロールの変更
     //受付-受付の時は，ドロップダウンリストを必須入力にする。
     //modifyInstanceDataItem：初期値の設定
     efDoc.modifyControl("CID_DL_ADDRESS2", l_efDDLSetter);
     efDoc.modifyInstanceDataItem("CID_DL_ADDRESS2", "未選択");

     ////////////////////////////////////////////////////////////
     // 宛先プルダウンのソート処理終了
     ////////////////////////////////////////////////////////////
 }
} catch ( BLCException err ) {
   throw err;
} catch ( Exception err ) {  
   BLCException blcErr = BLCException.getUserException( err, 50001, new String [] { "arg1" } );
   throw blcErr;
}

ufsv_addEURFormPreparationメソッドのカスタマイズの詳細を以降で説明します。

(a)　宛先情報をドロップダウンリストへ追加する条件の決定

（3）で決定したメソッド（EUR Form帳票を表示する直前のタイミングで呼ばれるメソッド）に，受付作業でだけ稟議2作業の宛先情報をドロップダウンリストへ追加するよう，条件文を設定します。条件判定には，BLCEURFormProcessInfoクラス（SampleConsultationEUR_1_Class.javaでの変数名は「befpi」）のgetInfoメソッドを使用します。

条件文の設定内容を次に示します。

引数にbefpi.BEF_NODENAMEを指定して，作業名を取得できるようにします。
作業名は，「業務ステップ定義名」+「-」（半角ハイフン）+「作業定義名」となります。

カスタマイズの内容を次に示します。

if("受付-受付".equals(befpi.getInfo(befpi.BEF_NODENAME))){
}

(b)　宛先情報の取得

稟議2作業の宛先情報の取得は，次の六つの部分に分かれます。

ログインユーザIDの取得

BLCDirsオブジェクトの取得

宛先情報の取得

デフォルト表示項目の追加

宛先ユーザの帳票ドロップダウンへの追加

帳票コントロールの変更およびデフォルト表示項目の選択

それぞれについて説明します。

ログインユーザIDの取得

ログインユーザIDを取得するには，BLCAuthenticateクラスのgetUserIdメソッドを使用します。

カスタマイズの内容を次に示します。

String l_strUserID = befpi.getBLCInfo().getAuthenticateObject().getUserId();

BLCDirsオブジェクトの取得

BLCDirsオブジェクトを取得するには，BLCDirsLoaderクラスのgetDirsObjectメソッドを使用します。

カスタマイズの内容を次に示します。

BLCDirs l_blcdir = new BLCDirsLoader().getDirsObject();

宛先情報の取得

宛先情報を取得するには，取得したBLCDirsオブジェクトのgetTargetInfoメソッドを使用します。

カスタマイズの内容を次に示します。ここでは，役職コードの降順で取得するようにしています。

ArrayList l_arrylist = new ArrayList();
//取得属性を指定：指定可能な属性は，以下のマニュアル参照。
//「uCosminexus 電子フォームワークフロー APIリファレンス」
//「BLCDirsクラス　getTargetInfo メソッド」
l_arrylist.add("CDTARGET");    // 宛先ユーザID
l_arrylist.add("NMBELONGTO");  // 宛先の所属組織略称
l_arrylist.add("CDJOBTITLE");  // 宛先の役職コード
l_arrylist.add("NMJOBTITLE");  // 宛先の役職略称
l_arrylist.add("NMLASTNAME");  // 宛先の名字
l_arrylist.add("NMFIRSTNAME"); // 宛先の名前

//役職コード昇順でソートした宛先リストを取得し，宛先情報ディクショナリに設定。
//例：宛先の役職コードの降順
BLCDictionary l_DicTarget = l_blcdir.getTargetInfo(l_strUserID,l_arrylist,"CDJOBTITLE DESC");

デフォルト表示項目の追加

EUR Formドロップダウンオブジェクトを生成し，デフォルト表示項目を追加します。ここでは項目の追加だけを実施し，追加した項目をデフォルトで表示させるカスタマイズはあとで実施します。

EUR Formドロップダウンオブジェクトとして，EFormDropdownListSetterクラスを使用します。

デフォルト表示項目としてキャプションに「宛先を選択してください。」を，値に「未選択」を追加します。

カスタマイズの内容を次に示します。

//EUR Formドロップダウンオブジェクトの生成
EFormDropdownListSetter l_efDDLSetter = new EFormDropdownListSetter();

//宛先ドロップダウンにデフォルト表示項目を追加
//「宛先を選択してください。」
l_efDDLSetter.add(BLCSTRPortal.get(BLCSTRPortal.FMTARGETCLICK),"未選択");

宛先ユーザの帳票ドロップダウンへの追加

取得した宛先ユーザを帳票ドロップダウンのオブジェクト（EFormDropdownListSetter）に，取得した順序で追加します。

カスタマイズの内容を次に示します。

StringBuffer l_sbTarget = null;
String l_strIndex = null;
String l_strTargetUser = null;

//宛先登録件数取得
int l_cntTarget = ((Integer)l_DicTarget.get("blc_target_total")).intValue();

//宛先登録件数分ループ
for(int i=1;i<=l_cntTarget;i++){
 l_strIndex = String.valueOf(i);

 //宛先ユーザIDの取得
 l_strTargetUser = l_DicTarget.item("blc_target_id_" + l_strIndex);

 //宛先ユーザの表示文字列生成
 //表示内容は「氏名（組織略称　役職略称）」
 l_sbTarget = new StringBuffer();
 l_sbTarget.append(l_DicTarget.item("blc_target_nmfull_" + l_strIndex));
 l_sbTarget.append("(");
 l_sbTarget.append(l_DicTarget.item("blc_target_aborg_" + l_strIndex));
 l_sbTarget.append(" ");
 l_sbTarget.append(l_DicTarget.item("blc_target_abjob_" + l_strIndex));
 l_sbTarget.append(")");

 //宛先ユーザをプルダウンリストに追加
 l_efDDLSetter.add(l_sbTarget.toString(),l_strTargetUser);
 l_sbTarget = null;
}

帳票コントロールの変更およびデフォルト表示項目の選択

帳票コントロールの変更およびデフォルト表示項目の選択には，EFormDocumentクラスを使用します。

カスタマイズの内容を次に示します。

//EUR帳票コントロールの変更
//受付-受付のときは，ドロップダウンリストを必須入力にする。
//modifyInstanceDataItem：初期値の設定
efDoc.modifyControl("CID_DL_ADDRESS2",l_efDDLSetter);
efDoc.modifyInstanceDataItem("CID_DL_ADDRESS2","未選択");

(5)　宛先情報をデータベースへ格納するタイミングの決定

ユーザ定義クラス（Custom_SampleConsultationEUR_1_userServerSideClass）は，帳票クラス（SampleConsultationEUR_1_Class）を継承して，BLCEURFormBaseクラスのメソッドをオーバーライドしています。このため，BLCEURFormBaseクラスのどのメソッドを使用するかを決定することで，宛先情報をデータベースへ格納するタイミングを決定します。

ここではボタンをクリックしたタイミングで処理を実行させたいため，ufsv_addEURButtonPreparation（ボタンDB更新前処理）メソッドを使用します。

(6)　メソッドのカスタマイズ

ufsv_addEURButtonPreparation（ボタンDB更新前処理）メソッドを次のようにカスタマイズします。

if("受付-受付".equals(befpi.getInfo(befpi.BEF_NODENAME)) && "ID_WICOMPLETE".equals(befpi.getInfo(befpi.BEF_ACCEPTID))){
         //フォームデータの取得
         String l_strFormData = befpi.getInfo(befpi.BEF_EURFORMDATA);

         //DOMオブジェクトの生成
         DocumentBuilderFactory l_dbfObj = null;
         DocumentBuilder l_dbObj = null;

         StringReader l_srReader = null;
         InputSource l_isSource = null;

         Document l_doc = null;

         l_srReader = new StringReader(l_strFormData);
         l_isSource = new InputSource((Reader)l_srReader);

         l_dbfObj = DocumentBuilderFactory.newInstance();
         l_dbObj = l_dbfObj.newDocumentBuilder();
         l_doc =l_dbObj.parse(l_isSource);

         //宛先除法の取得
         NodeList l_nodeList = null;
         NodeList l_nodeList2 = null;
         Node l_nodeWork = null;
         Node l_nodeChildWork = null;
         Node l_nodeWork2 = null;
         Node l_nodeChildWork2 = null;

         String l_str = null;
         String l_str2 = null;

         // 指定されたメンバ名（タグ名）のノードリストを取得
         l_nodeList = l_doc.getElementsByTagName("宛先");
         l_nodeList2 = l_doc.getElementsByTagName("宛先2");

         if(l_nodeList.getLength() == 1  && l_nodeList2.getLength() == 1){
             // 1個存在した場合
             l_nodeWork = l_nodeList.item(0);
             l_nodeWork2 = l_nodeList2.item(0);

             // 子ノードを取得
             l_nodeChildWork = l_nodeWork.getFirstChild();
             l_nodeChildWork2 = l_nodeWork2.getFirstChild();
             if(l_nodeChildWork != null &&
                 l_nodeChildWork.getNodeType() == Node.TEXT_NODE &&
                 l_nodeChildWork2 != null &&
                 l_nodeChildWork2.getNodeType() == Node.TEXT_NODE){
                 // 子ノードが存在，かつノード種別がTextの場合
                 l_str = l_nodeChildWork.getNodeValue();
                 l_str2 = l_nodeChildWork2.getNodeValue();
             }
         }else{
             // 存在しない or 複数存在
             // error
         }
         befpi.setInfo(befpi.BEF_ATTRNUM,"4");
         befpi.setInfo(befpi.BEF_ATTRDATA+"3",l_str);
         befpi.setInfo(befpi.BEF_ATTRDATA+"4",l_str2);
     }

なお，コンパイルを通すには，次のパッケージをインポートする必要があります。

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;

ufsv_addEURButtonPreparationメソッドのカスタマイズの詳細を以降で説明します。

(a)　宛先情報をデータベースへ格納する条件の決定

（5）で決定したメソッド（ボタンをクリックするタイミングで呼ばれるメソッド）に，受付作業の［承認］ボタンがクリックされた場合に宛先情報をデータベースへ追加するよう，条件文を設定します。条件判定には，BLCEURFormProcessInfoクラス（SampleConsultationEUR_1_Class.javaでの変数名は「befpi」）のgetInfoメソッドを使用します。

条件文の設定内容を次に示します。

引数にbefpi.BEF_NODENAMEを指定して，作業名を取得できるようにします。
作業名は，「業務ステップ定義名」+「-」（半角ハイフン）+「作業定義名」となります。

引数にbefpi.BEF_ACCEPTIDを指定して，ボタンIDを取得できるようにします。

カスタマイズの内容を次に示します。

if("受付-受付".equals(befpi.getInfo(befpi.BEF_NODENAME))
  &&"ID_WICOMPLETE".equals(befpi.getInfo(befpi.BEF_ACCEPTID))){
}

(b)　宛先情報の取得

宛先情報の取得は，次の三つの部分に分かれます。

フォームデータの取得

DOMオブジェクトの生成

宛先情報の取得

それぞれについて説明します。

フォームデータの取得

フォームデータを取得するには，BLCEURFormProcessInfoクラス（SampleConsultationEUR_1_Class.javaでの変数名はbefpi）のgetInfoメソッドを使用します。

getInfoメソッドの引数にbefpi.BEF_EURFORMDATAを指定して，フォームデータを取得できるようにします。フォームデータには，送信ユニットを文字列化したデータが格納されています。

カスタマイズの内容を次に示します。

String l_strFormData = befpi.getInfo(befpi.BEF_EURFORMDATA);

DOMオブジェクトの生成

フォームデータからDOMオブジェクトを生成します。

カスタマイズの内容を次に示します。

//DOMオブジェクトの生成
DocumentBuilderFactory l_dbfObj = null;
DocumentBuilder l_dbfObj = null;

StringReader l_srReader = null;
InputSource l_isSource = null;

Document l_doc = null;

l_srReader = new StringReader(l_strFormData);
l_isSource = new InputSource((Reader)l_srReader);

l_dbfObj = DocumentBuilderFactory.newInstance();
l_dbObj = l_dbfObj.newDocumentBuilder();
l_doc = l_dbObj.parse(l_isSource);

宛先情報の取得

DOMオブジェクトから宛先情報を取得するには，getElementsByTagNameメソッドの引数にタグ名を指定します。指定するタグ名は，帳票作成時に指定したメンバ名になります。

帳票作成時に指定したメンバ名を次に示します。

図2-19　帳票作成時に指定したメンバ名

ここでは，「宛先」および「宛先2」をgetElementsByTagNameメソッドの引数に指定します。

カスタマイズの内容を次に示します。

//宛先情報の取得
NodeList l_nodeList = null;
NodeList l_nodeList2 = null;
Node l_nodeWork = null;
Node l_nodeChildWork = null;
Node l_nodeWork2 = null;
Node l_nodeChildWork2 = null;

String l_str = null;
String l_str2 = null;

// 指定されたメンバ名（タグ名）のノードリストを取得
l_nodeList = l_doc.getElementsByTagName("宛先");
l_nodeList2 = l_doc.getElementsByTagName("宛先2");

if(l_nodeList.getLength() ==  1 &&l_nodeList2.getLength() == 1){
   // 1個存在した場合
   l_nodeWork = l_nodeList.item(0);
   l_nodeWork2 = l_nodeList2.item(0);

  // 子ノードを取得
   l_nodeChildWork = l_nodeWork.getFirstChild();
   l_nodeChildWork2 = l_nodeWork2.getFirstChild();
   if(l_nodeChildWork != null &&
       l_nodeChildWork.getNodeType() == Node.TEXT_NODE &&
       l_nodeChildWork2 != null &&
       l_nodeChildWork2.getNodeType() == Node.TEXT_NODE){
         // 子ノードが存在，かつノード種別がTextの場合
         l_str = l_nodeChildWork.getNodeValue();
         l_str2 = l_nodeChildWork2.getNodeValue();
   }
}else{
   // 存在しない or 複数存在
   // error
}

(c)　BLC_INBOX_TのNMITEM3カラムおよびNMITEM4カラムへの設定

宛先情報をNMITEM3カラムおよびNMITEM4カラムへ設定するには，BLCEURFormProcessInfoクラス（SampleConsultationEUR_1_Class.javaでの変数名はbefpi）のsetInfoメソッドを使用します。

カスタマイズの内容を次に示します。

befpi.setInfo(befpi.BEF_ATTRNUM,"4");
befpi.setInfo(befpi.BEF_ATTRDATA+"3",l_str);
befpi.setInfo(befpi.BEF_ATTRDATA+"4",l_str2);

2.5.5　帳票定義のカスタマイズ

2.5.2項から2.5.4項までで作成・生成した各ファイルを使用して，帳票定義を作成します（1.2の手順4.）。このとき，［帳票定義］画面で次の内容を設定します。

受付作業でだけ，宛先2のドロップダウンリストおよび稟議1宛先のテキストを表示させる
［帳票コントロール表示属性］タブで次の内容を設定します。
宛先2：受付-受付の欄は「入力」，これ以外は「非表示」に設定
稟議1宛先：受付-受付の欄は「参照」，これ以外は，「非表示」に設定

稟議作業および申請者確認作業で，追加した作業の実行時に使用する帳票のボタンの表示・非表示を制御する
［ボタン制御］タブで次の内容を設定します。
「承認」，「戻る」および「保留」以外：稟議-稟議1，稟議-稟議2および申請者確認-申請者確認の欄を「非表示」に設定

申請者確認作業の完了後，案件が完了する
［作業関連］タブで［業務完了指示作業リストの編集］ボタンをクリックし，表示される［業務完了指示作業選択］ダイアログで次の内容を設定します。
申請者確認-申請者確認：チェックする

2.5.6　帳票の生成，BLC実行環境へのデプロイとワーク管理データベースへの登録

2.5.5項で作成した帳票定義から，帳票ファイルを生成します（1.2の手順5.）。また，BLC実行環境へデプロイし（1.2の手順6.），ワーク管理データベースへビジネスプロセス定義および振り分けルール定義を登録します（1.2の手順7.）。さらに，帳票を登録（1.2の手順8.）します。

2.5.7　参照先

この節で取り上げた内容の参照先を次に示します。

内容
参照先

BLCの受信ボックステーブル（BLC_INBOX_T）
マニュアル「uCosminexus 電子フォームワークフロー 解説」

BLCのデータベース

EUR Form帳票ウィンドウの使用方法
マニュアル「帳票システム構築支援　uCosminexus EUR　uCosminexus EUR 帳票設計（EUR Form帳票）」

EUR Form帳票ウィンドウ，EUR Form帳票の作成

リスト項目を動的に変更する方法
マニュアル「電子フォームシステム EUR Form uCosminexus EUR Form サーバプログラム開発」

DropdownList帳票コントロールのリスト項目を動的に変更する場合

ユーザ追加処理
マニュアル「uCosminexus 電子フォームワークフロー 解説」

帳票ボタン処理などのカスタマイズ（EUR Form連携帳票の場合）

ユーザ追加処理による帳票データの変更方法

BLCEURFormBaseクラスの各メソッド
マニュアル「uCosminexus 電子フォームワークフロー 解説」

サーバ側のユーザ追加処理で行うカスタマイズ（EUR Form連携帳票の場合）

BLCEURFormProcessInfoクラス
マニュアル「uCosminexus 電子フォームワークフロー APIリファレンス」

BLCEURFormProcessInfoクラス

BLCAuthenticateクラス
マニュアル「uCosminexus 電子フォームワークフロー APIリファレンス」

BLCAuthenticateクラス

BLCDirsLoaderクラス
マニュアル「uCosminexus 電子フォームワークフロー APIリファレンス」

BLCDirsLoaderクラス

getTargetInfoメソッド
マニュアル「uCosminexus 電子フォームワークフロー APIリファレンス」

BLCDirsクラス

EFormDropdownListSetterクラス
マニュアル「電子フォームシステム EUR Form uCosminexus EUR Form サーバプログラム開発」

EFormDropdownListSetterクラス

EFormDocumentクラス
マニュアル「電子フォームシステム EUR Form uCosminexus EUR Form サーバプログラム開発」

EFormDocumentクラス

ボタンID
マニュアル「uCosminexus 電子フォームワークフロー APIリファレンス」

BLCFormButtonクラス

送信ユニット
マニュアル「帳票システム構築支援　uCosminexus EUR　uCosminexus EUR 帳票設計（EUR Form帳票）」全体

付録

＜この付録の構成＞

付録A　Web帳票アプリケーションの開発で使用する主な処理

付録B　このマニュアルの参考情報

付録C　用語解説

付録A　Web帳票アプリケーションの開発で使用する主な処理

ここでは，Web帳票アプリケーションの開発で使用されることの多い処理を取り上げます。

＜この節の構成＞

付録A.1　フォームデータの取得

付録A.2　宛先ドロップダウンリストの追加

付録A.1　フォームデータの取得

フォームデータは，送信ユニットを文字列化したデータです。このフォームデータを取得するには，BLCEURFormProcessInfoクラスのgetInfoメソッドを使用します。getInfoメソッドに引数を指定して，フォームデータを取得できるようにします。

詳細は，「2.3.4　ユーザ追加処理のカスタマイズ」または「2.5.4　ユーザ追加処理のカスタマイズ」を参照してください。

フォームデータを取得する処理は，ユーザ追加処理の各処理で利用できます。ただし，取得する値によっては利用個所が限られます。

付録A.2　宛先ドロップダウンリストの追加

宛先ドロップダウンリストを追加するには，宛先情報を取得したあと，帳票ドロップダウンのオブジェクトに追加します。

詳細は，「2.5.4　ユーザ追加処理のカスタマイズ」を参照してください。

宛先ドロップダウンリストを追加する処理は，帳票に表示する情報を操作するため，ユーザ追加処理の帳票前処理で利用できます。

付録B　このマニュアルの参考情報

このマニュアルを読むに当たっての参考情報を示します。

＜この節の構成＞

付録B.1　関連マニュアル

付録B.2　このマニュアルでの表記

付録B.3　英略語

付録B.1　関連マニュアル

関連マニュアルを次に示します。必要に応じてお読みください。

uCosminexus 電子フォームワークフロー システム構築ガイド（3020-3-Q31）
uCosminexus 電子フォームワークフロー SetおよびuCosminexus 電子フォームワークフロー Developerのシステムを構築する方法について説明しています。

uCosminexus 電子フォームワークフロー 解説（3020-3-Q32）
電子フォームワークフローの機能，操作方法，および運用方法について説明しています。

uCosminexus 電子フォームワークフロー APIリファレンス（3020-3-Q34）
電子フォームワークフローが提供するJavaクラスおよびオブジェクトについて説明しています。

uCosminexus Service Coordinator Interactive Workflow AP開発ガイド（3020-3-M81）
ビジネスプロセス定義の開発方法や業務プログラムの作成方法について説明しています。

uCosminexus Service Coordinator Interactive Workflow ビジネスプロセス開発ガイド（3020-3-M85）
ビジネスプロセス管理ツール（CSCIW-Definer）を使用し，ワーク管理システム（CSCIW）で運用するビジネスプロセスの定義，運用方法およびCSCIW-Definerの画面の詳細について説明しています。

帳票システム構築支援　uCosminexus EUR　uCosminexus EUR 帳票設計（EUR Form帳票）（3020-7-534）
EUR Formの概要，およびEUR Form帳票を作成する方法について説明しています。

帳票システム構築支援　uCosminexus EUR uCosminexus EUR メッセージ（3020-7-537）
EUR Form帳票設計時に表示されるメッセージについて説明しています。

電子フォームシステム EUR Form uCosminexus EUR Form システム設計・管理（3020-7-491）
EUR Formの概要，機能，システム設計，およびシステム構築について説明しています。また，トラブルシューティングなどについても説明しています。

電子フォームシステム EUR Form uCosminexus EUR Form サーバプログラム開発（3020-7-492）
EUR Form帳票を使用した業務を実現するためのサーバプログラム開発について説明しています。

スケーラブルデータベースサーバ　HiRDB Version 8 システム導入・設計ガイド（Windows(R)用）（3020-6-352）
HiRDBの導入およびチューニング方法や，HiRDBシステムの設計方法について説明しています。

スケーラブルデータベースサーバ　HiRDB Version 8 システム運用ガイド（Windows(R)用）（3020-6-354）
HiRDBのシステムを運用する方法について説明しています。

HiRDB Version 9 システム導入・設計ガイド（Windows(R)用）（3020-6-452）
HiRDBの導入およびチューニング方法や，HiRDBシステムの設計方法について説明しています。

HiRDB Version 9 システム運用ガイド（Windows(R)用）（3020-6-454）
HiRDBのシステムを運用する方法について説明しています。

付録B.2　このマニュアルでの表記

このマニュアルでは，製品名を次のように表記しています。

表記
製品名

HiRDB
HiRDB/Parallel Server Version 8
HiRDB/Single Server Version 8
HiRDB Server Version 9

BLSG
Hitachi Business Logic - Container - Script Generator

BLC
Hitachi Business Logic - Container 2

Java
JavaTM

JDK
JDKTM

JSP
JSPTM

Oracle
Oracle 11g

CSCIW
uCosminexus Service Coordinator Interactive Workflow

付録B.3　英略語

このマニュアルで使用する英略語を次に示します。

英略語 | 英字での表記
DB | Database
HTML | Hyper Text Markup Language
OS | Operating System
RDB | Relational Database
WAR | Web Archive
Web | World Wide Web

付録C　用語解説

英字｜カ行｜サ行｜タ行｜ハ行｜ヤ行｜ワ行

英字

BLC

ワークフローに対応する帳票アプリケーションの開発と実行を支援するプログラムです。JSP形式の帳票アプリケーションを自動生成する帳票ジェネレータ（BLSG）機能と，帳票アプリケーションを実行するBLC実行環境機能で構成されています。

BLC実行環境

帳票ジェネレータ（BLSG）機能を使用して作成した帳票アプリケーションの標準的な実行環境です。

BLC帳票

HTMLを入力として帳票ジェネレータ（BLSG）で生成した帳票です。

EUR Form帳票

EUR FormでBLC連携用帳票として生成した帳票です。EUR Form帳票定義ファイル（*.efs）から生成したファイルです。ファイルの拡張子はefdです。

EUR Form帳票定義ファイル

バックグラウンドや配置した帳票コントロールの情報など，EUR Form帳票の定義情報を保存したファイルです。ファイルの拡張子はefsです。

EUR Form帳票名

EUR Form帳票を格納フォルダ内でユニークになるように識別する名称です。EUR Form帳票をEUR Form帳票ファイル名で管理する場合は，指定は任意です。

EUR Form連携帳票

EUR Form帳票の送信ユニット情報の一覧表を入力として帳票ジェネレータ（BLSG）で生成した，EUR Form帳票を表示するための連携帳票です。

カ行

画面HTML

ユーザインタフェースとなる帳票の画面のHTMLファイルです。画面HTMLでは，画面項目，項目のレイアウト，画面の配色などを定義します。

業務完了条件

業務ステップを完了状態にする条件です。業務ステップの評価時にこの条件が満たされると，業務ステップは完了状態になります。

業務ステップ

ビジネスプロセス定義の構成要素の一つです。業務の状態を表し，ある状態での作業の集合として定義されます。

サ行

作業

業務ステップ中に定義する業務処理の単位です。

制御ノード

ビジネスプロセス定義の構成要素の一つです。分岐や先着など，案件の遷移を制御するノードです。

遷移定義

業務ステップおよび制御ノードの順序関係を定義したものです。

先着ノード

制御ノードの一つです。直前の業務ステップとしてあらかじめ定義された複数の業務ステップのうち，どれか一つが完了した時点で次の業務ステップを開始します。

送信ユニット

EUR Form帳票に入力され，指定された送信先に送信されるデータです。

送信ユニット情報の一覧

uCosminexus EUR Developerで出力した一覧表です。

タ行

帳票定義

帳票の内容を帳票ジェネレータ（BLSG）機能で定義したものです。

帳票ファイル

帳票ジェネレータ（BLSG）機能で生成した，帳票アプリケーションのJSPファイルです。

帳票前処理

帳票前処理は，データベースからの案件情報や帳票データの読み出し後，帳票を表示する直前で呼ばれる処理です。新規表示（申請帳票）と再表示（承認帳票）の両方で呼ばれます。

帳票モジュール

帳票の内容を構成する要素です。テキスト領域やボタンなどの項目の集まりで構成されます。複数の帳票モジュールを組み合わせて一つの帳票を表現します。

帳票モジュール定義

帳票モジュールの内容を帳票ジェネレータ（BLSG）機能で定義したものです。

ハ行

ビジネスプロセス定義

業務の流れ（ビジネスプロセス）をビジネスプロセス管理で定義したものです。BLCでは，帳票ジェネレータ（BLSG）機能で帳票アプリケーションを作成する際に，ビジネスプロセス定義の情報（プロセス定義情報）を入力する必要があります。

振り分けルール

作業者を決定するためのルールです。作業者は，ビジネスプロセス定義の各作業に指定した振り分けルールを適用することで決定します。

分岐ノード

制御ノードの一つです。次の業務ステップとしてあらかじめ定義された複数の業務ステップから，条件に従って一つの業務ステップを選択し，開始します。

ボタンDB更新前処理

申請ボタンや承認ボタンなどのボタンをクリックしたあと，BLCの申請／承認処理の延長（BLCのDB処理の前）で呼ばれる処理です。

ヤ行

ユーザ追加処理

帳票のボタン処理などに，ユーザが任意に追加する処理です。ユーザがJavaScriptやJavaクラスで作成します。

ワ行

ワーク管理データベース

CSCIWが扱う情報を管理するデータベースです。

索引

[Ｂ][Ｅ][Ｗ]
[ア行][カ行][サ行][タ行][ハ行][ヤ行][ワ行]

(英字)

(Ｂ)

BLC

BLC実行環境

BLC実行環境へのデプロイ〔承認作業での一括承認〕

BLC帳票

BLC帳票の開発の流れ

(Ｅ)

EUR Form帳票

EUR Form帳票定義ファイル

EUR Form帳票定義ファイルのカスタマイズ〔日付の自動設定〕

EUR Form帳票定義ファイルのカスタマイズ〔複数の宛先の選択〕

EUR Form帳票名

EUR Form連携帳票

EUR Form連携帳票の開発の流れ

(Ｗ)

Web帳票アプリケーションの開発

Web帳票アプリケーションの開発での位置づけ

Web帳票アプリケーションの開発の概要

Web帳票アプリケーションの開発部分

Web帳票アプリケーションのカスタマイズ

(ア行)

(あ)

宛先ドロップダウンリストの追加

(い)

一括承認機能

一括承認用受信ボックス（業務別件数）画面のカスタマイズ〔承認作業での一括承認〕

一括承認用受信ボックス画面のカスタマイズ〔承認作業での一括承認〕

(え)

エラー画面

(カ行)

(か)

拡張受信ボックス機能

カスタマイズ

カスタマイズするファイル〔承認業務ステップのスキップ〕

カスタマイズするファイル〔承認作業での一括承認〕

カスタマイズするファイル〔日付の自動設定〕

カスタマイズするファイル〔複数の宛先の選択〕

カスタマイズの概要

カスタマイズの準備

画面HTML

(き)

業務完了条件

業務ステップ

(サ行)

(さ)

作業

参照先〔BLC帳票の開発の流れ〕

参照先〔EUR Form連携帳票の開発の流れ〕

参照先〔Web帳票アプリケーションの開発の概要〕

参照先〔サンプル「販売契約稟議EUR」のカスタマイズ〕

参照先〔承認業務ステップのスキップ〕

参照先〔承認作業での一括承認〕

参照先〔日付の自動設定〕

参照先〔複数の宛先の選択〕

サンプル「販売契約稟議EUR」の概要

サンプル「販売契約稟議EUR」のカスタマイズ

サンプル「販売契約稟議EUR」のカスタマイズ項目の位置づけ

(し)

承認業務ステップのスキップ

承認作業での一括承認

申請帳票画面へのリンク機能

(す)

ストリングリソースプロパティファイルのカスタマイズ〔承認作業での一括承認〕

(せ)

制御ノード

遷移定義

先着ノード

(そ)

送信ユニット

送信ユニット情報の一覧

(タ行)

(ち)

帳票IDと帳票クラス名の対応

帳票作成時に指定したメンバ名

帳票定義

帳票定義のカスタマイズ〔複数の宛先の選択〕

帳票の生成，BLC実行環境へのデプロイとワーク管理データベースへの登録〔承認業務ステップのスキップ〕

帳票の生成，BLC実行環境へのデプロイとワーク管理データベースへの登録〔複数の宛先の選択〕

帳票の生成とBLC実行環境へのデプロイ〔日付の自動設定〕

帳票ファイル

帳票前処理

帳票モジュール

帳票モジュール定義

(ハ行)

(ひ)

引き戻し機能

ビジネスプロセス定義

ビジネスプロセス定義および振り分けルール定義のカスタマイズ〔複数の宛先の選択〕

ビジネスプロセス定義のカスタマイズ（業務ステップの完了条件のカスタマイズ）〔承認業務ステップのスキップ〕

ビジネスプロセス定義のカスタマイズ（分岐条件のカスタマイズ）〔承認業務ステップのスキップ〕

日付の自動設定

(ふ)

フォームデータの取得

複数の宛先の選択

振り分けルール

分岐ノード

(ほ)

保管案件の照会機能

ボタンDB更新前処理

(ヤ行)

(ゆ)

ユーザ追加処理

ユーザ追加処理のカスタマイズ〔承認業務ステップのスキップ〕

ユーザ追加処理のカスタマイズ〔複数の宛先の選択〕

(ワ行)

(わ)

ワーク管理データベース

■ 商標類

Microsoft Office Wordは，米国Microsoft Corporation の商品名称です。
Microsoft OfficeおよびExcelは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
MicrosoftおよびSQL Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
OracleとJavaは，Oracle Corporation 及びその子会社，関連会社の米国及びその他の国における登録商標です。
Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Windows Vistaは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
Eclipseは，開発ツールプロバイダのオープンコミュニティであるEclipse Foundation, Inc.により構築された開発ツール統合のためのオープンプラットフォームです。
その他記載の会社名，製品名は，それぞれの会社の商標もしくは登録商標です。