プログラミングガイド - bpm/業務改善プラット … daoグループの設定 73 5.4.2...

163
i プログラミングガイド J2EE開発モデル編 Ver 6.0

Upload: duonglien

Post on 19-Apr-2018

251 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

i

プログラミングガイド J2EE開発モデル編

Ver 6.0

Page 2: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

ii

Page 3: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

iii

第1章 イントロダクション 1

1 intra-martの起動と終了 2

1.1 intra-martへのログイン 2

1.2 intra-martからのログアウト 3

2 intra-martのメニュー構成 4

2.1 メニューの表示 4

2.2 intra-martのホーム画面 5

3 APIリストの見方 6

3.1 APIリストの格納場所 6

3.2 APIの操作 6

4 2つのWebアプリケーションモデル 7

4.1 スクリプト開発モデル 7

4.2 J2EE開発モデル 7

4.3 2つの開発モデルで構築したアプリケーションを混在可能 7

4.4 各ファイルの保存場所 8

4.4.1 intra-mart WebPlatformの場合 8

4.4.2 intra-mart AppFrameworkの場合 8

5 intra-martのアプリケーション開発概要 9

5.1 J2EE開発モデルによるアプリケーション開発 9

5.1.1 数多くのJavaコンポーネント群(im-BizAPI) 9

5.1.2 J2EE開発のフレームワーク 10

5.1.3 J2EE開発モデルにおいてフレームワークを活用した際のメリット 11

6 J2EE開発モデルで開発するにあたって 12

6.1 J2EEフレームワークプログラミング 12

6.2 さまざまなJavaコンポーネント群(im-BizAPI)の利用 13

第2章 im-J2EEフレームワークのプログラミング 15

1 Framework Producerとは 16

2 初期設定 17

2.1 デバッグサーバのインストール 17

2.2 ライセンスの登録 18

2.3 プロジェクト初期値設定 18

2.4 パースペクティブの表示 19

2.4.1 パースペクティブの切り替え 20

2.4.2 パースペクティブ切り替えボタンの表示 20

3 Webプロジェクトの作成 22

3.1 新規プロジェクトの作成 22

3.2 Framework Producerの環境構築 25

3.3 設定ファイルのインポート 27

3.4 ダイナミックパラメータの設定 29

3.5 ファイルの保存と設定ファイルの出力 30

4 ディレクトリ構成 31

4.1 パッケージ・エクスプローラーディレクトリ構成 31

4.2 フィルター 32

4.2.1 設定方法 32

5 コンポーネントの作成 34

5.1 im-J2EE Framework用ファイルの作成 34

5.2 サービスフレームワーク 36

Page 4: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

iv

5.2.1 遷移ページの設定 36

5.2.2 JSPプログラムの編集 39

5.2.3 サービスの追加 51

5.2.4 ServiceControl lerの作成 52

5.2.5 接続の追加 53

5.2.6 javaプログラムの編集 54

5.2.7 サービスリザルトの設定 55

5.2.8 サービスコントローラクラス作成ウィザード 57

5.3 イベントフレームワーク 61

5.3.1 イベントIDの設定 61

5.3.2 イベントの作成 62

5.3.3 イベントリザルトの作成 64

5.3.4 イベントリスナファクトリの設定 66

5.3.5 イベントリスナークラスの作成 ― スケルトン ― 67

5.3.6 イベントリスナークラスの作成 ― 新規作成 ― 69

5.4 データフレームワーク 73

5.4.1 DAOグループの設定 73

5.4.2 グループモデルの作成 74

5.4.3 DAOインタフェースの作成 78

5.4.4 DAOの作成 79

6 実行 85

7 デバッグ 87

8 その他の機能 90

8.1 Javaプログラムの行番号表示 90

8.2 作成したJavaプログラムの名前の変更 92

8.3 作成したJavaプログラムのパッケージの移動 93

8.4 Javaコンパイラーのオプション 94

8.5 サービスフレームワーク編集画面の拡大・縮小 95

8.6 im-JSPエディタの設定 97

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用 99

1 Storage Serviceの利用方法 100

1.1 ファイル・アップロード 100

1.2 ファイルリストの表示 103

1.3 ファイル・ダウンロード 105

1.3.1 Downloadと表示するためのリンクを作成 106

1.4 ファイルの削除 107

2 メール送信 109

2.1 メール送信フォームの作成 109

2.2 添付ファイル付きメールの送信 111

3 外部プロセスの呼び出し 114

3.1 サンプル 114

4 XML形式のデータを扱う 115

4.1 XMLパーサーとデータの取得 115

5 デバッグ手順 116

6 スクリプト開発モデルとの連携 118

6.1 メニューを介さないでフレームワークの画面を表示する方法 118

6.2 スクリプト開発モデルの画面からフレームワークの画面へ遷移する方法 118

7 モジュールの組み込みと操作 119

Page 5: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

v

7.1 ユーザインターフェース層 120

7.1.1 画面共通モジュール 120

7.1.2 グラフ描画モジュール(プレゼンテーション・ページ) 123

7.2 ビジネスロジック層 125

7.2.1 アプリケーション共通モジュール 125

7.2.2 メール連携モジュール 125

7.2.3 外部ソフトウェア接続モジュール 126

7.2.4 ERP連携モジュール 127

7.3 業務基盤ツール 127

7.3.1 アクセスセキュリティモジュール 127

7.3.2 ワークフロー・モジュール 128

7.3.3 ビジネスプロセスワークフローモジュール 128

7.3.4 バッチ管理モジュール 129

7.3.5 ポータルモジュール 129

7.3.6 ViewCreator 130

8 ユニットの組み込みと操作 132

8.1 アプリケーション共通マスタunit 132

8.2 カレンダーunit 132

8.2.1 呼び出し方法 133

8.2.2 カレンダーデータの受け取り方法 133

8.2.3 カレンダーマスタメンテナンス 133

8.3 ツリー表示unit 134

8.4 i-mode unit 134

8.4.1 ページ管理マスタメンテナンスでのi-modeの設定 134

8.4.2 i-modeのアドレスとパスワードの設定 135

8.4.3 i-mode用外出設定 136

9 エクステンション・モジュールの組み込みと操作 137

9.1 画面共通モジュール拡張 137

9.1.1 IM-Curl 137

9.2 帳票印刷モジュール拡張 139

9.2.1 IM-PDFデザイナー 139

9.2.2 IM-X Server 141

9.3 アクセスセキュリティ・モジュール拡張 142

9.3.1 IM-SecureSignOn(セキュア・サイン・オン) 142

9.3.2 IM-SecureBlocker 144

9.4 ワークフロー・モジュール拡張 145

9.4.1 IM-ワークフローデザイナー(アドバンスド版には同梱) 145

9.4.2 IM- FormatCreator 145

9.4.3 IM-EX申請システム 145

9.4.4 IM-SonicESB 146

9.5 外部ソフトウェア連携ソリューション 147

9.5.1 統合検索ソリューション 147

9.5.2 マルチデバイスソリューション 147

10 その他の機能 148

10.1 ソースセキュリティ機能 148

10.2 アプリケーション・ロック機能 148

10.3 一意情報の取得機能 148

10.4 ファイル操作 148

10.5 SQLクエリー 149

Page 6: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

vi

10.6 データベースエラー時のトリガー関数呼び出し 149

10.7 LDAPとの連携 149

10.8 国際化対応 150

10.9 標準画面の作り方(共通画面デザイン) 150

10.10 ポータル画面の利用 150

Appendix 151

1 メッセージ設定 152

2 予約語一覧 153

3 制限事項 154

3.1 ファイル名称 154

3.2 ID、コード 154

3.3 JS関数 154

Page 7: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

11 intra-martの起動と終了

プログラミングガイド - J2EE開発モデル編 1

第1章

イントロダクション

Page 8: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第1章 イントロダクション

2 intra-mart WebPlatform/AppFramework

1 intra-martの起動と終了 Webベースの開発ツールであるintra-martは、通常のコンピュータソフトとは起動と終了の方法が異な

ります。Webベースのアプリケーションでは、ブラウザ上から本システムへ「ログイン」で使用できるように

なり、終了時は「ログアウト」で終了させます。

1.1 intra-martへのログイン intra-martへのログインは、システム管理者、ログイングループ管理者、一般ユーザによってURLが異な

ります。以下、一般ユーザのログインの手順を説明します。なお、システム管理者、ログイングループ管

理者のログインに関しては、「アドミニストレータガイド」を参照してください。

1 ブラウザを起動し、intra-martのURLを入力します。

画面上には、intra-martのログイン画面が表示されます。

intra-mart WebPlatform

(スタンドアロン) :http://マシンアドレス/imart/(ログイングループ名).portal

(分散システム) :Webサーバコネクタの登録内容に合わせたURL

intra-mart AppFramework

:Webアプリケーションサーバに対するintra-martの登録内容に合わせたURL

intra-mart WebPlatformをスタンドアロン形態で運用する場合、アクセスするURLのポート番号(Webサーバ

としてのポート)は、インストール時に指定することができます。

URLは、ブラウザのブックマークに登録しておくと便利です。

この他に、「ログイン画面なしで自動認証する方法」(→P. 3 Column参照)が用意されています。

2 ログイン画面で、ユーザコードと、パスワードを入力し、[ログイン]ボタンをクリックします。

<intra-martのログイン画面>

ログイン画面及びログイン初期画面のソースは、以下の場所に用意されています。

%ResourceService%/pages/platform/src/system/securtyフォルダ

Page 9: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

11 intra-martの起動と終了

プログラミングガイド - J2EE開発モデル編 3

<intra-martの初期画面>

初期画面のメインページ(右フレーム内)は、ポータル画面となっています。新しくポートレットを作成してポー

タル機能に登録することにより、様々な情報を初期表示することができます。

1.2 intra-martからのログアウト ログイン画面に戻るとログアウトしたことになり、intra-martを終了できます。ログイン画面に戻るには、画

面左のメニュー上部に用意されている[LOGOUT]ボタンをクリックします。

メニューの[LOGOUT]ボタンをクリックせずにブラウザを終了した場合や、他のページに移動してintra-mart

の画面から離れてしまった場合、intra-martサーバ内ではセッションがタイムアウトするまでログイン状態を継

続しているものとみなされます。必ずメニューの[LOGOUT]ボタンをクリックしてください。

ログイン画面なしで自動認証する方法

intra-martにログインする際のURLに、次のようにユーザコードとパスワードを含めると、ログイン画面な

しで自動認証されます。

■システム管理者

http://intramart/imart/system.admin?im_user=ユーザコード&im_password=パスワード

■ログイングループ管理者

http://intramart/imart/ログイングループ名.manager?im_user=ユーザコード&im_password=パスワード

■一般ユーザ

http://intramart/imart/ログイングループ名.portal?im_user=ユーザコード&im_password=パスワード

Page 10: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第1章 イントロダクション

4 intra-mart WebPlatform/AppFramework

2 intra-martのメニュー構成 intra-martのメニュー表示形式は、「フォルダ」という大分類と「ページ」から構成されていて、ページを

選択すると該当する画面が表示されます。フォルダはどの階層にでも登録することができ、その配下の

ページをまとめるために利用します。

フォルダおよびページは、ログイン(起動)したユーザのアクセス権に応じたものだけが表示されるので、

本マニュアル上の画面と実際の画面が異なることがあります。

<フォルダとページの関係>

2.1 メニューの表示 intra-martのメニュー表示では、画面左フレームにツリー構造のメニューが表示されます。大項目であ

る「フォルダ」をクリックすると、そこに属する「ページ」がツリーに表示されます。ここで、「ページ」を選択す

ると、これに該当する画面内容が表示されます。

<メニュー表示画面の例>

Page 11: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

12 intra-martのメニュー構成

プログラミングガイド - J2EE開発モデル編 5

2.2 intra-martのホーム画面 ホーム画面は、intra-martログイン時に表示される初期画面です。メニューを選択して、各種画面が表

示されている場合には、画面右の[HOME]ボタンをクリックするとホーム画面が表示されます。

この画面からintra-martのポータル画面への切り替えが行えます。画面の切り替えは、右画面の左上

のタブで切り替えることができます。

[HOME]ボタン ホーム画面に戻ります。ホーム画面はintra-martログイン時に表示され

る画 面 で、ポータル画 面 が設 定 されているときには、この画 面 で切 り

替えることができます。

[LOGOUT]ボタン intra-martを終了して、ログイン画面に戻ります。

[MENU ON/OFF]ボタン 左側のメニューをOn/Offします。メニューをOffにすると、画面が広くな

り作業が容易 になります。なお、[属性設定 ]メニューで、ログイン直後

のメニューのOn/Off状態を変更することもできます。

[ポータル切り替え]タブ 設定されているポータル画面を切り替えることができます。ポータル画

面 の詳 細 は、アドミニストレータガイド第 2章 「9 ポータルの設 定 と操

作」と同じく第3章「4 ポータルの利用」を参照してください。

マイメニュー よく利 用 するメニューを「マイメニュー」として登 録 できます。メニュー

は、画面上部または左メニュー最上部の2箇所を切り替えることがで

きます。

Page 12: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第1章 イントロダクション

6 intra-mart WebPlatform/AppFramework

3 APIリストの見方 APIリストには、intra-mart WebPlatform/AppFrameworkで提供される各機能やAPIの仕様について

記載されています。開発の際には、参考資料としてご活用ください。このAPIリストは、HTML形式および

Windowsの標準Help形式のファイルとなっており、左側のカテゴリメニューから表示するほか、Windows

版では、[検索]タブで全文検索が行えます。

3.1 APIリストの格納場所 APIリストは、インストールCDの次の場所に格納されていますのでご利用ください。

インストールCDの iwp_afw/document/development/apilist_v60.zip

「API」リストを表示させると、次のようなメニューが表示されます。

<APIリスト>

3.2 APIの操作 左側の[目次]タブから、各カテゴリーのモジュール名をクリックすることで、各モジュール内容が表示さ

れます。[検索]タブを利用すると、目的語で検索することができます。 [キーワード]タブに関しては、現

在使用していません。

Page 13: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

14 2つのWebアプリケーションモデル

プログラミングガイド - J2EE開発モデル編 7

4 2つのWebアプリケーションモデル intra-martには「スクリプト開発モデル」と「J2EE開発モデル」の2つの開発モデルが用意されています。

これらの開発モデルは、それぞれ特徴を持ち、用途に応じて使い分けることができます。また、2つのモ

デルで開発したWebアプリケーションを同一のシステム内に混在させて実行することもできます。どちら

の開発モデルもアクセスセキュリティモジュール、ワークフローモジュールなど、intra-martが標準で用意

しているフレームワークを利用することができますので、高い生産性を誇ります。

4.1 スクリプト開発モデル ColdFusionやMicrosoft ActiveServerPageに代表されるようなスクリプトを主体にした開発モデルで

す。intra-martでは、普段ホームページの作成に利用しているHTMLと(サーバサイド)JavaScriptを利

用してデータベースと連動したWebシステムの開発が可能となっています。そのため、初心者でも始め

られる簡易性をもち、要員のシステム教育コストを大きく削減することができます。これまで簡単なホー

ムページしか作成したことがなかった方でも約2週間~1ヶ月ほどでマスタしWeb業務画面を作成する

ことができます。また、ホームページの作成更新と同様に簡易に開発ができますので、頻繁に更新する

ような複雑なWebシステムにも柔軟に対応することができます。さらにJavaScriptからは、開発者のテク

ニカルスキルにあわせて、Java(Class、EJB)、C++、ストアドプロシージャなどが簡単に呼び出すことが

できます。

ページベース開発モデルに関しては、「プログラミング・ガイド スクリプト開発モデル」を参照してください。

4.2 J2EE開発モデル J2EE(Java2 EnterpriseEdition)とは米サンマイクロシステムズが1999年9月に発表したプラットフォー

ムです。Servlet、JSP(JavaServerPages)、EJB(EnterpriseJavaBeans)などから構成 され、MVCモデ

ル(Model-View-Control ler)でシステム構築をおこなっていきます。特に高トランザクションが集中する

処理に適しています。

J2EE開発モデルに関しては、本書で説明しています。

4.3 2つの開発モデルで構築したアプリケーションを混在可能 intra-mart WebPlatform/AppFrameworkでは、これら2つのWebアプリケーションモデルで構築したア

プリケーションを同一システム内で混在させることもできます。そのため、開発予算が限られ短期間開

発の必要なWebシステムはページベースの開発モデルを主体に開発を進め、その中でトランザクション

の集中する部分のみを切り出してJ2EE開発モデルで開発するといった現実的かつ柔軟な開発スタイ

ルをとることができます。この方式により、J2EE開発モデルでの問題(クラス設計などの高度なスキル

の必要性やJava技術者の確保などの面から敷居が高く開発費用が増大する)とページベースの開

発モデルの問題(大規模なトランザクション処理に対するレスポンス的な限界)を同時に解決すること

が可能となります。

プログラム開発にあたっては、本書をお読みいただくと同時に、アドミニストレータ・ガイドもお読みください。

Page 14: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第1章 イントロダクション

8 intra-mart WebPlatform/AppFramework

4.4 各ファイルの保存場所 intra-mart WebPlatform/AppFrameworkの各ファイルの保存場所を示します。

4.4.1 intra-mart WebPlatformの場合

静的コンテンツ(HTMLファイルや画像ファイルなど) Webサーバコネクタのインストールディレクトリ以下

(スタンドアロン型の場合はサーバモジュールのインストールディレクトリ直下doc/ディレクトリ以下)

スクリプト開発モデルのプログラム (プレゼンテーション・ページ(.html), ファンクション・コンテナ(.js)) %Resrouce Service%/pages/ディレクトリ以下

J2EE開発モデルのプログラム(JSP)(JSP ファイル(.jsp, .xtp)) %Application Runtime%(スタンドアロンの場合はサーバモジュール)/doc/ディレクトリ以下

J2EE開発モデルのプログラム(Servlet)(JAVAクラスファイル(.class)) %Application Runtime%(スタンドアロンの場合はサーバモジュール)/doc/ディレクトリ以下の該当ディ

レクトリ内WEB-INF/classes/以下(または、クラスパスに設定されているディレクトリ内)

Storage Serviceにより一元管理されるファイル群 %Storage Service%/storage/ディレクトリ内

4.4.2 intra-mart AppFrameworkの場合

静的コンテンツ(HTMLファイルや画像ファイルなど) フレームワークサーバのインストールディレクトリ直下doc/ディレクトリ以下

(スタンドアロン型の場合はサーバモジュールのインストールディレクトリ直下doc/ディレクトリ以下)

