高度なカスタマイズ > ビジネスロジックのカスタマイズ > パッケージのカスタマイズ > Windchill レプリケーション - コンテキスト外コレクションと存在しないオブジェクト
  
Windchill レプリケーション - コンテキスト外コレクションと存在しないオブジェクト
Windchill コンテキストレプリケーションを使用しているときに、高度に構造化されたデータでは、オブジェクト間の関連が、レプリケーション対象のコンテキスト内に収まらずにレプリケーション対象でないほかのコンテキストに及ぶという問題が発生します。そのような場合、デフォルトの動作では、コンテキスト内のオブジェクトだけがレプリケーション用パッケージに含まれるように、コンテキスト境界で関連が切り捨てられます。
次のプロパティを使用することで、コンテキストレプリケーションの動作を変更して、複数のコンテキストにまたがる関連をトレースし、追加で収集されたオブジェクトをレプリケーションパッケージに含めることができます。
名前
説明
デフォルト値
com.ptc.windchill.wp.rep.enableOutOfContextCollection
レプリケーション済みコンテキストの外部でリンクされたオブジェクトのコレクションを制御します。
false
com.ptc.windchill.wp.enableMissingObjectTrackingSource
ソースシステムに存在しないオブジェクトのトラックを制御します。
false
com.ptc.windchill.wp.enableMissingObjectTrackingTarget
ターゲットシステムに存在しないオブジェクトのトラックを制御します。
false
プロパティ enableOutOfContextCollection - ロジック
あるオブジェクトでプロパティ com.ptc.windchill.wp.rep.enableOutOfContextCollection が有効になっていて、そのコンテキスト内の部品または CAD ドキュメントにコンテキスト外のリンクがある場合、次のコレクションロジックが使用されます。
レプリケーションコンテキスト内の部品バージョンごとに、以下が収集されます。
すべての子部品依存 (最新のコンフィギュレーション仕様を使用)。
シードオブジェクトまたはその依存に関連するすべてのドキュメント。
シードオブジェクトまたはその依存に関連するすべての変更管理オブジェクト。
シードオブジェクトまたはその依存に関連するすべての置換部品。
レプリケーションコンテキスト内の CAD ドキュメントのバージョンごとに、以下が収集されます。
すべての子 CAD ドキュメントの依存 (最新のコンフィギュレーション仕様を使用)。
シードオブジェクトまたはその依存に関連するすべての変更管理オブジェクト。
すべての図面、ファミリーテーブル、ジェネリック、パブリッシングされたコンテンツ。
* 
部品でも CAD ドキュメントでもないレプリケーションパッケージメンバーについては、何も収集されません。
収集された依存の、各リリース済みリビジョンの最新作業版数とリリースされていないリビジョンの最新作業版数がコレクションに含まれます。たとえば、部品に次のバージョンがあるとします。
A.1 (リリース済み)
B.1 (作業中)
C.1 (リリース済み)
D.1 (作業中)
D.2 (作業中)
E.1 (作業中)
E.2 (作業中)
次のバージョンが収集されます。
A.1 (リリース済み)
B.1 (作業中)
C.1 (リリース済み)
D.2 (作業中)
E.2 (作業中)
* 
追加の関連オブジェクト (子でないオブジェクト) は、初期コンフィギュレーション仕様 (最新) によって選択されたオブジェクトのみから収集されます。これらは以降に収集されたバージョンからは収集されません。
たとえば、子部品の部品 B リビジョン 2 が最新のコンフィギュレーション仕様によって選択された場合、部品 B リビジョン 2 に関連する変更管理オブジェクトとドキュメントが収集されます。その部品の部品 A リビジョン 2 がリリース済みである場合、それはパッケージに含まれますが、その関連オブジェクト (変更管理オブジェクト、ドキュメントなど) はパッケージに含まれません。
収集時には標準アクセス制御が適用されるので、再表示を実行しているユーザーがアクセス可能なオブジェクトだけが収集されます。
コレクションロジックの例
例 1:
REL - リリース済み、IW - 作業中
コレクションの結果は次のようになります。
オブジェクト
収集されたバージョン
存在しないオブジェクト
コメント
部品 1
A
シードオブジェクト
部品 2
C
最新のコンフィギュレーション仕様によって含まれます
部品 2
B
以前にリリース済みのバージョンは含まれますが収集されません
部品 2
A
以前にリリース済みのバージョンは含まれますが収集されません
部品 3
なし
Y
部品 2 リビジョン A からは収集されません
部品 4
なし
Y
部品 2 リビジョン B からは収集されません
部品 5
A
最新のコンフィギュレーション仕様によって含まれます
部品 6
A
最新のコンフィギュレーション仕様によって含まれます
部品 7
なし
親が含まれていないので収集されません
部品 8
なし
親が含まれていないので収集されません
部品 9
なし
親が含まれていないので収集されません
部品 10
なし
親が含まれていないので収集されません
最新のコンフィギュレーション仕様が使用されている場合、部品 2 リビジョン C が部品 5 および部品 6 とともに収集されます。部品 2 の以前にリリース済みのリビジョンも含まれます (ただしそこから収集はされません)。部品 3 は部品 2 リビジョン A の下で存在しないオブジェクトとしてマークされ、部品 4 は部品 2 リビジョン B の下で存在しないオブジェクトとしてマークされます。
最新のリリース済みのコンフィギュレーション仕様が使用されている場合、部品 2 リビジョン B、部品 4 リビジョン A、および部品 9 が収集されます。それらのリリースされていないそれ以降のリビジョンも含まれます (ただしそこから収集はされません)。部品 3 は部品 2 リビジョン A の下で存在しないオブジェクトとしてマークされ、部品 5 と 6 は部品 2 リビジョン C の下で存在しないオブジェクトとしてマークされ、部品 10 は部品 4 リビジョン A の下で存在しないオブジェクトとしてマークされます。
上記のいずれのシナリオでも、部品 7 と部品 8 は決して発生しない第 2 レベルの関連付けです (含まれることも存在しないオブジェクトとしてマークされることもありません)。
例 2:
コレクションの結果は次のようになります。
オブジェクト
含まれる
存在しないオブジェクト
コメント
部品 1
Y
レプリケーションコンテキストに含まれます
部品 2
Y
コンフィギュレーション仕様によって含まれます
部品 3
Y
コンフィギュレーション仕様によって含まれます
部品 4
Y
コンフィギュレーション仕様によって含まれます
ドキュメント 1
Y
部品 2 に関連
ドキュメント 2
N
Y
ドキュメント間の関連はトレースされません
ドキュメント 3
Y
部品 3 に関連
ドキュメント 4
N
Y
コンテキストにまたがる部品と CAD の関連のみがトレースされます
変更リクエスト 1
Y
部品 1 に関連
変更リクエスト 2
N
Y
ドキュメントと変更間の関連はトレースされません
変更リクエスト 3
Y
レプリケーションコンテキストに含まれます
例 3:
コレクションの結果は次のようになります。
オブジェクト
含まれる
存在しないオブジェクト
コメント
部品 1
Y
部品 2
Y
部品 3
Y
部品 4
N
Y
部品 5
Y
ドキュメント 0
N
N
ドキュメント 1
N
Y
ドキュメント 2
Y
ドキュメント 3
Y
ドキュメント 4
N
N
変更リクエスト 1
Y
Y
変更リクエスト 2
N
Y
プロパティ enableMissingObjectTrackingSource - 詳細
プロパティ com.ptc.windchill.wp.enableMissingObjectTrackingSource が有効になっている場合、レプリケーションパッケージ送信で存在しないオブジェクトが計算され、送信 ZIP に含まれて後から読み込むために保管されます。
以下の点に注意してください。
エクスポートされて ZIP に含められるレプリケーション可能オブジェクトの ZIP には、存在しないオブジェクトの情報が含まれます。
差分送信の場合、エクスポートされないオブジェクトについては存在しないオブジェクトの情報が含まれません。すでにレプリケーションされているオブジェクトや、レプリケーションのためにアクセスできないオブジェクトは含まれません。
存在しないオブジェクトの情報とは、レプリケーションされて ZIP に含まれるオブジェクトにリンクしている、レプリケーション可能だがレプリケーションされないオブジェクトに関する情報のことです。
「存在しないオブジェクト」機能では次の関連付けがサポートされます。
リンク名
役割 A (親)
役割 B (子)
FormalizedBy
Fox で廃止予定
廃止予定
AddressedBy2
TheMarkUpTheViewable
表示
WTDocumentDependencyLink
説明
詳細
WTDocumentUsageLink
親部品
子部品
EPMBuildRule
構築ソース
構築ターゲット
WTPartUsageLink
親部品
子部品
WTPartReferenceLink
親参照
参照
WTPartDescribeLink
説明
詳細
ReportedAgainst
問題提起
変更対象オブジェクト 2
AffectedActivityData
変更アクティビティ 2
変更対象オブジェクト 2
RelevantRequestData2
変更リクエスト 2
変更対象オブジェクト 2
ChangeRecord2
変更アクティビティ 2
変更対象オブジェクト 2
SubjectProduct
WTPart マスター
 変更リクエスト 2
