您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > erwin-API使用指南
ERPWINERPWINERPWINERPWINAPIAPIAPIAPI使用指南一、SCAPI1.定义SCAPI全称是ScriptClientAPI,是ALLFUSIONDM的一部分,可用于客制化插件开发和第三方工具。2.特点a.读取和操作模型数据对象(ADMO)b.集合和枚举c.ConnectionPointd.丰富的错误处理信息,包含在errorSCAPI和errorERwin枚举。e.活动模型目录f.活动脚本---包括一个脚本宿主环境,并提供调用脚本和附加组件的机制;提供注册附加组件和脚本到活动脚本环境的机制。二、API组件1.SCAPI的逻辑分层�ApplicationTier�ModelDirectoryTier�SessionLayer�ModelDataTier2.ApplicationTier建立与持久装置中模型的连接,这里的持久装置包括文件和ModelManagerRepository。并且控制内存中的模型与持久装置中模型的数据交换。应用层包含以下接口:InterfaceRoleApplication是ERWINDMAPI接口的入口。包含PersistenceUnits和Sessions两个重要属性。ApplicationEnvironment提供运行期环境信息ApplicationServiceCollection提供一系统的应用层服务,如正向工程,反向工程,完全比较等PersistenceUnitCollection包含已知的全部PersistenceUnitPersistenceUnit代表应用程序中的持久单元,它是驻留在内存的,并且以模型集的形式组织数据。客户端能连接到持久单元操作它和它所包含的数据。ModelSetCollection持久单元所包含的模型集ModelSet持久单元中的一个模型集,如EMX或E3.ModelDirectoryTier存取和操作持久化存储装置中的目录,包括文件目录和模型管理器目录。包括以下接口:M2类Properties一组属性InterfaceRoleModelDirectoryCollection枚举所有顶层模型目录ModelDirectory模型目录ModelDirectoryUnit模型目录单元4.SessionLayer建立存取内存中模型数据的连接包括以下接口:5.ModelDataTier包括以下接口:InterfaceRoleSessionCollection活动会话Session代表一个客户端与模型间的连接。客户端建立会话,并用它打开持久单元中的模型集。一个会话只能打开模型集中的一层InterfaceRoleModelObjectCollection表示可操作对象集合。可以设置过滤规则限制某些成员不展示。ModelObject模型对象ModelPropertyCollection模型对象所包含的模型属性,也可以设置过滤规则。ModelProperty存取和操作一个模型属性。属性可以是多值的,通过键来存取。当前多值属性是用数据实现的,键用arrayindex表示。PropertyValueCollection表示属性值列表PropertyValue单一值,由数据和键组成6.存取模型数据可以通过ModelDirectoryCollection,ModelDirectory,ModelDirectoryUnit在存储装置中定位模型。可以通过PersistenceUnitCollection新建和注册一个新的模型,也可以从池中增加和删除模型。PersistenceUnit维护一个属性集,可设置应用程序用户接口的可见性,存取属性等。PersistenceUnit以链式模型集的方式组织数据,模型集又以树状结构组织,其中包含大量模型数据,且模型集对象位于最顶层。Erwin中将EMX定义为最顶层的模型集。EMX又包括二级模型级,简称EM2,它包含用户选项和用户接口数据。通过Session存取模型集,模型集中包含很多数据,如实体,属性,关系。模型集同样也包含元数据,即可能出现的应用程序对象和属性的描述,具体包括对象(实体、属性/Attribute、关系)和属性(Property),对象聚合(表述对象之间的关系,如模型拥有对象,对象拥有属性),属性关联。新的模型建立时,它会默认包含一些对象,如ModelObject,MainSubjectArea,StoredDisplay。SCAPI最初只包含以下级别的模型:NameDescription可执行动作SCD_SL_M0模型层存取模型数据,建立删除对象,设置属性SCD_SL_M1元数据层存取对象、属性的定义及7.对象标识符ERWIN中每一个对象都有一个对象标识符,它可以唯一地标识一个对象。它包含20个字节,即16个字节的GUID和32位的无符号数。8.对象标识符与TypeCodeTypeCode也是对象标识符,它们的格式必须相同。9.Collections与Automation10.范例程序ERwinSpy_Sample.vbp三、API使用详解1.建立Application对象SCAPI.ApplicationSCApp=newSCAPI.Application()2.ApplicationProperties通过下表的方法可以获得Erwin的信息2.1Application接口2.2ApplicationEnvironment接口其它元数据。建立删除用户定义属性和用户定义对象的定义。Category参数中的特征类别使用(.)定义它的特征子集。如果Category为空值,PropertyBag返回可用的特征全集。Example:publicvoidGetApplicationFeatures(SCAPI.ApplicationscApp){Console.WriteLine(showallproperty:);//取得全部应用环境属性SCAPI.PropertyBagscBag=scApp.ApplicationEnvironment.get_PropertyBag(null,null,true);PrintPropertyBag(scBag);Console.WriteLine(showallproperty:);//1.获取全部CategoriesscBag=scApp.ApplicationEnvironment.get_PropertyBag(null,Categories,true);if(scBag.get_Value(Categories).GetType().IsArray){string[]aCategories=(string[])scBag.get_Value(Categories);if(aCategories.Length0){//2.将Categories中每个类别的属性打印出来foreach(stringcategoryNameinaCategories){scBag=scApp.ApplicationEnvironment.get_PropertyBag(categoryName,null,true);Console.WriteLine(Valuesforthe+categoryName+category:);PrintPropertyBag(scBag);}}}//3.得到Api属性值Console.WriteLine(showapiversion);scBag=scApp.ApplicationEnvironment.get_PropertyBag(Application.API,APIVersion,true);PrintPropertyBag(scBag);}privatevoidPrintPropertyBag(PropertyBagscBag){if(scBag!=null){for(inti=0;iscBag.Count;i++){if(scBag.get_Value(i).GetType().IsArray){string[]values=(string[])scBag.get_Value(i);if(values.Length0){Console.WriteLine(i+)+scBag.get_Name(i)+isanarray:);foreach(stringvalueinvalues){System.Console.WriteLine(\t+value);}}}elseConsole.WriteLine(i+)+scBag.get_Name(i)+=+scBag.get_Value(i));}}}输出结果如下:showallproperty:0)Categoriesisanarray:ApplicationApplication.APIApplication.API.FeaturesApplication.PersistenceApplication.Persistence.FileSystemApplication.Persistence.ModelMart1)Title=ComputerAssociatesERwin2)Version=ERwin4.1.4BetaBuild36433)HostingApplication=Stand-alone4)MetadataVersion=V2.52ERwin5)APIVersion=SCAPIVersion4.2(ERwin4.1.4Beta)6)APIMajorVersionNumber=47)APIMinorVersionNumber=28)Undo=Motsupported9)Redo=Notsupported10)ChangeLogging=Notsupported11)OwnershipSupport=Ownershipwithcycles12)Transactions=Begin,EndandRollback13)CurrentDirectory=C:\DocumentsandSettings\user\MyDocuments\VisualStudio2005\Projects\ErwinSpy\ErwinSpy\bin\Debug14)ModelMartConnectionTypesisanarray:SQLServerVers.7.x(usingdb-lib)SQLServer2000(usingdb-lib)SybaseSystem11.9/12.0(usingct-lib)OracleVers.8.xx/9iInformixVers.9.xxshowallproperty:Valuesforthecategory:Categoriesisanarray:ApplicationApplication.APIApplication.API.FeaturesApplication.PersistenceApplication.Persistence.FileSystemApplication.Persistence.ModelMartValuesfortheApplicationcategory:0)Title=ComputerAssociatesERwin1)Version=ERwin4.1.4BetaBuild36432)HostingApplication=Stand-alone3)MetadataVersion=V2.52ERwinValuesfortheApplication.APIcategory:0)APIVersion=SCAPIVersion4.2(ERwin4.1.4Beta)1)APIMajorVersionNumber=42)APIMinorVersionNumber=2ValuesfortheApplication.API.Featurescategory:0)Undo=Motsupported1)Redo=Notsupported2)ChangeLogging=N
本文标题:erwin-API使用指南
链接地址:https://www.777doc.com/doc-3323806 .html