`
xiangel
  • 浏览: 10248 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ERWIN API使用

阅读更多
近期在使用ERWIN软件做ER图,相关的表,视图和备注(就是中文说明啦)信息在数据库(Oracle)中都有,使用reverse engineer(反向工程)将数据库中的信息导出。导出后发现逻辑模型的Entity和Attribute为英文名(数据库中的表名和字段名,为方便叙述,后面就统一使用中文名和英文名名称),原来做ERWIN模型的时候都是手工修改逻辑模型,或者用按键精灵等工具来处理,很繁琐。后来了解ERWIN软件有提供API接口来操作,经过一天的摸索和试验,终于搞定。这里将相关信息记录如下。

1、ERWIN API介绍
ERWIN的API叫SCAPI ,全称是Script Client API,是ALLFUSION DM 的一部分,可用于客制化插件开发和第三方工具。
SCAPI的逻辑分层如下:
   Application Tier
   Model Directory Tier
   Session Layer
   Model Data Tier

相关文档如下:
ERWIN安装目录下的Doc\ERwin_API_Ref.pdf,里面的介绍很全面,并有用C#和VB操作的相关代码,英文文档。
ERPWIN API 使用指南,中文文档,不过里面的示例代码看着有点乱

2、相关细节
由于导出的模型中的Definition属性中已经有中文名(从数据库中的comment导出的),这里实现只需将对应的Entity和Attribute的名字改为对应的definition中的内容即可。
我是使用的python和pywin32调COM接口来实现的
#创建COM对象
scapi = win32.Dispatch('AllFusionERwin.SCAPI')
#建立与持久装置中模型的连接
scPUnit = scapi.PersistenceUnits.Add(filename,"RDO=yes")
#建立存取内存中模型数据的连接
scSession = scapi.Sessions.Add()
scSession.Open(scPUnit,0,0)
#事务控制
scTranId = scSession.BeginTransaction()
#获取所有Entity模型对象
scMObjects = scSession.ModelObjects.Collect(scSession.ModelObjects.Root,'Entity',1)
for scObj in scMObjects:
    #取Definition属性的值
    scDefineName = scObj.Properties('Definition').Value
    #对象名赋值
    scObj.Properties('Name').Value = scDefineName 
    #获取该Entity的所有Attribute对象
    scAttrObjects = scSession.ModelObjects.Collect(scObj,'Attribute',1)
    #Attribute名的修改与上面类似
    ...
scSession.CommitTransaction(scTranId)
#另存为一个新的文件
scPUnit.Save(newfilename,'OVF=yes')
1
0
分享到:
评论
1 楼 chuqianghuang 2013-03-30  
能发你的PYTHON代码来参考下吗?

我现在的代码,总是报ERWIN API版本不符的错误,都不知道怎么搞的

相关推荐

    ERWIN-API使用指南

    ERWIN-API使用指南

    ERwin-API使用指南.pdf

    ERwin-API使用指南.pdf

    erwin API Reference Guide v7.3

    erwin API Reference Guide v7.3 英文版

    ERwin方法指南中文版

    关于ERwin4.0的使用方法的 ! 关于ERwin4.0的使用方法的 ! 关于ERwin4.0的使用方法的 ! 关于ERwin4.0的使用方法的 !

    ERwin学习资料打包

    ERwin-API使用指南.doc ERwin-IDEF1X4.ppt ERwin操作手册.doc ERwin方法论.doc ERwin教程.ppt ERwin快速入门.txt 使用ERwin进行MYsql数据库设计.doc 使用ERwin设计数据库.txt 数据库建模.ppt ERwin_Methods.pdf

    ETLAssitant总体设计说明书

    ETLAssitant总体设计说明书,使用ERWIN 的API读取元数据,自动生成EXCEL形式的SDM文档,并由SDM 文档生成ETL脚本.

    Datablau DDM 5.5 数据建模工具

    Datablau DDM是新一代数据模型管理工具,由ERwin数据建模研发骨干开发团队荣誉出品。传统建模工具主要面向设计,而DDM创新的融合了数据治理理念,把数据治理推进到开发流程中,进行开发态的源头治理,解决了标准落地...

    python-imfit:Peter Erwin的Imfit的Python绑定

    Pyhton-Imfit python-imfit是一个python包,其中包含Imfit的绑定,Imfit是由Peter Erwin < >开发的用于拟合天文图像的程序。 该软件包取决于的,该公开了其内部API。 请访问的网页以获取最新版本和文档。

    spring chm文档

    Erwin Vervaet Portia Tung Ben Hale Adrian Colyer John Lewis Costin Leau Rick Evans 2.0 Copies of this document may be made for your own use and for distribution to others, provided that you do...

    数据库设计工具.docx

    BDB提供诸如C语言,C++,Java,Perl,Python,Tcl等多种编程语言的API,而且普遍支持大多数类Unix操作系统和Windows操作系统和实时操作系统(如 VxWorks)。 数据库设计工具全文共4页,当前为第2页。 BDB的要紧功能...

    MaterialsDiscovery

    材料发现========== MaterialsDiscovery 是由材料科学与工程本科生 Scott Biesboer、Brian Cabinian、Andrew Erwin 和 Hongyi Michael Wu 在伊利诺伊大学香槟分校 Andre Schleife 和 Moonsub Shim 教授的指导下编写...

    devops-backend

    前端使用REST API GET,POST,PUT,DELETE请求与后端服务器进行通信。 该后端服务器将成为我们如何构建Ci / CD管道并在云基础架构中实现的一个很好的例子。 在云端实施 我将使用Google Cloud基础架构实施此项目。 ...

    2019-scalingattack:图像缩放攻击和防御

    图像缩放攻击与防御该存储库属于我们的出版物: Erwin Quiring,David Klein,Daniel Arp,Martin Johns和Konrad Rieck。对抗预处理:了解和防止机器学习中的图像缩放攻击。程序。 2020年USENIX安全研讨会。背景有关...

    XML Editor/Validator/Designer with CAMV-开源

    是否执行SQL数据导入/映射+开放数据API传递+HibernateJPA + UI表单/铅笔制作XSD模式(默认,展平,NIEM和OASIS模式)+ JAXB绑定; Mindmap FreeMind或UML模型(XMI); XML单元测试和实时SQL数据; HTML文档+电子...

Global site tag (gtag.js) - Google Analytics