我们正在对 EA 存储库中的数据进行一些自定义报告 - 即我们直接从存储库数据库中获取数据。问题是,我们还需要将绑定(bind)到指定元素的图表导出到单独的文件中——我正在试验使用 Java API 来做到这一点。我想知道我是否可以使用 api 连接到当前运行的 EA 实例,或者我是否需要启动一个新实例(这会显着降低速度)。
或者还有其他方法可以实现该目标吗?我是 EA 自动化界面的新手,所以我很感激任何提示。
最佳答案
似乎可以使用 JACOB 和这个 hack:
Java:
import java.lang.reflect.Constructor;
import org.sparx.App;
import com.jacob.activeX.ActiveXComponent;
public class TestJava {
public static void main(String[] args) throws Exception {
ActiveXComponent c=ActiveXComponent.connectToActiveInstance ("EA.App");
Constructor<?> appConstructor=Class.forName("org.sparx.App").getDeclaredConstructor(long.class);
appConstructor.setAccessible(true);
App app=(App)appConstructor.newInstance(c.m_pDispatch);
app.GetRepository().GetConnectionString();
System.out.println(app.GetRepository().GetPackageByGuid("{9C9D301B-B54D-44fb-898A-0412497D39AA}").GetName());
}
}
常规:
import org.sparx.App
import com.jacob.activeX.ActiveXComponent
ActiveXComponent c=ActiveXComponent.connectToActiveInstance ("EA.App")
println c.m_pDispatch
App app=new App(c.m_pDispatch);
println app.GetRepository().GetConnectionString()
println app.GetRepository().GetPackageByGuid("{9C9D301B-B54D-44fb-898A-0412497D39AA}").GetName()
关于java - 使用 Enterprise Architect Java API 连接到 EA 的运行实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33496081/