スクリプト開発モデルのプログラム (プレゼンテーション・ページ(.html), ファンクション・コンテナ(.js)) %Resrouce Service%/pages/ディレクトリ以下

J2EE開発モデルのプログラム(JSP)(JSPファイル(.jsp)) %Application Runtime%(スタンドアロンの場合はサーバモジュール)/doc/ディレクトリ以下

J2EE開発モデルのプログラム(Servlet)(JAVAクラスファイル(.class)) %Application Runtime%(スタンドアロンの場合はサーバモジュール)/doc/ディレクトリ以下の該当ディ

レクトリ内WEB-INF/classes/以下(または、クラスパスに設定されているディレクトリ内)

Storage Serviceにより一元管理されるファイル群 %Storage Service%/storage/ディレクトリ内

Page 15: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 intra-martのアプリケーション開発概要

プログラミングガイド - J2EE開発モデル編 9

5 intra-martのアプリケーション開発概要 J2EE開発モデルでは、JSPファイルとServlet、EJBコンポーネントで開発します。この際にも、J2EEフレー

ムワークを利用することで、生産性を大きく向上することができます。

5.1 J2EE開発モデルによるアプリケーション開発 OSやWebアプリケーションサーバに依存しない共有プラットフォームとして、J2EEによるWebシステム開

発が普及してきました。しかし、J2EEによる開発はJavaをベースにしているため、オブジェクト指向など

の高度な知識と経験が要求される点や、J2EEでの前提知識が必要になる点など、敷居の高さが問

題になってきています。さらに、J2EE開発の規約にさえ準拠させれば、あとはいかようにでも組める自由

さが、初心者にとってはかえって負担となり、SEによってバラバラな開発スタイルとなってしまう原因とも

なります。intra-mart WebPlatformやintra-mart AppFrameworkでは、これらの問題をJ2EEフレームワ

ーク(im-J2EE Framework)の利用により解決し、J2EE開発モデルの生産性を大幅に向上させていま

す。

5.1.1 数多くのJavaコンポーネント群(im-BizAPI)

intra-mart WebPlatformやintra-mart AppFrameworkでは、Webシステム構築でよく利用される機

能を「Javaコンポーネント」として数多く提供しており、JavaClassまたはEJBコンポーネントとして再利用

が可能です(アクセスセキュリティモジュールやワークフローモジュール、ポータルモジュールなど)。これに

より従来ゼロから開発しなければならなかった複雑な機能を、フレームワークで用意されているJavaコン

ポーネントを利用することで大規模なWebシステムを短期間かつ高品質に構築できます。

(J2EE 開発モデルの場合)

Page 16: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第1章 イントロダクション

10 intra-mart WebPlatform/AppFramework

5.1.2 J2EE開発のフレームワーク

J2EEでのWebシステム開発には、構造的に共通な部分が多く、その事実を利用すると、開発生産性

をさらに大きく向上させることができます。

intra-martでは、J2EE開発で必要になる共通的な処理は、すべてフレームワークとして用意し、開発者

に委ねられる箇所はコンポーネントを作成してもらう形態となっています。

上図のフレームワーク部分にあるように、大きくは「Java業務コンポーネント群(im-BizAPI)」と「J2EEフレ

ームワーク(im-J2EE Framework)」に分かれています。intra-mart WebPlatformのJavaコンポーネント

モジュール群(ワークフローモジュールやアクセスセキュリティモジュールなど)はすべて「Java業務コンポ

ーネント群(im-BizAPI)」に配置されます。そしてJ2EE開発で必要になる共通的な処理はすべて「J2EE

フレームワーク(im-J2EE Framework)」に配置されます。

特に、このフレームワークを利用するコンポーネントについては、雛型となる「スケルトン」を用意しておくこ

とで、さらに生産性を高めることが可能となります(共通部分はあらかじめ実装されているので、開発者

は独自のコンポーネントを作成する場合、スケルトンをコピーし、実装されていない箇所を埋めてコンポ

ーネントを作成することになります)。作成されたコンポーネントはプロパティ設定によりフレームワークに

あてはめていくことで動作します。

Page 17: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 intra-martのアプリケーション開発概要

プログラミングガイド - J2EE開発モデル編 11

フレームワークもJ2EEで定義されている4層(Client層、Web層、EJB層、EIS層)を使用する共通的な機

構となります(SunのBluePrintに準拠)が、開発者はそのことを一切意識する必要はありません(システ

ム規模に合わせてあとから構成変更することも、設定ファイルの変更のみで可能です)。

5.1.3 J2EE開発モデルにおいてフレームワークを活用した際のメリット

J2EE開発時にJ2EEフレームワーク(im-J2EE Framework)を利用することで、以下のメリットがでてきま

す。

J2EE開発モデルの開発基盤 高度な知識が必要となる部分は隠蔽し、開発者はアプリケーションロ

ジックをスケルトンの中に埋め込みます。前提知識がなくても完成した

システムはJ2EEモデルの推奨 型 となり、MVCモデルの実現 が容 易 と

なります(プログラム構造が統一できメンテナンス性向上)。

サーバ構成を意識しなくてもよい サーバ構成が変更されても、設定ファイルなどにより、外部から調整可

能となります。

生産性の向上 共通的なものはすべてフレームワーク中に用意されているので、コンポ

ーネントの再利用性が高まり、生産性および保守性が向上します。

カスタマイズの容易さ コンポーネントの新規追加時にも元のアプリケーションにはまったく変更

が入らない仕組みとなります。また、機能変更時も該当コンポーネント

のみの修正となり、他の箇所への影響がありません。

テスト工程期間の短縮 テスト工程でフレームワーク部分の確認が不要となります。これにより、

問題発生時の切り分けが可能となります。

Page 18: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第1章 イントロダクション

12 intra-mart WebPlatform/AppFramework

6 J2EE開発モデルで開発するにあたって J2EE開発モデルで開発するにあたっては、本書第2章以降で、次のような解説をしています。

6.1 J2EEフレームワークプログラミング J2EEでのWebシステム開発には、構造的に共通な部分が多く、その事実を利用すると、開発生産性

をさらに大きく向上させることができます。intra-mart WebPlatformでは、J2EE開発で必要になる共通

的な処理は、すべてフレームワークとして用意し、開発者に委ねられる箇所はコンポーネントを作成して

もらう形態となっています。

1 J2EE開発モデルによるアプリケーション開発 4 アプリケーションレイヤ

2 フレームワーク 5 チュートリアル

3 J2EEフレームワーク(im-J2EE Framework) 6 サンプルプログラム

J2EEフレームワークを初 めて利用 する方 に、よりやさしく解 説した「J2EEフレームワークプログラミングガイド

チュートリアル補足(初級編)」が用意されています。第3章の前にお読みになると、理解が深まります(インス

トールしたWindowsメニューから呼び出せます。本書はPDF形式のファイルですので、必要に応じて印刷して

お使いください)。

その他 、「im-J2EE Framework仕様書」もインストールCDに用意されています。合わせてご活用ください。

インストールCD-ROMの iwp_afw/document/specif icat ion/im-j2ee_framework-spec_v60.pdf

Web層のサービスフレームワークの代わりに、オープンソースのフレームワークである、「struts」が利用できるよ

うになりました。「struts」からEJB層のイベントフレームワークやEIS層のデータフレームワークを連携して呼び

出すことができます。連携方法については、「intra-mart im-J2EE Framework Struts連携ガイド」をご覧く

ださい。

Page 19: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

16 J2EE開発モデルで開発するにあたって

プログラミングガイド - J2EE開発モデル編 13

6.2 さまざまなJavaコンポーネント群(im-BizAPI)の利用 ここでは、intra-martに用意されている各種Javaコンポーネント群(モジュール、ユニット、エクステンショ

ン・モジュールなど)をJ2EE開発モデルでどのように活用するかについて解説しています。

1 メール送信 9 JavaScriptコンパイラ機能について

2 拡張<IMART>タグ機能の使用例 10 サンプル・アプリケーション

3 ユーザ定義関数の登録と利用 11 モジュールの組み込みと操作

4 JavaClassとの連携 12 ユニットの組み込みと操作

5 EJBとの連携 13 エクステンション・モジュールの組み込みと操作

6 外部プロセスの呼び出し 14 プロトタイプウイザード

7 XML形式のデータを扱う 15 その他の機能

8 デバッグ手順

Page 20: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第1章 イントロダクション

14 intra-mart WebPlatform/AppFramework

Page 21: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

16 J2EE開発モデルで開発するにあたって

プログラミングガイド - J2EE開発モデル編 15

第2章

im-J2EEフレームワークのプログラミング

Page 22: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

16 intra-mart WebPlatform/AppFramework

1 Framework Producerとは この章では、im-J2EEフレームワークのプログラミングに、intra-mart e Builder Framework Producerを

利用する例を紹介します。intra-mart e Builder Framework Producerは、Eclipseの便利なJava開発

機能に加え、im-J2EE Frameworkで使用される設定ファイル(プロパティファイル群)をGUIツールによ

って自動的に作成することができます。

制約事項

im-JSPエディタではIE(インターネットエクスプローラ)のコントロールを使用しています。intra-mart e Bui lder

Framework Producerを起動する前に、IEのエンコードを自動選択、日本語(自動選択)以外に設定してく

ださい。

エンコードが自動選択の場合は、im-JSP Designerで文字化けを起こす可能性があります。なおintra-mart

e Bui lder Framework Producerを起動後はIEのエンコードは自動選択に戻しても問題はありません。

Page 23: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

12 初期設定

プログラミングガイド - J2EE開発モデル編 17

2 初期設定 intra-mart e Builder Framework Producerを利用するには、以下の設定を行う必要があります。

intra-mart のデバッグサーバのインストール

ライセンスの登録

プロジェクト初期値設定

パースペクティブの表示

2.1 デバッグサーバのインストール intra-martのインストーラを起動し、任意のディレクトリにデバッグサーバをインストールしてください。イン

ストールしたデバックサーバは Framework Producer Webプロジェクト作成時に指定します。

Page 24: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

18 intra-mart WebPlatform/AppFramework

2.2 ライセンスの登録 Framework Producerをインストール後、ライセンスの登録が必要となります。ライセンスが登録される

まで、試用版として30日間ご利用いただけます。試用期限が切れると設定ファイルの保存ができない

などの使用制限が発生します。

1 [ウィンドウ]-[設定] を選択します。

2 左のツリーから[intra-mart]-[ライセンス]を選択し、ライセンス番号をテキストに入力し、[登録]をク

リックして[OK]をクリックしてください。

2.3 プロジェクト初期値設定 プロジェクト初期値(Framework Producer Webプロジェクト作成時のデフォルト・エンコーディング、デフ

ォルト・キャラクタセット)が設定できます。

Page 25: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

12 初期設定

プログラミングガイド - J2EE開発モデル編 19

1 [ウィンドウ]-[設定] を選択します。

2 左のツリーから[intra-mart]-[プロジェクト初期値設定]を選択します。Framework Producer Web

プロジェクト作成時のデフォルト・エンコーディング、デフォルト・キャラクタセットを選択または入力し

て[OK]をクリックしてください。

この設定はプロジェクトを新規作成する際のデフォルト値になります。

2.4 パースペクティブの表示 パースペクティブとは、各作業を効率的に進められるように、エディタやビュー、そのレイアウトが設定さ

れています。作業に応じてパースペクティブを切り替えると便利です。Framework Producerには、次の

2つのパースペクティブがあります。

Framework Producer

パースペクティブ

各フレームワークの開発時に使用すると便利です。※基本的に使用

します。

Page 26: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

20 intra-mart WebPlatform/AppFramework

im-JSP Designer

パースペクティブ

JSP/HTML/CSJS 等のページ開発時に使用すると便利です。

2.4.1 パースペクティブの切り替え

パースペクティブの切り替えは、画面右上部のボタンで切り替えます。

2.4.2 パースペクティブ切り替えボタンの表示

画面右上部にFramework Producerパースペクティブ、またはim-JSP Designerパースペクティブが表

示されていない場合、以下の手順で表示することができます。

1 [ウィンドウ]-[パースペクティブを開く]-[その他] を選択します。

Page 27: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

12 初期設定

プログラミングガイド - J2EE開発モデル編 21

2 開きたいパースペクティブを選択して、[OK]をクリックしてください。

Page 28: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

22 intra-mart WebPlatform/AppFramework

3 Webプロジェクトの作成 Framework ProducerでWebプロジェクトを作成する、操作手順について説明をします。

3.1 新規プロジェクトの作成 新規にFramework Producerを利用したプロジェクトを作成します。この設定を行うことにより、im-J2EE

Frameworkの機能を利用したプロジェクトを作成する際に必要となる設定をGUIで行うことが可能と

なります。設定される内容は以下の通りです。

common.ipx の作成(im-J2EE Framework 用共通ファイル)

xxxxxx.iax の作成(アプリケーション別 im-J2EE Framework 用ファイル)

web.xml の編集

j2ee_framework.jar へのパス設定など

1 メニューの[ファイル]-[新規]-[プロジェクト] を選択します。

2 [intra-mart]-[Framework Producer Webプロジェクト]を選択し、「次へ」をクリックします。

Page 29: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

13 Webプロジェクトの作成

プログラミングガイド - J2EE開発モデル編 23

3 プロジェクト名を入力(tutorial)、「プロジェクト・コンテンツ」の「デフォルトの使用」のチェックを無効

にして、「ディレクトリー」(C:¥framework¥tutorial)を指定し、「次へ」をクリックします。

プロジェクト名を入力したときに

「その名前のプロジェクトは既にワークスペースに存在します。」というエラーメッセージが出力される場合、[プ

ロジェクト]-[プロジェクトを開く]で一度プロジェクトを開いた後に、「パッケージ・エクスプローラ」で該当プロ

ジェクトを選択-[右クリック]-[削除] を行った後に新規プロジェクトを作成します。

4 コンテキストパスを入力します(デフォルト:webapp)。

Page 30: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

24 intra-mart WebPlatform/AppFramework

デバックサーバパス デバックサーバをインストールしたパスを入れます。

デフォルト・エンコーディング 選択または入力(Windows-31J)します。

デフォルト・キャラクタセット 選択または入力(Windows-31J)します。

Framework Producerの

環境を構築する

チェックします。

J2EEフレームワーク 「intra-mart J2EE Framework V5.1」を選択します。

デフォルト・エンコーディング、デフォルト・キャラクタセットは、JSPページを新規作成するときに利用されます。

5 内容を確認します。「終了」をクリックします。(特に修正の必要はありません)

6 プロジェクトが作成されました。

Page 31: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

13 Webプロジェクトの作成

プログラミングガイド - J2EE開発モデル編 25

3.2 Framework Producerの環境構築 既存のJavaプロジェクトにFramework Producerの環境を構築します。構築手順は以下のとおりです。

Framework Producer の環境は、既存のプロジェクトに対して、追加で構築されるように設計されていま

す。

Framework Producer の環境構築を行うためには、ソースフォルダーをもつ Java プロジェクトを事前に作

成しておく必要があります。

1 [ファイル]-[新規]-[プロジェクト] を選択します。

2 [intra-mart]-[Framework Producer Web プロジェクトへの変換] を選択し、「次へ」をクリックし

ます。

Page 32: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

26 intra-mart WebPlatform/AppFramework

3 既存のプロジェクトにFramework Producer の環境を構築します。

ここでは、[tutorial]を選択し、「次へ」をクリックします。

4 デバックサーバパスを設定し、「終了」をクリックします。

Framework Producer の環境が構築されました。

Page 33: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

13 Webプロジェクトの作成

プログラミングガイド - J2EE開発モデル編 27

3.3 設定ファイルのインポート

1 既に作成済みの設定ファイルをインポートします。[プロジェクト]を選択した状態で、[右クリックメニ

ュー]-[intra-mart]-[J2EE Framework設定ファイルのインポート]を選択します。

2 「J2EE Framework設定ファイルのインポート画面」で、「設定ファイルパス」の[選択]ボタンを選択

します。

3 設定ファイル群があるフォルダ(C:¥framework¥tutorial¥src)を指定します。フォルダ内の設定フ

ァイルから設定情報がインポートされます。

Page 34: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

28 intra-mart WebPlatform/AppFramework

4 「J2EE Framework設定ファイルのインポート画面」で、「パッケージ」の[選択]ボタンを選択します。

5 インポートするパッケージを選択して、[OK]ボタンを選択します。

Page 35: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

13 Webプロジェクトの作成

プログラミングガイド - J2EE開発モデル編 29

3.4 ダイナミックパラメータの設定 設定ファイルを読み込むダイナミックパラメータの設定を行います。この設定を行うことにより、サーバを

再起動しなくても動的に設定ファイルの更新が反映されます。開発時に利用すると便利なオプション

です。手順は以下の通りです。

1 common.ipxをダブルクリックして、ファイルを開きます。

2 開いたエディタ下部の[ハンドラ]を選択します。

3 左メニューからデータハンドラを選択します。[ハンドラ名]が「デフォルトデータハンドラ」になっている

ことを確認します。

4 [ハンドラ名] が「デフォルトデータハンドラ」でない場合は、ハンドラ名の[選択]をクリックし、ハンド

ラ定義リストから「ファイルデータハンドラ」を選択して、「OK」をクリックします。

Page 36: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

30 intra-mart WebPlatform/AppFramework

5 パラメータリストの「動的ロード」をtrueにします。

6 データハンドラと同じように、「サービスハンドラ」および「イベントハンドラ」を設定します。

3.5 ファイルの保存と設定ファイルの出力 編集しているファイルを保存することでsrcフォルダ内に、im-J2EE Framework の設定ファイルが作成

されます。

設定ファイルが作成されると、webapp/WEB-INF/classes内にコピーされます。

Page 37: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

14 ディレクトリ構成

プログラミングガイド - J2EE開発モデル編 31

4 ディレクトリ構成 Framework Producer の デ ィ レ ク ト リ 構 成 に つ い て 説 明 し ま す 。 前 章 ま で の 操 作 で 、 Framework

Producerの基本的な設定は終了となります。パッケージ・エクスプローラのディレクトリ構成を以下に説

明します。

4.1 パッケージ・エクスプローラーディレクトリ構成 tutorial

├ src ・・・ javaプログラム保存ディレクトリ

├ tutorial .sample.service.control ler ・・・ パッケージディレクトリ

├ tutorial .sample.model.data

├ XXX.java ・・・ javaプログラム

├ XXX-config.xml ・・・ J2EEフレームワーク設定ファイル

├ JRE システム・ライブラリー ・・・ Javaのライブラリファイル群