ProblemProduct
WTPart マスター
&nbsp問題提起
WTPartAlternateLink
WTPart マスター
WTPart マスター
SubstituteLinkDependencyProcessor
WTPart マスター
WTPart 親子リンク
HangingChangeLink
変更アクティビティ
変更対象オブジェクト
FlexibleChangeLinkDependencyProcessor
EPMMemberLink
EPMReferenceLink
NoteHolderNoteLink
ConfigurableDescribeLink
詳細
説明
ConfigurableMastersLink
次によってトレース
トレース
ConfigurableReferenceLink
親参照
参照
ConfigurableRevisionLinkCustomProcessor
 リンク元
リンク先
変更アクティビティと変更対象オブジェクトの関連付けにおける存在しないオブジェクトの処理
変更アクティビティ (CA)、変更リクエスト (CR)、および変更対象オブジェクト (C) の関連付けでは、存在しないオブジェクトを処理する際、変更通知 (CN) と変更アクティビティがそれに関連する変更対象オブジェクトとともに考慮されます。
使用例 1
変更通知と変更対象オブジェクト (部品) の変更アクティビティが 1 つ欠落している
部品 1 と部品 2 を作成します。
この部品 1 の変更リクエストを作成します
変更リクエストの変更通知を作成します。
変更タスク >> 部品 2 を変更適用オブジェクトとして追加します。
変更通知 >> 実装計画 >> 変更タスク 2 を追加し、部品 2 を変更適用オブジェクトとして追加します。
変更タスク 2 のライフサイクル状態を「レビュー中」に設定します。
missingchangeuser を作成し、変更タスクの読み取りアクセス許可を拒否 (オーバーライド不可) し、状態を「レビュー中」にします。
missingchangeuser を使用してレプリケーションパッケージを作成します
結果:
ソースオブジェクト
存在しないオブジェクト
変更通知
変更タスク 2
部品
変更タスク 2
同じ変更対象オブジェクトを同じ変更通知にリンクする変更対象オブジェクトの関連付けが複数存在する場合、2 つ目の変更アクティビティでは変更対象オブジェクト/変更通知は存在しないオブジェクトとして記録されません。変更アクティビティだけが存在しないオブジェクトとして記録されます。
シナリオ
結果
CR - C (部品 1)
CR - CN - CA1 - C (部品 2)
CR - CN - CA2 - C (部品 2)
CA2 は CN と C の両方で存在しないオブジェクトとして記録されます。
使用例 2
変更対象オブジェクト (部品) の変更通知と変更タスクが欠落している
部品を作成します。
この部品の変更リクエストを作成します。
変更リクエストの変更通知を作成します。
変更タスクに移動し、部品を変更適用オブジェクトとして追加します
変更通知をほかのコンテキストに移動します。変更タスクもほかのコンテキストに移動します。
レプリケーションパッケージを作成します。
ソースオブジェクト
存在しないオブジェクト
部品
変更通知
部品
変更タスク
変更対象オブジェクト (部品) に対して変更タスクと変更通知が作成されるときに、変更通知がほかのコンテキストに移動すると、変更タスクもほかのコンテキストに移動します。ここでは、変更通知と変更タスクは部品に存在しないオブジェクトとして記録されます。
シナリオ
結果
CR - CN - CA - C
CR - CN - CA - C
CA と CN の両方が C に存在しないものとして記録されます
使用例 3
変更対象オブジェクト (部品) と変更通知の変更タスクが欠落している
部品を作成します。
この部品の変更リクエストを作成します。
変更リクエストの変更通知を作成します。
変更タスクに移動し、部品を変更適用オブジェクトとして追加します。
missingchangeuser を作成し、変更タスクの読み取りアクセス許可を拒否 (オーバーライド不可) します。
missingchangeuser を使用してレプリケーションパッケージを作成します
ソースオブジェクト
存在しないオブジェクト
変更通知
変更タスク
部品
変更タスク
変更タスクが変更対象オブジェクト (部品) と変更通知にリンクされているにもかかわらず、変更タスクの読み取りアクセス許可が拒否されている場合、変更タスクはレプリケーション経由で部品と変更通知に存在しないオブジェクトとして記録されます。
シナリオ
結果
CR - CN - CA - C
CR - CN - CA - C
CA は C と CN に存在しないものとして記録されます
使用例 4
変更通知の変更タスクと変更対象オブジェクト (部品) が欠落している
部品 1 と部品 2 を作成します。
この部品 1 の変更リクエストを作成します
変更リクエストの変更通知を作成します。
変更タスクに移動し、部品 2 を変更適用オブジェクトとして追加します
部品 2 を別のコンテキストに移動します
レプリケーションパッケージを作成します
ソースオブジェクト
存在しないオブジェクト
変更通知
部品
変更通知
変更タスク
同じ変更通知と変更リクエストにリンクされている変更対象オブジェクト (部品) の関連付けが複数存在する場合、変更対象オブジェクトと変更リクエストは変更通知に存在しないオブジェクトとして記録されます。
シナリオ
結果
CR - C (部品 1)
 
