...

nexacro platform 14 / チュートリアル入門

by user

on
Category: Documents
116

views

Report

Comments

Transcript

nexacro platform 14 / チュートリアル入門
nexacro platform 14 /
チュートリアル入門
14.0.1.700.1
弊社製品のご愛顧について感謝申し上げます。
NEXAWEBは、この文書が提供する情報の正確性を維持するために努力し、特別な言及なしに、
変更および補完します。但し、この文書に誤った情報が含まれていないことを保証していません。
この文書の記述により発生する可能性がある直接的または間接的な障害や、データおよびプログ
ラム、その他の無形財産に関する損失、使用利益の損失などについて、損害賠償や他の責任を負
いません。
使用者は、本文書を購入もしくは電子文書としてダウンロードし、使用を開始することにより、
ここに記載された内容を理解して、これに同意したものとみなされます。
各社の製品名を含む各商標は、各開発会社の登録商標であり、特許法と著作権法などにより保護
されています。従って、本文書に含まれているすべての製品名および会社名は、それぞれの所有
者の商標としてのみ使用されます。
発行先 | 日本ネクサウェブ株式会社
住所 | 〒101-0021 東京都千代田区外神田5-3-1秋葉原OSビル10F
電話 | 03-5812-6358
ホームページ | www.nexaweb.co.jp
履歴
バージョン
14.0.1.700.1
変更日
2016-10-25
内容
3.3.3 Generate 説明の中で、ライブラリコピーに関連する項目を削除
Generate機能の実行時にライブラリを自動的にコピーするように機能
変更
iii
目次
著作権及び免責条項
.....................................................
ii
履歴
...............................................................
iii
目次
...............................................................
iv
第1章 nexacro platformの紹介
1.1
企業でのUI/UX
1.1.1
1.2
1
........................................................
1
.........................................
2
....................................................
3
..........................................................
3
....................................................
4
BUX: Business User eXperience
nexacro platform 14
1.2.1
主な特徴
1.2.2
適用対象システム
第2章
...........................................
nexacro studioの紹介
.............................................
6
.............................................................
6
..............................................
7
..............................................
9
.....................................................
10
.....................................................
10
.........................................................
12
...............................................................
12
...............................................
12
バージョンの確認
....................................................
14
2.3
nexacro studioの削除
....................................................
15
2.4
ヘルプの使用
..........................................................
16
2.1
推奨仕様
2.2
nexacro studioのインストール
2.2.1
nexacro studioの設置情報
2.2.2
ライセンス認証
トライアルライセンス
有償ライセンス
日本
ライセンス認証失敗メッセージ
2.2.3
第3章 Hello nexacro platform
...........................................
iv
17
目次 | v
....................................................
17
.........................................
19
......................................
21
................................................
21
.................................................
22
.........................................................
24
.......................................................
27
3.1
nexacro studioの実行
3.2
nexacro platformプロジェクトの作成
3.3
nexacro platformアプリケーションの作成
3.3.1
フォーム作成ウィザード
3.3.2
コンポーネントの配置
3.3.3
Generate
3.3.4
イベント追加
第4章
テストサーバーの設定
4.1
..............................................
..................................................
31
................................................
31
...........................................................
31
......................................................
33
.......................................
34
.........................................
35
..........................................
35
...........................................................
35
......................................................
38
.....................................................
39
...........................................................
39
インストールの確認
......................................................
40
コンテキストの設定
......................................................
41
.......................................................
41
..................................................
43
.......................................
44
軽量Webサーバーの使用
4.1.1
マングース(mongoose)
ダウンロード
Webサーバーの実行
nexacro platformアプリケーションの確認
4.2
Webアプリケーションサーバーの使用
4.2.1
JDK(Java SE Development Kit)
ダウンロード
インストールの確認
4.2.2
Apache Tomcat
ダウンロード
webappsの設定
外部コンテキストの追加
nexacro platformアプリケーションの確認
第5章 画面の作成(顧客社リスト照会)
5.1
29
画面構成
.......................................
45
.............................................................
45
.................................................
45
.....................................................
46
................................................
47
........................
48
.................................................
50
5.1.1
プロジェクト(Project)
5.1.2
フォーム(Form)
5.1.3
データセット(Dataset)
5.1.4
データセットコンテンツエディタ(Dataset Contents Editor)
5.1.5
コンポーネントの配置
vi | nexacro platform 14 / チュートリアル入門
5.2
グリッド
.............................................................
52
.................................................
52
.............................
53
..........................................................
59
................................................
59
.........................................................
60
........................................................
61
5.2.1
データバインディング
5.2.2
グリッドコンテンツエディタ(Grid Contents Editor)
5.3
データテスト
5.3.1
ボタンクリックイベント
5.3.2
Generate
5.3.3
Quick View
第6章
画面の作成(トランザクション)
6.1
63
................................................
63
......................................................
64
.........................................................
65
.......................................................
66
.......................................................
66
................................................
68
....................................................
69
...............................................................
71
.....................................................
72
............................................
72
..............................
74
データセット(Dataset)
6.1.2
グリッド(Grid)
6.1.3
Generate
トランザクション
6.2.1
sample.xml
6.2.2
ボタンクリックイベント
6.2.3
コールバック関数
6.3
ログ
62
........................................................
グリッドコンボ
6.1.1
6.2
.......................................
6.3.1
Google Chrome
6.3.2
Firefox(ファイアフォックス)
6.3.3
Internet Explorer(インターネットエクスプローラ)
第7章 画面の作成(X-API)
7.1
サービス
7.2
X-API
..............................................
75
.............................................................
75
..............................................................
76
7.2.1
配布ファイル
.......................................................
76
7.2.2
インストール
.......................................................
76
7.2.3
専用オブジェクト
....................................................
78
...........................................................
78
7.3
initdata.jsp
7.3.1
pseudo code
.......................................................
79
7.3.2
コードの実装
.......................................................
79
......................................................
79
........................................................
79
Javaライブラリ指定
MIMEタイプ定義
目次 | vii
....................................
80
............................................
80
.................................................
81
.............................................
81
........................................................
82
.................................................
84
...........................................................
86
デフォルトオブジェクト(PlatformData)の生成
データセットを生成して Fileで保存
ErrorCode、ErrorMsg処理
結果データをクライアントに送る
7.3.3
全体コード
7.3.4
データ初期化イベント
7.4
search.jsp
7.4.1
pseudo code
.......................................................
86
7.4.2
コードの実装
.......................................................
86
......................................................
86
........................................................
86
......................................
87
.....................................
87
.................................................
87
.............................................
88
........................................................
89
..................................................
91
....................................................
91
..........................................................
93
Javaライブラリ指定
MIMEタイプ定義
デフォルトオブジェクト(PlatformData)生成
ファイル内容を読み取ってデータセットを生成
ErrorCode、ErrorMsg処理
結果データをクライアントに送る
7.4.3
全体コード
7.4.4
データ検索イベント
7.4.5
データベース接続
7.5
save_list.jsp
7.5.1
pseudo code
.......................................................
94
7.5.2
コードの実装
.......................................................
94
......................................................
94
........................................................
94
......................................
95
........................................................
95
........................
95
.................................................
96
.............................................
96
........................................................
97
..................................................
98
Javaライブラリ指定
MIMEタイプ定義
デフォルトオブジェクト(PlatformData)生成
クライアント要請
クライアントが送信したデータを抽出した後、ファイルに保存する
ErrorCode、ErrorMsg処理
結果データをクライアントに送る
7.5.3
全体コード
7.5.4
データ保存イベント
第1章
nexacro platformの紹介
業務に最適化されたシステム、必要な情報に簡単にアクセスすることができるシステム、直感的に実行で
きるシステム、そしてデータ入力作業のような面倒な作業に時間がかからず、必要な業務に集中できるシ
ステムは、画期的な生産性の向上をもたらすことができます。このような変化は、システムのUI/ UX
環境をどのように構築するかにかかっています。
UI/ UXの革新は、システムを単に見栄え良く作ることではなく、効率的に総所有コスト(TCO、Total Cost
of Ownership)を削減し、投下資本利益率(ROI、Return On Investment)を高めながら、ユーザビリティ
も一緒に高めて経営者、システム管理者、そしてユーザーといったみんなの満足度を上げる必要があります。
nexacro platformは、機能、性能、デザイン要素が企業の要求水準に合わせて調和を成すように構成され
ていて、企業のために生まれたビジネスユーザーエクスペリエンスソリューションです。
1.1
企業でのUI/UX
RIA(Rich Internet Application)、そしてREA(Rich Enterprise Application)に至るまで、企業と個人のよ
り豊かなユーザーエクスペリエンスを実現するためのWebアプリケーションの概念は続いて発展してきま
した。
C/S(Client Server)環境は処理速度は満足だったものの、インストール、配布、保守管理の難しさがあって、
ウェブの登場によってこのような問題は解決されましたが、データ処理速度と制限されたUIといった限界
を持つようになりました。それを克服するために、2002年Adobeと合併されたマクロメディアで使用して
いたRIAという用語が拡散されて全体の市場が拡大されました。RIAは一般ユーザーを対象にする広告やデ
ザイン、アニメーションを強調して発展してきました。
時間が経つにつれて、企業用アプリケーション市場でも、より豊かで高度のユーザーインターフェイスを
要求し始め、企業のためのRIAという意味のREAソリューションが企業向け市場で脚光を浴び始めています。
ただし、REAは一般ユーザーを対象にしたRIAとは根本的なアプローチが異なっていました。徹底的に企
1
nexacro platformの紹介 | 2
業環境の分析と複雑な開発ニーズの理解、そして企業への高い理解度と数多くの構築経験に基づいて作ら
れてきた独自的な領域です。
最近、"UX(User eXperience)"という用語が注目され、企業のビジネス環境に最適化されたUI/UXの実現
を通じた企業の価値のあるビジネスビュー(VIEW)への関心が高まりました。このような新たな企業ユーザ
ーのニーズに対応し、REAの概念を超えて拡張された概念でBUX(Business User eXperience:ビジネス
ユーザー経験)を定義しました。BUXは、直感的な業務環境、ユーザーの経験をベースにしたUIの実装を通
じて、業務の生産性を高め、速やかな意思決定を可能にすることによって、何よりも企業顧客のビジネス
価値を実現することに重心を置いています。
1.1.1 BUX: Business User eXperience
BUXは、以下の3つの統合によって実現されます。
一つ目は、プラットフォームの統合(Unified Platform)です。
さまざまなオペレーティングシステム、ブラウザ、およびデバイスはもちろん、それぞれ異なる画面サイズ
に対して1つのソースで実行され、最適化された結果が得られるOSMU(One Source Multi Use)を指向して
います。
二つ目は、開発環境の統合(Unified Development Process)です。
同じ開発環境内でインハウス(In House)開発やSAPのようなUI高度化パッケージの開発作業を全て実行する
ことができ、開発からテストおよび配布まで、ソフトウェア開発の全プロセスを統合できるようにする開発
ツールである"nexacro studio"を提供することにより、開発生産性を向上させます。
三つ目は、データ中心の統合(Unified Data Frame)です。
定型、非定型データとOLTP(Online Transaction Processing)関連業務とビッグデータの可視化を含めたOL
AP(Online Analysis Processing)関連業務の両方をサポートすることを意味します。これは、データ指向の
企業用システムUI/ UXにおいて、業務効率性と生産性の向上に直結することであるので、特に重要な意味が
あります。
企業システムのUI/ UXの改善は投資コストの業務生産性向上と満足度向上効果が一番高い方法です。
既存のシステムをほぼ変更することなく、大幅な改善効果を創出することができるためです。最小のコス
トを通じた最大の技術革新効果、そして、モバイル、クラウド、ビッグデータ技術を積極的に受け入れて、
企業用UI/UXを統合的にサポートするという意志こそ、BUXプラットフォームであるnexacro platform
が追求する方向です。
3 | nexacro platform 14 / チュートリアル入門
1.2
nexacro platform 14
nexacro platform 14は、BUXプラットフォームで、企業のさまざまな開発ニーズに対応するために、
JavaScriptベースの独自の統合フレームワークで開発されました。nexacro platformで開発されたアプリ
ケーションは、別の追加開発なしに、さまざまなオペレーティングシステム、ブラウザ、デバイスで同じ
機能を実装することができます。
nexacro platform 14から提供する、ウィジウィグ(WYSIWYG)ベースの開発ツールであるnexacro studio
は、RTE(Real Time Enterprise)実現のための開発生産性を最大化するために、HTML5、ランタイムバー
ジョンに関係なく開発することができ、開発者の利便性を最大化すると同時に、さまざまなデザイン効果
を簡単に与えることができるようにサポートします。
nexacro platform 14は、システムのUIにアクセスする状況によってHTML5とランタイムバージョンに区
分され、同じ開発プロセスと設定ファイルを使用します。HTML5バージョンは、別の追加インストールせ
ずに配布の問題から非常に自由なのが特徴であり、ランタイムバージョンは仮想エンジンのインストール
によってデスクトップ、スマートフォン、タブレットなど、さまざまな環境で相対的に高い性能と信頼を
確保することができます。ランタイムバージョンは、オペレーティングシステムによって、最適化された
仮想エンジンを提供します。
1.2.1 主な特徴
●
強力な開発ツール
既存の4GL開発ツールのように、開発に必要な多様で便利な機能をnexacro platform専用開発ツール
であるnexacro studioで提供します。ウィジウィグ(WYSIWYG)方式の画面開発と共に知能的なエデ
ィタを提供し、開発者に便利な機能をサポートします。
●
標準の準拠
nexacro platformで使用するスクリプト言語は、ECMA、CSS、XML、DOMなどの国際標準に準拠し
た汎用技術を適用することにより、他のシステムまたはソリューションとの柔軟なインターフェイス
をサポートします。
標準技術を使用して新しい言語を学ばなければならないという負担を減らすことができ、nexacro platformの開発環境を迅速に習得して簡単に開発および保守が可能です。
●
統合されたデバイスのイベント処理
PCでのマウスイベント処理とスマートデバイスでのタッチイベント処理を標準化して、一つのコード
でさまざまなデバイスをサポートするイベント処理を実装することができます。
nexacro platformの紹介 | 4
●
高速のデータ処理
nexacro platformは、サーバーとクライアント間のデータ処理時の画面と情報を除いたデータのみ送
受信することにより、サーバーの負荷を削減し、ネットワークの効率を高め、高速の通信速度を実現
することができます。
非同期通信技術を利用したデータ通信をサポートし、業務によって最適な実行環境を作ることができ
ます。
●
企業に特化した豊富なコンポーネント
アプリケーションですぐに使用できるさまざまな企業用コンポーネントを提供してアプリケーションに
必要なコンポーネントの開発期間を最小限に抑えることで、開発期間を短縮し、変化するビジネス環
境に速やかに対応できます。特に最も多く使われるGridは、企業で主に使う機能を内蔵して提供して
います。
nexacro studioでは、コーディングせずに、ドラッグ&ドロップ操作だけで各コンポーネントとのデ
ータバインディングすることができ、クリック操作だけで新しいイベントを作成することができます。
●
視覚効果
さまざまな視覚効果を処理したり、スタイルやテーマを編集する作業をnexacro studio内で簡単に実
装することができ、開発者とデザイナーの両方に柔軟なコラボレーションプロセスをサポートします。
●
企業専用ブラウザ(ランタイムバージョン)
Real Time Enterprise(RTE)の実現のために企業で使用するアプリケーションで、機能や性能は重要
な要素です。ウェブブラウザの性能は持続的に向上してきているが、企業が必要とする安定した性能
への期待を満たすことができない限界を持っています。それらの限界から脱皮するために、ランタイ
ムバージョンで提供する企業専用ブラウザ機能を活用することができます。
1.2.2 適用対象システム
●
既存のシステムのUI高度化によるTCOの削減とROIの向上
○
メインフレーム環境など既存のシステムをウェブに移行
○
使用が複雑なSAP UIの改善/高度化
○
既存のシステムの老朽化でUI構成が複雑になるにつれ使用度が低下されたシステムを改編
○
○
●
コールセンターシステムのようにUIの改善/再構築時に顧客満足度の向上、人当たり処理速度向上
によるコスト削減
ERP、CRM、PLM、SCMなどに対するシステムアクセシビリティを向上
クライアント/サーバーシステムをインターネットベースのシステムに移行
○
クライアント/サーバーシステムのインストール、配布、更新時の問題を根本的に解決
5 | nexacro platform 14 / チュートリアル入門
○
●
純粋なウェブでサポートされていないオフライン駆動とLocal DBMSやLocal Fileとの連動業務
スマートフォンやタブレットなど、さまざまな機器のサポートが必要なシステム構築
○
PCとスマートフォン、タブレットまで共にサポート
○
BYOD(Bring Your Own Device)環境サポートシステムの構築
●
数値、統計データ中心の対顧客ウェブサービスやアプリケーションの開発
●
代表取締役、役員または意思決定者を対象に、直感的で流麗なEISや状況板などのシステム構築
●
HTML5を収容した次世代のシステム構築
第2章
nexacro studioの紹介
nexacro studioは、開発者が使い慣れた4GL開発ツール(Visual Basic、Delphi、PowerBuilderなど)と同
様のインタフェースと機能を提供します。HTML5とRuntimeを統合的にサポートするnexacro platform
アプリケーション開発ツールです。ウィジウィグ(WYSIWYG)形式で画面をデザインし、データを視覚化
することができ、スクリプトでさまざまなロジックを作成することができます。
さまざまなデバイスに最適化されたアプリケーションを作成するために、複数のアプリケーションを個別
で作成せずに、MLM(Multi Layout Manager)を適用した単一ソースにより、デスクトップ、スマートフォン、
タブレットなどのさまざまな環境で高い性能と安定性を提供することができます。
2.1
推奨仕様
nexacro studioをインストールして使用するにあたって、必要なシステム要件は以下の通りです。
項目
最小仕様
推奨仕様
CPU
Intel® Pentium® 4 1.4GHz
Intel® Pentium i3-330M, 2.13GHz
ディスプレイ
-
加速装置を持っている
512MB以上のグラフィックス・デバイス
メモリ
1GB
4GB DDR3
HDD
8GB
30GB - 5400rpm
プラットフォーム
Windows XP SP3
Windows7 Home Premium (32bit) SP1
6
7 | nexacro platform 14 / チュートリアル入門
2.2
nexacro studioのインストール
nexacro studioは、nexacro platformのインストールパッケージに含まれて配布されます。配布されたセ
ットアップファイルを実行すると、インストールが始まります。
Windows Vista以上のバージョンでは、セキュリティ警告が表示されることがあります。
必ず「実行」を選択してください。
nexacro studioの紹介 | 8
デスクトップにショートカットアイコンを作成する場合は、以下の項目にチェックを入れます。
「Finish」ボタンをクリックしてプログラムインストールを完了します。
9 | nexacro platform 14 / チュートリアル入門
2.2.1 nexacro studioの設置情報
「スタート > プログラム > nexacro > 14」 にてnexacro studioおよびインストールパッケージに含ま
れたツールのショートカットを確認することができます。インストールされた各ショートカットとインス
トールフォルダに含まれたファイルは以下の通りです。
アイコン
メニュー
説明
Help
nexacro platformのヘルプアイコン
Uninstall
アンインストールのショートカットアイコン
nexacrostudio14
nexacro studioのショートカットアイコン
製品のバージョンにより、インストールされるファイルのリストが一部変更されることがあり
ます。
nexacro studioの紹介 | 10
2.2.2 ライセンス認証
nexacro studioのライセンスは、指定期間まで使用可能なトライアルライセンス(Trial License)と購入後
に発行される有償ライセンス(Paid License)の2種類があります。
トライアルライセンス
nexacro studioトライアルライセンスは、以下のウェブサイトからお申込みいただくか、営業部門を介し
てお申込み可能です。
Nexaweb Japan: https://www.nexaweb.co.jp/dl_evaluation
nexacro studioをインストールして初めて起動すると、下図のようにライセンス入力画面が最初表示され
ます。発行されたライセンス情報を入力して認証を終えると、nexacro studioが使えるようになります。
項目
説明
1
Application/Service Name
トライアルライセンスの発行時に入力したEメールアドレス
2
Developer License Key
発行されたトライアルライセンスキー
11 | nexacro platform 14 / チュートリアル入門
項目
説明
3
User Name
ユーザー名
4
EULA Agreement
EULA同意確認
トライアルライセンス認証が成功すると、以下の図のように、ライセンス関連情報と使用可能な日付が表
示されます。使用可能日は、nexacro studioの実行時に常に表示されます。
ライセンス発行、認証、運用ポリシーは、国ごとに異なる場合があります。以下の表を参照してください。
使用期間
再発行回数
日本
韓国
日本以外の国
最大60日
60日
30日
不可
1回
1回
再発行されたトライアルライセンスで認証する際は、nexacro studioのメニュー[Help > About nexacro
studio]をクリックし、「Enter New License」ボタンをクリックして新しいトライアルライセンスキーを
入力します。
nexacro studioの紹介 | 12
有償ライセンス
nexacro studioの有償ライセンスは、日本と日本以外の国で発行方法が異なります。
日本
日本は営業担当部門を介して発行されたライセンスを認証するには、nexacro studioのメニュー[Help >
About nexacro studio]をクリックし、「Enter New License」ボタンをクリックして有償ライセンスキ
ーと関連情報を入力します。
有償ライセンスの認証に成功すると、以下の図のようにライセンス関連情報と使用可能な日付が表示され
ます。購入タイプによって表示される情報が異なる場合があります。
ライセンス認証失敗メッセージ
ライセンス認証に失敗した場合には、以下のようなメッセージが表示されます。
ライセンスキーを間違って入力した場合
13 | nexacro platform 14 / チュートリアル入門
活性化(Activation)されていないライセンスキーを入力した場合
使用期間が終了した場合
EULA同意確認をしていない場合
入力したライセンスキー情報がサーバーに存在しないためライセンスの有効性チェックを行うことができない場合
nexacro studioの紹介 | 14
該当ライセンスを使用することができる開発者の数が超過した場合
ネットワーク接続などの問題でサーバーへの接続が失敗して、ライセンスの有効性チェックを行うことができない場合
2.2.3 バージョンの確認
「スタート > プログラム > nexacro > 14」から「nexacro studio」を実行します。 nexacro studio
のメニュー[Help Abou nexacro studio…]をクリックすると、インストール済の nexacro studioのバー
ジョンを確認することができます。入力したライセンス情報は暗号化されて表示されます。
15 | nexacro platform 14 / チュートリアル入門
2.3
nexacro studioの削除
「スタート > プログラム > nexacro > 14」から「UnInstall」を実行すると、インストールされたnexacro
platform Package とnexacro studioが削除できます。
ユーザのPCにインストールされたプログラムとインストール情報を削除した後に終了します。
nexacro studioの紹介 | 16
2.4
ヘルプの使用
ファンクションキー<F1>を押すか、メニュー[Help – Help]を選択します。
ヘルプ項目
説明
Applicaiton Objects Reference
Application項目のヘルプです。
Frame Objects Reference
Frame Object項目のヘルプです。
Script Reference
スクリプト項目のヘルプです。
Objects Reference
オブジェクト項目のヘルプです。
Components Reference
コンポーネント項目のヘルプです。
Plugins Reference
プラグイン項目のヘルプです。
Appendix
分類されない追加項目のヘルプです。
第3章
Hello nexacro platform
nexacro platformアプリケーションの開発環境を理解し、nexacro studioを扱う基本的な方法を学ぶため
に簡単なアプリケーションを作成してみましょう。
この章では、次のような内容を説明します。画面に'Hello、nexacro platform!'というテキストを表示し、
テキストをクリックしたときAlertウィンドウに'nexacro platform 14'というテキストを表示するアプリケ
ーションを作成します。
3.1
nexacro studioの実行
PCにインストールされたnexacro studioを実行します。インストール時にデスクトップに
アイコン
を作成した場合、そのアイコンをダブルクリックして直接実行することができます。
ショートカットアイコンを作成していない場合、nexacro studioがインストールされたフォルダで実行フ
ァイルをダブルクリックして実行することができます。 nexacro studioがインストールされたパスは次の
とおりです。
C:\Program Files\nexacro\14\nexacrostudio14.exe
17
Hello nexacro platform | 18
nexacro studioのインストール後、最初の実行時には、どんなプロジェクトも開いていない状態です。
nexacro studioの画面構成は次のとおりです。
コンポーネント
1 プロジェクト
エクスプローラ
説明
作業中のプロジェクトの構成要素を表示します。
最初の実行時には何も表示されません。
(Project Explorer)
2 Form Design
nexacro platformアプリケーション画面のデザイン、スクリプト編集作業が行われる
スペースです。
3 プロパティ
ウィンドウ
フォーム、コンポーネント、Datasetコンポーネントの属性が表示され、編集できる
スペースです。
(Properties)
4 Output
エラーメッセージやGenerateメッセージ、trace()メソッドで設定したメッセージを
表示するスペースです。
19 | nexacro platform 14 / チュートリアル入門
3.2
nexacro platformプロジェクトの作成
nexacro platformアプリケーションを作成するためには、先にプロジェクトを作成する必要があります。
すべてのnexacro platformアプリケーションは、プロジェクトで指定された属性によってユーザーの画面
に表示され、動作することになります。
プロジェクトは、新たに作成したり、既に作成されたプロジェクトテンプレートを使用することができます。
この章では、新しいプロジェクトを作成します。
すべての作業は、メニューまたはツールバー、ショートカットキーで実行することができます。この章では、
コンポーネントの配置を除くすべての作業は、メニューに基づいて説明します。
nexacro platformプロジェクトを作成するためのメニューは、次のとおりです。New Project Wizard
が実行され、順番によって新しいプロジェクトを作成します。
[Menu] File > New > Project
新しいプロジェクトを作成するには、プロジェクト名とプロジェクトファイルを保存するパスを指定する
必要があります。 1 Name項目にプロジェクト名を指定し 2 Location項目に保存するパスを指定します。
Hello nexacro platform | 20
今回の例では、次のように設定します。
説明
設定値
1 Name
プロジェクト名
Hello
2 Location
プロジェクトファイル保存パス
D:\XP\PJ\Hello
3
プロジェクト追加形式
Create a new Project
DefinitionとLayoutまで設定しなければなりませんが、今回の例では、必要な項目であるため、プロジェ
クト名とLocation項目のみ指定して 4 Finishボタンをクリックします。
プロジェクトが作成されながら、プロジェクトのナビゲーションウィンドウで、プロジェクトの構成要素
が表示されます。今回の例で、各コンポーネントの詳細な説明はしなくて、nexacro platformアプリケー
ションの作成に進みます。
この章で説明するパスは、Windows7 OSに基づいて説明します。OSによって設定されたパス
が変更される場合があります。
Location項目を個別に指定してくれないと、次のパスに自動的に指定されます。
C:\Users\[User]\Documents\nexacro\
既に作成したプロジェクトが開いている状態で新しいADLを追加する場合は、 3 'Create a
new Project'項目の代わりに 'Add to Current Project'項目を選択することができます。
21 | nexacro platform 14 / チュートリアル入門
3.3
nexacro platformアプリケーションの作成
nexacro platformアプリケーションは、フォーム(Form)をベースに動作します。プロジェクトがアプリケ
ーションのための舞台を作ったことならば、舞台を飾りし、動線を配置し、効果を追加する作業は、
フォームから担当します。
3.3.1 フォーム作成ウィザード
nexacro platformを作成するためのメニューは以下のとおりです。New Form Wizardが実行され、
順番によって新しいフォームを作成します。
[Menu] File > New > Form
新しいフォームを作成するにはフォーム名とサービスグループを保存するパスを指定する必要があります。
1 Name項目に作成するフォーム名を指定し、 2 Location項目にサービスグループを指定します。サービ
スグループは、デフォルトでBaseが作成されています。
Hello nexacro platform | 22
今回の例では、次のように設定します。
説明
設定値
1 Name
フォーム名
frm_hello
2 Location
サービスグループ(デフォルト値:Base)
Base
フォームのサイズを指定するDimensionとマルチレイアウトを指定するLayoutsまで設定しなければなり
ませが、今回の例では、必要ない項目であるため、フォーム名とサービスグループの項目のみ指定して 3
Finishボタンをクリックします。フォームのサイズはデフォルト値(1024x768)で設定されます。
フォームのデフォルトサイズは、オプションから指定できます。 [Tools > Options > Form
Design > General]項目で「Default Width」、「Default Height」項目を変更すると、
基本的に生成されるフォームのサイズを変更できます。
3.3.2 コンポーネントの配置
新しいフォームが作成されると、Form Designウィンドウが活性化になり、フォームデザインに必要なツ
ールバーが活性化になります。活性化されたツールバーは、テキスト属性を指定する 'TextStyle'ツールバー、
コンポーネント配置時に使用する' Objects'ツールバー、配置されたコンポーネントの画面ソートを支援す
る'Align'ツールバーが画面に表示されます。
23 | nexacro platform 14 / チュートリアル入門
nexacro platformアプリケーションで文字を表記するときは、Staticコンポーネントを使用します。'
Objects'ツールバーで、Staticコンポーネント
をマウスで選択し、Form Designウィンドウで望む場所
に配置するためにマウスでクリックすると、デフォルト値にサイズが設定されたStaticコンポーネントが配
置されます。
Form Designウィンドウでマウスをクリックせずにマウス左ボタンを押した状態でドラッグすると、
任意のサイズにコンポーネントを配置することができます。
Hello nexacro platform | 24
Staticコンポーネントのテキストを変更するときには、コンポーネントを選択し、テキスト領域をクリック
すると編集モードに切り替わり、直接変更することができます。Form Designウィンドウではなく、
プロパティウィンドウでも該当プロパティを変更することができます。 Staticコンポーネントを選択し、
プロパティウィンドウで、textプロパティの項目を変更します。
3.3.3 Generate
修正されたnexacro platformアプリケーションを確認したい場合は、Quick Viewを使用します。 Quick
Viewを実行するメニューは以下の通りです。
[Menu] Build > Quick View > Quick View
Quick Viewを実行しようとすると、以下のようなメッセージが表示されます。 nexacro platformアプリ
ケーションは、nexacro studioで作成されたコードをすぐに実行することではなく、JavaScriptコードに
変換(Generate)する過程が必要となります。変換されたコードは、統合フレームワークベースでどのよう
な環境からでも利用することができます。
25 | nexacro platform 14 / チュートリアル入門
Generate Pathは、次のメニューからも登録することができます。Generate Pathには、変換された
JavaScriptファイルが作成されるフォルダを指定します。指定されたフォルダの下にプロジェクト名で新
しいフォルダが作成され、JavaScriptファイルが作成されます。
[Menu] Tools > Options > Environment > General > Generate Path
Working Folder, Generate Path, Base Lib Pathの基本設定は下記のとおりです。
Working Folder
C:\Users\[user name]\Documents\nexacro\projects
Generate Path
C:\Users\[user name]\Documents\nexacro\outputs
Base Lib Path
C:\Program Files\nexacro\14\nexacro14lib
Hello nexacro platform | 26
nexacro studioで、内部でコード変換プロセスを実行し、以前に指定した Generate Pathに必要な
JavaScriptファイルを作成します。該当フォルダには、以下のようなファイルが生成されます。
変換されたJavaScriptファイルが作成され、Quick Viewが実行されていることを確認することができます。
27 | nexacro platform 14 / チュートリアル入門
3.3.4 イベント追加
StaticコンポーネントをダブルクリックしたときAlertウィンドウを表示する機能を追加します。ユーザー
の特定の行為や条件によって動作が発生することをイベントといいます。
nexacro studioでダブルクリックイベントを追加するときは、Form Designウィンドウで該当コンポーネ
ントをダブルクリックしてください。Form Scriptウィンドウに切り替えながらイベントを指定する関数が
タスクウィンドウに自動的に作成されます。
this.Static00_onclick = function(obj:Static,
e:nexacro.ClickEventInfo)
{
}
作成された関数には、該当コンポーネントをクリックしたときに実行する動作を指定することができます。
Alertウィンドウに特定の文句を表示するコードを追加します。
this.alert("nexacro platform 14");
Hello nexacro platform | 28
今回の例では、生成されたフォーム(frm_hello.xfdl)の完全なソースコードは次の通りです。nexacro platformアプリケーションを開発する過程で、直接ソースコードを修正しませんが、ソースコードを見て、
どのようにアプリケーションが構成されていることを確認することができます。
<?xml version="1.0" encoding="utf-8"?>
<FDL version="1.5">
<TypeDefinition url="..\default_typedef.xml"/>
<Form id="frm_hello" classname="frm_hello" left="0" top="0" width="1024"
height="768" titletext="New Form">
<Layouts>
<Layout>
<Static id="Static00" text="Hello, nexacro platform!" left="50" top
="50" width="160" height="70" onclick="Static00_onclick"/>
</Layout>
</Layouts>
<Script type="xscript5.0"><![CDATA[
this.Static00_onclick = function(obj:Static,
{
this.alert("nexacro platform 14");
}
]]></Script>
</Form>
</FDL>
e:nexacro.ClickEventInfo)
第4章
テストサーバーの設定
Webブラウザからnexacro platformアプリケーションを直接実行するには、実行環境を作成する必要があ
ります。 nexacro studioでWindows Runtimeでテストすることができますが、さまざまなWebブラウザ
でで実際に動作する内容をチェックしたい場合は、各開発環境で別々の実行環境を作成する必要があります。
nexacro platformアプリケーションが動作するためには、Webサーバーのみ設置しても結構ですが、
データのトランザクションまでテストする場合は、Webアプリケーションサーバー(WAS、Web Application Server)を設定する必要があります。以下では、簡単なテストのための軽量Webサーバーであるマン
グース(mongoose)を使用する方法と、WASをインストールするためJDKのインストールとApache Tomcat
の設定について説明します。
マングースとApache Tomcatは、以下のような違いがあります。使用する目的に合わせて選択してください。
mongoose
Apache Tomcat
インストールファ なし
イル
インストールファイルの提供
(別途のインストールファイルなしで実行 (バイナリソースから取得して、直接バッチファイ
ファイルが提供されてダブルクリックです ルを実行させることもあります。)
ぐに実行)
JDK
不要
JDKのインストール後に使用可能
なし
定められた手順に従って、コンテキストを追加したり、
インストール
Context設定
(実行可能ファイルが実行されるフォルダ warファイルをデプロイしてコンテキストを作成
が、Webサーバーのrootで指定。)
X-API支援
使用不可
使用可能
(別途設定)
XPLATFORM
使用不可
使用可能
9.2
(9.2は、JSP環境をサポートする必要が
あります。)
29
テストサーバーの設定 | 30
この章で説明する各サービスの問題や、詳細な使用方法については、該当製品のプロジェクト
サイトを参照してください。
31 | nexacro platform 14 / チュートリアル入門
4.1
軽量Webサーバーの使用
4.1.1 マングース(mongoose)
nexacro platformアプリケーションをPC上で簡単にテストしてみるために軽量のWebサーバーであるマ
ングースを使用します。マングースは、別のインストールせずにWebサーバrootで動作する場所に実行フ
ァイルをコピーして実行するだけで結構です。
ダウンロード
下記のサイトでシステム環境に合った実行ファイルをダウンロードすることができます。 Windows
ユーザならexe拡張子を持つファイルをダウンロードしてください。
https://code.google.com/p/mongoose/
ダウンロードしたファイルをnexacro studioで指定したGenerate Pathにドロップします。
nexacro studioの Options > Generate Pathを指定しすると、アプリケーションのJavaScriptコードが指
定されたフォルダに作成されます。
テストサーバーの設定 | 32
この章では、mongoose-3.7.exeファイルをダウンロードして使用しました。該当プロジェク
トの更新により、一部の内容が変更されることがあります。
ライセンスポリシー の変更により、mongoose 5.0以上のバージョンは、非商業的なユーザ
ーにのみ無料で提供されます。
テスト用に使用可能な以前のバージョンの実行可能ファイルは、下記のリンクからダウンロー
ドすることができます。
https://code.google.com/p/mongoose/downloads/list?can=4
33 | nexacro platform 14 / チュートリアル入門
Webサーバーの実行
マングース実行ファイルをダブルクリックして実行します。ダブルクリックした瞬間、マングース、Web
サーバーが実行され、次のように下段トレイ領域にアイコンが追加されます。
右クリックしてコンテキストメニューを開くと、設定できるメニューが表示されます。この章では、すぐに
Webブラウザで確認できる "Start browser"と、Webサーバーのシャットダウン時に使用する "Exit"の項
目のみ説明します。その他の詳細な説明は、マングースのプロジェクトサイトの説明を参照してください。
'Start browser'を選択すると、デフォルトで設定されたWebブラウザが実行され、マングースの実行ファ
イルをコピーしておいた場所がWebサーバーのrootとなり、利用可能なディレクトリのリストが表示され
ます。
使用しているマングースのバージョンによって、ディレクトリの一覧表示が制限されることが
あります。
テストサーバーの設定 | 34
nexacro platformアプリケーションの確認
生成されたプロジェクトのディレクトリ(Hello)をクリックすると、生成されたnexacro platformアプリケ
ーションを確認することができます。
35 | nexacro platform 14 / チュートリアル入門
nexacro studioでWebブラウザにすぐアプリケーションを実行するには、ビルドツールバーでWebブラウ
ザを選択し、次のようにURLを入力します。
トレイから"Exit"の項目を選択すると、Webサーバーが終了します。
4.2
Webアプリケーションサーバーの使用
4.2.1 JDK(Java SE Development Kit)
Webアプリケーションサーバーは、Tomcat(Tomcat)やジェッティー(Jetty)、ウィンストン(Winstone
)のように無料で公開されたのを使用するか、市販の製品を使用することができます。ここでは、簡単に使
用できる、Tomcatをインストールする基準として説明します。
Tomcatのは、Javaベースで作成されたので、実行するためには、JDK(Java SE Development Kit)の環境
が設定されている必要があります。 JDKは、無料で提供されており、簡単にインストールすることができ
ます。
ダウンロード
下記のサイトで、システム環境に合ったJDKをダウンロードすることができます。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
テストサーバーの設定 | 36
この章では、jdk-7u17-windows-i586.exe(version1.7.0_17)ファイルをダウンロードして
使用しました。該当プロジェクトの更新によって一部の内容が変更されることがあります。
JDKやTomcatのインストールファイルは、Windowsを使用する場合は、32ビットと64ビッ
トのインストールファイルを提供します。
OSバージョンの確認は、下記のリンクを参照してください。
37 | nexacro platform 14 / チュートリアル入門
http://support.microsoft.com/kb/958406/ja
テストサーバーの設定 | 38
インストールの確認
ダウンロードしたインストールファイルを実行すると、自動的に必要な環境設定とインストールを行います。
インストールが完了すると、コマンドウィンドウで、正常にインストールされたことを確認します。
java -version
JDK1.5以降のバージョンをインストールする場合には、実行に必要な環境変数(JAVA_HOME
)を別に設定しなくても、システムパスに自動的に実行ファイルをコピーしてアクセスするこ
とができます。
39 | nexacro platform 14 / チュートリアル入門
4.2.2 Apache Tomcat
nexacro platformアプリケーションをWebブラウザで動作するようにするには、Webサーバー環境を作成
する必要があります。Apache Tomcatは、簡単なインストールだけで、このような環境を作ることができ
ます。
ダウンロード
下記のサイトで実行環境に合わせてTomcatをダウンロードすることができます。
http://tomcat.apache.org
Tomcatは、圧縮されたバイナリファイルをダウンロードして直接実行したり、別々に提供さ
れるインストールファイルを使用することができます。ここでは、インストールファイルでイ
ンストールするようにします。
ダウンロードしたファイルを実行すると、インストールウィザードが必要な設定プロセスを進め、JRE
パスも自動的に認識して処理します。
テストサーバーの設定 | 40
この章では、apache-tomcat-7.0.39.exeファイルをダウンロードして使用しました。該当プ
ロジェクトの更新により、一部の内容が変更されることがあります。
インストールの確認
インストールが完了したら、Windowsサービスとして登録され、自動的にサーバーを実行します。下段の
トレイで右クリックしてコンテキストメニューを確認すると、サービスの状態情報を確認するか、他の設
定を行うことができます。
Webブラウザでローカルアドレスに設定されたURLの値を入力して、通常のインストールかどうかを確認
します。
http://127.0.0.1:8080
41 | nexacro platform 14 / チュートリアル入門
コンテキストの設定
Tomcatでアプリケーションを実行するためには、コンテキストを追加する必要があります。コンテキスト
を追加する方法はいくつかありますが、この章では、webappsフォルダの下に設定する方法と、任意のフ
ォルダに設定する方法を説明します。
新しいファイルを追加または変更するためにOSの設定による管理者権限が必要となります。
webappsの設定では、nexacro studioが管理者権限で実行されていなかったら、アプリケー
ションファイルが生成されないことがあります。
webappsの設定
Tomcatがインストールされたフォルダの下にwebappsフォルダがあります。他の設定なしにインストー
ルした場合、下記のパスに設定されます。基本的にdocs、manger、ROOTフォルダが設定されています。
C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\
ファイルエクスプローラで、webappsフォルダの下に任意の名前で新しいフォルダを追加します。そして
その下にWEB-INFという名前のフォルダを追加します。
WEB-INFフォルダの下には、web.xmlファイルが必要です。 web.xmlファイルは、以下のように作成し
テストサーバーの設定 | 42
ます。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
</web-app>
nexacro studioで、Options > Generate Pathを指定すると、アプリケーションのJavaScriptコードが指
定されたフォルダに作成されます。
43 | nexacro platform 14 / チュートリアル入門
外部コンテキストの追加
webappsの設定方法は、指定されたパスのみを使用する制約があります。例えば、WindowsのDドライブ
に指定されたフォルダを使用するには、外部コンテキストの追加方法を使用します。
Tomcatのインストール·パスの下に指定されたフォルダに、XMLファイルで作成されたアプリケーション·
コンテキストファイルを追加します。
C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost
指定したコンテキスト名でxmlファイルを次のように作成します。
<Context path="/Hello" docBase="D:\03_TEST\XP\BUILD\Hello"
debug="0" prvileged="true" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestame="true"/>
</Context>
テストサーバーの設定 | 44
nexacro platformアプリケーションの確認
生成されたパスをWebブラウザに入力すると、nexacro platformアプリケーションを確認することができ
ます。
nexacro studioでWebブラウザに直接アプリケーションを実行するには、ビルドツールバーでWebブラウ
ザを選択し、次のようにURLを入力します。
トレイから"Exit"項目を選択すると、Tomcatサービスが終了されます。
第5章
画面の作成(顧客社リスト照会)
業務に使用されているアプリケーションの中で最も基本的な項目は、検索画面です。この章では、簡単な
顧客リスト表示画面を作成しながら、グリッド(Grid)コンポーネントとデータセット(Dataset)を処理する
方法を説明します。
5.1
画面構成
nexacro platformアプリケーションを作成する一般的な方法は、プロジェクトとフォームを作成し、
フォーム内に必要なコンポーネントを配置するプロセスです。
5.1.1 プロジェクト(Project)
次のように新しいnexacro platformプロジェクトを作成します。
[Menu] File > New > Project
項目
設定値
説明
Name
CustomerList
プロジェクト名
Location
D:\XP\PJ\CustomerList
プロジェクトファイルの保存パス
45
画面の作成(顧客社リスト照会) | 46
5.1.2 フォーム(Form)
作成されたプロジェクトに顧客リストを表示するフォームを追加します。次のように新しいフォームを作
成します。フォームの幅と高さは、フォームを作成した後にプロパティウィンドウで変更することができ
ます。
[Menu] File > New > Form
項目
設定値
説明
Name
frm_list
フォーム名
Location
Base
サービスグループ(デフォルト値:
Base)
Width
800
フォームの幅(デフォルト値:1024)
Height
600
フォームの高さ(デフォルト値:768)
フォームのtitletextプロパティ値を変更します。titletextプロパティ値は、Webブラウザに表示されるタイ
トルで適用されます。
プロパティ
titletext
値
Customer List Search
説明
フォームタイトル
47 | nexacro platform 14 / チュートリアル入門
5.1.3 データセット(Dataset)
データセットコンポーネントは、nexacro platformアプリケーション内でデータを管理する機能を提供し
ます。ユーザーが入力するか、サーバーから取得したデータを保管し、データの変更(追加/変更/削除)状
態を管理します。
データセットは、2次元テーブル形式でデータを管理します。カラム(Column)構造でロー(Row、Record
)単位でデータを扱うことができます。一つのフォームに複数のデータセットを持つことができます。GlobalVariablesでデータセットを作成し、複数のフォームから共同で使用することもできます。
nexacro studioツールバーでデータセット
を選択した状態で、デザイン領域任意の場所をクリックすると、
データセットが追加されます。データセットは、画面に表示されるコンポーネントではなく、アプリケー
ション内でデータを管理するために使用されるコンポーネントであるため、Invisible Objects項目に管理
されます。
プロパティウィンドウで追加したデータセットのプロパティを次のように変更します。
プロパティ
id
値
dsCustomers
説明
データセットのid
画面の作成(顧客社リスト照会) | 48
5.1.4
データセットコンテンツエディタ(Dataset Contents
Editor)
一般的なコンポーネントは、プロパティウィンドウで関連するプロパティを変更しますが、データセットは
データを処理するための追加のツールとしてデータセットコンテンツエディタが提供されます。
データセットのコンテンツエディタは、2次元テーブル形式でデータを管理するために、カラムを設計し、
データを直接追加することができる機能を提供します。データセットをダブルクリックすると、データセ
ットのコンテンツエディタが表示されます。
データセットでデータを管理するためには、使用するカラムを追加する必要があります。Columns項目で
Add a new Column
をクリックしてカラムを追加します、
49 | nexacro platform 14 / チュートリアル入門
例で使用されるカラムは、次のとおりです。
No.
id
type
size
説明
1
id
STRING
4
2
name
STRING
16
名前
3
email
STRING
32
メール
4
phone
STRING
16
電話番号
5
comp_name
STRING
32
会社
6
department
STRING
32
部署
7
comp_phone
STRING
16
会社連絡先
8
comp_addr
STRING
256
一連番号
会社住所
Rows項目でテストのためのデータを追加することができます。データを追加する方法は、カラムを追加す
る方法と同じです。
追加された項目は、データセットコンテンツエディタでソースコードを通じて確認することができます。
ソースコードを直接変更しても、データセットのカラムに反映されます。
画面の作成(顧客社リスト照会) | 50
5.1.5 コンポーネントの配置
顧客リスト検索画面は、タイトル、検索ウィンドウ、検索ボタン、グリッドで構成されます。全体的な画
面の構成は、次のとおりです。
全体的なレイアウトをガイドラインを使用して指定し、ガイドラインに合わせて、必要なコンポーネント
を配置します。nexacro studio画面の任意の場所のルーラー上にマウスをクリックするとガイドラインが
表示され、ダブルクリックすると、削除されます。
51 | nexacro platform 14 / チュートリアル入門
画面の構成に使用したコンポーネントと変更したプロパティ値は次のとおりです。
コンポーネント
プロパティ
値
説明
id
sttList
text
Customer List Search
表示する文字列
font
bold 20 Verdana
フォントプロパティ
2 Div
id
divCommand
3 Edit
id
edtSearch
4 Button
id
btnSearch
text
Search
id
grdCustomers
1 Static
5 Grid
ボタンに表示する文字列
Divコンポーネントは、複数のコンポーネントを包み込んでくれる役割をします。 Divコンポ
ーネントを最初に配置して中に入るコンポーネントを配置する必要があります。
例の中で、Divコンポーネント内に入るEdit、Buttonコンポーネントは、Divコンポーネント
を先に画面に配置し、その上にコンポーネントを追加する必要があります。
画面の作成(顧客社リスト照会) | 52
5.2
グリッド
データを扱う画面を構成する場合、最もよく使用されるコンポーネントは、グリッドです。グリッドは、
コンポーネント単独で使用するより、データを管理するデータセットと連結して使用します。
5.2.1 データバインディング
画面に配置されたグリッドにデータを表示するためには、データセットに接続する必要があります。
このような接続作業を、データバインディング(Binding)と呼びます。グリッドだけでなく、データを画面
に表示できるすべてのコンポーネントは、データセットと接続することができます。
グリッドにデータセットを接続すると、データを表示するだけでなく、グリッド内のデータを直接変更し
たり、入力することができ、変更されたデータは、データセットにすぐに反映されます。
グリッドにデータセットを接続する方法は、binddatasetプロパティ値にデータセットのid値を指定するか、
nexacro studioの画面上でデータセットコンポーネントをマウスでクリックして、グリッド·コンポーネン
ト上にドラッグして移動させます。
53 | nexacro platform 14 / チュートリアル入門
データセットをドラッグして、Gridコンポーネント上にドロップすると、binddatasetプロパティの値は、
該当データセットidで指定され、formatsプロパティにデータセットのカラムに基づいて値が作成されます。
そして、画面上でも、データセットカラムに基づいてグリッドの形が変わったことを確認することができ
ます。
5.2.2 グリッドコンテンツエディタ(Grid Contents Editor)
グリッドとデータセットを接続し、自動的にformatsプロパティの値が作成されましたが、他の型でデー
タを表記することをご希望する場合は、グリッドコンテンツエディタで、ご希望する型を作成することが
できます。グリッドをダブルクリックするか、プロパティウィンドウformatsプロパティと連携されてい
るボタンをクリックすると、グリッドコンテンツエディタが実行されます。
画面の作成(顧客社リスト照会) | 54
グリッドコンテンツエディタは、グリッドにデータをどのように表示するかを編集できる空間です。
データを表示する型のみ扱っており、実際のデータセットには影響しません。
新しい型を編集するために既存の設定された内容を削除します。グリッドコンテンツエディタでheadと
bodyを選択し、コンテキストメニューでDelete項目を選択して指定した型を削除します。
新たに編集されるカラムは、次のような構造で作成します。4つのカラムがカラムにより2つの見出し(Head
)行と本文(Body)行に構成されます。
まず、見出し行を追加します。グリッドコンテンツエディタで右クリックして表示されるコンテキストメ
ニューからAdd Head Row項目を選択します。
55 | nexacro platform 14 / チュートリアル入門
そして、4つのカラムを追加します。見出し行を追加したら、基本的に1つのカラムが作成され、Add
Column項目が有効になります。Add Column項目を選択して3つのカラムを追加します。
col2とcol3カラムに2種類のデータを表記するために、見出し行と本文行を2つずつ追加します。本文行は、
Add Body Row項目を選択して追加することができます。
画面の作成(顧客社リスト照会) | 56
col0とcol1カラムは一つのデータのみ接続してくれるので、セルを合わせる必要があります。col0の見出
し行のセルを選択し、コンテキストメニューからMerge Cells項目を選択します。複数のセルを選択する場
合は、単一のセルを選択した後でマウスをドラッグするか、Shiftキーを押しながら別のセルを選択します。
セル結合をしようとすると、既存のセルのプロパティをそのまま維持するかどうかを選択する必要があり
ます。ここでは、subcellプロパティを使用しないので、"No"を選択します。
57 | nexacro platform 14 / チュートリアル入門
col0、col1の本文行のセルも一つに結合します。
Ctrlキーを押しながら複数のセルを選択すると、コンテキストメニューからMerge Cells
項目が無効になります。
以下のように各カラムに該当する値を指定します。該当するセルを選択し、右側に表示されているプロパ
ティウィンドウで値を入力することができます。
カラム
Head Cell: text
Body Cell: text
Column: size
col0
ID
bind:id
80
col1
Name
bind:name
150
col2
Email
bind:email
200
Phone
bind:phone
Company
bind:comp_name
Department
bind:department
col3
320
画面の作成(顧客社リスト照会) | 58
値を入力してOKボタンをクリックすると、ウィンドウが閉じて、グリッドに変更されたカラムの形式が反
映されます。
59 | nexacro platform 14 / チュートリアル入門
5.3
データテスト
サービス運用段階では、データベース内のデータを取得して画面に表示しますが、テスト段階では、
機能を実装するかどうかだけを確認する場合もあります。簡単なスクリプトでデータをデータセットに追
加し、接続されたグリッドにデータを表示します。
5.3.1 ボタンクリックイベント
btnSearchボタンにクリックイベントを追加し、データを処理するスクリプトを作成します。btnSearch
ボタンコンポーネントを選択し、プロパティウィンドウで、onclickイベントを追加します。イベントプロ
パティ値を追加し、プロパティウィンドウをダブルクリックするか、Enterキーを入力すると、該当イベン
ト関数を新たに作成するかを選択することになります。
プロパティ
onclick
値
divCommand_btnSearch_onclick
説明
ボタンクリックイベント
イベントスクリプトは次のとおりです。データセットに1件のデータ行を追加し、値を指定します。
this.divCommand_btnSearch_onclick = function(obj:Button,
e:nexacro.
ClickEventInfo)
{
var row = this.dsCustomers.addRow();
this.dsCustomers.setColumn(row, "id", "TC-001");
this.dsCustomers.setColumn(row, "name", "Dustin Kim");
this.dsCustomers.setColumn(row, "email", "[email protected]");
this.dsCustomers.setColumn(row, "phone", "6987-6543");
this.dsCustomers.setColumn(row, "comp_name", "TOBESOFT");
this.dsCustomers.setColumn(row, "department", "0");
this.dsCustomers.setColumn(row, "comp_phone", "6506-7000");
画面の作成(顧客社リスト照会) | 60
this.dsCustomers.setColumn(row, "comp_addr", "Seoul");
}
5.3.2 Generate
これで、作成されたアプリケーションをWebブラウザで実行します。最初に作成したコードをJavaScript
のファイルに変換します。Outputウィンドウで、定期的にJavaScriptのファイルが作成されていることを
確認することができます。
[Menu] Build > Generate Application
61 | nexacro platform 14 / チュートリアル入門
5.3.3 Quick View
Webサーバーを実行し、nexacro studioでQuick View
を実行します。WebブラウザでQuick View
を実行するには、ビルドツールバーを有効にし、ブラウザのオプションを変更する必要があります。Web
ブラウザのオプションでは、PCにインストールされたWebブラウザを選択することができます。
最初WebブラウザでQuick Viewを実行するとQuickView.htmlファイルがあるパスを入力する必要があり
ます。 Generateパスとは異なる可能性があるため、別々に項目が管理されます。
指定されたWebブラウザが実行されながら、実行されたnexacro platformアプリケーションを確認するこ
とができます。 Searchボタンをクリックすると、スクリプトで追加したデータがグリッドに表示されます。
第6章
画面の作成(トランザクション)
業務に使用されるアプリケーションは、特別な場合を除いて、データを個々のPCで管理しません。データ
を管理するサーバーで検索されたデータをアプリケーションで編集し、その結果を再びデータサーバーで
管理するようにします。
この章では、nexacro platformアプリケーションでコードデータをどのように扱って、サーバー上のデー
タをどのように取得するか、そしてWebブラウザでログを確認する方法まで説明します。
62
63 | nexacro platform 14 / チュートリアル入門
6.1
グリッドコンボ
データベースに管理されている項目の中で国、部署、役職などのデータは、複数回繰り返して使用される
項目です。このようなデータを文字列そのまま入力すると、入力したユーザーごとに異なって入力したり、
データベースで無駄な領域占有が発生することがあります。それで、このようなデータは別のコードテー
ブルを作成して管理します。
例でも、Department項目は、部門名ではなくコードのみをデータベースで管理しています。ただし、
ユーザーに表示する場合は部署名を示す必要があります。グリッドコンポーネントには、データ型によって
displaytypeプロパティを選択することができます。
6.1.1 データセット(Dataset)
まず、データセットを新規作成し、プロパティとカラムの値を次のように入力します。
プロパティ
値
id
説明
dsDepartment
No.
id
データセットid
type
size
説明
1
code
STRING
32
部署コード
2
value
STRING
32
部署名
画面の作成(トランザクション) | 64
6.1.2 グリッド(Grid)
グリッドをダブルクリックして、グリッドコンテンツエディタを実行します。 Department項目のデータ
セルを選択し、プロパティウィンドウで次の項目を変更します。combodataset項目は直接入力するか、
リストから選択することができ、combodataset項目が入力されるとcombocodecol、colbodatacol
項目も直接入力するか、リストから選択することができます。
プロパティ
説明
値
displaytype
combo
該当セルのデータ表示形式
combodataset
dsDepartment
displaytypeやedittypeがcomboの場合
にコンボコンポーネントと接続される
データセット
combocodecol
code
コードカラム
combodatacol
value
データカラム
65 | nexacro platform 14 / チュートリアル入門
6.1.3 Generate
ADL以外のフォームを変更した場合には、変更されたフォームに該当するファイルのみ再作成します。
メニューからGenerate ApplicationではなくGenerate Fileを選択します。
[Menu] Build > Generate File
Quick Viewで再実行すると、Department項目がコードの代わりに部門名で表記されていることを確認す
ることができます。
画面の作成(トランザクション) | 66
6.2
トランザクション
今回は、transactionメソッドを使用して実際のサーバーからデータを取得します。 nexacro platform
アプリケーションで使用するデータ型によって作成されたXMLファイルをインポートする方法でテストを
実行します
単純なデータ検索のためのテストデータを作成したことであり、実際のアプリケーションの運用環境では、
データストアに保存されているデータをインポートする形式で開発する必要があります。
6.2.1 sample.xml
例で使用するXMLファイルは、次のとおりです。4つのレコードを持っており、検索に成功したことを前提
で作成しました。
<?xml version="1.0" encoding="utf-8"?>
<Root xmlns="http://www.nexacroplatform.com/platform/dataset" ver="5000" >
<Parameters>
<Parameter id="ErrorCode" type="int">0</Parameter>
<Parameter id="ErrorMsg" type="string">SUCC</Parameter>
</Parameters>
<Dataset id="customers">
<ColumnInfo>
<Column id="id" type="STRING" size="4"/>
<Column id="name" type="STRING" size="16"/>
<Column id="email" type="STRING" size="32"/>
<Column id="phone" type="STRING" size="16"/>
<Column id="comp_name" type="STRING" size="32"/>
<Column id="department" type="STRING" size="32"/>
<Column id="comp_phone" type="STRING" size="16"/>
<Column id="comp_addr" type="STRING" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="id">TC-001</Col>
<Col id="name">Dustin Kim</Col>
<Col id="email">[email protected]</Col>
67 | nexacro platform 14 / チュートリアル入門
<Col id="phone">6987-6543</Col>
<Col id="comp_name">TOBESOFT</Col>
<Col id="department">0</Col>
<Col id="comp_phone">6506-7000</Col>
<Col id="comp_addr">Seoul</Col>
</Row>
<Row>
<Col id="id">TC-002</Col>
<Col id="name">Sean Oneal</Col>
<Col id="email">[email protected]</Col>
<Col id="phone">7357-3715</Col>
<Col id="comp_name">AC</Col>
<Col id="department">0</Col>
<Col id="comp_phone">7357-7000</Col>
<Col id="comp_addr">Lansing</Col>
</Row>
<Row>
<Col id="id">TC-003</Col>
<Col id="name">ieter Valenzuela</Col>
<Col id="email">[email protected]</Col>
<Col id="phone">9025-0645</Col>
<Col id="comp_name">Maecenasmifelis</Col>
<Col id="department">0</Col>
<Col id="comp_phone">9025-7000</Col>
<Col id="comp_addr">Coral Springs</Col>
</Row>
<Row>
<Col id="id">TC-004</Col>
<Col id="name">Mark Contreras</Col>
<Col id="email">[email protected]</Col
>
<Col id="phone">7026-3815</Col>
<Col id="comp_name">consectetueripsumnunc</Col>
<Col id="department">0</Col>
<Col id="comp_phone">7026-7000</Col>
<Col id="comp_addr">Elmira</Col>
</Row>
</Rows>
</Dataset>
</Root>
画面の作成(トランザクション) | 68
6.2.2 ボタンクリックイベント
以前に作成したボタンのクリックイベント(divCommand_btnSearch_onclick)に手作業でデータを追加
するコードの代わりにsample.xmlファイルにアクセスしてデータを取得するコードを追加します。
修正されたコードは次の通りです。transactionメソッドに必要なパラメータを指定してメソッドを呼び出
します。transactionメソッドは、特定のデータセットの値を更新するためのサービス(またはファイル)にア
クセスしてデータをダウンロードし、作業が完了すると、コールバック(CallBack)関数を呼び出すメソッ
ドです。
this.divCommand_btnSearch_onclick = function(obj:Button,
e:nexacro.
ClickEventInfo)
{
var id = "search";
var url = "http://localhost:8080/CustomerList/sample.xml";
var reqDs = "";
var respDs = "dsCustomers=customers";
var args = "";
var callback = "received";
this.transaction(id, url, reqDs, respDs, args, callback);
}
例で、transactionメソッドに使用したパラメータは次のとおりです
パラメータ
タイプ
説明
id
String
トランザクションを区分するID
url
String
トランザクションを要求するサービス、またはファイルのURL
reqDs
String
アプリケーションに使用されたデータセットのデータが変更されたときに変更
されたデータセットを指定する値です。
(サービスまたはファイルに指定されたデータセット) = (アプリケーション
で変更されたデータセット)の形式で送信して、1つ以上の値を空白で区切っ
て指定することができます。
respDs
String
トランザクション処理結果を受信するときに指定する値です。
(アプリケーションで変更されたデータセット) = (サービスまたはファイル
に指定されたデータセット)の形式で送信して、1つ以上の値を空白で区切っ
て指定することができます。
args
String
トランザクション要求時に送信されるパラメータを指定する値です。
parameter_name= valueの形式で送信し、1つ以上の値を空白で区切って
指定することができます。
69 | nexacro platform 14 / チュートリアル入門
パラメータ
タイプ
callback
String
説明
トランザクションの結果を処理するコールバック関数を指定する値です。
transactionメソッドは、非同期通信、バイナリ通信、圧縮通信を指定する3つのパラメータが
あり、該当パラメータは省略すると、デフォルト値が適用されます。
6.2.3 コールバック関数
transactionメソッドにサービスやファイルにアクセスした後で指定されたコールバック関数を実行します。
コールバック関数は次のように作成します。
this.received = function(id, code, message)
{
if (code == 0) {
this.alert(this.dsCustomers.rowcount + " numbers of data have been
found.");
trace(this.dsCustomers.rowcount + " numbers of data have been found
.");
} else {
this.alert("Error["+code+"]:"+message);
trace("Error["+code+"]:"+message);
}
}
例で使用されたxmlファイルは常に成功メッセージのみ送信されるため、次のようなメッセージが表示され、
グリッドにデータを表示します。
画面の作成(トランザクション) | 70
トランザクションurlがnexacro platformアプリケーションと同じサーバー上にない場合、
Access-Control-Allow-Originエラーが発生することがあります。
71 | nexacro platform 14 / チュートリアル入門
6.3
ログ
nexacro platformアプリケーションで発生するエラーメッセージやtraceメソッドで処理されるメッセー
ジは、ランタイムとWebブラウザによって少しずつ異なります。フォームデザインやGenerate過程で発生
するエラーメッセージは、nexacro studio Outputウィンドウで確認することができます。
ただし、アプリケーションの実行中に発生するエラーメッセージは、ランタイムの場合には、nexacro
studio Outputウィンドウで確認することができ、HTML5バージョンで実行する場合、各Webブラウザの
設定によって確認方法が異なります。
次の内容は、特定の時点のバージョンのWebブラウザで確認した内容です。使用しているバー
ジョンによって、一部内容が変更されることがあります。
- Google Chrome 34.x
- Firefox(ファイアフォックス) 20.x
- Internet Explorer(インターネットエクスプローラ) 10.x
画面の作成(トランザクション) | 72
6.3.1 Google Chrome
下記のメニューからJavaScriptコンソールを表示できます。
[Menu] Tools > JavaScript Console
6.3.2 Firefox(ファイアフォックス)
下記のメニューからJavaScriptコンソールを表示できます。Google Chromeよりも多くの機能と情報を提
73 | nexacro platform 14 / チュートリアル入門
供しています。
[Menu] Web Developer > Web Console
画面の作成(トランザクション) | 74
6.3.3 Internet Explorer(インターネットエクスプローラ)
下記のメニューからJavaScriptコンソールを表示できます。Internet Explorerは、メニューを使用せずに
設定アイコンをクリックしてもすぐにdeveloper tools項目にアクセスすることができます。
[Menu] Tools > developer tools > Console
第7章
画面の作成(X-API)
第6章 画面の作成(トランザクション)では、あらかじめ作成して保存した XMLファイルのデータを取得し、
画面に表示する機能を説明しました。ただし、実際のビジネス環境では、さまざまなデータベースからデ
ータを検索し、入力したデータをデータベースに保存するなどの複雑な業務処理が必要になります。
nexacro platformアプリケーションは、画面(Form)から入力されたデータをサーバーに送信し、データを
受信するために transaction()メソッドを使用します。transaction()メソッドは、入力された変数とデー
タセットを XML形式に変換してサーバーに転送し、コールバック関数を使用して受信したデータを処理し
ます。
このような過程で、クライアントによって配信した変数とデータセットを処理し、データベース内のデー
タを処理するためにサーバ側で動作するサービスが必要になります。サーバーに実装されたサービスでは、
要求されたデータをさまざまなデータベースから取得して適切な形で加工して、クライアントに配信します。
要求に問題が生じたときどのような問題なのかを確認することができるエラーコードとメッセージを返しま
す。
サービスは、JSP、Servlet、ASP、PHPなどのサーバー環境によって、さまざまなプログラミング言語で
作成することができます。この章では、簡単なJSPサービスを作成し、どのように動作するか確認します。
7.1
サービス
画面で入力されたデータを transaction()メソッドを使用してサーバーに送信して処理し、サーバーに保存
されたデータを再度検索するサービスを実装します。
簡単なテストのためにデータベースに接続する代わりに、ファイル形式でサーバーに保存され
ます。
75
画面の作成(X-API) | 76
以下の3つのサービスを説明します。
●
●
●
initdata.jsp: デフォルトデータを作成し、サーバーにファイルとして保存します。
search.jsp: 保存されたファイルからデータをロードしてデータセットを作成し、クライアントに送信
します。
save_list.jsp: サーバーに送信されたデータをファイルとして保存します。
7.2
X-API
7.2.1 配布ファイル
nexacro platform X-APIライブラリは、データ処理のためのサービスの実装時に必要な機能をライブラリ
の形で実装して提供しています。提供するファイルは、次のとおりです。
●
nexacro-xapi-1.0.jar (X-APIライブラリファイル)
●
commons-logging-1.1.1.jar (http://commons.apache.org/proper/commons-logging/)
●
nexacro14_server_license.xml (ライセンスファイル)
●
docs > api (X-APIマニュアル)
例では、データ処理のために nexacro platform X-APIを使用しています。X-APIは、データ
処理のために必要な機能を実装したライブラリであるだけで、X-APIを必ず使用する必要はあ
りません。
7.2.2 インストール
jarファイルとライセンスファイルを使用している WASと、WEB-INFフォルダの下にコピーします。
/WEB-INF/lib/nexacro-xapi-1.0.jar
/WEB-INF/lib/commons-logging-1.1.1.jar
/WEB-INF/lib/nexacro14_server_license.xml
77 | nexacro platform 14 / チュートリアル入門
ライブラリをコピーする場所は、使用しているWASの設定によって異なる場合があります。
ライブラリファイルとライセンスファイルは、同じ場所にコピーしなければ認識することがで
きません。
正常に配布が設置されたとしたら、下のコードでインストールするかどうかを確認することができます。
<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>JarInfo</title>
<style>
* { font-family: Verdana }
</style>
</head>
<body>
<pre>
<%
new com.nexacro.xapi.util.JarInfo().info(out);
%>
</pre>
</body>
</html>
画面の作成(X-API) | 78
7.2.3 専用オブジェクト
接続されたライブラリで使用される専用オブジェクトは次のようです。
●
PlatformData : データを保存するデフォルトオブジェクト
●
PlatformRequest : JSP要求時に XML Format Dataをロードして客体化する Inputオブジェクト
●
PlatformResponse : JSP要求時に XML Format Dataを出力する outputオブジェクト
●
DatasetList & Dataset : データを2次元 Table形または Table Arrayタイプで保存
●
VariableList & Variable : I/O引数値として使用される単一値を保存
詳しくは、ライブラリに含まれた X-APIマニュアルを参照してください。
7.3
initdata.jsp
デフォルトデータを作成し、サーバーにファイルとして保存します。
79 | nexacro platform 14 / チュートリアル入門
7.3.1 pseudo code
// 1. Javaライブラリ指定(nexacro platform X-API含め)
// 2. MIMEタイプ定義
// 3. nexacro platformデフォルトオブジェクト(PlatformData)生成
try {
// 4. データ処理
// 5. ErrorCode, ErrorMsg処理(成功メッセージ)
} catch (Error) {
// 5. ErrorCode, ErrorMsg処理(失敗メッセージ)
}
// 6. 結果データをクライアントに送る
7.3.2 コードの実装
Javaライブラリ指定
JSPサービスを作成するために、デフォルトJavaライブラリを指定します。コードは次のとおりです。
<!-- 1. library import -->
<%@ page import="java.io.*" %>
<%@ page import="com.nexacro.xapi.data.*" %>
<%@ page import="com.nexacro.xapi.tx.*" %>
MIMEタイプ定義
XML生成のための MIME(Multipurpose Internet Mail Extensions)タイプを定義します。
<!-- 2. mime type define -->
<%@ page contentType="text/xml; charset=UTF-8" %>
画面の作成(X-API) | 80
デフォルトオブジェクト(PlatformData)の生成
データを処理するためのデフォルトオブジェクトを宣言します。デフォルトオブジェクトである PlatformDataは nexacro platformアプリケーションで使用されるすべてのデータ(Dataset、変数)を一度に入れる
ことができるオブジェクトです。
PlatformDataを宣言するコードは次のとおりです。
/** 3. nexacro platform Basic Object creation **/
PlatformData pdata = new PlatformData();
データセットを生成して Fileで保存
データセットを生成してカラム情報を入力し、2つの rowを作成した後、各 rowごとにカラムを入力します。
生成されたデータセットは、簡単に扱うことができるように PlatformDataに登録します。
登録された PlatformDataオブジェクトを使用して"./saveFile.bin"というファイル名で保存します。
データセットを生成してファイルで保存するコードは次のとおりです。
/** 4. handle data : save data to file **/
/** 4.1 create Dataset and input basic data to the Dataset **/
DataSet ds = new DataSet("customers");
ds.addColumn("id",DataTypes.STRING, 4);
ds.addColumn("name",DataTypes.STRING, 16);
...
int row = 0;
int i = 0;
String[] customers = new String[8];
customers[0] = "TC-001";
customers[1] = "Dustin Kim";
...
for (i = 0; i < 2; i++)
{
row = ds.newRow();
ds.set(row,"id",customers[0]);
ds.set(row,"name",customers[1]);
...
}
pdata.addDataSet(ds);
81 | nexacro platform 14 / チュートリアル入門
/** 4.2 save Dataset to a file **/
String targetFilename = "./saveFile.bin";
OutputStream target = new FileOutputStream(targetFilename);
PlatformResponse res = new PlatformResponse(target,
PlatformType.CONTENT_TYPE_BINARY);
res.setData(pdata);
res.sendData();
target.close();
ErrorCode、ErrorMsg処理
例外が発生したときに処理するための部分です。
/** 5.1 ErrorCode, ErrorMsg creation **/
int nErrorCode = 0;
String strErrorMsg = "START";
try {
/** 5.2 set the ErrorCode and ErrorMsg about success**/
nErrorCode = 0;
strErrorMsg = "SUCC";
} catch (Throwable th) {
/** 5.3 set the ErrorCode and ErrorMsg about fail **/
nErrorCode = -1;
strErrorMsg = th.getMessage();
}
/** 5.4 save the ErrorCode and ErrorMsg for sending Client **/
PlatformData senddata = new PlatformData();
VariableList varList = senddata.getVariableList();
varList.add("ErrorCode", nErrorCode);
varList.add("ErrorMsg", strErrorMsg);
結果データをクライアントに送る
初期値が正常にファイルに保存されているかどうかをユーザーに提供するために PlatformDataオブジェク
トを使用します。この時、前に保存した ErrorCodeと ErrorMsgが提供されます。
VariableListは PlatformDataのメンバーなので、実行した結果値は、PlatformDataオブジェクトに含ま
れています。これから、PlatformDataのデータを nexacro platformで処理することができる XML Format
で抽出して送信する部分を実装してみましょう。データを転送する機能を簡単に実装するために PlatformRe-
画面の作成(X-API) | 82
sponseオブジェクトを作成し、PlatformDataオブジェクトからデータを出力させるコードは次のとおり
です。
/** 6. Send the result data to Client **/
HttpPlatformResponse res = new HttpPlatformResponse(response,
PlatformType.CONTENT_TYPE_XML,"UTF-8");
res.setData(senddata);
res.sendData();
正常にデータが処理されている場合、クライアントに送信される XML値は以下のとおりです。
<Root xmlns="http://www.nexacro.com/platform/dataset" ver="5000">
<Parameters>
<Parameter id="ErrorCode" type="int">0</Parameter>
<Parameter id="ErrorMsg" type="string">SUCC</Parameter>
</Parameters>
</Root>
7.3.3 全体コード
<!-- 1.library import -->
<%@ page import="java.io.*" %>
<%@ page import="com.nexacro.xapi.data.*" %>
<%@ page import="com.nexacro.xapi.tx.*" %>
<!-- 2. mime type define -->
<%@ page contentType="text/xml; charset=UTF-8" %>
<%
/** 3. nexacro platform Basic Object creation **/
PlatformData pdata = new PlatformData();
/** 5-1. ErrorCode, ErrorMsg creation **/
int nErrorCode = 0;
String strErrorMsg = "START";
try {
/** 4. handle data : save data to file **/
/** 4.1 create Dataset and input basic data to the Dataset **/
DataSet ds = new DataSet("customers");
ds.addColumn("id",DataTypes.STRING, 4);
83 | nexacro platform 14 / チュートリアル入門
ds.addColumn("name",DataTypes.STRING, 16);
ds.addColumn("email", DataTypes.STRING, 32);
ds.addColumn("phone", DataTypes.STRING, 16);
ds.addColumn("comp_name", DataTypes.STRING, 32);
ds.addColumn("department", DataTypes.STRING, 32);
ds.addColumn("comp_phone", DataTypes.STRING, 16);
ds.addColumn("comp_addr", DataTypes.STRING, 256);
int row = 0;
int i = 0;
String[] customers = new String[8];
customers[0] = "TC-001";
customers[1] = "Dustin Kim";
customers[2] = "[email protected]";
customers[3] = "6987-6543";
customers[4] = "TOBESOFT";
customers[5] = "0";
customers[6] = "6506-7000";
customers[7] = "Seoul";
for (i = 0; i < 1; i++)
{
row = ds.newRow();
ds.set(row,"id",customers[0]);
ds.set(row,"name",customers[1]);
ds.set(row,"email",customers[2]);
ds.set(row,"phone",customers[3]);
ds.set(row,"comp_name",customers[4]);
ds.set(row,"department",customers[5]);
ds.set(row,"comp_phone",customers[6]);
ds.set(row,"comp_addr",customers[7]);
}
pdata.addDataSet(ds);
/** 4.2 save Dataset to a file **/
String targetFilename = "./saveFile.bin";
OutputStream target = new FileOutputStream(targetFilename);
PlatformResponse res = new PlatformResponse(target,
PlatformType.CONTENT_TYPE_BINARY);
res.setData(pdata);
res.sendData();
target.close();
画面の作成(X-API) | 84
System.out.println("after file write..");
/** 5.2 set the ErrorCode and ErrorMsg about success**/
nErrorCode = 0;
strErrorMsg = "SUCC";
} catch (Throwable th) {
/** 5.3 set the ErrorCode and ErrorMsg about fail **/
nErrorCode = -1;
strErrorMsg = th.getMessage();
}
/** 5.4 save the ErrorCode and ErrorMsg for sending Client **/
PlatformData senddata = new PlatformData();
VariableList varList = senddata.getVariableList();
varList.add("ErrorCode", nErrorCode);
varList.add("ErrorMsg", strErrorMsg);
/** 6. send the result data to Client **/
HttpPlatformResponse res = new HttpPlatformResponse(response,
PlatformType.CONTENT_TYPE_XML,"UTF-8");
res.setData(senddata);
res.sendData();
%>
7.3.4 データ初期化イベント
画面の作成(トランザクション)で作成した画面にボタンコンポーネントを追加し、次のように onclick
イベントを追加します。画面内のボタンをクリックすると、initdata.jspサービスが呼び出され、サーバー
にデータセットが含まれているファイルを生成します。
this.btnInitdata_onclick = function(obj:Button,
e:nexacro.ClickEventInfo)
{
var id = "initdata";
var url = "SvcList::initdata.jsp";
var reqDs = "";
var respDs = "";
var args = "";
var callback = "received";
this.transaction(id, url, reqDs, respDs, args, callback);
85 | nexacro platform 14 / チュートリアル入門
}
this.received = function(id, code, message)
{
if (code == 0) {
this.alert(message);
trace(message);
} else {
this.alert("Error["+code+"]:"+message);
trace("Error["+code+"]:"+message);
}
}
urlプロパティは、完全な URLを指定することができます。毎回完全な URLを指定するのが面倒で、
頻繁に使用するドメインであれば、TypeDefinitionにサービス URLを追加し、変更されたファイル名のみ
を指定することができます。
指定されたサービスは、次のように使用します。
var url = "[Service ID]::[file name]";
画面の作成(X-API) | 86
7.4
search.jsp
保存されたファイルからデータをロードしてデータセットを作成し、クライアントに送信します。
7.4.1 pseudo code
// 1. Javaライブラリ指定(nexacro platform X-API含め)
// 2. MIMEタイプ定義
// 3. nexacro platformデフォルトオブジェクト(PlatformData)生成
try {
// 4. データ処理
// 5. ErrorCode, ErrorMsg処理(成功メッセージ)
} catch (Error) {
// 5. ErrorCode, ErrorMsg処理(失敗メッセージ)
}
// 6. 結果データをクライアントに送る
7.4.2 コードの実装
Javaライブラリ指定
JSPサービスを作成するために、デフォルトJavaライブラリを指定します。コードは次のとおりです。
<!-- 1. library import -->
<%@ page import="java.io.*" %>
<%@ page import="com.nexacro.xapi.data.*" %>
<%@ page import="com.nexacro.xapi.tx.*" %>
MIMEタイプ定義
XML生成のための MIME(Multipurpose Internet Mail Extensions)タイプを定義します。
87 | nexacro platform 14 / チュートリアル入門
<!-- 2. mime type define -->
<%@ page contentType="text/xml; charset=UTF-8" %>
デフォルトオブジェクト(PlatformData)生成
データを処理するためのデフォルトオブジェクトを宣言します。デフォルトオブジェクトである PlatformDataは nexacro platformアプリケーションで使用されるすべてのデータ(Dataset、変数)を一度に入れる
ことができるオブジェクトです。
PlatformDataを宣言するコードは次のとおりです。
/** 3. nexacro platform Basic Object creation **/
PlatformData pdata = new PlatformData();
ファイル内容を読み取ってデータセットを生成
"./saveFile.bin"ファイルの内容を読み取って PlatformDataオブジェクトに保存します。PlatformData
オブジェクトにデータセットが含まれています。
ファイルの内容を読み取って PlatformDataに入れるコードは次のとおりです。
/** 4. handle data : load data from file **/
/** 4.1 load data from file **/
String sourceFilename = "./saveFile.bin";
InputStream source = new FileInputStream(sourceFilename);
PlatformRequest req = new PlatformRequest(source,
PlatformType.CONTENT_TYPE_BINARY);
req.receiveData();
source.close();
/** 4.2 copy data from loaded data to Dataset **/
pdata = req.getData();
ErrorCode、ErrorMsg処理
例外が発生したときに処理するための部分です。
画面の作成(X-API) | 88
/** 5.1 ErrorCode, ErrorMsg creation **/
int nErrorCode = 0;
String strErrorMsg = "START";
try {
/** 5.2 set the ErrorCode and ErrorMsg about success**/
nErrorCode = 0;
strErrorMsg = "SUCC";
} catch (Throwable th) {
/** 5.3 set the ErrorCode and ErrorMsg about fail **/
nErrorCode = -1;
strErrorMsg = th.getMessage();
}
/** 5.4 save the ErrorCode and ErrorMsg for sending Client **/
PlatformData pdata = new PlatformData();
VariableList varList = pdata.getVariableList();
varList.add("ErrorCode", nErrorCode);
varList.add("ErrorMsg", strErrorMsg);
結果データをクライアントに送る
初期値が正常にファイルに保存されているかどうかをユーザーに提供するために PlatformDataオブジェク
トを使用します。この時、前に保存した ErrorCodeと ErrorMsgが提供されます。
7.3 initdata.jspで PlatformDataオブジェクトは ErrorCodeと ErrorMsgのみ持っていますが、search.jsp
では、PlatformDataにクライアントが使用する名刺リストデータセットを含んでいます。
VariableListは PlatformDataのメンバーなので、実行した結果値は、PlatformDataオブジェクトに含ま
れています。これから、PlatformDataのデータを nexacro platformで処理することができる XML Format
で抽出して送信する部分を実装してみましょう。データを転送する機能を簡単に実装するために PlatformResponseオブジェクトを作成し、PlatformDataオブジェクトからデータを出力させるコードは次のとおり
です。
/** 6. Send the result data to Client **/
HttpPlatformResponse res = new HttpPlatformResponse(response,
PlatformType.CONTENT_TYPE_XML,"UTF-8");
res.setData(pdata);
res.sendData();
正常にデータが処理されている場合、クライアントに送信される XML値は以下のとおりです。
89 | nexacro platform 14 / チュートリアル入門
<Root xmlns="http://www.nexacro.com/platform/dataset" ver="5000">
<Parameters>
<Parameter id="ErrorCode" type="int">0</Parameter>
<Parameter id="ErrorMsg" type="string">SUCC</Parameter>
</Parameters>
<Dataset id="customers">
<ColumnInfo>
<Column id="id" type="string" size="4"/>
<Column id="name" type="string" size="16"/>
<Column id="email" type="string" size="32"/>
<Column id="phone" type="string" size="16"/>
<Column id="comp_name" type="string" size="32"/>
<Column id="department" type="string" size="32"/>
<Column id="comp_phone" type="string" size="16"/>
<Column id="comp_addr" type="string" size="256"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="id">TC-001</Col>
<Col id="name">Dustin Kim</Col>
<Col id="email">[email protected]</Col>
<Col id="phone">6987-6543</Col>
<Col id="comp_name">TOBESOFT</Col>
<Col id="department">0</Col>
<Col id="comp_phone">6506-7000</Col>
<Col id="comp_addr">Seoul</Col>
</Row>
</Rows>
</Dataset>
</Root>
7.4.3 全体コード
<!-- 1.library import -->
<%@ page import="java.io.*" %>
<%@ page import="com.nexacro.xapi.data.*" %>
<%@ page import="com.nexacro.xapi.tx.*" %>
<!-- 2. mime type define -->
画面の作成(X-API) | 90
<%@ page contentType="text/xml; charset=UTF-8" %>
<%
/** 3. nexacro platform Basic Object creation **/
PlatformData pdata = new PlatformData();
/** 5.1 ErrorCode, ErrorMsg creation **/
int nErrorCode = 0;
String strErrorMsg = "START";
try {
/** 4. handle data : load data from file **/
/** 4.1 load data from file **/
String sourceFilename = "./saveFile.bin";;
InputStream source = new FileInputStream(sourceFilename);
PlatformRequest req = new PlatformRequest(source,
PlatformType.CONTENT_TYPE_BINARY);
req.receiveData();
source.close();
/** 4.2 copy data from loaded data to Dataset **/
pdata = req.getData();
/** 5.2 set the ErrorCode and ErrorMsg about success**/
nErrorCode = 0;
strErrorMsg = "SUCC";
} catch (Throwable th) {
/** 5.3 set the ErrorCode and ErrorMsg about fail **/
nErrorCode = -1;
strErrorMsg = th.getMessage();
}
/** 5.4 save the ErrorCode and ErrorMsg for sending Client **/
VariableList varList = pdata.getVariableList();
varList.add("ErrorCode", nErrorCode);
varList.add("ErrorMsg", strErrorMsg);
/** 6. send the result data to Client **/
HttpPlatformResponse res = new HttpPlatformResponse(response,
PlatformType.CONTENT_TYPE_XML,"UTF-8");
res.setData(pdata);
res.sendData();
%>
91 | nexacro platform 14 / チュートリアル入門
7.4.4 データ検索イベント
画面の作成(トランザクション)で作成した画面で検索ボタンに指定された onclickイベントを修正します。
画面内のボタンをクリックすると search.jspサービスが呼び出されながらサーバーに保存されたファイル
をロードしてデータセットを返します。
サーバーから送信されるデータセットの情報は、画面内作成された dsCustomersデータセットに含まれて、
該当データをグリッドに表示します。
this.divCommand_btnSearch_onclick = function(obj:Button,
e:nexacro.
ClickEventInfo)
{
var id = "search";
var url = "SvcList::search.jsp";
var reqDs = "";
var respDs = "dsCustomers=customers";
var args = "";
var callback = "received";
this.transaction(id, url, reqDs, respDs, args, callback);
}
this.received = function(id, code, message)
{
if (code == 0) {
var rowcount = this.dsCustomers.rowcount;
this.alert(rowcount + " numbers of data have been found.");
trace(rowcount + " numbers of data have been found.");
} else {
this.alert("Error["+code+"]:"+message);
trace("Error["+code+"]:"+message);
}
}
7.4.5 データベース接続
例では、ファイルに保存されたデータセットを取得、そのままクライアントに転送します。ファイルでは
なく、データベースに接続した場合には、次のように適用することができます。
画面の作成(X-API) | 92
<%@ page import = "java.util.*" %>
<%@ page import = "java.sql.*" %>
<%@ page import="com.nexacro.xapi.data.*" %>
<%@ page import = "java.io.*" %>
<%@ page contentType="text/xml; charset=utf-8" %>
<%
/****** Service API initialization ******/
PlatformData pdata = new PlatformData();
int nErrorCode = 0;
String strErrorMsg = "START";
/******* JDBC Connection *******/
Connection conn = null;
Statement
stmt = null;
ResultSet
rs
= null;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;;
DatabaseName=Sample",
"guest","guest");
stmt = conn.createStatement();
try {
/******* SQL query *************/
String SQL = "select * from sample_customers_list";
rs = stmt.executeQuery(SQL);
/********* Dataset Create ************/
DataSet ds = new DataSet("customers");
ds.addColumn("id",DataTypes.STRING, 4);
ds.addColumn("name",DataTypes.STRING, 16);
ds.addColumn("email", DataTypes.STRING, 32);
ds.addColumn("phone", DataTypes.STRING, 16);
ds.addColumn("comp_name", DataTypes.STRING, 32);
ds.addColumn("department", DataTypes.STRING, 32);
ds.addColumn("comp_phone", DataTypes.STRING, 16);
ds.addColumn("comp_addr", DataTypes.STRING, 256);
int row = 0;
while(rs.next())
{
row = ds.newRow();
ds.set(row, "id", rs.getString("id"));
ds.set(row, "name", rs.getString("name"));
ds.set(row, "email", rs.getString("email"));
ds.set(row, "phone", rs.getString("phone"));
93 | nexacro platform 14 / チュートリアル入門
ds.set(row, "comp_name", rs.getString("comp_name"));
ds.set(row, "department", rs.getString("department"));
ds.set(row, "comp_phone", rs.getString("comp_phone"));
ds.set(row, "comp_addr", rs.getString("comp_addr"));
}
/********* Adding Dataset to PlatformData ************/
pdata.addDataSet(ds);
nErrorCode = 0;
strErrorMsg = "SUCC";
}
catch(SQLException e) {
nErrorCode = -1;
strErrorMsg = e.getMessage();
}
/******** JDBC Close *******/
if ( stmt != null ) try { stmt.close(); } catch (Exception e) {}
if ( conn != null ) try { conn.close(); } catch (Exception e) {}
PlatformData senddata = new PlatformData();
VariableList varList = senddata.getVariableList();
varList.add("ErrorCode", nErrorCode);
varList.add("ErrorMsg", strErrorMsg);
/******** XML data Create ******/
HttpPlatformResponse res = new HttpPlatformResponse(response,
PlatformType.CONTENT_TYPE_XML,"UTF-8");
res.setData(pdata);
res.sendData();
%>
7.5
save_list.jsp
サーバーに送信されたデータをファイルとして保存します。
画面の作成(X-API) | 94
7.5.1 pseudo code
7.3 initdata.jsp, 7.4 search.jspとは異なる「クライアント要請」という手順が追加されました。
// 1. Javaライブラリ指定(nexacro platform X-API含め)
// 2. MIMEタイプ定義
// 3. nexacro platformデフォルトオブジェクト(PlatformData)生成
try {
// 4. クライアント要請
// 5. データ処理
// 6. ErrorCode, ErrorMsg処理(成功メッセージ)
} catch (Error) {
// 6. ErrorCode, ErrorMsg処理(失敗メッセージ)
}
// 6. 結果データをクライアントに送る
7.5.2 コードの実装
Javaライブラリ指定
JSPサービスを作成するために、デフォルトJavaライブラリを指定します。コードは次のとおりです。
<!-- 1. library import -->
<%@ page import="java.io.*" %>
<%@ page import="com.nexacro.xapi.data.*" %>
<%@ page import="com.nexacro.xapi.tx.*" %>
MIMEタイプ定義
XML生成のための MIME(Multipurpose Internet Mail Extensions)タイプを定義します。
<!-- 2. mime type define -->
<%@ page contentType="text/xml; charset=UTF-8" %>
95 | nexacro platform 14 / チュートリアル入門
デフォルトオブジェクト(PlatformData)生成
データを処理するためのデフォルトオブジェクトを宣言します。デフォルトオブジェクトである PlatformDataは nexacro platformアプリケーションで使用されるすべてのデータ(Dataset、変数)を一度に入れる
ことができるオブジェクトです。
PlatformDataを宣言するコードは次のとおりです。
/** 3. nexacro platform Basic Object creation **/
PlatformData pdata = new PlatformData();
クライアント要請
クライアントがパラメータとして送信されたデータセットを受信して処理します。
/** 4. receive client request **/
// create HttpPlatformRequest for receive data from client
HttpPlatformRequest req = new HttpPlatformRequest(request);
req.receiveData();
クライアントが送信したデータを抽出した後、ファイルに保存する
クライアントが送信した情報を処理することができるように PlatformDataに変換した後、データセットを
抽出します。生成された PlatformDataは「./saveFile.bin」 ファイルで保存します。
/** 5. handle data : load data from file **/
/** 5.1 load data from http object **/
pdata = req.getData();
/** get Dataset from received data **/
DataSet ds = pdata.getDataSet("dsPerson");
/** save data to file with init data **/
String targetFilename = "./saveFile.bin";
OutputStream target = new FileOutputStream(targetFilename);
PlatformResponse res = new PlatformResponse(target,
PlatformType.CONTENT_TYPE_BINARY);
res.setData(pdata);
res.sendData();
target.close();
画面の作成(X-API) | 96
ErrorCode、ErrorMsg処理
例外が発生したときに処理するための部分です。正常に処理した場合には、正常に保存されたメッセージ
を返します。
/** 6.1 ErrorCode, ErrorMsg creation **/
int nErrorCode = 0;
String strErrorMsg = "START";
try {
/** 6.2 set the ErrorCode and ErrorMsg about success**/
nErrorCode = 0;
strErrorMsg = "person list saved complete : row count("+ds.getRowCount
()+")";
} catch (Throwable th) {
/** 6.3 set the ErrorCode and ErrorMsg about fail **/
nErrorCode = -1;
strErrorMsg = th.getMessage();
}
/** 6.4 save the ErrorCode and ErrorMsg for sending Client **/
PlatformData senddata = new PlatformData();
VariableList varList = senddata.getVariableList();
varList.add("ErrorCode", nErrorCode);
varList.add("ErrorMsg", strErrorMsg);
結果データをクライアントに送る
初期値が正常にファイルに保存されているかどうかをユーザーに提供するために PlatformDataオブジェク
トを使用します。この時、前に保存した ErrorCodeと ErrorMsgが提供されます。
VariableListは PlatformDataのメンバーなので、実行した結果値は、PlatformDataオブジェクトに含ま
れています。これから、PlatformDataのデータを nexacro platformで処理することができる XML Format
で抽出して送信する部分を実装してみましょう。データを転送する機能を簡単に実装するために PlatformResponseオブジェクトを作成し、PlatformDataオブジェクトからデータを出力させるコードは次のとおり
です。
/** 7. Send the result data to Client **/
HttpPlatformResponse res = new HttpPlatformResponse(response,
PlatformType.CONTENT_TYPE_XML,"UTF-8");
res.setData(senddata);
97 | nexacro platform 14 / チュートリアル入門
res.sendData();
7.5.3 全体コード
<!-- 1. library import -->
<%@ page import="java.io.*" %>
<%@ page import="com.nexacro.xapi.data.*" %>
<%@ page import="com.nexacro.xapi.tx.*" %>
<!-- 2. mime type define -->
<%@ page contentType="text/xml; charset=UTF-8" %>
<%
/** 3. nexacro platform Basic Object creation **/
PlatformData pdata = new PlatformData();
/** 6.1 ErrorCode, ErrorMsg creation **/
int nErrorCode = 0;
String strErrorMsg = "START";
try {
/** 4. receive client request **/
// create HttpPlatformRequest for receive data from client
HttpPlatformRequest req = new HttpPlatformRequest(request);
req.receiveData();
/** 5. handle data : load data from file **/
/** 5.1 load data from http object **/
pdata = req.getData();
/** get Dataset from received data **/
DataSet ds = pdata.getDataSet("dsPerson");
/** save data to file with init data **/
String targetFilename = "./saveFile.bin";
OutputStream target = new FileOutputStream(targetFilename);
PlatformResponse res = new PlatformResponse(target,
PlatformType.CONTENT_TYPE_BINARY);
res.setData(pdata);
res.sendData();
target.close();
/** 6.2 set the ErrorCode and ErrorMsg about success **/
nErrorCode = 0;
strErrorMsg = "person list saved complete : row count("+ds.getRowCount
()+")";
画面の作成(X-API) | 98
} catch (Throwable th) {
/** 6.3 set the ErrorCode and ErrorMsg about fail **/
nErrorCode = -1;
strErrorMsg = th.getMessage();
System.out.println("ERROR:"+strErrorMsg);
}
/** 6.4 save the ErrorCode and ErrorMsg for sending Client **/
PlatformData senddata = new PlatformData();
VariableList varList = senddata.getVariableList();
varList.add("ErrorCode", nErrorCode);
varList.add("ErrorMsg", strErrorMsg);
/** 7. send the result data to Client **/
HttpPlatformResponse res = new HttpPlatformResponse(response,
PlatformType.CONTENT_TYPE_XML,"UTF-8");
res.setData(senddata);
res.sendData();
%>
7.5.4 データ保存イベント
画面の作成(トランザクション)で作成した画面にボタンコンポーネントを追加し、次のように onclick
イベントを追加します。画面内のボタンをクリックすると save_list.jspサービスが呼び出されながら画面
で修正したデータセットをサーバーに送信して再びファイルに保存します。
データを変更することができる機能を簡単に追加します。画面内のグリッドをダブルクリックして、Grid
Contents Editorを実行した後、Name項目を選択して edittypeプロパティを「text」に変更します。
データ検索後、該当項目をダブルクリックすると、データを変更することができます。
99 | nexacro platform 14 / チュートリアル入門
修正したデータを保存した後、画面を更新し検索ボタンをクリックすると、変更されたデータが検索され
ることを確認することができます。
this.btnSaveList_onclick = function(obj:Button,
e:nexacro.ClickEventInfo)
{
var id = "search";
var url = "SvcList::save_list.jsp";
var reqDs = "customers=dsCustomers";
var respDs = "";
var args = "";
var callback = "received";
this.transaction(id, url, reqDs, respDs, args, callback);
}
画面の作成(X-API) | 100
this.received = function(id, code, message)
{
if (code == 0) {
this.alert(message);
trace(message);
} else {
this.alert("Error["+code+"]:"+message);
trace("Error["+code+"]:"+message);
}
}
Fly UP