├ デバックサーバ ライブラリ ・・・ デバックサーバの /bin/httpd/ に配置されている

├ intra-mart ライブラリ ・・・ デバックサーバの /doc/imart/WEB-INF/l ibs/に

├ conf ・・・ デバックサーバ設定ファイル保存ディレクトリ

├ webapp ・・・ WEBルートフォルダ

├ j2ee ・・・ intra-mart標準JSPプログラム保存ディレクトリ

├ WEB-INF ・・・ WEB-INFディレクトリ

├ l ib ・・・ クラスライブラリフォルダ

├ tld ・・・ タグライブラリフォルダ

├ web.xml ・・・ Webアプリケーション設定ファイル

├ common.ipx ・・・ 共通im-J2EE-Frameworkの開発定義ファイル

├ xxxxxx.iax ・・・ アプリケーション別

Page 38: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

32 intra-mart WebPlatform/AppFramework

4.2 フィルター パッケージ・エクスプローラに表示させる項目の制御を行う機能です。プロジェクト(tutorial)が参照して

いるライブラリファイル(デバックサーバ ライブラリなど)を非表示にしてみます。

<設定前>

4.2.1 設定方法

1 パッケージ・エクスプローラで、▼ボタンをクリックし、フィルターメニューを選択します。

Page 39: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

14 ディレクトリ構成

プログラミングガイド - J2EE開発モデル編 33

2 Javaエレメント・フィルターダイアログで、「参照先のライブラリー」チェックを有効にし、「OK」をクリッ

クします。

以上の操作で設定完了です。設定後は、以下のようになります。

<設定後>

Page 40: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

34 intra-mart WebPlatform/AppFramework

5 コンポーネントの作成 Framework Producerを利用してコンポーネントを新規に作成する方法について解説します。

5.1 im-J2EE Framework用ファイルの作成 アプリケーション別にim-J2EE Framework用の開発定義ファイルを作成する必要があります。

1 「パッケージ・エクスプローラ」でプロジェクト( tutorial)を選択して、[右クリックメニュー]-[新規]-

[im-J2EE Framework作成ウィザード]を選択します。

2 ファイル名に「tutorial」と入力して[終了]をクリックします。

Page 41: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 35

3 アプリケーション別 im-J2EE Framework用の開発定義ファイル(tutorial.iax)が作成されます。

4 tutorial.iax をダブルクリックすると、im-J2EE Framework用のエディタが起動します。

5 アプリケーション IDにtutorial設定します。ここでは、既に tutorialとなっているので確認だけとなりま

す。

Page 42: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

36 intra-mart WebPlatform/AppFramework

5.2 サービスフレームワーク サービスフレームワークの設定をFramework Producer上で行う方法について学習します。

5.2.1 遷移ページの設定

ここでは、「J2EEフレームワークプログラミングガイド」のメニューからの画面遷移を例に具体的な操作手

順を以下に記します。

1 tutorial.iaxにおいて、[サービス]タブを選択します。

2 [サービス]を選択し、メインフレームに追加します。同様に [ページ]を選択し、メインフレームに

追加します。追加した[サービス]と[遷移ページ]とを下図のように で接続します。

3 追加した[サービス]を選択し、[プロパティ]タブでサービスIDとサービス名を[menu_index]と設定

します。

Page 43: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 37

4 追加した[ページ]を選択し、[プロパティ]タブで[ページパス]の値をクリックし表示されたボタンをク

リックします。

5 ファイルの選択ダイアログで該当のJSPを選択し、[OK]をクリックします。

6 [プロパティー]タブでページ名を入力します。

Page 44: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

38 intra-mart WebPlatform/AppFramework

7 下図のように表示されれば、設定完了です。

8 設定が完了したらtutorial.iaxを、保存します。

エ デ ィ タ の 保 存 を 行 う と 、 「 パ ッ ケ ー ジ ・ エ ク ス プ ロ ー ラ ー 」 - tutorial/src デ ィ レ ク ト リ 内 に

「service-config-tutorial .xml」というファイル(サービスフレームワーク 設定ファイル)が新規に作成され、

ファイル内に以下の内容が追記され、intra-martシステムに反映されます。

【service-config-tutorial.xml】

<service>

<display-name>menu_index</display-name>

<service-id>menu_index</service-id>

<next-page>

<page-path>/framework/index.jsp</page-path>

</next-page>

</service>

tutorial . iaxの設定を変更した場合、必ず保存してください。

Page 45: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 39

5.2.2 JSPプログラムの編集

ここでは、im-JSPエディタを使用してJSPプログラムを編集する際の操作手順を以下に記します。

JSPファイルの作成

1 [ファイル]-[新規]-[JSP作成ウィザード]を選択、またはパッケージ・エクスプローラ上で[右クリッ

ク]-[新規]-[JSP作成ウィザード] を選択します。

2 親フォルダを入力または選択してファイル名を入力し、[次へ]ボタンをクリックします。

Page 46: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

40 intra-mart WebPlatform/AppFramework

3 次にjspファイルのpageEncordingとcharsetを選択します。

4 テンプレートを選択し、[終了] ボタンをクリックします。

Page 47: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 41

編集モードの切り替え ー Design と Source ― im-JSPエディタでは、Design 画面と Source 画面の両方で編集を行うことができます。編集モードを

切り替えるには、エディタの下部にある Designタブ、またはSourceタブをクリックします。

ただし、Designモードで編集を行うと、HTMLのタグ名が小文字に変換されるなど一部ソースコードが変更さ

れます。

パレットを使用したタグの挿入 パレットを利用することで、JSPタグ, intra-martタグライブラリ、HTMLタグを効率よく追加することがで

きます。

Page 48: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

42 intra-mart WebPlatform/AppFramework

≪Design画面≫ ここでは、ツールバーの右側に最新表示リンクを追加する例を基に説明します。

1 挿入したい位置を選択します。Toolbarを選択し、カーソルを赤枠に移動させます。

2 パレットの[ imart design tag] の[ imartToolbarRight]をクリックすると、 imartToolbarRightタグ

が挿入されます。

3 手順2で追加したimartToolbarRightを選択し、カーソルを赤枠に移動させます。

4 パレットの[ imart design tag]の[ imartIcon]をクリックすると、ダイアログが表示され、必要な項目

を入力・選択し、[終了]ボタンをクリックします。

Page 49: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 43

5 ツールバーに最新表示リンクが追加されます。

≪Source画面≫ ここでは、ツールバーの左側に検索条件リンクを追加する例を基に説明します。

1 挿入したい位置にカーソルを移動します。

2 パレットの [ imart design tag]の[imartIcon]をクリックすると、ダイアログが表示され、必要な項目

を入力・選択し、[終了]ボタンをクリックします。

Page 50: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

44 intra-mart WebPlatform/AppFramework

3 カーソルの位置にタグが追加されます。

プロパティビューから属性値の編集 Design 画面または Source画面で選択されているタグの属性値をプロパティビューで編集することが

できます。タグによっては、属性がBasicとAdvancedに分類されています。Basic には必須属性やよく

使われる属性があります。Advancedには指定可能な属性があります。

アウトラインビューからタグの編集 アウトラインビューにはタグの階層構造が表示されます。選択したタグに対して、右クリックすると、タグの

削除や属性の追加、前後にタグを追加する機能があります。

Page 51: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 45

データバインド データバインドは、宣言されているJSP変数、JavaBean、HelperBean の中から変数やメソッドの返値を

選択し、それを参照値として取得する機能です。HelperBeanは、サービスフレームワークで定義されて

いるサービスから新規作成することができ、作成したHelperBeanを編集することもできます。またサービ

スをデータフレームワーク、イベントフレームワークからウィザードに従って作成することもできます。

すべての入力項目ではないが、各ダイアログの入力項目に[データバインド]ボタンが配置されています。

以下ではHelperBeanをサービスから新規作成する手順の操作方法を記します。

1 [データバインド]ボタンをクリックすると、データバインドダイアログが表示されます。

Page 52: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

46 intra-mart WebPlatform/AppFramework

2 HelperBeanタブを選択し、[追加]ボタンをクリックします。

3 HelperBean作成ウィザードが表示され、各項目に入力し、[次へ]ボタンをクリックします。

4 サービスサービスフレームワークからサービスを選択し、[次へ]ボタンをクリックします。

Page 53: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 47

5 HelperBeanのプロパティを必要に応じて編集し、[終了]ボタンをクリックします。

6 HelperBean クラスが自 動 生 成 され、データバインドダイアログの HelperBean タブに作 成 した

HelperBeanが表示されます。

Page 54: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

48 intra-mart WebPlatform/AppFramework

サービス参照 サービス参照は、サービスフレームワークで定義されているサービスを選択する機能です。またサービス

をデータフレームワーク、イベントフレームワークからウィザードに従って作成することができます。

パレットの以下の[imart j2ee tag]タグのダイアログに[サービス参照]ボタンが配置されています。

Form

Link

Submit

SubmitLink

以下ではサービスをデータフレームワークから作成し、そのサービスを選択する手順の操作方法を記し

ます。

1 [サービス参照]ボタンをクリックすると、データバインドウィザードが表示されます。ここではデータフレ

ームワークのDAOグループからメソッドを選択し、[次へ]ボタンをクリックします。

2 次に、作成するイベントフレームワークの情報を入力し、[次へ]をクリックします。

Page 55: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 49

3 イベントから DAO関数の引数に渡すプロパティ名を設定し、[次へ]ボタンをクリックします。

4 イベントリザルトのプロパティ名を設定し、[次へ]ボタンをクリックします。

ここまででイベントフレームワークの設定が完了します。

5 次に、作成するサービスフレームワークの情報を入力し、[次へ]をクリックします。

Page 56: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

50 intra-mart WebPlatform/AppFramework

6 サービスからイベントに渡すパラメータを設定し、[次へ]ボタンをクリックします。

7 サービスリザルトのプロパティ名を設定し、[次へ]ボタンをクリックします。

8 最後に、保管属性名を必要に応じて編集し、[終了]ボタンをクリックします。

クリックするとソースコードが自動的に生成され、サービスフレームワーク、イベントフレームワークが作成さ

れます。

Page 57: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 51

5.2.3 サービスの追加

ここでは、「J2EEフレームワークプログラミングガイド」の要求処理(サービスフレームワーク)

を例に具体的な操作手順を以下に記します。

1tutorial.iaxにおいて[サービス]タブを選択します。

2 [サービス]を選択し、メインフレームに追加します。

設定済みのページ [next.jsp]へ下図のように 接続します。

3 新 規 に 追 加 し た サ ー ビ ス を 選 択 し 、 プ ロ パ テ ィ ダ イ ア ロ グ に サ ー ビ ス ID と サ ー ビ ス 名

(index_next_push)を入力します。

Page 58: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

52 intra-mart WebPlatform/AppFramework

5.2.4 ServiceControllerの作成

ここでは、ServiceControl lerの作成方法について、操作手順を以下に記します。

1 サービス index_next_push を選択した状態で、プロパティダイアログの[コントローラクラス名]の

値をクリックし、表示されたボタンをクリックします。

2 [サービスコントローラクラスの作成]ダイアログで[スケルトンから作成]を選択し、[次へ]をクリックし

ます。

3 [サービスコントローラクラスの作成]ダイアログで、下記の内容を入力して、[終了]をクリックします。

ソース・フォルダー tutorial/src

パッケージ tutorial.sample.controller.service

名前 FormTestServiceController

Page 59: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 53

4 指定したパッケージディレクトリ内にFormTestServiceController.javaが作成されます。

ダブルクリックして、必要な部分を追加修正します。

5.2.5 接続の追加

[ページ] index.jspから[サービス]index_next_pushへの接続を追加します。

下図のように接続されれば、設定完了です。

設定が完了したらエディタを保存してください。

エディタの保存を行うと、

「パッケージ・エクスプローラー」- tutorial/webapp/WEB-INF/classesディレクトリ内に

「service-config-tutorial .xml」というファイル(サービスフレームワーク 設定ファイル)が新規に作成され、

ファイル内に以下の内容が追記され、intra-martシステムに反映されます。

【service-config-tutorial.xml】

<service>

<display-name>index_next_push</display-name>

<service-id>index_next_push</service-id>

<controller-class>

tutorial.sample.controller.service.FormTestServiceController

</controller-class>

<next-page>

<page-path>/framework/next.jsp</page-path>

</next-page>

</service>

tutorial . iaxの設定を変更した場合、必ず保存してください。

Page 60: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

54 intra-mart WebPlatform/AppFramework

5.2.6 javaプログラムの編集

新規に作成したFormTestServiceControl lerを編集します。

「 パ ッ ケ ー ジ ・ エ ク ス プ ロ ー ラ ー 」 - 「 tutorial/src/tutorial.sample.control ler.service 」 以 下 に

FormTestServiceControl ler.javaというファイルが表示されているので、クリックしてメインフレームにソ

ースを表示してください。

[スケルトンから作成]を選択した場合、スケルトンの内容が予めコピーされているので、開発者は必要

な部分のみを実装します。

コンポーネントの実装が完了したら、[ファイルメニュー]-[保管]を行います。保管を行うと、編集中の

javaファイルが自動的にコンパイルされます。

コンパイルエラーが発生した場合、該当ソースコードにエラーメッセージが表示されますので、メッセージの内

容を参考に修正を行います。

[プロジェクトメニュー]-[プロジェクトのビルド] を行っても同様にコンパイルが行われます。

この場合、コンパイルされるのはプロジェクト内(tutorial/src以下)の 全てのjavaファイルがコンパイル

の対象となります。

Page 61: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 55

5.2.7 サービスリザルトの設定

ここでは、「J2EEフレームワークプログラミングガイド」の画面の表示を例に具体的な操作手順を以下に

記します。

1 tutorial.iaxにおいて[サービス]タブを選択します。

2 メインフレームで該当の サービス(index_next_push)を選択します。

3 プロパティダイアログの [サービス処理結果クラス名]の値を選択し、表示されたボタンをクリックし

ます。

Page 62: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

56 intra-mart WebPlatform/AppFramework

4 [サービス処理結果クラスの作成]ダイアログで[スケルトンから作成]を選択し、[次へ]をクリックし

ます。

5 表示された画面で、以下の項目を入力したら、[終了]をクリックします。

ソース・フォルダー tutorial/src

パッケージ tutorial.sample.controller.service

名前 FormTestServiceResult

6 該当パッケージディレクトリ内にFormTestServiceResult.javaが作成されます。

コンポーネントの実装が完了したら、[ファイルメニュー]-[保管] を行います。

保管を行うと、編集中のjavaファイルが自動的にコンパイルされます。

コンパイルエラーが発生した場合、該当ソースコードにエラーメッセージが表示されますので、メッセージの内

容を参考に修正を行います。

Page 63: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 57

5.2.8 サービスコントローラクラス作成ウィザード

サービスコントローラクラス作成時に、必要なメソッドを追加してクラスを作成することができます。

ここでは、「J2EEフレームワークプログラミングガイド」の画面の処理(サービスフレームワーク)を例に具

体的な操作手順を以下に記します。

1 新規に サービスを追加し、サービスID(index_input_text)を設定します。

2 プロパティダイアログの [コントローラクラス名]の値を選択し、表示されたボタンをクリックします。

Page 64: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

58 intra-mart WebPlatform/AppFramework

3 [サービスコントローラクラスの作成]ダイアログで、[新規のクラスを作成]を選択し、[次へ]をクリック

します。

4 [クラスの作成]ダイアログで下記を入力し、[次へ]をクリックします。

ソース・フォルダー tutorial/src

パッケージ tutorial.sample.controller.service

名前 InputTextServiceController

Page 65: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 59

5 [Serviceメソッドの追加]チェックを有効にして、[イベントフレームワークリスト]-[追加]をクリックし

ます。

6 [イベントフレームワークリスト]ダイアログで、追加するイベントフレームワークを選択し、[OK]をクリッ

クします。

Page 66: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

60 intra-mart WebPlatform/AppFramework

7 必要に応じて[サービス処理結果クラス名]を設定し、[終了]をクリックします。

8 設定情報をもとにイベントの生成・イベントの実行・サービス処理結果の返却等が実装されたソース

が作成されます。

必要に応じて修正を行います。

Page 67: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 61

5.3 イベントフレームワーク イベントフレームワークの設定をFramework Producer上で行う方法について学習します。

5.3.1 イベントIDの設定

1 tutorial.iaxにおいて[イベント]タブを選択します。

2 [イベントグループリスト]で「右クリック」-「追加」を選択します。

3 [イベント]ダイアログで、「表示名」と「イベントキー」に「text_count」と入力します。

設定後、[OK]をクリックします。

4 「イベントグループリスト」に、新規に追加したイベントフレームワークが表示されます。

Page 68: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

62 intra-mart WebPlatform/AppFramework

5.3.2 イベントの作成

5 新規に追加したイベントフレームワーク(text_count)を選択し、「イベントクラス名」の「選択」をクリッ

クします。

6 [クラスの作成]ダイアログで[スケルトンから作成]を選択し、「次へ」をクリックします。

Page 69: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 63

7 [クラスの作成]ダイアログで下記の内容を入力し[終了]をクリックします。

ソース・フォルダー tutorial/src

パッケージ tutorial.sample.model.event

名前 InputTextEvent

8 新 規 に 作 成 し た InputTextEvent を 編 集 し ま す 。 「 パ ッ ケ ー ジ ・ エ ク ス プ ロ ー ラ ー 」 -

「 tutorial/src/tutorial.sample.model.event」以下に InputTextEvent.javaというファイルが表示さ

れているので、クリックしてメインフレームにソースを表示してください。

Page 70: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

64 intra-mart WebPlatform/AppFramework

5.3.3 イベントリザルトの作成

1 tutorial.iaxにおいて[イベント]タブを選択します。

2 イベントフレームワーク(text_count)を選択し、右画面の「イベント」タブを選択します。

3 [イベント処理結果名]の「選択」をクリックします。

4 [クラスの作成]ダイアログで[スケルトンから作成]を選択します。

Page 71: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 65

5 [クラスの作成]ダイアログで下記の内容を入力し、[終了]をクリックします。

ソース・フォルダー tutorial/src

パッケージ tutorial.sample.model.event

名前 InputTextEventResult

6 新規に作成したInputTextEventResultを編集します。

「パッケージ・エクスプローラー」-「tutorial/src/tutorial.sample.model.event」以下に

InputTextEventResult.javaというファイルが表示されているので、クリックしてメインフレームにソー

スを表示してください。

Page 72: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

66 intra-mart WebPlatform/AppFramework

