ロードルールのカスタマイズの演習
|
推定所要時間
|
Creo Elements/Direct Model Manager 用のカスタムロードルールを作成できます。
この演習では、Creo Elements/Direct Model Manager のカスタムロードルールの作成方法を学習します。
|
説明:
|
1 分
|
演習:
|
15 分
|
説明
ロードルールとは、ロードするモデルのバージョンを制御するビジネスロジックのフォームのことです。Creo Elements/Direct Model Manager は、「保存時と同様にロード」や「最新のバージョンをロード」を含め、利用頻度の高いロードルールをサポートしています。カスタムロードルールを作成して、ユーザ独自のビジネスプロセスを実装することができます。
|
CoCreate Model Manager 16.0 以前で作成されたカスタムロードルールを使用するには、次の操作を行う必要があります。
• CoCreate Model Manager 13.0 または CoCreate Model Manager 13.1 の場合、string loadRule および int level パラメータを getMeByLoadRule() メソッドに追加します。
• CoCreate Model Manager 14.0 から CoCreate Model Manager 16.0 までのリリースの場合、int level パラメータを getMeByLoadRule() メソッドに追加します。
|
この演習は、
ビジネスロジックの拡張の演習が終了していることを前提としています。
作成するカスタム ロードでは、説明に「Special」という語を含むパーツをロードします。説明に「Special」という語を含むアイテムがない場合は、最新のバージョンをロードします。カスタムロードルールの作成の主な手順は、以下のとおりです。
Java コードの拡張
カスタムロードルールをモデルクラスの拡張としてプログラムします。
getMeByLoadRule メソッドにカスタムロードルールが含まれます。ユーザが「Acme Special Load Rule」を要求すると、説明に Special という文字があるかどうかがチェックされ、該当するものがある場合にはそのバージョンが返されます。Description 内に Special という文字を含んだバージョンが存在しない場合は、最新のバージョンが返されます。ユーザが別のロードルールを要求した場合は、スーパークラスに要求が渡されます。
1. NetBeans を使用して、
ビジネスロジックの拡張の演習で作成した Acme モデルクラスに以下のメソッドを挿入します (どちらのスキーマでも同じ Java コードを使用します)。
public Versionable getMeByLoadRule(WMElement parent, String loadRule, int level) throws WMException {
if (loadRule.equals("Acme Special Load Rule")) {
List list = getVersionUtils().getVersionables(this, true);
for (int i = 0; i < list.size(); i++) {
Versionable v = (Versionable)list.get(i);
String desc = (String) v.getValue("Description");
if (desc.toUpperCase().indexOf("SPECIAL") > -1) {
return v;
}
}
return (Versionable)list.get(0);
} else {
return super.getMeByLoadRule(parent, loadRule, level);
}
}
右クリックし、「インポートの修正」を選択して、足りない import ステートメントを追加します。
2. 主プロジェクトを構築を実行してコードをコンパイルします。
XML ファイルへのロードルールの追加
Acme モデル クラスが XML ファイル内にあることを確認します。
1. NetBeans で、acme.xml ファイルを開きます。
2. 以下の <AvailableLoadRules> セクションを追加します (どちらのスキーマにも同じコードを使用します)。
<AvailableLoadRules>
<IsDefaultConfigurableByUser>false</IsDefaultConfigurableByUser>
<LoadRule>Acme Special Load Rule
<Index>.5</Index>
</LoadRule>
</AvailableLoadRules>
3. <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>
4. <LoadTableColumnModel> のカスタマイズがある場合は削除します。
コードのテスト
コードは、インストールしなくても、NetBeans から実行できます。
1. NetBeans で dev.properties ファイルを表示し、run.mode が OSDM に設定されていることを確認します。
2. 主プロジェクトを実行スクリプトを実行します。Creo Elements/Direct Modeling が起動します。
3. 簡単なパーツを作成し、名前を変更します。この演習では、cube にします。
4. Creo Elements/Direct Modeling の > メニューから Creo Elements/Direct Model Manager を有効化します。
ルート項目 (cube) に新しいロードルールを適用するには、Creo Elements/Direct Model Manager の「デフォルトのロードルールでルート項目をロード」環境設定を設定する必要があります。
方法
a. > の順にクリックします。
b. 「詳細」タブで、「デフォルトのロードルールでルート項目をロード」(「ロード」セクション内) にチェックを入れ、「了解」をクリックします。
5. パーツをデータベースに保存します。
6. パーツの編集を行います。
7. 「すべての項目のメジャーリビジョン」の「保存タイプ」でパーツを保存します。
8. Creo Elements/Direct Model Manager ワークスペースでパーツの 2 番目のリビジョンを選択し、「モデルタスク」パネルの「DB プロパティ」をクリックします。「DB プロパティ」ダイアログが開きます。
9. 「DB プロパティ」ダイアログで「属性」タブを選択して、「編集」をクリックします。
10. 「説明」を Special に変更し、「了解」をクリックします。
11. Creo Elements/Direct Modeling で、パーツを編集して再度保存します。
◦ 「保存タイプ」をすべての項目のメジャーリビジョンに設定します。
◦ 「説明」を cube に変更します(「保存」ダイアログに「説明」フィールドが表示されていない場合は、右クリックして > の順に選択し、「説明」をオンにします)。
12. これで、先ほど作成したパーツのバージョンが Creo Elements/Direct Model Manager に 3 つ存在することになります。「DB プロパティ」にリビジョン履歴が表示されます。2 番目のパーツにのみ、「説明」に Special という語が含まれています。
13. Creo Elements/Direct Modeling で、 > の順に選択して新しいセッションを開始します。
14. Creo Elements/Direct Model Manager の 「DB プロパティ」ウィンドウで、「リビジョン履歴」タブの最初のバージョンのパーツを右クリックして、「ロード」を選択します。「ロード」ダイアログが表示されます。「ロード」ダイアログに「説明」フィールドが表示されない場合は、ダイアログの空白領域を右クリックして > の順に選択し、「説明」にチェックを入れます。
15. 「ロードルール」として Acme Special Load Rule を選択します。Creo Elements/Direct Model Manager は、「説明」に Special という語が含まれた 2 番目のバージョンに切り替わります。
16. 「ロード」をクリックすると、説明に Special を含んだバージョンのパーツが Creo Elements/Direct Modeling に表示されます (ステータスは「新バージョンあり」)。