ビジネスロジックの拡張の演習
推定所要時間
ニーズに合わせて Creo Elements/Direct Model Manager のビジネスロジックをカスタマイズします。
この演習では、Creo Elements/Direct Model Manager クラスを拡張してカスタムビジネスロジックを追加し、ビジネスロジックを使用するために関連する XML クラスを構成します。
説明:
1 分
演習:
20 分
説明
ここまでで、基本的なカスタマイズと配布の演習XML のカスタマイズの演習が終了しました。この演習は、NetBeans 11.0 に基づいています。ほかの Java 開発環境を使用している場合は、説明の内容をご使用の IDE に合わせて読み替えてください。
ビジネスロジックのカスタマイズの基本パターンは、オブジェクトに合わせてビジネスクラスを拡張し、拡張したクラスを XML ファイルに登録するというものです。
以下の演習を活用して、Creo Elements/Direct Model Manager のビジネスロジックを拡張する方法を学習してください。
演習
この演習では、紛らわしい文字「i」、「l」、「o」をパーツ名で使用できないようにするカスタム ビジネス クラスを追加します。
この演習は、基本的なカスタマイズと配布の演習XML のカスタマイズの演習が終了していることを前提としています。
データベースが Data Management スキーマと Desktop スキーマのどちらを使用しているかを把握する必要があります。
データベーススキーマの確認
1. 「検索」タブをクリックします。「何を検索しますか?」ペインの「詳細」をクリックします。
2. 検索対象の下の下向き矢印をクリックして、一覧をスクロールします。
選択肢に MODEL_3D が含まれている場合、Data Management スキーマを使用しています。
選択肢に me_model が含まれている場合、Desktop スキーマを使用しています。
Creo Elements/Direct Model Manager のビジネスロジックを拡張するための主な手順は、次のとおりです。
Java コードの拡張
まず、基本クラスを拡張するクラスを作成し、ビジネスロジックに合わせてコードを追加します。
Data Management スキーマ
1. Windows エクスプローラを使用して、Java ファイル用の biz ディレクトリ (com\acme\dm\biz) を作成します。
Java では任意のディレクトリ名を使用できますが、後でコードを見つけやすいように、Creo Elements/Direct は一貫したディレクトリ構造を使用することをお勧めします。このガイドでは、ディレクトリ構造として、最初に「com」を使用し、次に会社名、その次にクラスのタイプを示すディレクトリを使用します。この演習で拡張するクラスは dm\biz ディレクトリにあり、ここでビジネスロジックが保持されます。
2. NetBeans で、AcmeModel3D クラスを作成します。
3. AcmeModel3D を以下のように編集します (ここをクリックするとコピーアンドペースト用のファイルが表示されます)。
package com.acme.dm.biz;
import com.osm.biz.*;
import com.osm.exception.*;
import com.osm.dm.biz.DMModel3D;
public class AcmeModel3D extends DMModel3D {
public AcmeModel3D(WMSession theSession, int theHandle) throws WMException {
super(theSession, theHandle);
}
@Override
public void setName(String name) throws WMException {
if (name.indexOf('l') > -1) {
throw new WMException ("l not allowed in model name");
}
if (name.indexOf('o') > -1) {
throw new WMException ("o not allowed in model name");
}
if (name.indexOf('i') > -1) {
throw new WMException ("i not allowed in model name");
}
super.setName(name);
}
}
4. F9 キーで新しいクラスコードをコンパイルします。
Desktop スキーマ
1. Windows エクスプローラを使用して、Java ファイル用の biz ディレクトリ (com\acme\dt\biz) を作成します。
Java では任意のディレクトリ名を使用できますが、後でコードを見つけやすいように、Creo Elements/Direct は一貫したディレクトリ構造を使用することをお勧めします。このガイドでは、ディレクトリ構造として、最初に「com」を使用し、次に会社名、その次にクラスのタイプを示すディレクトリを使用します。この演習で拡張するクラスは dt\biz ディレクトリにあり、ここでビジネスロジックが保持されます。
2. NetBeans で、AcmeDTModel クラスを作成します。
3. AcmeDTModel を以下のように編集します (ここをクリックするとコピーアンドペースト用のファイルが表示されます)。
package com.acme.dt.biz;
import com.osm.biz.*;
import com.osm.exception.*;
import com.osm.dt.biz.DTModel;
public class AcmeDTModel extends DTModel {
public AcmeDTModel(WMSession theSession, int theHandle) throws WMException {
super(theSession, theHandle);
}
@Override
public void setModelNo(final String modelNo) throws WMException {
if (modelNo.indexOf('l') > -1) {
throw new WMException ("l not allowed in model name");
}
if (modelNo.indexOf('o') > -1) {
throw new WMException ("o not allowed in model name");
}
if (modelNo.indexOf('i') > -1) {
throw new WMException ("i not allowed in model name");
}
super.setModelNo(modelNo);
}
}
4. F9 キーで新しいクラスコードをコンパイルします。
XML ファイルへの拡張の追加
Creo Elements/Direct Model Manager では、データベースデータの処理方法を制御するために XML ファイルを使用します。データベースクラスを制御する Java クラスの名前を定義するには、<BusinessObjectClass> タグを使用します。extends 文節の追加により、これらのクラスの作成は以前よりもかなり簡単になりました。
1. NetBeans で、XML のカスタマイズの演習で作成した acme.xml ファイルを開きます。
2. <ClassDefs> セクションに以下のコードのクラスを追加します。大文字と小文字の区別に十分に注意してください。
Data Management スキーマ:
<Class extends="DMModel, DMReleaseProcess">
<Name catalog="awm_stda" msg_num="258">MODEL_3D</Name>
<BusinessObjectClass>com.acme.dm.biz.AcmeModel3D</BusinessObjectClass>
</Class>
Desktop スキーマ:
<Class extends="DTModel, DTReleaseProcess">
<Name catalog="awm_stda" msg_num="10">me_model</Name>
<BusinessObjectClass>com.acme.dt.biz.AcmeDTModel</BusinessObjectClass>
</Class>
拡張のテスト
コードは、インストールしなくても、NetBeans から実行できます。Java コードのデバッグを行う場合は、Creo Elements/Direct Model Manager に NetBeans デバッガを接続する方法について、NetBeans デバッガの起動方法を参照してください。
1. NetBeans で dev.properties ファイルを表示し、run.modeOSDM に変更します。
2. 主プロジェクトを実行スクリプトを実行します。Creo Elements/Direct Modeling が起動します。
3. Creo Elements/Direct Modeling で、パーツ p1 の名前を lola に変更します。
4. Creo Elements/Direct Modeling の「アプリケーション」 > 「モジュール」メニューから Creo Elements/Direct Model Manager を起動します。
5. Creo Elements/Direct Modeling の構造一覧で、lola を右クリックし、「Model Manager」 > 「3D 保存」の順に選択します。
6. 例外に指定したエラーメッセージが表示されます。
拡張の配布
まず、ローカルの Software Distribution Server でパッケージを作成し、テストを行います。次に、最終的な Software Distribution Server で配布用パッケージを準備します。
1. NetBeans で dev.properties を開き、mm.force.updatetrue に設定し、sds.host にローカルマシンの完全修飾名を指定します。
2. 「プロジェクトの構築とパッケージ化」スクリプトを実行します。ローカルマシンでビルドとパッケージのインストールが行われます。
3. 以下の手順で拡張をテストします。
Windows の「スタート」メニューから、Creo Elements/Direct Modeling を起動します。
Creo Elements/Direct Model Manager を有効にします (構成を確認するメッセージが表示されたら、acme を選択します)。
p1 の名前を lola に変更します。
lola を保存してみます。エラーダイアログにエラーメッセージが表示される場合、拡張が機能しています。
4. dev.properties を開き、sds.host に最終的なソフトウェア配布サーバの完全修飾名を設定します。これで、作業ディレクトリに zip ファイルが作成されます。
5. zip ファイルを Software Distribution Server に移動し、インストール ディレクトリのルートで解凍します。ユーザが Creo Elements/Direct Model Manager を起動すると、拡張を含む Creo Elements/Direct Model Manager の新しいバージョンが強制的にインストールされます。
これは役に立ちましたか?