5.3.4 イベントリスナファクトリの設定

1 tutorial.iaxにおいて[イベント]タブを選択します。

2 イベントフレームワーク(text_count)を選択し、右画面の「イベントファクトリ」タブを選択します。

3 [イベントファクトリ名]の「選択」をクリックします。

4 「イベントファクトリリスト」ダイアログから「スタンダードイベントファクトリ」を選択して、「OK」をクリック

します。

Page 73: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 67

5.3.5 イベントリスナークラスの作成 ― スケルトン ―

1 tutorial.iaxにおいて[イベント]タブを選択します。

2 イベントフレームワーク(text_count)を選択し、右画面の「イベントファクトリ」タブを選択します。

3 パラメータで「イベントリスナークラス名」の「値」をクリックすると、ボタンが表示されます。

4 ボタンをクリックし、[クラスの選択]ダイアログで[スケルトンから作成]を選択します。

Page 74: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

68 intra-mart WebPlatform/AppFramework

5 [クラスの作成]ダイアログで下記の内容を入力し、[終了]をクリックします。

ソース・フォルダー tutorial/src

パッケージ tutorial.sample.model.event

名前 InputTextEventListener

6 新規に作成したInputTextEventListenerを編集します。

「パッケージ・エクスプローラー」-「tutorial/src/tutorial.sample.model.event」以下に

InputTextEventListener.javaというファイルが表示されているので、クリックしてメインフレームにソ

ースを表示してください。

tutorial . iaxでの設定が完了したら必ず保存してください。設定ファイルが作成されます。

Page 75: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 69

5.3.6 イベントリスナークラスの作成 ― 新規作成 ―

イベントリスナークラス作成時に、必要なメソッドを追加してクラスを作成することができます。

ここでは、「J2EEフレームワークプログラミングガイド」の要求処理(イベントフレームワーク)、データ処理

(データフレームワーク)を例に具体的な操作手順を以下に記します。

1 tutorial.iaxにおいて[イベント]タブを選択します。

2 イベントフレームワーク(text_count)を選択し、右画面の「イベントファクトリ」タブを選択します。

3 パラメータで「イベントリスナークラス名」の「値」をクリックすると、ボタンが表示されます。

4 ボタンをクリックし、[クラスの選択]ダイアログで[新規クラスの作成]を選択します。

Page 76: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

70 intra-mart WebPlatform/AppFramework

5 [クラスの作成]ダイアログで下記の内容を入力し、[次へ]をクリックします。

ソース・フォルダー tutorial/src

パッケージ tutorial.sample.model.event

名前 InputTextEventListener

6 [Fireメソッドの追加]チェックを有効にし、イベント処理結果クラス名を設定します。

[データフレームワークリスト]-[追加]をクリックします。

Page 77: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 71

7 [データフレームワークの選択]ダイアログで追加するデータフレームワーク(tutorial/input)を選択し、

[OK]をクリックします。

8 設定が完了したら、[終了]をクリックします。

Page 78: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

72 intra-mart WebPlatform/AppFramework

9 設定情報をもとにイベントのキャスト・DAOの取得・イベント処理結果の返却等が実装されたソース

が作成されますので、必要に応じて修正を行います。

Page 79: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 73

5.4 データフレームワーク データフレームワークの設定をFramework Producer上で行う方法について学習します。

5.4.1 DAOグループの設定

1 tutorial.iaxにおいて[DAO]タブを選択します。

2 [DAOグループ一覧]で「右クリック」-「追加」を選択します。

3 「DAOグループ」ダイアログで、「DAOキー」に「input」を入力して、[OK]をクリックします。

Page 80: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

74 intra-mart WebPlatform/AppFramework

4 「DAOグループ一覧」からDAOグループ( input)を選択し、右画面の「グループ共通」のタブを選択

して次の内容を入力します。

パッケージ tutorial.sample.model.data

モデル名 InputDataModel

5.4.2 グループモデルの作成

1 「DAOグループ一覧」からDAOグループ(input)を選択します。

2 右画面の「グループモデル」のタブを選択します。

3 「テーブル一覧」から「右クリック」-「テーブルの追加」を選択します。

Page 81: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 75

4 「テーブルの追加」ダイアログでテーブル名に(M_INPUT)を入力して[OK]をクリックします。

5 新規に追加したテーブル(M_INPUT)を選択して,「右クリック」-「カラムの追加」を選択します。

6 「カラムの追加」ダイアログで下記を入力して[OK]をクリックします。

カラム名 TEXT

カラム型 String

カラムサイズ 50

小数点以下の桁数 なし

Page 82: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

76 intra-mart WebPlatform/AppFramework

7 テーブル一覧から「右クリック」-「モデルマッピングを作成」を選択します。

8 「モデルマッピングの作成」ダイアログでM_INPUTにチェックを入れ、「OK」をクリックします。

Page 83: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 77

9 モデルマッピングリストにカラム情報が追加されます。続けて「データモデルクラスの作成」をクリック

します。

10 「 パ ッ ケ ー ジ ・ エ ク ス プ ロ ー ラ ー 」 - 「 tutorial/src/tutorial.sample.model.data 」 以 下 に

InputDataModel.javaというファイルが作成されます。

Page 84: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

78 intra-mart WebPlatform/AppFramework

5.4.3 DAOインタフェースの作成

1 「DAOグループ一覧」からDAOグループ(input)を選択します。

2 右画面の「インターフェース」タブを選択します。

3 「インターフェース名」にIInputTextDaoと入力します。

4 「関数一覧」で、「右クリック」-「新規」を選択します。

5 「関数の作成」ダイアログで、下記の内容を入力し、[OK]をクリックします。

関数名 select

関数返却タイプ tutorial.sample.model.data.InputDataModel[]

6 関数のインターフェースが作成されました。

Page 85: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 79

5.4.4 DAOの作成

1 「DAOグループ一覧」からDAOグループ(input)を選択します。

2 右画面の「DAO」タブを選択します。

3 「DAO一覧」で、「右クリック」-「追加」を選択します。

4 [DAOの作成]ダイアログで、下記の内容を入力して、「OK」をクリックします。

DAOの表示名 インプットテキストDAO

DAOクラス名 tutorial.sample.model.data.InputTextIntramartDBDaoImpl

コネクタの「選択」 [intra-mart ログイングループDBコネクタ(logingroup_db)] を選択

接続名 なし

5 新規に登録したインプットテキストDAOを選択します。「関数一覧」に関数が表示されます。

「関数一覧」で、selectをダブルクリックします。

Page 86: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

80 intra-mart WebPlatform/AppFramework

6 「SQL文の作成」ダイアログで、「クエリータイプ」のSELECTを選択します。

「SQL」の「SQL文の作成」をクリックします。

7 「Select文の作成」ダイアログで、「テーブル一覧」のモデルから選択をクリックします。

(Selectするテーブルを選択します。)

Page 87: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 81

8 「テーブルの選択」ダイアログで、M_INPUTをチェックして、「OK」をクリックします。

9 テーブルが追加されます。

10 「SELECTカラム」で、「モデルから選択」をクリックします。

(Selectするカラムを選択します。)

11 「カラムの選択」ダイアログで、TEXTを選択して。「OK」をクリックします。

Page 88: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

82 intra-mart WebPlatform/AppFramework

12 カラムが追加されます。

追加したカラム

(TEXT)の「返却値マッピング」をクリックします。

表示されたコンボボックスからtextを選択します。

(選択したtextは、InputDataModelのtextプロパティになります。

SELECTで取得されたカラムはInputDataModelのtextプロパティに代入されます。)

13 設定が終わったら、「終了」をクリックします。

SQL文が作成されたことを確認し、[OK]ボタンをクリックします。

Page 89: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 コンポーネントの作成

プログラミングガイド - J2EE開発モデル編 83

14 「DAO」タブで、「DAOクラスの作成」をクリックします。

15 「パッケージ・エクスプローラー」-「tutorial/src/tutorial.sample.model.data」以下に

IInputTextDao.java、InputTextIntramartDBDaoImpl.javaというファイルが作成されます。

16 IInputTextDao.javaの内容は以下のようになります。

Page 90: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

84 intra-mart WebPlatform/AppFramework

17 InputTextIntramartDBDaoImpl.javaの内容は以下のようになります。

SQL文が自動で作成された、関数が作成されています。

tutorial . iaxでの設定が完了したら必ず保存してください。設定ファイルが作成されます。

Page 91: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

16 実行

プログラミングガイド - J2EE開発モデル編 85

6 実行 コンポーネントの作成が完了したら、アプリケーションの実行を行います。

1 「実行」メニュー -[構成および実行] を選択します。

2 [起動構成]ダイアログ -[ intra-mart Application Server] を選択し、「名前」に「tutorial」と入

力し、 [Project]-[Browse] をクリックして「tutorial」を選択します。

3 「実行」をクリックして、intra-martを起動します。

4 サーバ起動ログがコンソールに表示されます。コンソールに以下のメッセージが出力されたら起動完

了です。

Page 92: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

86 intra-mart WebPlatform/AppFramework

起動されるintra-martのデバッグサーバのインストールディレクトリは、

当資料の 「2.1 デバッグサーバのインストール」(17ページ)で設定済みです。

Framework Producer内でintra-martを起動することにより、次章のデバッグ及びトレース実行を行うことが

可能となります。

5 ブラウザからイントラマートの 「ログイングループ管理者」 でログインし、 メニューにアプリケーション

を追加します。ここでは、ログイングループをdefaultとします。

http://localhost:8080/imart/default.manager

6 登録が完了したらログアウトして、「ユーザ」でログインし、動作を確認します。ここでは、ログイングル

ープをdefaultとします。

http://localhost:8080/imart/default.portal

intra-martの停止

起動中のintra-martを停止するには、停止 をクリックします。

起動中に停止を行わず、再度実行(起動)を行った場合、OS上にjavaのプロセスが残ったままの状態とな

ります。

再起動を行う場合は、必ず停止を行った後に実行(起動)するようにしてください。

Page 93: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

17 デバッグ

プログラミングガイド - J2EE開発モデル編 87

7 デバッグ Framework Producerでは、作成した各フレームワークのクラスをサーバ上で実行し、デバッグすること

が可能です。

以下にその手順を記します。

1 XXX.javaを編集し、ブレークポイントを設定します。ブレークポイントは、エディタの左側のグレーの部

分をクリックすることで設定できます。

2 パッケージ・エクスプローラでプロジェクトを選択し、 をクリックします。構成およびデバックから、

intra-mart Application Serverを選択して、新規をクリックします。

この構成およびデバックの設定は、最初の1度だけとなります。

2回目からは の右にある矢印▼ をクリックして、メニューから実行できます。

Page 94: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

88 intra-mart WebPlatform/AppFramework

3 名前を入力し、プロジェクトタブのプロジェクトに正しくプロジェクトが選択されているか確認し、もし異

なる場合は、対象となるプロジェクト(tutorial)を選択して、[デバッグ] ボタンをクリックします。

デバックサーバが起動します。

画面がデバッグモードに切り替わり、サーバ起動ログがコンソールに表示されます。

Page 95: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

17 デバッグ

プログラミングガイド - J2EE開発モデル編 89

4 ブラウザからintra-martにログインし、該当プログラムを実行します。

Eclipseの画面で、先ほどブレークポイントに設定した行でプログラムが停止します(グリーンでハイライト

されている部分で停止しています)。

右側の変数画面には、停止中のクラス変数の一覧が表示されます。各変数の値が参照できます。

デバッグ画面の上部のボタンでデバッグ操作が可能です。以下に、各ボタンの機能を紹介します。

再開 次のブレークポイントまで実行します。

停止 サーバを停止します。

中断 実行を中断します。

ステップイン

1行実行します。

実行行が関数である場合、その関数に遷移します。

ステップオーバー

1行実行します。

実行行が関数である場合でもその関数に遷移はしません。

ステップリターン 別関数に遷移している場合、呼び出し元の関数に戻ります。

Page 96: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

90 intra-mart WebPlatform/AppFramework

8 その他の機能 その他の機能について、紹介します。

8.1 Javaプログラムの行番号表示 Javaプログラムを開いた際に、行番号を表示させる設定方法を以下に記します。

1 [ウィンドウ]-[設定]メニューを選択します。

Page 97: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

18 その他の機能

プログラミングガイド - J2EE開発モデル編 91

2 [一般]-[エディター]-[テキスト・エディター]を選択し、[行番号を表示]チェックを有効にします。

設定後、[適用]をクリックしてください。

Page 98: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

92 intra-mart WebPlatform/AppFramework

8.2 作成したJavaプログラムの名前の変更 Javaプログラムの名前を変更する手順について、以下に記します。

1 パッケージ・エクスプローラーで該当ファイルを[右クリック]-[リファクタリング]-[名前変更]を選択

します。

2 新規名を入力し、下記オプションを選択したら[終了]をクリックします。

Page 99: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

18 その他の機能

プログラミングガイド - J2EE開発モデル編 93

8.3 作成したJavaプログラムのパッケージの移動 Javaプログラムのパッケージを移動する手順について、以下に記します。

1 パッケージ・エクスプローラーで、該当ファイルを右クリックして、[リファクタリング]-[移動]を選択し

ます。

2 移動したいパッケージディレクトリを選択します。

Page 100: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

94 intra-mart WebPlatform/AppFramework

8.4 Javaコンパイラーのオプション Javaコンパイラーのオプションを設定します。

1 [ウィンドウ]-[設定]メニューを選択します。

2 [Java]-[コンパイラー]を選択し、オプションを設定します。

3 [適用]あるいは[OK]をクリックし、設定内容を反映します。

Page 101: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

18 その他の機能

プログラミングガイド - J2EE開発モデル編 95

8.5 サービスフレームワーク編集画面の拡大・縮小 xxxxx.iaxで表示される、サービスフレームワークの編集画面で表示サイズを変更することができます。

1 「パッケージ・エクスプローラ」で該当のxxxxx.iax ファイルをダブルクリックして表示します。

(ここでは、tutorial.iax で説明します。)

2 tutorial.iaxにおいて、[サービス]タブを選択します。

3 上部に表示されている で表示サイズを調整してください。 例1 - 表示サイズを「75」に設定

Page 102: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

96 intra-mart WebPlatform/AppFramework

例2 - 表示サイズを「100」に設定

例3 - 表示サイズを「200」に設定

Page 103: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

18 その他の機能

プログラミングガイド - J2EE開発モデル編 97

8.6 im-JSPエディタの設定 im-JSPエディタの設定方法について、以下に手順を記します。

1 [ウィンドウ]-[設定]メニューを選択します。

2 エディタカラーの設定を行う場合、[ intra-mart]-[FormDesign]-[Jsp 設定]-[Jsp構文色の指

定]を選択し、設定を行います。

Page 104: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第2章 im-J2EEフレームワークのプログラミング

98 intra-mart WebPlatform/AppFramework

3 テンプレートの設定を行う場合、[ intra-mart]-[FormDesign]-[JSP設定]-[JSPテンプレート]

を選択し、設定を行います。を選択し、設定を行います。テンプレートは新規にJSPファイルを作成す

る際に利用します。

4 im-JSP エ デ ィ タ の Design 側 で 表 示 さ せ る タ グ の 設 定 を 行 う 場 合 、 [ intra-mart ] - [ im-JSP

Designer]-[Jsp設定]-[タグの表示]を選択し、設定を行います。

5 設定が完了したら、[適用]、[OK]をクリックします。

Page 105: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

18 その他の機能

プログラミングガイド - J2EE開発モデル編 99

第3章

さまざまなJavaコンポーネント群

(im-BizAPI)の利用

Page 106: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

100 intra-mart WebPlatform/AppFramework

1 Storage Serviceの利用方法 intra-martではStorage Serviceを利用することにより、分散システム構築時においても、容易にファイ

ルの共有が可能となります。

ここでは、ブラウザからアップロードされたファイルをStorage Serviceに保 存 したり、またStorage

Serviceに保存されているファイルをダウンロードしたりする画面を作ってみます。

1.1 ファイル・アップロード まずは、ファイルをアップロードしてStorage Serviceに保存するためのフォームを作成します。

<送信用フォーム「filebox.html」>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 //EN”>

<HTML>

<HEAD>

<TITLE>File Center</TITLE>

</HEAD>

<BODY bgcolor=”WhiteSmoke”>

<H2>Upload</H2>

<FORM action=”upload.jsp” method=”POST” enctype=”multipart/form-data”>

<INPUT type=”file” name=”local_file”>

<INPUT type=”submit” value=” send “>

</FORM>

</BODY>

</HTML>

<!-- End of File -->

受信したファイルデータをStorage Serviceに保存するためのJSPを記述します。

ここでのサンプルは、理解しやすくするために、JSPファイル中に呼び出しのコーディングが記述されています。

このコーディングは、J2EEフレームワーク利用時では、サービスコントローラやイベントリスナーの中に記述する

など適切な位置に盛り込んでください。

Page 107: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

1 Storage Serviceの利用方法

プログラミングガイド - J2EE開発モデル編 101

