Biz/DesignerではCRSアーカイブをあらかじめ読み込み(import)しておく機能を持っています。
CRSアーカイブにpackageによるユーザーパッケージを定義しておき、import時にそのpackageを生成するように設定しておくことにより、Biz/Designerでの開発においてユーザーパッケージを組み込みクラスと同様に扱うことが可能になります。
CRSアーカイブの参照はプロジェクト単位で設定することができます。
[プロジェクト]メニューの[設定]から呼び出される「プロジェクトの設定」ダイアログの「アーカイブの参照」タブを選択します。
参照アーカイブの欄に参照したいCARファイルを示すURLを記述します。URLは相対パス、または絶対パスで記述します。
相対パスの場合プロジェクトフォルダが対象になります。この時にはCARファイルが「CRSアーカイブ」としてプロジェクトに組み込まれていないと参照することはできません。
絶対URLの場合は任意のサイト指定することができます。ネットワークを通じ実際にそのアーカイブの取得を試みます。
Biz/Designerは一度CARファイルを読み込んだ後、そのファイルをキャッシュし、各プロジェクト配下のCRSファイルからの参照アーカイブに対するリクエスト(Get,import等)時にはキャッシュから応答を返すことでレスポンス速度を確保しています。
このためCARファイルを変更した場合もキャッシュが有効な場合、変更が反映されない状態になります。
アーカイブキャッシュはアーカイブの参照設定に変更があった場合、またはプロジェクトの構成が変更された場合に再度更新されます。
意識的にキャッシュを更新する場合は、「プロジェクトの再読込」コマンドを用いプロジェクトの構成情報を更新してください。
CRSアーカイブの最も一般的な利用方法は独自のパッケージの追加を行い、デザインに利用することです。
packageステートメントが記述されているCRSファイルを自動実行させるようにインポートCRSを指定しておくことにより、参照設定を行ったプロジェクトに対してパッケージが追加され、デザインやスクリプトビューでのキーワード補完を行うことが出来るようになります。
実際にパッケージが追加されたかどうかは、パッケージビューで確認することができます。
拡張されたクラスがデザイン可能なクラスの派生であれば、選択してデザインビュー上にドラッグすることで新しいオブジェクトを作成することができます。
CRSアーカイブは一般ユーザーへの配布を前提に開発時に必要な情報は含まない構成になっています。
そのため開発時に必要なアーカイブや中に含まれるパッケージ・クラスなどの情報を別途用意し、Biz/Designerでアーカイブ参照時に同時に組み込むことでアーカイブ情報を追加することが可能です。
アーカイブ情報ファイルによって指定できる項目は以下の通りです
1. アーカイブに含まれるパッケージの説明
2. パッケージに含まれるクラスの説明
3. 作成クラスをクラスセレクタに表示するか否か
4. パッケージ、クラスを説明したヘルプファイル
アーカイブ情報ファイルはBiz/Designerでは自動作成されませんので、必要に応じてテキストエディタで作成し実行マシンから参照できる任意のWebサーバに配置します。
そしてアーカイブの作成時に「プロジェクトの設定」でファイルの場所を示すURLを登録しておくことでアーカイブとリンクします。
参照:CARファイルの作成
アーカイブ情報ファイルはXMLで記述します。以下使用できるタグを説明します。
<project_ref>
必ずトップレベルになるタグです。ネームスペースに関してはサンプルの通りに定義してください。
<package>
<project_ref>の下位に属しパッケージを指定します。CRSのpackageステートメントで指定した名前をnameアトリビュートで指定します。
<class>
<package>の下位に属しクラスを指定します。CRSのclassステートメントで指定した名前をnameアトリビュートで指定します。
<designer>
<class>の下位に属しBiz/Designerのクラスセレクタでの振る舞いを設定します。
以下のアトリビュートをサポートしています。
1.
show=”true/false”
デザイン可能なクラスとして表示するかどうかを指定します。
クラスが他のクラスの基底クラスでありクラスセレクタに表示させる必要がないクラスに利用できます。
2.
createChild=”true/false”
自動的に子オブジェクトを作成するクラス、例えばListBoxとListItem、SpreadとSpreadRowなどの派生クラスに対してデザインペインに作成時、自動的子オブジェクトを作成する機能を設定できます。
クラス定義内であらかじめ自動作成されるべき子オブジェクトを記述してある場合、そのままデザインすると自動的に子オブジェクトが作成され、クラス内に定義されている子オブジェクトと衝突しエラーになります。
そのような場合createChild=”false”にしておくとこの問題から回避できます。
3.
ignoreSize=”true/false”
クラス定義内にHeight、Widthプロパティを指定している場合でも、デザインペインにドラッグした場合、そのドラッグしたサイズにリサイズされてしまいます。
IgnoreSize=”true”に設定すると、デザイン時ドラッグしたサイズを無視します。
これら設定は派生クラスにも影響しますので、基底クラスでこの設定変更した場合、派生クラスで変更しない限り設定は継承されます。
<description>
クラスセレクタに表示したい説明文を記述します。
<help>
表示したいヘルプファイルへのリンクを記述します。このリンクはヘルプ呼び出し時にWindowsの標準の関連付けでオープンされます。
以下、サンプルを示します。
<?xml version="1.0" encoding="utf-8"?>
<project_ref xmlns="http://www.axissoft.co.jp/CRS/2003/project_ref" xmlns:xlink="http://www.w3.org/1999/xlink">
<package name="MyPackage">
<description>これはMyPackageです</description>
<help xlink:href="MyPackage.html"/>
<class name="MySuperClass">
<designer show="false"/>
<description>これはMySuperClassです</description>
<help xlink:href="MySuperClass.html"/>
</class>
<class name="MyExtendedClass">
<designer show="true"/>
<description>これはMyExtendedClassです</description>
<help xlink:href="MyExtendedClass.html"/>
</class>
</package>
</project_ref>
このファイルを読み込んだ場合のクラスセレクタは以下のようになります。
テスト実行時、Biz/Browserはプロジェクトで参照設定しているCARファイルへのimportを自動的に行います。そのためテスト実行のためにimport文を記述する必要はありません。
これは運用時にはアーカイブのimportは事前に行われているであろうという発想に基づいています。
そのため、実際の運用時にはアーカイブのimportを明示的に行う必要があります。
CRSアーカイブは複数のファイルが圧縮されており、アーカイブ内部でエラーが発生した場合にソースファイルを参照したり、ブレークポイントをセットしたりすることはできません。
そのための支援機能をBiz/Designerは装備しています。
Biz/DesignerはプロジェクトをCARファイルへのアクセスと見なす(マッピングする)ことでCRSアーカイブのデバッグをサポートします。
プロジェクトをCARファイルと見なすには、[プロジェクト]メニューの[設定]から呼び出される「プロジェクトの設定」ダイアログの「基本設定」タブを開き、「プロジェクトにマッピングするURL」欄にCARアーカイブがあるべきURLを記述します。
この設定により以降プロジェクトはCRSアーカイブとして扱われるようになり、通常のCARファイルと全く同等の機能を持ちます。他のプロジェクトからこのプロジェクトを参照アーカイブとして読み込むことも可能です。
スタートアップCRSファイルやインポートCRSファイルの設定もアーカイブと同様に作用します。
テスト実行時、Biz/Browserからマッピングしたアーカイブに対してのリクエストを受け取るとBiz/Designerはマッピングされたプロジェクトへのアクセスに変換を行います。
通常Biz/BrowserはCARファイルをキャッシュしますが、アーカイブシミュレートモードの場合キャッシュは行わず、Biz/Designerからのレスポンスを常に受け取るようになります。
これによりCARアーカイブを完全にデバッグすることが可能です。
要求したURLにCARにマッピングされたプロジェクトと実CARファイル双方が存在する場合、Biz/Designerはマッピングプロジェクトを優先します。
【プロジェクト1】
マッピングするURL:http://server/app
プロジェクトのその他ファイルにcommon.carを追加
【プロジェクト2】
マッピングするURL:http://server/app/common.car
【プロジェクト3】
アーカイブの参照:http://server/app/common.car
この場合、プロジェクト3からのアーカイブの参照はプロジェクト1に組み込まれている実ファイル、プロジェクト2へのマッピング双方を示していますが、プロジェクト2へのマッピングが優先されることに注意してください。
アーカイブマッピング機能はWebサーバへのアクセスをシミュレートするBiz/Designerの基本機能に酷似していますが、Webサーバへのアクセスの場合、プロジェクトにファイルが見つからない場合実サーバへのアクセスを試みますが、アーカイブの場合プロジェクトにファイルが見つからない場合実CARファイルへのフォワードは行わず、エラーとなります。
デバッグが完了したら、「アーカイブの作成」を行い、CARファイルを作成します。