2

私は現在、EA Script - JScript を使用して XMI を Enterprise Architect にインポートするプロセスを自動化しています。既存のパッケージ GUID、名前、パッケージへのパス、パッケージの作成から定義を取得できました。

Sparx の参照 API は、ここにあります。

これが私の現在のコードです

guid = "{3EC70CB6-28A1-40ed-ADD5-4B3AF5D89EED}"
Session.Output("GUID = " + guid);
Session.Output("GUID XML = " + project.GUIDtoXML(guid));
Session.Output("XMI file = " + svnPath + xmlPath);
result = project.ImportPackageXMI(project.GUIDtoXML(guid), svnPath + xmlPath, 1, 1);
Session.Output(result);

次の出力は、API の呼び出し中に「不明なパッケージ」が表示されたことを示しています。

GUID = {3EC70CB6-28A1-40ed-ADD5-4B3AF5D89EED}   
GUID XML = EAID_3EC70CB6_28A1_40ed_ADD5_4B3AF5D89EED    
XMI file = D:\svn.xxx.com\yyy\docs\design\technical\class\Administration\SystemParameter.xml    
Unknown package: EAID_3EC70CB6_28A1_40ed_ADD5_4B3AF5D89EED  

解決策をグーグルで調べましたが、グーグルは約17の結果しか表示しません。google code のプロジェクト Vienna は、ほんの少ししか役に立ちません。

それで、誰も使い方を知っていますImportPackageXMIか?

4

1 に答える 1

2

投稿された情報からはわかりませんが、あるプロジェクトからパッケージをエクスポートして別のプロジェクトにインポートしようとしている可能性はありますか?

EA に StripGUID を指示するかどうかに関係なく、XMI をインポートするパッケージプロジェクト内に存在する必要があり、それが PackageGUID によって指定されます。

StripGUID 1XMI ファイルに含まれるパッケージの完全なコピーが PackageGUID パッケージに配置されることを意味します。XMI ファイル内のすべてのパッケージ、要素などに対して、新しい GUID が作成されます。古いバージョンの EA では、これがパッケージのディープ コピーを作成する唯一の方法でした (パッケージをクリップボードにコピー)。

StripGUID 0いくつかの異なる結果が得られます。

  • XMI パッケージの GUID が PackageGUID と同じ場合、PackageGUID パッケージの現在の内容は XMI の内容に置き換えられます。
  • GUID が異なる場合:
    • XMI パッケージ GUID がプロジェクトに存在しない場合、XMI パッケージは PackageGUID パッケージ内に配置されます。
    • XMI パッケージの GUID が存在する場合、インポートは失敗します (競合するパッケージ)。

4 つのケースすべてで、PackageGUID パッケージが既に存在している必要があります。

于 2013-07-31T12:45:01.397 に答える