<ファイルを受信するためのJSPファイル(upload.jsp>

<%@ page import=”jp.co.intra_mart.foundation.http.*” %>

<%@ page import=”jp.co.intra_mart.foundation.server.file.*” %>

<%

String msg = new String(“Upload succeeded.”);

try{

MultipartFormData data = new MultipartFormData(request);

MultipartFormData.Entity entity = data.getEntity(“local_file”);

String header = entity.getHeader(“Content-Disposition”);

String file_name = header.substring(header.lastIndexOf(“¥¥”) + 1, header.lengt

h() - 1);

NetworkFile file = new NetworkFile(“filebox/” + file_name);

file.save(entity.getBytes();

}catch(Exception e){

msg = “Upload failed.”;

}

%>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 //EN”>

<HTML>

<HEAD>

<TITLE>Staff List.</TITLE>

</HEAD>

<BODY>

<H2><%= msg %></H2>

<A href=”filebox.html”>return</A>

</BODY>

</HTML>

この画面では、以下のように動作します。

1:ファイルコントロールにより選択されたファイルデータがサーバに送られます。

2:サーバに送られたデータを解析します。

3:受信したファイルのファイル名を取得します。

4:元のファイル名のまま受信したファイルデータをStorage Serviceに出力します。

アップロードされたファイルと同名のファイルをサーバ上に作成することが可能です。

<実行画面>

Page 108: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

102 intra-mart WebPlatform/AppFramework

<INPUT type="file">

HTMLフォーム中で利用している <INPUT type=”fi le”> について、もう少し詳しく説明します。フォー

ムコントロールである <INPUT type=”fi le”> を利用すると、ブラウザからサーバに対してファイルをア

ップロードすることができます。

この時、フォームは以下のような記述が必要になります。

<FORM method=”POST” enctype=”multipart/form-data”>

これは、ファイルの情報をMIME形式にエンコードしてPOSTモードでサーバにリクエストをするという指

定になります。

クラスMultipartFormData/インターフェスMultipartFormData.Entity

マルチパート形式のフォームデータを簡単に扱うことができるAPIです(このクラスを利用するために

は、jp.co. intra_mart.foundation.httpパッケージをインポートする必要があります)。

--- upload.jsp ---

MultipartFormData data = new MultipartFormData(request);

MultipartFormData.Entity entity = data.getEntity(“ local_fi le”);

String header = entity.getHeader(“Content-Disposition”);

String fi le_name = header.substring(header. lastIndexOf(“\\”)

+ 1, header. length() - 1);

MultipartFormDataのコンストラクタにHttpServletRequestを与 えることにより各 パート毎 を取 り出

し、任意の操作を行なうことができます。

各パートの取り出し方はgetEntityメソッドに取得したいパラメータの名前を指定します。

このとき返却される形式はMultipartFormData.Entityインターフェースとなります。

MultipartFormData.Entityインターフェースを使用することにより、パラーメータの取得やヘッダの解

析などを簡単に行なうことができます。

クラスNetworkFile

intra-mart Fi le Server 上 の フ ァ イ ル を 操 作 す る A P I で す ( こ の ク ラ ス を 利 用 す る た め に は 、

jp.co. intra_mart.foundation.server.fi leをインポートする必要があります)。

このAPIを利用する事で、各サーバを分散配置している場合においてもファイルを一元的に管理する

ことができます。ここでは、save()メソッドを利用して新しいファイルを作成しています。

--- upload.jsp ---

NetworkFi le fi le = new NetworkFi le(“fi lebox/” + fi le_name);

fi le.save(entity.getBytes());

NetworkFi leのコンストラクタに指定したファイルまたはディレクトリにたいして様々な操作を行なうこと

ができます。

Page 109: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

1 Storage Serviceの利用方法

プログラミングガイド - J2EE開発モデル編 103

1.2 ファイルリストの表示 ここでは、前節で作成した画面を改良して、アップロードしたファイルの一覧を表示するようにソースを

修正します。アップロードされたファイルを一覧表として表示するためには、保存されているファイルをリ

ストとして取得する必要があります。Storage Serviceに問い合わせてファイルリストを取得するためのコ

ードを追加します。

<一覧表を表示するためのJSP(filebox.jsp)>

<%@ page import=”jp.co.intra_mart.foundation.http.*” %>

<%@ page import=”jp.co.intra_mart.foundation.server.file.*” %>

<%@ page import=”java.util.*” %>

<%

NetworkFile file = new NetworkFile(“filebox/”);

if(!file.isDirectory()){

file.makeDirectories();

}

List list = file.files();

Iterator view = list.iterator();

String file_name;

%>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 //EN”>

<HTML>

<HEAD>

<TITLE>File Center</TITLE>

</HEAD>

<BODY bgcolor=”WhiteSmoke”>

<H2>Upload</H2>

<FORM action=”upload.jsp” method=”POST” enctype=”multipart/form-data”>

<INPUT type=”file” name=”local_file”>

<INPUT type=”submit” value=” send “>

</FORM>

<HR>

<H2>File List</H2>

<TABLE border>

<TR>

<TH>File Name</TH>

</TR>

<%

while(view.hasNext()){

file_name = (String)view.next();

%>

<TR>

<TD><%= file_name %></TD>

</TR>

<%

}

%>

</TABLE>

</BODY>

</HTML>

<!-- End of File -->

Page 110: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

104 intra-mart WebPlatform/AppFramework

<実行画面>

この実行画面では、すでにファイルがアップロードされていることが確認できます。

new NetworkFile(ディレクトリ名)

NetworkFileクラスは、ファイルのみでなく、ディレクトリ名を指定してインスタンスを作ることができま

す。これによって、インスタンスは、ディレクトリに対してさまざまな操作を行うことができます。

isDirctory() 存在チェック

makeDirctories() ディレクトリの作成

fi les(); ファイルリストの取得

詳細については、APIリストを参照してください。

Page 111: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

1 Storage Serviceの利用方法

プログラミングガイド - J2EE開発モデル編 105

1.3 ファイル・ダウンロード ファイルをアップロードできて、アップロードされたファイルがStorage Serviceに保存されていることが確

認できたので、次は、保存されているファイルをブラウザにダウンロードする機能を追加します。前節で

作成した画面に対してファイルをダウンロードできるようにソースを修正します。

ファイルをダウンロードするには、JSPにダウンロードをするためのリンクを追加します。また、そのリンクがク

リックされた時にファイルを送信するためのロジックを追加していきます。

<ファイルダウンロード用リンクを追加したJSPファイル(filebox.jsp)>

<%@ page import=”jp.co.intra_mart.foundation.server.file.*” %>

<%@ page import=”java.util.*” %>

<%

NetworkFile file = new NetworkFile(“filebox/”);

if(!file.isDirectory()){

file.makeDirectories();

}

List list = file.files();

Iterator view = list.iterator();

String file_name;

%>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 //EN”>

<HTML>

<HEAD>

<TITLE>File Center</TITLE>

</HEAD>

<BODY bgcolor=”WhiteSmoke”>

<H2>Upload</H2>

<FORM action=”upload.jsp” method=”POST” enctype=”multipart/form-data”>

<INPUT type=”file” name=”local_file”>

<INPUT type=”submit” value=” send “>

</FORM>

<HR>

<H2>File List</H2>

<TABLE border>

<TR>

<TH>File Name</TH>

</TR>

<%

while(view.hasNext()){

file_name = (String)view.next();

%>

<TR>

<TD><%= file_name %></TD>

<TD><A href=”download.jsp?file_name=<%= file_name %>”>download</A></TD>

</TR>

<%

}

%>

</TABLE>

</BODY>

</HTML>

<!-- End of File -->

Page 112: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

106 intra-mart WebPlatform/AppFramework

1.3.1 Downloadと表示するためのリンクを作成

このリンクには、クリックされた時にダウンロード処理をするためのJSPのページdownload.jspが指定され

ていますので、download.jspを作成します。

<ダウンロード用JSP ファイル(download.jsp)>

<%@ page import=”jp.co.intra_mart.foundation.server.file.*” %><%

String file_name = request.getParameter(“file_name”);

NetworkFile file = new NetworkFile(“filebox/” + file_name);

OutputStream os = response.getOutputStream();

response.setContentType(“application/octet-stream”);

response.setHeader(“Content-Disposition”, “attachment; filename=” + file_name);

os.write(file.load());

%>

ここでは説明を簡単にするためJSPでのダウンロードサンプルを紹介しましたが、一般的にはServletを用い

てダウンロードします。ダウンロード用Servletファイルのサンプルは以下に用意されています。

Appl icationRuntimeルート/source/java/jp/co/intra_mart/sample/servlet/Download.java

<実行画面>

setContentType()

ファイルをダウンロードする場合、ファイルの種類に合わせてコンテントタイプを指定する必要がありま

す。このサンプルでは、不明なデータを意味するapplication/octet-streamを指定してブラウザの判

断にまかせていますが、実際にはダウンロードするファイルの内容に合わせて適切なMIMEタイプを指

定するようにしてください。

Page 113: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

1 Storage Serviceの利用方法

プログラミングガイド - J2EE開発モデル編 107

1.4 ファイルの削除 前節までで、ファイルをアップロードすることと、アップロードしたファイルをダウンロードすることができまし

た。しかし、このままではアップロードされたファイルがStorage Serviceに溜まっていってしまうので、ここ

では、アップロードされてStorage Service上に保存されているファイルを削除する機能を追加します。

<削除用リンクを追加したJSPファイル(filebox.jsp)>

<%@ page import=”jp.co.intra_mart.foundation.server.file.*” %>

<%@ page import=”java.util.*” %>

<%

NetworkFile file = new NetworkFile(“filebox/”);

if(!file.isDirectory()){

file.makeDirectories();

}

List list = file.files();

Iterator view = list.iterator();

String file_name;

%>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 //EN”>

<HTML>

<HEAD>

<TITLE>File Center</TITLE>

</HEAD>

<BODY bgcolor=”WhiteSmoke”>

<H2>Upload</H2>

<FORM action=”upload.jsp” method=”POST” enctype=”multipart/form-data”>

<INPUT type=”file” name=”local_file”>

<INPUT type=”submit” value=” send “>

</FORM>

<HR>

<H2>File List</H2>

<TABLE border>

<TR>

<TH>File Name</TH>

</TR>

<%

while(view.hasNext()){

file_name = (String)view.next();

%>

<TR>

<TD><%= file_name %></TD>

<TD><A href=”download.jsp?file_name=<%= file_name %>”>download</A></TD>

<TD><A href=”remove.jsp?file_name=<%= file_name %>”>remove</A>

</TD>

</TR>

<%

}

%>

</TABLE>

</BODY>

</HTML>

<!-- End of File -->

Page 114: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

108 intra-mart WebPlatform/AppFramework

<ファイルを削除するJSPファイル(remove.jsp)>

<%@ page import=”jp.co.intra_mart.foundation.server.file.*” %>

<%@ page import=”java.util.*” %>

<%

String msg = new String(“Remove succeeded.”);

String file_name = request.getParameter(“file_name”);

NetworkFile file = new NetworkFile(“filebox/” + file_name);

boolean result = file.remove();

if(result == false){

msg = “Remove failed.”;

}

%>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 //EN”>

<HTML>

<HEAD>

<TITLE>File Remove</TITLE>

</HEAD>

<BODY bgcolor=”WhiteSmoke”>

<H2><%= msg %><H2>

<A href=”filebox.jsp”>return</A>

</BODY>

</HTML>

<実行画面(結果)>

削除リンクをクリックすると、該当するファイルを削除することができます。

Page 115: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

12 メール送信

プログラミングガイド - J2EE開発モデル編 109

2 メール送信 ここでは、メールを送信するための画面を作成します。メールを送信するためには、conf/imart.xmlの

SMTPサーバの設定を正しく行ってください。

2.1 メール送信フォームの作成 メールを送信するためのフォームを作成します。フォーム内には、メール送信に必要な送信先アドレス、

送 信 者 アドレス、件 名 、本 文 を登 録 するコントロールを用 意 します。また、受 け取 った情 報 を元 にして

Mail APIを利用してメール送信を行うための関数を定義します。

<メール送信用フォームを記述したHTMLファイル(sender.html)>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 //EN">

<HTML>

<HEAD>

<TITLE>Mail Sender</TITLE>

</HEAD>

<BODY>

<FORM method="POST" action="mail.jsp">

To: <INPUT type="text" name="mail_to"><BR>

From: <INPUT type="text" name="mail_from"><BR>

Subject: <INPUT type="text" name="mail_subject"><BR>

Message: <TEXTAREA name="mail_body" cols=40" rows="8"></TEXTAREA><BR>

<INPUT type="submit" value="send">

</FORM>

</BODY>

</HTML>

<メール送信ロジックを記述したJSPファイル(mail.jsp)>

<%@ page contentType="text/html; charset=Shift_JIS" pageEncoding="Windows-31J" %>

<%@ page import="jp.co.intra_mart.foundation.mail.*" %>

<%@ page import="jp.co.intra_mart.foundation.mail.javamail.*" %>

<%

String msg = new String("Succeeded.");

StandardMail mail = new StandardMail();

mail.addTo(request.getParameter("mail_to"));

mail.setFrom(request.getParameter("mail_from"));

mail.setSubject(request.getParameter("mail_subject"));

mail.setText(request.getParameter("mail_body"));

MailSender sender = new JavaMailSender(mail);

try {

sender.send();

} catch (MailSenderException e) {

msg = "Failed.";

}

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 //EN">

<HTML>

<HEAD>

<TITLE>Send mail</TITLE>

</HEAD>

<BODY>

<H2><%= msg %><H2>

Page 116: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

110 intra-mart WebPlatform/AppFramework

<A href="sender.html">return</A>

</BODY>

</HTML>>

ここでのサンプルは、理解しやすくするために、JSPファイル中に呼び出しのコーディングが記述されています。

このコーディングは、J2EEフレームワーク利用時では、イベントリスナーやDAO中に記述するなど適切な位置

に盛り込んでください。

<実行画面>

フォーム中の必要事項をすべて入力した後に[send]ボタンをクリックするとメールを送信することがで

きます。

Mail API

MailSender API

メールを送信を行なうクラスです。

--- mail . jsp ---

StandardMail mail = new StandardMail();

mail .addTo(request.getParameter("mail_to"));

mail .setFrom(request.getParameter("mail_from"));

mail .setSubject(request.getParameter("mail_subject"));

mail .setText(request.getParameter("mail_body"));

MailSender sender = new JavaMailSender(mail);

sender.send();

-----------------

boolean result = mail .send();

イントラマートの初期設定ファイル

(conf/imart.xml)に設定されているSMTPサーバを利用します。

実際にメールが送信されるのは、send()メソッドを実行したときになります。

MailSenderクラスの詳細についてはAPIリストをご覧ください。

Page 117: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

12 メール送信

プログラミングガイド - J2EE開発モデル編 111

TO および From 設定時の注意点

設定データ中にメールアドレス以外の不正な文字が含まれている場合、メール送信エラーが発生す

る場合があります。

メール送信とサーバ処理速度

メールを送信する場合、intra-mart Appl ication ServerとSMTPサーバが連携する必要があります。

送信するメールの情報量はもちろんのこと、ネットワーク環境やネットワークトラフィックなどによりメー

ル送信処理時間がかかる場合があります。

2.2 添付ファイル付きメールの送信 前節で作成したメール送信フォームを完了して添付ファイルをメール本文と共に送信できるようにしま

す。

まずは、HTMLページでは添付ファイルとするためのファイルをアップロードするためのフォーム・コントロー

ルを追加し、フォームの属性を変更します。

JSPファイルは、フォームの修正に合わせて、メール送信関数を添付ファイルに対応できるように修正し

ます。

<ファイルアップロード用コントロールを追加したHTMLページ(sender.html)>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 //EN">

<HTML>

<HEAD>

<TITLE>Mail Sender</TITLE>

</HEAD>

<BODY>

<FORM method="POST" enctype="multipart/form-data" action="mail.jsp">

To: <INPUT type="text" name="mail_to"><BR>

From: <INPUT type="text" name="mail_from"><BR>

Subject: <INPUT type="text" name="mail_subject"><BR>

Message: <TEXTAREA name="mail_body" cols=40" rows="8"></TEXTAREA><BR>

Attachment: <INPUT type="file" name="mail_file"><BR>

<INPUT type="submit" value="send">

</FORM>

</BODY>

</HTML>

ファイルをアップロードするためのフォーム

ファイルをアップロードするためには以下のようなフォームの記述が必要になります。

<FORM method=”POST” enctype=”multipart/form-data”>

こうすることで、サーバー上では、フォームコントロール <INPUT type="fi le"> によりローカルのファイル

を受け取ることができます。

Page 118: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

112 intra-mart WebPlatform/AppFramework

受信情報と文字コード

ファイルアップロード時のフォームから受け取った情報は、すべてバイナリ状態になっています。

当然、ファンクションコンテナではrequestオブジェクトを通して受け取る値がバイナリになっていますの

で、その情報を扱う場合には、十分な注意が必要となります。

<添付ファイル送信に対応したJSPファイル(mail.jsp)>

<%@ page contentType="text/html; charset=Shift_JIS" pageEncoding="Windows-31J" %>

<%@ page import="java.io.*" %>

<%@ page import="jp.co.intra_mart.foundation.mail.*" %>

<%@ page import="jp.co.intra_mart.foundation.mail.javamail.*" %>

<%@ page import="jp.co.intra_mart.foundation.http.*" %>

<%

String msg = new String("Succeeded.");

StandardMail mail = new StandardMail();

mail.addTo(request.getParameter("mail_to"));

mail.setFrom(request.getParameter("mail_from"));

mail.setSubject(request.getParameter("mail_subject"));

mail.setText(request.getParameter("mail_body"));

MultipartFormData data = new MultipartFormData(request);

MultipartFormData.Entity entity = data.getEntity("mail_file");

if(entity.getContentLength() > 0){

String header = entity.getHeader("Content-Disposition");

String file_name = header.substring(header.lastIndexOf("¥¥") + 1, header.length() - 1);

ByteArrayOutputStream out = new ByteArrayOutputStream();

out.write(entity.getBytes());

mail.addAttachment(file_name, out.toString("8859_1"));

}

MailSender sender = new JavaMailSender(mail);

try {

sender.send();

} catch (MailSenderException e) {

msg = "Failed.";

}

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 //EN">

<HTML>

<HEAD>

<TITLE>Send mail</TITLE>

</HEAD>

<BODY>

<H2><%= msg %><H2>

<A href="sender.html">return</A>

</BODY>

</HTML>

Page 119: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

12 メール送信

プログラミングガイド - J2EE開発モデル編 113

<実行画面(結果)>

添付ファイル

ファイルを添付してメール送信する場合、RFCの規約によりファイルのデータそのものをエンコードした

のちにメール本本も含めたメール情報全体をエンコードしてからSMTPサーバに対して送信する必要

があります。

添付ファイルと処理速度

添付ファイルを送信する場合、ブラウザがWebサーバに対してファイルデータを送信し、その情報を

受信したアプリケーションサーバがメール送信処理を行います。

1つのメール送信に対して複数のネットワークを介しますので、サイズの大きなファイルを添付してメ

ール送信する場合には、メール送信処理に時間がかかってしまう場合があります。

Page 120: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

114 intra-mart WebPlatform/AppFramework

3 外部プロセスの呼び出し 実 行中 のintra-martアプリケーションから他 のプログラムを実行 するには、java.lang.Runtimeクラスの

exec() メソッドを利用します。この関数は、指定の文字列コマンドを新しいプロセスとして実行します。

3.1 サンプル

java.lang.Runtime runtime = java.lang.Runtime.getRuntime();

java.lang.Process process = runtime.exec(command)

process.waitFor();

command を コ マ ン ド と し て O S に 渡 し て プ ロ セ ス を 実 行 し ま す 。 java プ ロ グ ラ ム 側 で は 、

java.lang.ProcessのインスタンスprocessのwaitFor() メソッドにより、新しく実行したプロセスの終了を

待ちます。

commandによるプロセスは、Appl ication Runtimeの動作している環境で実行されます。他のサーバの環境

では実行できません。

プロセスを実 行 するためのコマンドはOSにより異 なります。Appl ication Runtimeの実 行 環 境 に合 わせて

commandを指定するようにしてください。

詳細は、JAVAのAPI仕様を参照してください。

Page 121: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

14 XML形式のデータを扱う

プログラミングガイド - J2EE開発モデル編 115

4 XML形式のデータを扱う XMLパーサを利用することにより、XML形式のデータを解析して、目的のデータを取り出すことができま

す。

XML(Extensible Markup Language)は環境にとらわれない非常に柔軟性の高い汎用的な規約とな

っています。これにより、他のアプリケーションとXMLファイルを通してデータのやりとりをスムーズに行うこ

とができます。

4.1 XMLパーサーとデータの取得 intra-martのAPIとして提供されているXMLパーサーを利用すると、XML形式のデータを解析してDOM

(Document Object Model)ツリー形式に変換します。XMLの各タグやその中に記述されているデータ

をDOMツリーオブジェクトから取得する事ができます。

XMLおよびDOMツリーに関しては、W3Cが規約を定めています。最新の情報に関してはW3Cのホームページ

等を参照してください。

XMLパーサーに関しては、W3CおよびSAXのホームページ上で最新の技術情報が公開されています。

詳細は、APIリストの「アプリケーション共通モジュール」の「java.xml.parsersパッケージ」を参照してください。

Page 122: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

116 intra-mart WebPlatform/AppFramework

5 デバッグ手順 開発者が作成したJSPファイル中にJSPタグ<% %>を用いてSystem.out.println関数を埋め込むことで、

DOSコンソール画面に変数情報を表示することができ、デバッグに利用することができます。

例 <% System.out.println(debug); %>

<デバッグ記述例>

<%@ page contentType=”text/html; charset=Shift_JIS” %>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 //EN”>

<HTML>

<HEAD>

<TITLE>Hello intra-mart.</TITLE>

</HEAD>

<%! String debug = “デバッグ情報”; %>

<%! String msg = “こんにちは イントラマートです”; %>

<% System.out.println(debug); %>

<%=msg %>

</BODY>

<HTML>

<デバッグ結果表示画面>

ここでは、簡単なJSPのデバッグ手法しか説明しておりません。実際には、eBui lderなどによる実際的なデバ

ッグや、構文チェックなど高度なデバッグ機能と組み合わせながら開発を進めて行くことになります。

Page 123: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

15 デバッグ手順

プログラミングガイド - J2EE開発モデル編 117

プログラム開発環境をサポートする「eBuilder 6.0」(2006/08/31リリース予 定 )

別売のintra-mart 「eBuilder Ver6.0」を活用することにより、ユーザアプリケーションを効率よく開発

していくことができます。intra-mart 「eBuilder Ver6.0」には、プレゼンテーションページとファンクショ

ンコンテナからなるスクリプト開発モデル用「intra-mart eBui lder Page Producer」とJSP、Servletか

らなるJ2EE開発モデル用のオープンソースの統合開発環境である「ecl ipse」に対するプラグインとし

て利用できる「eBuilder Framework Producer」の2種類が用意されています。

詳細は、チュートリアルガイドの「8 intra-mart eBui lder Ver6.0」を参照してください。

Page 124: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

118 intra-mart WebPlatform/AppFramework

6 スクリプト開発モデルとの連携 ここでは、スクリプト開発モデルの画面からフレームワークの画面へ遷移する方法について説明します。

下記の方法で、スクリプト開発モデルの画面からim-J2EE Frameworkの画面へ遷移することができま

す。この方法を応用してログイン画面の遷移をカスタマイズすることにより、標準提供のメニュー表示の

ないシステムを構築することもできます。

なお、intra-martにログイン済であることが前提となりますのでご注意ください。

6.1 メニューを介さないでフレームワークの画面を表示する方法 標準でインストールし、web.xmlで/ServiceServletのURLマッピングに関連するところを修正していない

場合、以下のようなリクエストを出せば表示することが可能です。

http://<サーバIPアドレス>[:<サーバポート>]/<コンテキストパス>/[アプリケーションID]-[サービスID].service。

6.2 スクリプト開発モデルの画面からフレームワークの画面へ遷移する方法 上記と同じリクエストを行います。

ページベースの画面のフォームのサブミットでim-J2EE Frameworkに遷移する例を以下に示します。

sample.html

・・・

<FORM name="frmInfo" method="POST" action="<アプリケーションID>-<サービスID>.service">

</FORM>

・・・

Page 125: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

17 モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 119

7 モジュールの組み込みと操作 im-BizAPIは、「ユーザインタフェース層(タグライブラリ集)」、「ビジネスロジック層(Javaコンポーネント

集)、「業務基盤ツール」に分類されます。ここでは各モジュールについて、説明をおこないます。

Page 126: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

120 intra-mart WebPlatform/AppFramework

7.1 ユーザインターフェース層 ユーザインタフェース層に属する3つのモジュールを説明します。

7.1.1 画面共通モジュール

WebベースでのGUI開発でよく利用される画面部品のモジュールです。それぞれのモジュールに適当な

プロパティを設定して呼び出すだけで、データベースと連動したユーザインタフェースを簡単に作成で

きます。また、J2EE開発モデルには、JSPで利用できるintra-martタグライブラリを使用しています。タグ

ライブラリの詳細は、次ページのコラム「タグライブラリ」を参照してください。

ここで紹介した標準で用意されている画面共通モジュールのほかに、クライアントGUI環境を実現する

エクステンション・モジュール「IM-Curl(別売)」が用意されています。

提供される画面共通モジュールの例 一般的な入力コントロール系 ユーザインタフェース構築に必要となる一般的な入力コントロール(テ

キストフィールド、パスワードボックス、ラジオボタン、チェックボックス、テ

キストエリア など)を用意しています。これらのコントロール群は、サーバ

サイドのスクリプトやデータと連動が可能なコントロールとなります。

レイアウト制御モジュール さまざまな条件により表示 すべき値を変化させたり、表 示する内容を

選択したりと通常はHTMLでは表現できないプログラム的な要素をプ

レゼンテーションページ内に定義することができます。

構築されたWebユーザインターフェースの例 前述のオブジェクト/関数群を利用してHTML上で編集していくことで、細かなレベルのユーザインター

フェースの構築が可能になり、従来のVisualBasicなどによるユーザインタフェースと遜色がないスタイル

のWebシステムの構築が可能です。画面の作成例は以下のようになっています。

<画面の作成例>

クライアントGUI環 境 を実 現 する

画面共通モジュール:IM-Curl

高度かつ複雑なユーザーインターフェイスを構築可能なリッチクライア

ントサイドWebプログラミング言語です。

Page 127: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

17 モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 121

画面共通モジュールの詳細については、APIリストの「J2EE開発モデル」-「画面共通モジュール」を参照して

ください。

IM-Curlの詳細に関しては以下の資料を参照してください。

・ 製品に添付されている、Curlアプレットが相互に通信するアプリケーションを作成するために用意されて

いるCurl連携用APIを利用するためのチュートリアルガイド

「IM-Curl連携APIチュートリアルガイド」(im_curl_api_tutorial .pdf)

・ APIリストの「J2EE開発モデル」-「ビジネスロジック層」-「アプリケーション共通モジュール」内の

jp.co. intra_mart.foundation. im_curlクラス

タグライブラリ

JSPで呼び出すには、intra-martタグライブラリを使用します。詳細は、APIリストのJ2EE開発モデルの

「画面共通モジュール」を参照してください。

使用例

<imart: imartDateFormat value="<%= date%>" format="yyyy/MM/dd"/>

指定された日付データを文字列として挿入する。

・タグライブラリリスト

calendar カレンダモジュールの画面HTMLソースを作成する

condition タグに挟まれた部分の実行の条件分岐(真偽)

dicision タグに挟まれた部分の実行の条件分岐(値指定)

imartDateFormat タグの指定された場所に、指定された日付データを文字列として挿入

imartEvent ブラウザ上で動作するイベント処理ロジックを設定

imartNumberFormat タグの指定された場所に、指定された数値データを文字列として挿入

loop 処理の繰り返し

repeat タグ内のネストされた部分の繰り返し処理

select コンボボックス(リストボックス)の作成

drawer 画像ファイルを作成しHTMLに表示する

<スプレッドシート>

CellDataSelector スプレッドシートのセルの選択

(サンプル) <imtag:ColumnDataSelector bgColor="white" fgColor="red">

. . .

<imtag:SelectionSubmitter formName="myform"

appl ication="tagl ib" service="testform" />

</imtag:ColumnDataSelector>

選択時のbgColorは”white”にする、fgColorは”red”にする。

下のサブミットボタンをクリックすることで、

選択されたセルの内容がサーバへ送信される。

送信

Page 128: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

122 intra-mart WebPlatform/AppFramework

ColumnDataSelector スプレッドシートの列の選択

RowDataSelector スプレッドシートの行の選択

SelectionSubmitter カーソル位置のスプレッドシートの行をハイライトにする

LineHighLight カーソル位置のスプレッドシートの行をハイライトにする

Sorting スプレッドシートの任意列で並べ替える

DynamicTable データベースデータの表作成

DBListPaging intra-mart WebPlatform(またはフレームワーク)のデータベース設定(ま

たはマルチデータベース設定)で設定されたデータベースを参照し、デー

タを読み込み、動的にテーブルの作成をします。

(サンプル)

DBListPaging/ColumnとColumnSelectorタグのネストサンプル

<imtag:ColumnDataSelector bgColor="red" fgColor="white">

<imtag:DBListPaging tableID="unit_table" tableName="b_m_unit" styleClass="test"

pageSize="10" indexLocation="both" indexSize="10">

<imtag:Column attribute="unit_cd" tit le="Code" headerClass="header" styleClass="test"/>

<imtag:Column attribute="unit_name" tit le="Name" headerClass="header"/>

<imtag:Column attribute="notes" tit le="Note" headerClass="header"/>

</imtag:DBListPaging>

</imtag:ColumnDataSelector>

<入力制御>

Validate 日付、英数字、数字などの入力制御

DblClickForbidden ボタンの制御

BackForbidden ブラウザの「戻る」ボタンの無効化

<メニュ>

PopMenu ポップアップメニュー制御

<メッセージプッシュ>

Push 送信側で入力されたメッセージをクライアント側にプッシュする部品です。

受 信 側 のJSPで、このタグを利 用 することで、画 面 をリロードしなくても、動

的に送信側のメッセージを取得し表示することができます。

Page 129: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

17 モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 123

7.1.2 グラフ描画モジュール(プレゼンテーション・ページ)

グラフの画像ファイルをサーバサイド作成して、ブラウザ画面上にグラフを表示します。

以下の5種類のグラフが利用できます。

折れ線グラフ

棒グラフ

円グラフ

レーダーチャート

ポートフォリオ

グラフ描画の設定 intra-martタグライブラリのDrawerタグを利用します。

Drawerタグの属性dataにjp.co.intra_mart.foundation.drawer.AbstractDrawerをスーパークラスとし

たインスタンスを渡すことによりグラフの画像ファイルをHTMLに表示します。

AbstractDrawerをスーパークラスとした、グラフ描画クラスは以下の5種類です。

クラス グラフの種類

jp.co. intra_mart.foundation.graph.BarGraphDrawer 折れ線グラフ

jp.co. intra_mart.foundation.graph.CircleGraphDrawer 棒グラフ

jp.co. intra_mart.foundation.graph.LineGraphDrawer 円グラフ

jp.co. intra_mart.foundation.graph.PortFol ioDrawer レ ー ダ ー チ ャ

ート

jp.co. intra_mart.foundation.graph.RadarChartDrawer ポートフォリオ

棒グラフ描画のの記述例は以下のようになります。

<%@ page contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %>

<%@ taglib prefix="imarttag" uri="http://www.intra-mart.co.jp/taglib/core/standard" %>

<%@ page import="jp.co.intra_mart.foundation.graph.*" %>

<%@ page import="java.awt.Color" %>

<%

// 棒グラフの作成

BarGraphDrawer drawerBar = new BarGraphDrawer(0, 60, 10);

drawerBar.setWidth(300);

drawerBar.setHeight(300);

drawerBar.setCaption(new String[]{"1月", "2月", "3月"});

BarGraphObject objBar = new BarGraphObject(Color.black);

objBar.addData(50);

objBar.addData(10);

objBar.addData(30);

drawerBar.addData(objBar);

%>

<HTML>

<BODY>

<imarttag:Drawer data="<%= drawerBar %>" />

</BODY>

</HTML>

Page 130: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

124 intra-mart WebPlatform/AppFramework

新しいグラフの作成 グラフを新規に作成する場合、AbstractDrawerを利用します。

AbstractDrawerを継承したクラスを作成し、createImageメソッドをオーバーライドしてください。

public class MyGraphDrawer extends AbstractDrawer {

public MyGraphDrawer(

super();

}

protected void createImage(Graphics g) {

g.setColor(Color.red);

g.drawLine(0, 0, getWidth() - 1, getHeight() - 1);

g.setColor(Color.blue);

g.drawRect(0, 0, getWidth() - 1, getHeight() - 1);

.

.

.

.

}

}

createImageメソッドには画像描画の実行部分を記述します。引数のグラフィックコンテキストに対して、

グラフイメージを描画してください。

グラフのプログラムソースはインストールディレクトリ/sourceに格納されています。具体的な記述方法は

プログラムソースを参照してください。

Page 131: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

17 モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 125

7.2 ビジネスロジック層 ビジネスロジック層に属するモジュールを説明します。

7.2.1 アプリケーション共通モジュール

各アプリケーション開発に必要な処理ロジックのモジュールが、使いやすくオブジェクト化されています。

これらオブジェクトをビジネスロジックに組み込んで編集していくことで、余計なロジックの作り込みをせ

ずに多階層アーキテクチャに基づいたWebシステムの開発を短期間でおこなうことが可能になります。

提供されるアプリケーション共通モジュールのオブジェクト概要 アプリケーション開発に必要な処理ロジックのモジュール(セッション管理やDBアクセス)が使いやすくオ

ブジェクト化されて提供されています。このオブジェクトの利用により、ページをまたいだセッション管理を

実現することができます。またフッター等に利用する会社名称や各種データベースへのログインユーザ

名等の情報も、このオブジェクトから利用できます。これらのオブジェクトをアプリケーションロジックに組

み込んで編集していくことで、余計なロジックの作りこみをせずに複雑なWebシステムの開発を短期間

でおこなうことが可能になります。その他、アプリケーションの環境変数を含めた各設定値へのアクセス

用オブジェクト、区分コードへのアクセス用オブジェクト、データベース関連の汎用オブジェクト、日付関

連オブジェクト、デバック関連オブジェクト、URL管理オブジェクトなど多数用意されています。これらによ

り、現在接続している社員コードや、直前に表示したHTMLページ名などさまざまな情報にアクセスでき

ます。

また、複数DBへの同時アクセスメソッドや大量の検索データに対して、指定した件数ごとに結果を画

面表示する機能の検索ストリーミング、アプリケーションロック機能、XML対応モジュールなど、高度な

機能が含まれています。

アプリケーション共通モジュールの詳細については、APIリストの「J2EE開発モデル」-「アプリケーション共通モ

ジュール」を参照してください。

7.2.2 メール連携モジュール

本モジュールを利用することで、SMTP/POP3互換のメールサーバに対するメールの送信処理を行うこ

とができます。

Page 132: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

126 intra-mart WebPlatform/AppFramework

メールサーバの設定 メールサーバの設定は、conf/imart.xmlファイルで行います。記述例は以下の通りです。

<smtp-server host="localhost" port="25" mailbox-check="false" />

サンプルプログラムの紹介

メール連携モジュールのサンプルプログラムが下記に用意されています。

sample/jsp/extra/sendmail/section2/mail2-2.jsp

また、メール送信 の方法 については本 書第3章 「さまざまなJavaコンポーネント群 (im-BizAPI)の利

用」の「2 メール送信」を参照してください。

サンプルでは、理解しやすくするためにJSPファイル中に呼び出しのコーディングが記述されています。

J2EEフレームワーク利用時などは、適切な位置に、盛り込むようにしてください。

7.2.3 外部ソフトウェア接続モジュール

市 販 の ア プ リ ケ ー シ ョ ン パ ッ ケ ー ジ か ら im-BizAPI の 各 種 API を 呼 び 出 し て 直 接 利 用 す る な ど 、

intra-martと外部ソフトウェアを簡単に連携・接続できるモジュールです。連携・接続する方法には、次

の2通りの方法が用意されています。

ひとつは、この「連 携 APIコネクタ」がフレームワークの中 のim-B izAP Iと連 携 するためのJavaベース

API と し て 提 供 さ れ て い る の で 、 外 部 ソフ ト ウ ェ ア が Java 実 行 環 境 で あ れ ば 任 意 の プ ロセ ス と

im-B izAP Iを連 携 させる方 法 です。例 えば、市 販 のポータルサーバ製 品 と組 み合 わせて、ポータル

画 面 中 にintra-martの画 面 を表 示 したり、他 のアプリケーションと連 携 してバッチ動 作 する独 自

のJavaプロセスからユーザアカウント情 報 を操 作 したりすることが可 能 です。

2つ目の方法としては、外部ソフトウェアからWebサービスによりim-BizAPIの各種APIを呼び出すことも

可能です。

外部ソフトウェア接続モジュールの詳細に関しましては、APIリストの、「Developer's Guide」の「外部ソフトウェ

ア接続モジュール」を参照してください。

Page 133: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

17 モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 127

7.2.4 ERP連携モジュール

SAP JCo技術を利用し、SAP APIをライブラリ化しました。標準のJava技術を用いて、アドオン開発を

低コストで行えます。※intra-mart WebPlatform/AppFramework Enterprise版のみの機能です。

現在提供しているERP連携モジュールには、SAPとの連携ができる豊富なAPIが用意されています。その他

のERP用の連携モジュールも順次追加して行く予定です。

詳細に関しては以下の資料を参照してください。

・ 製品に添付されている、SAP R/3とリアルタイムに連携するためのチュートリアルガイド

「ERP連携モジュール・チュートリアルガイド」(im_sap_api_tutorial_v60.pdf)

・ APIリストの「J2EE開発モデル」-「ビジネスロジック層」-「ERP連携モジュール」

SAP、SAP R/3、SAP JCO、製品内に記載するSAPの製品/サービス名は、すべてドイツおよびその他の国に

おけるSAP AGの商標または登録商標です。

7.3 業務基盤ツール 業務基盤ツールの属するモジュールを説明します。

7.3.1 アクセスセキュリティモジュール

ログインするユーザーの認証機能はもちろん、ユーザーのアクセス権に応じた固有のWebページを表示

することができます。たとえば、一般社員がアクセスしたときには、アクセス権限のないページはメニュー

にもあらわれないため、ユーザーはその存在を一切意識することはありません。しかし、管理者がアクセ

スした場合には、同じページでも管理者が利用できるメニューまで表示されることになります。アクセス

セキュリティモジュールを利用することで、このようなユーザーに応じて内容の異なるページ構成を組む

ことが可能になります。設定方法についてはアドミニストレータ・ガイド第2章「5 アクセスセキュリティの

管理」および「7 アプリケーションの登録」を参照してください。

Page 134: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

128 intra-mart WebPlatform/AppFramework

intra-mart Ver5.0から、ユーザごとの言語の切り替えや画面のテーマカラーの選択が可能となりました。

また、これまでユーザ情報の設定はシステム管理者がすべてを行う使用でしたが、システム管理者の

配下にログイングループ管理者を設定し、ログイングループ管理者がユーザ情報の設定を行えるよう

になりました。

さらに、アクセスセキュリティの各機能はAPI化されており、それらを利用して、独自のメニュー画面を作

成することもできます。また、intra-martでは完全なSecure Sockets Layer(SSL)サポートを提供しま

す。これにより送信されるコンテンツに対して、暗号化セキュリティをかけることが可能になります。

ここで紹介したintra-mart標準のアクセスセキュリティモジュールのほかに、エクステンション・モジュール(別

売)として、「IM-SecureSignOn」を用意しています。「IM-SecureSignOn」は、独自のエージェント型リバース

プロシキー方式により適用範囲が広く、導入・運用が容易なシングルサインオンを実現します。詳細は、本

書第 3章 「さまざまなJavaコンポーネント群(im-BizAPI)の利用 」の「9 エクステンション・モジュールの組み

込みと操作」を参照してください。

アクセスセキュリティの詳細に関しては、別冊の「アクセスセキュリティ仕様書」も参照してください。

7.3.2 ワークフロー・モジュール

本モジュールを利用すると、Webブラウザベースのワークフローを効率良く構築することができます。作

成したアプリケーションを「タスク」としてドキュメントワークフローに登録するだけでワークフローに対応し

たアプリケーションとして利用できます。標準添付のワークフローには、通常のワークフローのほかに、申

請者が申請時に承認者を選択する「申請者ルート作成ワークフロー」も含まれています。ワークフロー

機能の詳細は、別冊の「ワークフローガイド」を参照してください。

7.3.3 ビジネスプロセスワークフローモジュール

申請・承認が中心となるドキュメント・ワークフロー(標準のワークフロー・モジュールやIM-ワークフローデ

ザイナーなど)とは異なり、ビジネスプロセスワークフローモジュールでは業務処理のプロセスをあらかじめ

登録しておくことで、業務処理をそのまま自動化することができます。このため、事務処理の適正化を

図ることができ、作業効率を大幅に向上させることができます。ビジネスプロセスワークフロー機能の詳

細は、別冊の「ワークフローガイド」を参照してください。

Page 135: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

17 モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 129

7.3.4 バッチ管理モジュール

intra-martは、バッチサーバによるプログラム実行のスケジューリング機能を提供しています。バッチ実

行したいロジックの記述されたバッチプログラムを作成し、バッチ設定画面にて起動日時を設定してく

ださい。

バッチプログラムはview(画面)を持たないため、J2EE Frameworkを利用して作成することはできません。

また、画面やWebの仕組みに関わる機能(ファイルのダウンロードなど)を行うこともできません。

バッチ管理モジュールの詳細と設定に関しては、アドミニストレータ・ガイドの第2章「10 バッチ管理の操作」

を参照してください。

Javaで記述したバッチプログラム

バッチ実行するロジックをJavaで記述するためにはintra-martで提供されているインタフェースクラス

jp.co. intra_mart.foundation.server.batch.ProcedureComponentを実 装 する必 要 があります。イン

ターフェース仕様の詳細に関しては、APIリストの「J2EE開発モデル」-「ツールズ」-「バッチ管理モジュ

ール」を参照してください。

7.3.5 ポータルモジュール

ポータルモジュールは、intra-martのログイン初期画面にあらかじめ用意したページ(ポータルアプリケー

ションでは、ポートレットと呼びます)を表示させるモジュールです。よく利用するアプリケーションの画面

やユーザに情報を見るように喚起する画面などを一覧表示することで、業務効率をあげることができ

ます。

さまざまなアプリケーションで作成したページをポートレットとして自由にレイアウトして、ポータル画面を

作成することができます。ポータル画面は複数作成することができ、ユーザが切り替えて表示すること

ができます。さらに、組織やロール、ユーザによって利用できるポータル画面を切り替えることで、業務に

最適な画面を提供することができます。

<会社・組織、ユーザごとのポータル>

Page 136: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

130 intra-mart WebPlatform/AppFramework

ポートレット用ページの作成 スクリプト開発モデルおよびJ2EE開発モデル、フレームワーク開発モデル、外部URLでポータル画面に

表示させたいページをポートレット用に作成します。なお、intra-martには、あらかじめサンプルのポートレ

ット用のページが用意されています。

ポータルとして表示させたい画面は、通常の画面ではなく、ポータルモジュールの規約にともない変更する

必要があります。ポータル用のページ作成方法については、APIリストの[J2EE開発モデル]-[ポータルモジュ

ール]-[ポータル]-[開発ガイド]を参照してください。

ポートレットの登録や各種ポータル画面に関しては、アドミニストレータガイドの第2章「9 ポータルの設定と

操作」を参照してください。

7.3.6 ViewCreator

ViewCreatorはintra-martの画面上から、データベースのデータを使用して、様々な表やグラフを作成

することができるツールです。使用可能なデータベースには、ログイングループデータベースとシステム

データベースがあります。ViewCreatorの機能は、クエリメンテナンスとデータ参照メンテナンスの2つの

操作に大きく分かれます。

クエリメンテナンス データベース上 のテーブルやビューの結 合 などを行 い、データ参 照 で

使用する元データとなる表を作成します。また、作成したクエリのSQL

表示やViewの作成、あるいは表をプレビュー表示することもできます。

データ参照メンテナンス クエリメンテナンスで作成したデータの表示の仕方(グラフまたは表な

ど)やデータの絞込みに関する設定を行います。また、参照権限をデー

タ参照単位で設定することができます。

作成したデータ参照は、表示時にデータの検索や表示項目の絞り込み、並び順の変更などを行うこと

ができます。また、データ参照はポートレットとして追加したり、CSV/HTML形式のファイルとして出力、

あるいはスクリプト開発モデルのプログラムファイルとして出力可能で、出力されたプログラムソースは

自由にカスタマイズして再利用が可能です。

Page 137: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

17 モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 131

このように、データベースの中のデータを元に様々な表やグラフの作成/表示をWebブラウザ上で簡単

に操作できるのがViewCreatorの大きな特徴です。

詳細は、アドミニストレータガイドの第2章「13 ViewCreator」を参照してください。

<ViewCreator>

Page 138: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

132 intra-mart WebPlatform/AppFramework

8 ユニットの組み込みと操作 intra-mart WebPlatform/AppFrameworkには、再利用できるソフトウェア部品としてユニットが用意さ

れています。これらは、以下のようにユーザアプリケーションに組み込むだけで利用できるようになります。

また、これらユニットはソースコードが公開されておりますので自由にカスタマイズすることができます。

8.1 アプリケーション共通マスタunit 会社データ、組織データ、グループデータ、取引先データ、顧客データ、商品データなど、システム開発

でよく利用するマスタが標準で用意されています。これらのマスタを利用することにより、設計工程まで

含め短期間でのシステム開発が可能となります。各intra-martアプリケーションシリーズと連携したシス

テムが開発でき、また、マスタにアクセスするためのAPIなども標準で用意されています。詳細について

いは、アドミニストレータ・ガイドの「4 アプリケーション共通マスタunitの利用-1」と「9 アプリケーション共

通マスタunitの利用-2」、および別冊「アプリケーション共通マスタ説明資料」を参照してください。また、

APIに関しては、アプリケーション共通モジュール「jp.co.intra_mart.foundation.appcomn」パッケージを

参照してください。

intra-mart Ver5.0から、各マスタは日付で履歴管理することができます。

8.2 カレンダーunit カレンダーunitを組み込みと、カレンダーマスメンテナンス画面で設定したデータと連携したカレンダー

画面を表示することができます。カレンダー画面を利用すると、会社の休日や営業日を考慮した日付

の入力が行えます。

Page 139: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

18 ユニットの組み込みと操作

プログラミングガイド - J2EE開発モデル編 133

8.2.1 呼び出し方法

intra-mart が標準で提供している拡張タグライブラリのcalendarタグを利用することによりカレンダー

を画面に貼り付けることができます。

<imtag:calendar year="2003" month="6"/>

上記の例では画面上にカレンダーを表示するだけですが、様々なオブションを駆使することで、カレン

ダーの表示形状を変更したり、ユーザのクリックアクションに対する応答を定義することも可能です。

タグライブラリの仕様に関しては、製品に付属のAPIリストを参照してください。

8.2.2 カレンダーデータの受け取り方法

タグのclick_actionオプションに対して、クライアントサイドのJavaScript で記述された関数名を指定す

ることで、ユーザが選択(クリック)した年月日情報を取得することができます。

<SCRIPT language="JavaScript">

function click_date(nDate, sName, bHoliday) {

var dClick = new Date(parseFloat(nDate));

var sStr = dClick.toString();

sStr += " [ " + sName + " ]";

sStr += " [ " + bHoliday + " ]";

window.alert(sStr);

}

</SCRIPT>

<imtag:calendar year="2006" month="6" click_action="click_date"/>

8.2.3 カレンダーマスタメンテナンス

カレンダーマスタメンテナンスでは、曜日、会社独自の休日や営業日等を管理する機能を持っていま

す。

カレンダーマスタメンテナンスに関しては、アドミニストレータガイドを参照してください。

カレンダーunitは、以下のフォルダに用意されています。

インストールディレクトリ/pages/unit/almanac

なお、カレンダーunitはスクリプト開発モデルにより作成されています。

Page 140: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

134 intra-mart WebPlatform/AppFramework

8.3 ツリー表示unit ツリー表示unitを組み込むと階層化されたデータをツリー表示することができ、階層構造の把握やメニ

ューの選択が用意になります。[ページ]メニューの[ページ設定]画面の組織ツリー表示に利用されま

す。ツリー表示ユニットの詳細については、APIリストの「ユニット」-「ツリー表示」を参照してください。

<ツリー表示ユニットの例>

8.4 i-mode unit i-mode unitを組み込むと、ユーザが作成しログイングループ管理者の[ログイングループ管理設定]の

[メニュー設定]で登録したページをi-mode対応の携帯電話の画面で見ることができるようになります。

i-modeに対応した画面を作成するには、i-mode の表示領域に合ったページを作成し、[ログイングル

ープ管理設定]の[メニュー設定]で登録する際に、クライアントタイプで、「パソコン」または「モバイル」

を選択します。また、利用するユーザの設定としては、「ユーザ設定」の「モバイルパスワード設定」で、あ

らかじめいくつかの項目を設定しておく必要があります。設定の詳細は、次項の「ページ管理マスタメン

テナンスでのi-modeの設定」を参照してください。

8.4.1 ページ管理マスタメンテナンスでのi-modeの設定

作成したi-mode対応のページは、ログイングループ管理者が[ログインググループ管理]の[メニュー設

定]でページを登録する際に、「クライアントタイプ」の項目で「モバイル」を選択します。[メニュー設定]

の操作については、アドミニストレータ・ガイドの第2章「7 アプリケーションの登録」を参照してください。

<[ログイングループ管理]の[メニュー設定]>

Page 141: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

18 ユニットの組み込みと操作

プログラミングガイド - J2EE開発モデル編 135

8.4.2 i-modeのアドレスとパスワードの設定

i-mode用に作成し登録したページをi-mode対応モバイルで利用するには、ログイングループ管理者が

[ログイングループ設定]の[アカウント設定]で、ユーザごとにモバイル用メールアドレスとモバイル用パ

スワードの設定を行います。いったん設定されたモバイル用パスワードに関しては、各ユーザが一般ユー

ザでログインして、[ユーザ設定]の[モバイルパスワード設定]で変更することができます。

<ログイングループ管理者の[ログイングループ設定]-[アカウント設定]>

<[ユーザ設定]フォルダの[モバイル用設定]>

Page 142: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

136 intra-mart WebPlatform/AppFramework

8.4.3 i-mode用外出設定

intra-martから送信されるメールは、通常時は[ログイングループ設定]の[アカウント設定]で登録した

メールアドレスに送信されます。一般ユーザが[ユーザ設定]の[外出設定]で「外出」に設定しておくと、

通常のメールアドレスに送信されると同時に、i-mode用メールアドレスにも送信されます。

設定は、一般ユーザの[ユーザ設定]-[外出設定]で行います。この機能を利用するには、ログイングル

ープ管理者が[ログイングループ設定]の[アカウント設定]で[モバイル用アドレス]を設定しておかなけ

ればなりません。

<外出設定>

エクステンションモジュールの「IM-コンテンツトランスレーション」を利用すると、i-mode以外のさまざまなモバ

イル機器にコンテンツを自動変換することもできます。詳細は、次節の「IM-コンテンツトランスレーション」を

参照してください。

Page 143: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

19 エクステンション・モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 137

9 エクステンション・モジュールの組み込みと操作 エクステンション・モジュールは、intra-mart WebPlatform/AppFrameworkに標準添付されているモジ

ュールとは別に用意されているモジュール群です。より高機能なモジュールが必要なユーザのために各

種エクステンション・モジュールが用意されており、必要に応じて組み込んで標準のモジュールと同様に

ご利用いただけます。現在用意されているモジュールについて説明します。

9.1 画面共通モジュール拡張 標準で用意されている画面共通モジュールのほかに、ユーザビリティの飛躍的な向上を実現するエク

ステンション・モジュール「IM-Curl(別売)」と「IM-FComponents(別売)」が用意されています。

9.1.1 IM-Curl

intra-martと連携したビジュアルなクライアントGUI環境を実現する、エクステンション・モジュールです。

ユーザビリティの飛躍的な向上と効率的な開発を実現します。

IM-Curlは、高度かつ複雑なユーザーインターフェイスを構築可能なリッチクライアントサイドWebプログ

ラミング言語です。IM-Curlは、J2EE開発モデルのみの提供です。

IM-Curlは、俊敏な操作性と豊かなGUIを提供します 最近のWeb業務アプリケーションは、クライアントの表現力や操作性が求められています。

IM-Curlは、HTMLライクなテキストフォーマットから高パフォーマンス3Dグラフィックスまで、広範囲な開

発記述能力を持っています。

<IM-Curlの画面例>

Page 144: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

138 intra-mart WebPlatform/AppFramework

IM-Curlは、サーバ負荷を軽減します Webアプリケーションが高度になるほどサーバには負荷がかかりますが、IM-Curlでは、実用性に優れた

アプリケーションの処理をクライアントサイドで実装することにより、サーバに負担を減少させ、通信帯域

の有効活用をします。

IM-Curlはアプリケーションの処理をサーバとクライアント側(各PC)に分散させる事により、より高速でサ

ーバの負担がないスムーズな処理を実現します。

詳細に関しては以下の資料を参照してください。

・ 製品に添付されている、Curlアプレットが相互に通信するアプリケーションを作成するために用意されて

いるCurl連携用APIを利用するためのチュートリアルガイド

「IM-Curl連携APIチュートリアルガイド」(im_curl_api_tutorial .pdf)

・ APIリストの「J2EE開発モデル」-「ビジネスロジック層」-「アプリケーション共通モジュール」内の

jp.co. intra_mart.foundation. im_curlクラス

Page 145: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

19 エクステンション・モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 139

9.2 帳票印刷モジュール拡張 帳票印刷モジュール拡張として、よりきめ細かな帳票の印刷に対応したエクステンション・モジュールが

オプションで用意されています。

9.2.1 IM-PDFデザイナー

PDFを採用することにより、より複雑な帳票形式への対応が可能となるモジュールで、単票および連帳

にも対応します。ビジュアルな帳票デザイン作成ツールである「IOWebDoc」で帳票フォーマットを作成し

ます。ユーザアプリケーションからのデータとレイアウト定義ファイルからPDFファイルを作成し、Acrobatを

起動して印刷します。

IM-PDFデザイナーを組み込んだ例

<組み込まれたIM-PDFデザイナーの帳票サンプル画面>

Page 146: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

140 intra-mart WebPlatform/AppFramework

IM-PDFデザイナーの動作概要 IM-PDFデザイナーを組み込むと、intra-martのモジュールの一つとして動作します。

intra-martのアプリケーションとして動作するJavaプログラムでIM-PDFデザイナーにより提供されるAPI

を利用することにより、データベースから取得したデータなどを帳票データとして帳票フォーマットにした

がってPDFファイルを作成することができます(シンプルな帳票から複雑な帳票まで、様々な表現が可

能です)。

スクリプト開発モデルで実現した例になりますが、勤怠管理のサンプルでは、[PDF印刷]ボタンをクリッ

クするだけであらかじめ作成しておいた帳票デザインをもとに帳票のPDFが作成されます。その後、PDF

表示用のAcrobatが自動起動し、帳票が画面に表示されます。印刷は、Acrobatから行うようになって

います。

(J2EE開発モデルにおいても、同等の機能を実装可能です)。

複数アプリケーションサーバ環境でのIM-PDFデザイナーの利用 アプリケー シ ョンサ ー バを 複 数 配 置 し ている環 境 でIM-PDFデ ザイナーを 利 用 す るには、 Storage

Service上でIM-PDFデザイナーを稼働します。これにより、生成したPDFファイルをStorage Serviceで

一元管理することができます。

<複数アプリケーションサーバ環境で、IM-PDFデザイナーを利用する>

コーディング例に関しては、PDFデザイナーに同梱されている「プログラマーズガイド」を参照してください。

Page 147: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

19 エクステンション・モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 141

9.2.2 IM-X Server

大量帳票出力やプリンタへのダイレクト出力、電子署名とタイムスタンプのサポートも可能な印刷モジ

ュールです。XML対応の高機能ビジネス帳票ソリューションで、オンデマンド印刷、ダイレクト出力など、

多様な機能を提供します。

さまざまな形式の帳票の生成・出力・配信が可能 IM-X-Serverの帳票生成はXMLで定義されるため、電子化(PDF、HTML、CSV、OPR)や印刷(ダイレ

クト印刷、FAX送信)から検索・入力フォームまで、1ソースマルチフォーマットで生成でき、開発工数を

削減することが可能です。基幹帳票生成から日々の業務に必要なビジネスレポートまで、トータルソリ

ューションを提供します。

きめ細かい帳票作成が可能なデザインツールも合わせて提供 日本固有の複雑な罫線やページ単位のレポート、連帳・単票・サブレポート、ラベル、カスタムサイズ等

の設計に対応。動的グラフ生成、動的バーコード生成、電子署名、表計算、複数オブジェクトのグルー

プ化による段組表現など、フレキシブルな表現でさまざまなビジネス帳票に対応します。

Page 148: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

142 intra-mart WebPlatform/AppFramework

9.3 アクセスセキュリティ・モジュール拡張 標準で用意されているアクセスセキュリティ・モジュールのほかに、シングルサインオンを実現するエクス

テンション・モジュールがオプションで用意されています。

9.3.1 IM-SecureSignOn(セキュア・サイン・オン)

IM-SecureSignOnは、シングルサインオンを実現するツールです。社内のさまざまなWebシステムへのロ

グインも、このSecureSignOnに一度ログインするだけ、すべての認証が完了します。独自のエージェント

型リバースプロキシー方式により、適応範囲が広く、導入・運用が容易なシステムです。すでに、NTTデ

ータ社内で1万人規模のシングルサインオンとして活用されています。

IM-SecureSignOnの特徴 大規模、異種環境下での利用が可能

エージェントインストール型リバースプロキシー方式により、「クライアントの設定が不要」「大規模環境に

段階的な導入が可能」「Web サーバ、OS を問わない」というエージェントプラグイン、リバースプロキシー

方式両者の特徴を備える。

すでに多くの Web サーバが稼動しているときに段階的な導入が可能(すべてのアクセスを集中する

Proxy サーバは不要)。

ACL はサーバごとに分散管理している(集中管理機能を構築中)。

ほぼ Web サーバを選ばない方式である

認証モジュールは WindowsNT、Solaris、Linux での動作を確認済み。

CGI を使って名前、メールアドレス、所属部署などのユーザ情報がとれる

バックエンドユーザデータベースは LDAP 及び NT ドメインをサポート。プラグインにより独自データもサポ

ート可能

電子署名によりアクセスチケットの改竄は不可能

Page 149: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

19 エクステンション・モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 143

シングルサインオンを実現する3つの方式 シングルサインオンを実現するには、一般的にリバースプロキシー方式とエージェントモジュール方式の2

つの方式が考えられます。IM-SecureSignOnでは、これら両者の長所を兼ね備えた独自のエージェント

インストール型リバースプロキシー方式を採用しています。

詳細は、IM-SecureSignOn附属のマニュアルを参照してください。

Page 150: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

144 intra-mart WebPlatform/AppFramework

9.3.2 IM-SecureBlocker

インターネットに公開するWebアプリケーションのセキュリティ対策を低コストで実現することができます。

脆弱な箇所にピンポイントで適用が可能なため、導入によるWebアプリケーション全体への影響を最

小限に抑えることができます。

SecureBlockerは入力パラメータを検査し、自動的に無害化してくれるJavaクラスライブラリです。

IM-SecureBlockerを導入すると、次のような効果が得られます。

HTTP Request のパラメータの入力値チェック機能の検討・実装コストが削減できます。

開発者のスキルに依存せず、Web アプリケーション脆弱性対策が実施できます。

Web サイトで使用するパラメータごとにチェックを制御可能です。

クロスサイトスクリプティング、OS コマンドインジェクション、ディレクトリトラバーサル、SQL インジェクションの

チェックが可能です。

Page 151: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

19 エクステンション・モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 145

9.4 ワークフロー・モジュール拡張 標準で用意されているワークフロー・モジュールのほかに、エクステンション・モジュールとして「IM-ワーク

フローデザイナー(別売)」、「IM-FormatCreator(別売)」、そして「IM-Σ Serv/IM-SonicESB(別売)」

の3つが用意されています。

9.4.1 IM-ワークフローデザイナー(アドバンスド版には同梱)

プロセスが並列、結合、条件分岐するなど、より複雑な状況にも対応するワークフロー機能です。プロセ

ス結合時や分岐する際の処理は、分岐処理、結合処理として設定し実行することができます。

IM-ワークフローデザイナーの詳細は、別冊の「ワークフローガイド」を参照してください。

9.4.2 IM- FormatCreator

intra-mart上で動作するドキュメントワークフローの起票画面(申請書)を、ノンプログラミングで作成す

るためのソリューション。ウィザード形式の画面にしたがって設定するだけで、ワークフローの申請画面を

作成することができるので、HTML、JavaScript、XMLなどのWeb画面作成言語、およびデータベースに

関する知識を必要としない。作成した申請書は、専用の連携画面で簡単にintra-martのワークフロー

と連携させることができる。また、以前に起票したものを再利用して効率よく起票することもできる。

詳細は、別冊「IM-FormatCreator」を参照してください。

9.4.3 IM-EX申請システム

電子申請のための申請書フォーマット画面にExcelシートを利用することができるソリューションです。

intra-martのワークフローと組み合わせて利用することで、申請ワークフローを設定だけでノンプラグラミ

ングで作成することができます。書式設定やマクロはExcelの機能をそのまま利用することができるの

で、入力チェックを行うこともできます。入力した情報はデータベースの指定のテーブルに保存すること

が可能です。

Page 152: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

146 intra-mart WebPlatform/AppFramework

Excel様式さえ用意すれば、短時間で申請書をWeb化することができます。

お使いのExcelの様式を入力画面に活用し intra-mart のワークフロー連動することができます。

Excelの書式設定や提供するマクロを設定し、クライアントサイドで入力チェックが行えます。

Excelに入力した情報は、データベースの指定のテーブルに保存可能です。

データベースに保存されている情報を指定のExcel様式で出力できます。

Excel様式の登録、入力チェック等、すべて設定だけでプログラム言語の知識がいりません。

9.4.4 IM-SonicESB

IM-SonicESBは企業内に分散している複数の既存システムを連携する、バックエンドシステム統合プラ

ットフォーム(ESB)です。システム間のデータの一貫性を保証する機能も実装しており、Webサービス同

士を高信頼に連携させるアプリケーションを、容易に開発することが可能です。

ビジネスプロセスワークフローモジュールと連携することで、バックエンドも含めたダイナミックかつミッショ

ンクリティカルなシステム統合が実現します。

Page 153: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

19 エクステンション・モジュールの組み込みと操作

プログラミングガイド - J2EE開発モデル編 147

9.5 外部ソフトウェア連携ソリューション intra-martでは、各社が提供する外部ソフトウェアを利用するための連携ソリューションを用意してい

ます。

9.5.1 統合検索ソリューション

IM-統合検索ソリューションは、(株)ジャストシステムの「ConceptBase 」と連携することで、MS-Word 、

一太郎、MS-Excel 、PDF ファイルなどさまざまなファイル形式のドキュメントから自然文によるナレッジ

検索を行うことができる文書検索システムです。

ConceptBaseサーバとStorage Service間の接続モジュールを提供することにより、ConceptBaseの強

力な文書検索機能を利用したシステムの構築が可能となります。また、検索した文書から、内容やド

キュメントの要約をテキストで取得することもできます。

Conscept Base Searchは文書ファイルを対象とした検索、CB RDB Gateway はRDB内の情報を対

象とした検索、CBゲートウェイfor Lotus NotesはNotes DBを対象とした検索が可能となります。

9.5.2 マルチデバイスソリューション

フレックスファーム社のX-Servletの利用により、マルチデバイスへのコンテンツ配信が可能になります。

詳細については、X-Servlet付属のマニュアルを参照してください。

≪主な特徴≫ シングルURL ひとつのURLにアクセスすると、自動的にアクセスされた機種を認識します。

シングルソース 1つのコードですべての国内移動体通信会社のアクセス方式に対応します。

オートレイアウト アクセスされた機種に対応し、画像の変換やページの自動分割を行います。

Page 154: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

148 intra-mart WebPlatform/AppFramework

10 その他の機能 intra-martには、次のような機能も用意されています。

10.1 ソースセキュリティ機能 ソースセキュリティ機能とは、Webサーバ上には画像ファイル(gifなど)、CSJS、appletなどHTMLから直

接参照しなければならない最低限度のファイルだけを配置し、メインのプログラムやデータはアプリケー

ションサーバやインフォメーションサーバに配置することで、Web経由での不正ファイルダウンロードを未

然に防ぐための機能です。intra-martは各サーバがネットワーク接続により別々のハードウェアで動作さ

せることができるので、Webサーバと別マシンで動作しているアプリケーションサーバやインフォメーション

サーバのプログラムファイル、またはStorage Serviceに保存されているデータファイルなどをWeb経由

で不正にダウンロードすることができません。

10.2 アプリケーション・ロック機能 アプリケーション・ロック機能(処理のトランザクション)を実現します。LockというAPIを利用することで、

プログラムの直列処理を行うことができます。また、このAPIは、アプリケーションサーバが分散している

場合においても、すべてのサーバで共通的にロックを掛けることができます。詳細は「APIリスト」を参照

してください。

10.3 一意情報の取得機能 このAPIは、Application Runtimeが分散している場合においても、すべてのApplication Runtimeでユニ

ーク(一意)の情報を取得することができる機能です(この機能は、Server Manager の管理情報を

元に各 Application Runtime がシステム一意となるように制御します)。詳細は、「APIリスト」の以下の

ページを参照してください。

jp.co.intra_mart.foundation.service.client.information.Identifier

10.4 ファイル操作 このアプリケーションは、Storage Serviceのシステムルート以下のファイルやディレクトリを操作するため

のユーティリティです。ディレクトリやファイルの新規作成、ファイルの削除やアップロード、名称の変更、

テキスト編集などが行えます。アップロードされたファイルはStorage Serviceに保存されます。

<ファイル操作画面>

Page 155: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

110 その他の機能

プログラミングガイド - J2EE開発モデル編 149

10.5 SQLクエリー データベース操作はデータベースに対してSQL文を直接実行するための簡易ツールです。接続先を選

択後、テキストエリアにSQL文を記入し、[実行]ボタンをクリックします。

<SQLクエリー画面>

10.6 データベースエラー時のトリガー関数呼び出し データベースエラー時に、imインフォメーションサーバルートのdberr.jsファイルのinit関数を呼び出します。

ここで、データベース切断時の再接続処理などを記述することができます。

10.7 LDAPとの連携 JavaのJNDIを利用してLDAP上の情報に対し、検索、更新、削除などが行えます。

また、ログインユーザをintra-martとLDAP間で連携させることができます。アドミニストレータ・ガイドの第

1章「11 LDAPとの連携」を参照してください。

Page 156: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

第3章 さまざまなJavaコンポーネント群(im-BizAPI)の利用

150 intra-mart WebPlatform/AppFramework

10.8 国際化対応 以下の機能は、国際化(i18n)を考慮した設計および実装がされています。

スクリプト開発モデル

im-J2EE Framework(Service Framework のみ)

アプリケーション共通マスタ

アクセスセキュリティモジュール

これらを利用することにより、国際化されたアプリケーションの開発や、各アプリケーションの地域化など

が実現できます。

利用するロケールの種類は、運用開始前に予め決定してください。

運用中にロケールを追加すると、特にアプリケーション共通マスタでデータの不整合が発生しアプリケーショ

ンの動作に影響する可能性があります。

機能の詳細については、下記ドキュメントをご覧ください。

・APIリスト

・im-J2EE Framework仕様書

・アプリケーション共通マスタ説明資料

・アクセスセキュリティ仕様書

10.9 標準画面の作り方(共通画面デザイン) 以下のドキュメントが用意されています。

画面デザインガイドライン

スタイルシート仕様書

画面デザインガイドラインに準じたAPIも用意されています。API仕様は、画面デザインガイドラインのドキ

ュメントに掲載されています。

これを参考に、共通化APIを利用して画面を作成することにより、製品標準の画面と同様の画面デザ

インでアプリケーション開発ができます。デザインが共通化されると、他の画面と見た目や操作性が統

一され、メニューから呼び出されたときに利用者が違和感無くアプリケーションを操作できるなどのメリ

ットがありますので、アプリケーション開発の際には、デザイン統一の方法としてこのガイドラインの利用

を検討してください。

intra-mart WebPlatform/AppFrameworkの持つ各画面ソースは、そのほとんどがプレーンな状態でインス

トールされています。画面デザインガイドラインの適用方法や、APIの使用例としてご活用ください。

10.10 ポータル画面の利用 intra-martのアプリケーションを作成する際に、独自のポートレットを作成して、intra-martのポータル画

面に表示させることができます。

ポータルとして表示させたい画面は、通常の画面ではなく、ポータルモジュールの規約にともない変更する

必要があります。ポータル用のページ作成方法については、APIリストの[J2EE開発モデル]-[業務基盤ツー

ルズ]-[ポータルモジュール]-[ポータル]-[開発ガイド]および[スクリプト開発モデル]-[業務基盤ツールズ]-

[ポータルモジュール]-[ポータル]-[開発ガイド]を参照してください。

ポートレットに関しては、アドミニストレータガイドの第2章「ログイングループ管理者編」の「10 ポータルの設

定と操作」も参照してください。

Page 157: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

110 その他の機能

プログラミングガイド - J2EE開発モデル編 151

Appendix

Page 158: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

Appendix

152 intra-mart WebPlatform/AppFramework

1 メッセージ設定 %Server Manager%/conf/messageディレクトリに、Javaのプロパティファイル形式でメッセージを設定

します。

メッセージ設定の詳細は、「アドミニストレータガイド」を参照してください。

ここで設定したメッセージを取得するには、MessageManagerクラスを利用します。 MessageManager

には、メッセージIDからメッセージ文字列を取得するgetMessage()メソッドが用意されています。このメソ

ッドは、ログインした際のロケールを元にメッセージを取得します。

jp.co. intra_mart.foundation.security.message.MessageManagerクラスの記述を参照してください。

Page 159: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

12 予約語一覧

プログラミングガイド - J2EE開発モデル編 153

2 予約語一覧 以下の用語は、intra-martの中で予約語として使用されていますので、使用することができません。

IMXXX (prefix が “ IM(im)”) XXX(prefix が “ (アンダースコア)”)

intra-mart API で使用されているクラス、およびグローバル関数名

(intra-mart API では大文字を接頭辞として使用しています)

JavaScript、Java での予約語

Page 160: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

Appendix

154 intra-mart WebPlatform/AppFramework

3 制限事項 アプリケーション作成時のファイル名およびJavaScript関数名には次のような制限があります。

3.1 ファイル名称 ファイル名称に、次の文字は使用できません。

¥ / : ; * ? ” < > | & # [ ] ( ) { } (space) (tab)

(全角文字等日本語は使用できません)

ファイル名とは、プレゼンテーションページ(.htmlファイル)とファイルコンテナ(.jsファイル)が対象です。データ

ファイルはこれに含まれません。

3.2 ID、コード intra-martで提供している機能において、すべてのID、コード(ユーザIDなど)には、以下に示す文字を含

めることはできません。

¥ / : , ; * ? ' " < > | & # + [ ] ( ) { } (space) (tab)

(全角文字等日本語は使用できません)

3.3 JS関数 関数名称に、次の文字は使用できません。

* < > [ ]

(全角文字等日本語は使用できません)

(その他、JavaScriptの仕様に依存します)

サーバ上で動作する関数に関しての制約です。クライアント上で動作する関数(HTML内)に関してはこれ

に含まれません。また、関数だけでなく、その関数の登録名称やメソッド名にもこの制約は適応されます。

Page 161: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

プログラミングガイド - J2EE開発モデル編 155

2 2 つの Web アプリケーションモデル... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

A API リスト.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

E EJB コンポーネント... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

I IM- FormatCreator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145

IM-Curl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137

IM-EX 申請システム... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145

i-mode unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134

IM-PDF デザイナー... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139

IM-SecureSignOn .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142, 144

IM-SonicESB .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146

IM-X Server .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141

IM-ビジネスプロセスワークフロー ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128

IM-ワークフローデザイナー ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145

J J2EE 開発モデル... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7, 9

JSP ファイル ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

L LDAP との連携 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149

M MultipartFormData .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102

N new NetworkFi le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104

S Servlet(Java コンポーネント) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

SQL クエリー ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149

V ViewCreator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130

X XML パーサー... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115

XML 形式... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115

あ アクセスセキュリティ・モジュール ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127

アプリケーション・ロック機能 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148

アプリケーション開発概要 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

アプリケーション共通モジュール ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

アプリケーション共通マスタ unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

い 一意情報の取得機能 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

え エクステンション・モジュール... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

か 外出設定 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

外部ソフトウェア接続モジュール ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

外部ソフトウェア連携ソリューション... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

外部プロセス ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

画面共通モジュール ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

カレンダーunit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

き 起動と終了 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

業務基盤ツール ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

く グラフ描画モジュール ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

こ 国際化対応 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

し 自動認証 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

せ 制限事項 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

そ ソースセキュリティ機能 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

て デバッグ ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

添付ファイル付きメールの送信 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

と 統合検索ソリューション ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

は バッチ管理モジュール... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Page 162: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

156 intra-mart WebPlatform/AppFramework

ひ ビュークリエイター

ビュークリエイターの概要 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130

標準画面 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150

ふ ファイル・アップロード... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

ファイル・ダウンロード ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105

ファイルアップロード unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134

ファイルサーバ ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

ファイル操作 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148

ファイルの削除... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107

ファイルの保存場所 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

フォルダ ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

へ ページ ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

スクリプト開発モデル ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

ほ ポータル画面 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130

ポータルモジュール ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129

ま マルチデバイスソリューション... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

め メール送信... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

メール連携モジュール... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

メッセージ設定 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152, 153

メニュー構成 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

メニューの表示 ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

も モジュール ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

ゆ ユニット... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

よ 予約語... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

わ ワークフロー ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

ワークフロー・モジュール ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

Page 163: プログラミングガイド - BPM/業務改善プラット … DAOグループの設定 73 5.4.2 グループモデルの作成 74 5.4.3 DAOインタフェースの作成 78 5.4.4

プログラミングガイド - J2EE開発モデル編 157

2009年7月 第4版

プログラミングガイドJ2EE開発モデル編Ver6.0