以编程方式在EA中导入基线

时间:2017-11-22 05:14:31

标签: c# enterprise-architect

对于我需要将包与另一个模型包进行比较,我需要在EA中将一个基线从一个模型导入另一个模型。我知道EA没有为导入基线提供任何直接API调用。

尝试使用*DoBaselineCompare*,但它不起作用。

所以我使用下面的代码从一个包中导出基线

Byte[] byteBLOBData = new Byte[0];
byteBLOBData = Convert.FromBase64String(sValues);
Stream data = new MemoryStream(byteBLOBData);
Stream otherData = new MemoryStream();
ZipArchive archive = new ZipArchive(data);
foreach (ZipArchiveEntry entry in archive.Entries)
{
  if (entry.Name == "str.dat")
  {
    otherData = entry.Open();
  }
}
MemoryStream ms = new MemoryStream();
otherData.CopyTo(ms);
byte[] bytesInStream = ms.ToArray(); // simpler way of converting to array
XmlDocument doc = new XmlDocument();
string sss = Encoding.Unicode.GetString(bytesInStream);
doc.LoadXml(sss);
doc.Save(@"C:\ExportedBaseline.xml");

它在给定路径中成功导出。 我只是尝试在包中手动导入基线以检查它是否有效,并且它的工作正常。现在我需要以编程方式执行此操作。

  • 如何从导出的基线文件创建blob数据?
  • 如果创建了blob数据,我将在t_document表中创建一个新值,并将该blob内容插入 BinContent 属性。

我尝试从BinContent列插入一行新的现有blob数据。它已插入并显示在Baselines屏幕中 - 但无法从插入的基线恢复或导入\ export

任何人都可以建议一种以编程方式将基线导入包的方法。

0 个答案:

没有答案