コネクタの使用方法
モデル構造で作成したコネクタを使用して、ランタイム構成セッション中に、モデルの構造外の品目との接続を作成します。
この例では、車をオーダーしているユーザーが、車で使用するトレーラをオーダーすることもできます。
この例で使用されているエンティティと、車のオーダーにトレーラを追加する際に果たすロールは次のとおりです:
エンティティ |
ロール |
---|---|
コンフィギュレータ・モデル |
オーダーされた車。 この例のモデルは次のとおりです: CAR4DRSDN 4ドア・セダン |
品目区分 |
「製品情報管理」作業領域で作成されたトレーラのクラス。 品目区分の例は次のとおりです: トレーラ・トレーラ |
標準品目 |
「製品情報管理」作業領域で、トレーラ品目区分の品目として作成されるトレーラのセット。 標準品目のセットの例を次に示します: 2WHL_BSTL_TRLR_CRT 2つの車輪の黒い鋼鉄トレーラのカート 4WHL_BSTL_TRLR_CRT 4つの車輪の黒い鋼鉄トレーラのカート CO_TRLR Carry-Onトレーラ HDHM_CARGO_TRLR頑丈なヒッチの台紙の貨物キャリア WM_UTIL_TRLRランプ・ゲートが付いている金網の実用的なトレーラ |
スナップショット |
スナップショットは、同じ名前を持つ品目区分とその標準品目のコピーであり、コンフィギュレータ・モデル作業領域にインポートされます。 |
コネクタ |
コネクタは、自動車モデルをトレーラ品目区分の標準品目に接続するための基礎を提供します。 コネクタの例: トレーラ・コネクタ |
オプション機能とオプション |
接続された品目のUIテンプレートがない場合、オプション機能とそのオプションは、インポートされた品目区分とその品目を表します。 オプション機能の例には、品目区分と同じ名前があります: トレーラ オプションは、次のような品目と同じ名前を持ちます: HDHM_CARGO_TRLR |
テキスト機能 |
テキスト機能は、ユーザーが実行時に選択するオプション機能のオプションの名前を保持し、接続された品目を表します。 テキスト機能の例は次のとおりです: 選択したトレーラ品目 |
文ルール |
テキスト機能の値を、実行時に選択したオプション機能オプション(接続品目を表す)の名前に設定します。 文ルールの例は次のとおりです: 選択したトレーラ品目の更新 |
拡張ルール |
選択したオプション機能オプションの名前を使用して、対応する標準品目に接続して、接続可能品目を構成に追加します。 拡張ルールの例は次のとおりです: トレーラの追加 |
例のこれらの要素をまとめるステップは次のとおりです:
-
スナップショットをインポートします。
-
補足構成を作成します。
-
文ルールを作成します。
-
コネクタを作成します。
-
拡張ルールを作成します。
-
モデルをテストします。
スナップショットをインポート
コンフィギュレータ・モデル作業領域の「スナップショットの管理」ページで、処理メニューから品目区分に関連付けられた品目のインポートを選択します。
この例に示すデータは、デモンストレーションの目的で仮説的です。
-
品目区分を検索して選択: Trailers.
-
「子品目区分に関連付けられた品目を含む」オプションを選択して、インポートにトレーラ品目区分に関連付けられた品目のみが含まれるようにし、子品目区分からは含まれないようにします。
インポートされた標準品目には、次のものが含まれます:
-
HDHM_CARGO_TRLR頑丈なヒッチの台紙の貨物キャリア
-
WM_UTIL_TRLRランプ・ゲートが付いている金網の実用的なトレーラ
-
同様に続行します
補足構成の作成
現在、コネクタに対する事前定義済ユーザー・インタフェース・サポートがないため、トレーラ品目区分をオプション機能として、関連品目をオプションとして表すことができます。 オプションのデフォルトのユーザー・インタフェースは、オプションの選択可能なイメージを使用して、必要に応じて変更できます。 実行時に、エンド・ユーザーはユーザー・インタフェースでこれらのオプションを選択でき、拡張ルールによって実際の関連品目が実行サマリーに追加されます。
CAR4DRSDNモデルで、次の設定を使用してオプション機能とそのオプションを作成します:
-
名前: Trailers. わかりやすくするために、これは品目区分と同じ名前です。
-
最小選択数: 0
-
最大選択数: 1
-
トレーラ品目区分の各標準品目の名前に一致するオプション(HDHM_CARGO_TRLRなど)を作成します。 オプションが多数ある場合は、ADFdi統合を使用してオプションを作成できます。
CAR4DRSDNモデルで、次の設定を使用してテキスト機能を作成します:
-
名前: 選択したトレーラ品目
-
最大長: 100 (または標準品目の名前を格納するのに十分な長さ)。
文ルールの作成
CAR4DRSDNモデルで、次の設定を使用して文ルールを作成します:
-
名前: 選択したトレーラ品目の更新
-
ルール・クラス: 制約
-
ルール・テキストで、トレーラ・オプション機能のオプションごとに1つずつ、一連のREQUIRES文を作成します。
-
ルールの左側に、トレーラ・オプション機能のオプションを挿入します。
-
ルールの右側で、テキスト機能Selected Trailer Itemを挿入し、その値としてTrailerオプションの名前を割り当てます。
-
「ルール・テキスト」フィールドのCDL文は次のようになります:
Copy'CAR4DRSDN'.'Trailers'.'HDHM_CARGO_TRLR' REQUIRES 'CAR4DRSDN'.'Selected Trailer Item' = "HDHM_CARGO_TRLR";
'CAR4DRSDN'.'Trailers'.'CO_TRLR' REQUIRES 'CAR4DRSDN'.'Selected Trailer Item' = "CO_TRLR";
'CAR4DRSDN'.'Trailers'.'WM_UTIL_TRLR' REQUIRES 'CAR4DRSDN'.'Selected Trailer Item' = "WM_UTIL_TRLR";
'CAR4DRSDN'.'Trailers'.'2WHL_BSTL_TRLR_CRT' REQUIRES 'CAR4DRSDN'.'Selected Trailer Item' = "2WHL_BSTL_TRLR_CRT";
'CAR4DRSDN'.'Trailers'.'4WHL_BSTL_TRLR_CRT' REQUIRES 'CAR4DRSDN'.'Selected Trailer Item' = "4WHL_BSTL_TRLR_CRT";
実行時にエンド・ユーザーが「トレーラ」オプション機能のオプション(HDHM_CARGO_TRLRなど)を選択すると、ルールによってテキスト機能「選択したトレーラ品目」の値がトレーラ標準品目(HDHM_CARGO_TRLR)の名前に設定されます。 この名前は、その標準品目を指定するコネクタ・インスタンスを作成するために使用されます。
この例に示すルール・コードは、主にわかりやすく設計されています。
コネクタの作成
CAR4DRSDNモデルで、次の設定を使用してルート・ノードの下にコネクタを作成します:
フィールド |
値 |
---|---|
名前 |
トレーラ・コネクタ |
ターゲット・タイプ |
品目区分 |
ターゲット |
トレーラ |
最小接続数 |
0 |
最大接続数 |
1 |
最小数量 |
1 |
最大数量 |
1 |
コネクタ・ノードで定義された特性は、実行時にコネクタを介して関連する品目の動作を制御します:
-
ターゲット・タイプは、モデルに対して接続可能な関連品目のセットを制御します。 ターゲット・タイプが品目区分であるコネクタの場合、関連品目のセットは、その品目区分に関連付けられた品目のセットです。
-
最小接続数および最大接続数は、ターゲット品目区分からこの構成に追加できる様々な標準品目の数を制御します。 この例では、自動車の構成に追加できるトレーラの数を示します。 1台につき1つのトレーラのみを許可するため、最大接続数(Maximum Connections)を1に設定します。 構成へのトレーラの追加をオプションにするには、最小接続数をゼロに設定します。
-
最小数量と最大数量は、ターゲット品目区分内の標準品目のすべての数量の合計を制御します。
-
この例では、自動車の構成に追加できるトレーラの合計数を示します。 再度、自動車ごとに1つのトレーラのみを許可するため、最小数量と最大数量の両方を1に設定
拡張ルールの作成
CAR4DRSDNモデルで、次の設定を使用して拡張ルールを作成します:
フィールド |
値 |
---|---|
名前 |
トレーラの追加 |
基本ノード |
テキスト機能選択したトレーラ品目。 文ルールでは、この機能の値が、実行時に選択された標準品目の名前に設定されます。 |
インスタンス化スコープ |
インスタンス |
ルール・テキスト |
この表に続くGroovyコード・サンプルを入力します。 この例の名前にコネクタ名を置き換えて、他のコネクタでこのコードを再利用できます。 |
イベント |
postValueChange |
イベント・スコープ |
基本ノード |
Class |
ScriptClass |
メソッド |
run() |
次のGroovyコードを「ルール・テキスト」フィールドに入力します:
Copyconfig = cxEvent.configuration
root = config.getRootBomModel()
baseNode = cxEvent.baseNode;
// Retrieve the connector definition from the root model
connPort = root.getChildByName("Trailer Connector");
// Check to see if the connector has any connector instances
if (connPort.getInstanceCount() == 0) {
// If not then add an instance
instance = connPort.addInstance();
}
// Retrieve the connector instance
instance = connPort.getInstances().get(0)
// Set its quantity to 1
instance.quantity = 1;
// If the connector instance has an existing connected item defined, then remove it
instance.unsetType();
// Set the connector instance to the new connected item
instance.setType(instance.getAvailableLeafType(baseNode.getTextValue()));
次の文では、作成したコネクタを名前で検索します:
CopyconnPort = root.getChildByName("Trailer Connector");
この例を独自のシナリオに適応させる場合は、例のコネクタ・ノード(トレーラ・コネクタ)の名前を独自のコネクタ・ノード名に置き換えます。
次の文は、インポートされた標準品目のスナップショットに対応するオプションの名前(つまり、標準品目)を使用して、新しいコネクタ・インスタンスのタイプを設定します:
Copyinstance.setType(instance.getAvailableLeafType(baseNode.getTextValue()));