0

現在、ベースラインが異なる 2 つのモジュール間のリンク処理に問題があります。

例: モジュール A には 10 のベースラインがあり、モジュール B には 10 のベースラインがあります。リンクは、A => B からのリンクです。モジュール A の最後のベースラインは、モジュール B の最後のベースラインの 1 か月後に行われました。その間に、モジュール B のオブジェクトがさらに作成され、モジュール A からそれらにリンクされました。

そのため、モジュール A の最後のベースラインに、モジュール B の最後のベースラインには存在しないモジュール B のオブジェクトにリンクするリンクがいくつかあります (最後のベースライン ++ にのみ存在します)。

リンクされたすべてのオブジェクトを取得するために DXL スクリプトを実行すると、最後のベースラインには存在しないにもかかわらず、これらの存在しないオブジェクトの ID も取得します。両方のモジュールを開き、load(module,baseline,false) 関数を使用して最後のベースラインを読み込みます。ベースラインの名前は機能し、私のデバッグは、私が実際に最新のベースラインで作業していることを示しています。しかし、どういうわけか、これらの存在しないオブジェクトは、リンクのためにリストされています。エコー リンクについて読んだことがありますが、うまくいきません。

可能な解決策は、モジュール A のベースラインの日付を取得し、それをリンクされたオブジェクトの作成日と比較することです。しかし、もっと簡単でクリーンな方法があるはずです...何かアイデアはありますか?

4

1 に答える 1

0

ご質問に対する直接的な回答ができず申し訳ありません。あなたが提示したように、2つのモジュール(AとB)の間でスクリプトを試しました。オブジェクトをリンクし、新しいベースラインを作成し、リンクされたオブジェクトをさらにいくつか追加しました。

次のスクリプトを実行すると、提示された問題が発生しません。新たな発想のきっかけになれば幸いです。基本的に、モジュール B のベースラインを開き、インリンクをカウントします。新しいオブジェクト (現在のバージョンで見つけたもの) は、この数に含まれていません。

Module modB = read("/Testmappe/ModuleB", false)
Module baselineModuleB
Object objB
Link l
string linkModName = "*"
int countLinks = 0

  // baseline(MAJ, MIN, SUFFIX)
Baseline myBaseline = baseline(0, 1, "")

if(baselineExists(modB, myBaseline))
{
  baselineModuleB = load(modB, myBaseline, false)

  for objB in baselineModuleB Module do {
    for l in all(objB<-linkModName) do {
    countLinks++
    }
  }
  print "Number of in-links are: " countLinks ""
}
于 2015-10-05T19:05:45.113 に答える