CR - CN - CA - C (部品 2)
CA と C (部品 2) は CN に存在しないものとして記録されます。
使用例 5
変更通知と変更タスクの変更対象オブジェクト (部品) が欠落している
部品 1 と部品 2 を作成します。
この部品 1 の変更リクエストを作成します。
変更リクエストの変更通知を作成します。
変更タスクに移動し、部品 2 を変更適用オブジェクトとして追加します
部品 2 を別のコンテキストに移動します。
レプリケーションパッケージを作成します
ソースオブジェクト
存在しないオブジェクト
変更通知
部品 2
変更タスク
部品 2
同じ変更通知と変更リクエストにリンクされている変更対象オブジェクト (部品) の関連付けが複数存在する場合、変更対象オブジェクト (部品 2) は変更アクティビティと変更リクエストに存在しないオブジェクトとして記録されます。
シナリオ
結果
CR - C (部品 1)
 
CR - CN - CA - C (部品 2)
C (部品 2) は CN と CA の両方に存在しないものとして記録されます。
使用例 6
変更タスクと変更対象オブジェクト (部品) の変更通知が欠落している
部品 1 と部品 2 を作成します。
この部品 1 の変更リクエストを作成します。
変更リクエストの変更通知を作成します。
変更タスクに移動し、部品 2 を変更適用オブジェクトとして追加します
missingchangeuser を作成し、変更通知の読み取りアクセス許可を拒否 (オーバーライド不可) します。
missingchangeuser を使用してレプリケーションパッケージを作成します
ソースオブジェクト
存在しないオブジェクト
部品 2
変更通知
変更タスク
変更通知
同じ変更通知と変更リクエストにリンクされている変更対象オブジェクト (部品) の関連付けが複数存在する場合、変更通知は変更アクティビティと変更対象オブジェクト (部品 2) に存在しないオブジェクトとして記録されます。
シナリオ
結果
CR - C (部品 1)
 
