2013-07-31 5 views
2

В настоящее время я автоматизирую процесс импорта XMI в Enterprise Architect с помощью EA Script - JScript. Мне удалось получить определения из существующих пакетов GUID, Name, путь к пакету, создать пакет.Enterprise Architect Script: using ImportPackageXMI

Ссылка API от Sparx можно найти here

Вот мой текущий код

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 

Я googled для решения, но google показывает только 17 результатов. Проект Vienna в коде Google помогает немного.

Итак, кто-нибудь знает, как использовать ImportPackageXMI?

ответ

2

Не могу сказать из информации, которую вы опубликовали, но возможно ли, что вы пытаетесь экспортировать пакет из одного проекта и импортировать его в другой?

Независимо от того, указываете ли вы EA на StripGUID, пакет, который вы импортируете XMI в, должен существовать в проекте, и это указывает PackageGUID.

StripGUID 1 означает, что полная упаковка пакета, содержащегося в файле XMI, помещается в пакет PackageGUID. Новые GUID создаются для всех пакетов, элементов и т. Д. В файле XMI. В более старых версиях EA это был единственный способ сделать глубокую копию пакета (Copy Package to Clipboard).

StripGUID 0 дает несколько разных результатов.

  • Если пакет XMI имеет тот же идентификатор GUID, что и PackageGUID, текущее содержимое пакета PackageGUID заменяется содержимым XMI.
  • Если идентификаторы GUID различны:
    • Если пакет XMI GUID не существует в проекте, пакет XMI помещается внутри упаковки PackageGUID.
    • Если GUID пакета XMI существует, импорт невозможен (конфликтующие пакеты).

Во всех четырех случаях пакет PackageGUID должен уже существовать.

+0

Правильно, вы получите мою мысль! У меня есть экспортированные XMI, созданные из EAP, и пытаются загрузить их в другой EAP. Позвольте мне попытаться создать пакет с GUID, и я опубликую результат здесь позже. Спасибо – David

+0

Хорошо, отлично работает! Таким образом, параметр PackageGUID ссылается на родительский пакет. Еще раз спасибо, Уффе! – David

 Смежные вопросы

  • Нет связанных вопросов^_^