Windchill カスタム属性のサポート
既成の作業指示構築ブロックの変換プロセスの一部としてインポートされていない Windchill MPMLink から値をインポートするには、追加のコンフィギュレーションが必要です。これらの値には、作業指示構築ブロックのデータモデルにまだマッピングされていない Windchill 属性、またはソフト属性としても知られているカスタム Windchill 属性を含めることができます。
次の例では、Windchill MPMLink オペレーションで STRING データ型のカスタム属性である、MyCustomAttribute の値をインポートします。
1. REST 呼び出しで属性値が返されていることを検証します。MPMLink OData コネクタ Thing (PTC.SCA.SCO.MPMLink_ODataConnector) を使用するか、または REST クライアントを直接使用して、Windchill MPMLink REST サービスに対して次のコマンドを実行し、MyCustomAttribute が返されていることを検証します。
GET /servlet/odata/MfgProcMgmt/Operations('ID')
2. 関連する <Operator_Advisor_object>_AP データシェイプを更新します。データシェイプに追加されるプロパティは、マッピング先の Windchill 属性の適切なデータ型でなければなりません。
詳細については、データモデルエンティティへのカスタムプロパティの追加を参照してください。
この例では、MyCustomProperty と呼ばれる PTC.SCA.SCO.WorkDefinition_AP データシェイプで、MyCustomAttribute から新規 STRING データ型プロパティに値を追加しています。
3. メインデータシェイプに関連する Get サービスを実行することで、新規プロパティ用の列がデータベースで使用できることを検証します。この例では、PTC.SCA.SCO.DefaultProductionOrderManager Thing からの GetWorkDefinition サービスを実行して、結果に MyCustomProperty 列が含まれていることを検証します。
4. カスタムマッピング Thing (PTC.SCA.SCO.MPMLinkWorkDefinitionCustomMappings) で、属性をマッピングする作業指示構築ブロックのデータシェイプと Windchill 情報のカスタムマッピングサービスを検索してオーバーライドします。この例では、MapWorkDefinitionPropertiesForOperationHolder サービスを検索してオーバーライドします。用意されているカスタムマッピングサービスのリストについては、カスタムマッピングサービスを参照してください。
5. <Operator_Advisor_object>_AP データシェイプに追加したカスタムプロパティとサービスコード内のコメントに示されている Windchill 属性の間のマッピングを指定します。この例では、次のように追加します。
result["MyCustomProperty"] = sourceJson["OperationHolder"]["MyCustomAttribute"];
sourceJson は、サービスの入力として提供される REST 呼び出しの一部です。サービスによってマッピングされた Windchill オブジェクトタイプに適用可能な REST 呼び出しの一部のみが、サービスの入力として提供されます。Windchill 属性値については、手順 1 からの REST 呼び出しに示されている属性名を使用します。Windchill に表示されている属性の内部名は使用しないでください。
より複雑な属性マッピングのシナリオについては、実数 (単位付き) データ型の Windchill 属性のマッピング複数値の Windchill 属性のマッピング、およびWindchill リスト属性のマッピングを参照してください。
* 
作業指示構築ブロックによって定義されたマッピングは、カスタムマッピングサービスを使用してカスタマイズすることもできます。たとえば、Windchill MPMLink 内のオペレーション用の Description 属性を、Description プロパティではなく、作業指示構築ブロック内の作業定義用の LongDescription プロパティにマッピングするには、MapWorkDefinitionPropertiesForOperationHolderCustom サービスに次を追加します。
result["LongDescription"] = sourceJson["OperationHolder"]["Description"];
作業指示構築ブロックによって定義されたいずれかのマッピングをカスタマイズする場合は、作業指示構築ブロックの新しいバージョンにアップグレードした後でも、カスタマイズしたマッピングが期待どおりに変換されていることを確認してください。
これで、プロセス計画情報を Windchill MPMLink から取得し、作業定義および関連情報に変換するときに、Windchill MPMLink オペレーションの MyCustomAttribute プロパティの値が含まれるようになります。
実数 (単位付き) データ型の Windchill 属性のマッピング
データ型が「実数 (単位付き)」Windchill 属性は、REST 呼び出しで、単一の属性と値のペアとしてではなく、複数の値がある JSON オブジェクトとして表示されます。例:
"Attribute2": {
"Value": 123.45,
"Unit": "m/s2",
"Precision": 5,
"Display": "123.45 m/s2"
}
いずれかの値にマッピングを指定するか、JSON オブジェクト全体を作業指示構築ブロックでの STRING タイプのプロパティの値としてマッピングできます。
属性のいずれかの値をマッピングするには、マッピングする属性名と値の両方を指定します。
result["MyCustomProperty"] = sourceJson["Attribute2"]["Value"]
すべての値を含む JSON オブジェクト全体を、作業指示構築ブロックの STRING タイプのプロパティの値としてマッピングするには、属性名のみを指定します。
result["MyCustomProperty"] = sourceJson["Attribute2"]
複数値の Windchill 属性のマッピング
Windchill での複数値指定属性は、「1 つの値」の制約が除去された属性です。複数値となるのは、「グローバル」属性のみです。
次のように、Windchill からの複数値指定属性は、REST 呼び出しに表示され、その値は JSON 配列にリストされます。
"MultiValuedAttribute": [
"Attribute value 1",
"Attribute value 2",
"Attribute value 3"
]
単一値にマッピングを指定するか、属性値の JSON 配列全体を作業指示構築ブロックでの STRING タイプのプロパティの値としてマッピングすることができます。
複数値指定属性からの特定の値をマッピングするには、属性名と値の位置を値の順序 (0 から開始) で指定します。
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"][1]
属性値の JSON 配列全体を、作業指示構築ブロックの STRING タイプのプロパティの値としてマッピングするには、属性名のみを指定します。
result["MyCustomProperty"] = sourceJson["MultiValuedAttribute"]
Windchill リスト属性のマッピング
Windchill でのリスト属性は、「列挙値リスト」「有効値リスト」、または「推奨値リスト」のいずれかのリスト制約が適用されている属性です。リスト属性は、「グローバル」または「ローカル」のいずれかの属性となります。
Windchill からのリスト属性は、単一の属性と値のペアとしてではなく、複数の値がある JSON オブジェクトとして REST 呼び出しに表示されます。例:
"ListAttribute": [
{
"Value": "Test 1",
"Display": "Test 1"
},
}
いずれかの値にマッピングを指定するか、JSON オブジェクト全体を作業指示構築ブロックでの STRING タイプのプロパティの値としてマッピングできます。
属性のいずれかの値をマッピングするには、マッピングする属性名と値の両方を指定します。
result["MyCustomProperty"] = sourceJson["ListAttribute"]["Value"]
すべての値を含む JSON オブジェクト全体を、作業指示構築ブロックの STRING タイプのプロパティの値としてマッピングするには、属性名のみを指定します。
result["MyCustomProperty"] = sourceJson["ListAttribute"]
これは役に立ちましたか?