CR - CN - CA - C (部品 2)
CN は CN と C (部品 2) の両方に存在しないものとして記録されます。
* 
使用例 1 および 3 を実行するには、WPTypeBasedPropertyLoader でレプリケーションパッケージの DisableAccessControlOnLinkExport を有効にします。
代用部品リンクにおける存在しないオブジェクトの処理
使用例 1
コンテキスト A で部品 1 を作成します。
コンテキスト B で部品 2 と部品 3 の 2 つの部品を作成します。
コンテキスト A から、部品 1 の子として部品 2 を追加し、部品 2 の代用部品として部品 3 を作成します。
必要に応じて部品をチェックインします。
コンテキスト A のレプリケーションパッケージを作成します。
コンテキスト A の「存在しないオブジェクト」タブに、部品 1 <-> 部品 2 間の関連が示されます (この関連は WTPartUsageLink によるものです)。
コンテキスト B のレプリケーションパッケージを作成します。
コンテキスト B の「存在しないオブジェクト」には、存在しないオブジェクトは表示されません。
使用例 2
コンテキスト A で部品 1 と部品 2 の 2 つの部品を作成します。
コンテキスト B で部品 3 を作成します。
コンテキスト A から、部品 1 の子として部品 2 を追加し、部品 2 の代用部品として部品 3 を作成します。
必要に応じて部品をチェックインします。
コンテキスト A のレプリケーションパッケージを作成します。
コンテキスト A の「存在しないオブジェクト」タブに、部品 2 <-> 部品 3 間の関連が示されます (この関連は WTPartSubstituteLink によるものです)。
コンテキスト B のレプリケーションパッケージを作成します。
コンテキスト B の「存在しないオブジェクト」には、存在しないオブジェクトは表示されません。
* 
以下のリンクは子だけのリンクなので、これらのリンクの子が別のコンテキストにあり、親コンテキストにレプリケーションパッケージが作成された場合にのみ、存在しないオブジェクトが報告されます。
WTPartUsageLink
WTDocumentUsageLink
EPMMemberLink
代替リンクにおける存在しないオブジェクトの処理
使用例 1
コンテキスト A で部品 1 を作成します。
コンテキスト B で部品 2 と部品 3 の 2 つの部品を作成します。
コンテキスト A から、部品 1 の子として部品 2 を追加し、部品 2 の代替部品として部品 3 を作成します。
必要に応じて部品をチェックインします。
コンテキスト A のレプリケーションパッケージを作成します。
コンテキスト A の「存在しないオブジェクト」タブに、部品 1 <-> 部品 2 間の関連が示されます (この関連は WTPartUsageLink によるものです)。
コンテキスト B のレプリケーションパッケージを作成します。
コンテキスト B の「存在しないオブジェクト」には、存在しないオブジェクトは表示されません。
使用例 2
コンテキスト A で部品 1 と部品 2 の 2 つの部品を作成します。
コンテキスト B で部品 3 を作成します。
コンテキスト A から、部品 1 の子として部品 2 を追加し、部品 B の代替部品として部品 3 を作成します。
必要に応じて部品をチェックインします。
コンテキスト A のレプリケーションパッケージを作成します。
コンテキスト A の「存在しないオブジェクト」タブに、部品 2 <-> 部品 3 間の関連が示されます (この関連は WTPartAlternateLink によるものです)。
コンテキスト B のレプリケーションパッケージを作成します。
コンテキスト A の「存在しないオブジェクト」タブに、部品 3 <-> 部品 2 間の関連が示されます (この関連は WTPartAlternateLink によるものです)。