




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PKUsoft2010ERPWIN API函数大全键入文档副标题zuojw键入公司地址SCAPI1 定义 SCAPI 全称是Script Client API,是ALLFUSION DM 的一部分,可用于客制化插件开发和第三方工具。2 特点a. 读取和操作模型数据对象(ADMO)b. 集合和枚举c. Connection Pointd. 丰富的错误处理信息,包含在errorSCAPI和errorERwin枚举。e. 活动模型目录f. 活动脚本 - 包括一个脚本宿主环境,并提供调用脚本和附加组件的机制;提供注册附加组件和脚本到活动脚本环境的机制。API 组件3 SCAPI 的逻辑分层l Application Tierl Model Directory Tierl Session Layerl Model Data Tier4 Application Tier建立与持久装置中模型的连接,这里的持久装置包括文件和Model Manager Repository。并且控制内存中的模型与持久装置中模型的数据交换。应用层包含以下接口:InterfaceRoleApplication是ERWIN DM API接口的入口。包含PersistenceUnits 和Sessions两个重要属性。ApplicationEnvironment提供运行期环境信息ApplicationServiceCollection提供一系统的应用层服务,如正向工程,反向工程,完全比较等PersistenceUnitCollection包含已知的全部PersistenceUnitPersistenceUnit代表应用程序中的持久单元,它是驻留在内存的,并且以模型集的形式组织数据。客户端能连接到持久单元操作它和它所包含的数据。ModelSetCollection持久单元所包含的模型集ModelSet持久单元中的一个模型集,如EMX或EM2类Properties一组属性5 Model Directory Tier存取和操作持久化存储装置中的目录,包括文件目录和模型管理器目录。包括以下接口:InterfaceRoleModelDirectoryCollection枚举所有顶层模型目录ModelDirectory模型目录ModelDirectoryUnit模型目录单元6 Session Layer建立存取内存中模型数据的连接包括以下接口:InterfaceRoleSessionCollection活动会话Session代表一个客户端与模型间的连接。客户端建立会话,并用它打开持久单元中的模型集。一个会话只能打开模型集中的一层7 Model Data Tier包括以下接口:InterfaceRoleModelObjectCollection表示可操作对象集合。可以设置过滤规则限制某些成员不展示。ModelObject模型对象ModelPropertyCollection模型对象所包含的模型属性,也可以设置过滤规则。ModelProperty存取和操作一个模型属性。属性可以是多值的,通过键来存取。当前多值属性是用数据实现的,键用array index表示。PropertyValueCollection表示属性值列表PropertyValue单一值,由数据和键组成8 存取模型数据可以通过Model Directory Collection, Model Directory, Model Directory Unit在存储装置中定位模型。可以通过Persistence Unit Collection新建和注册一个新的模型,也可以从池中增加和删除模型。Persistence Unit 维护一个属性集,可设置应用程序用户接口的可见性,存取属性等。Persistence Unit以链式模型集的方式组织数据,模型集又以树状结构组织,其中包含大量模型数据,且模型集对象位于最顶层。Erwin中将EMX定义为最顶层的模型集。EMX又包括二级模型级,简称EM2,它包含用户选项和用户接口数据。通过Session存取模型集,模型集中包含很多数据,如实体,属性,关系。模型集同样也包含元数据,即可能出现的应用程序对象和属性的描述,具体包括对象(实体、属性/Attribute、关系)和属性(Property),对象聚合(表述对象之间的关系,如模型拥有对象,对象拥有属性),属性关联。新的模型建立时,它会默认包含一些对象,如Model Object, Main Subject Area, Stored Display。SCAPI最初只包含以下级别的模型:NameDescription可执行动作SCD_SL_M0模型层存取模型数据,建立删除对象,设置属性SCD_SL_M1元数据层存取对象、属性的定义及其它元数据。建立删除用户定义属性和用户定义对象的定义。9 对象标识符ERWIN中每一个对象都有一个对象标识符,它可以唯一地标识一个对象。它包含20个字节,即16个字节的GUID和32位的无符号数。10 对象标识符与TypeCodeTypeCode也是对象标识符,它们的格式必须相同。11 Collections 与 Automation12 范例程序 ERwinSpy_Sample.vbpAPI使用详解1建立Application对象SCAPI. Application SCApp=new SCAPI. Application ()2Application Properties通过下表的方法可以获得Erwin的信息 2.1 Application接口 2.2 ApplicationEnvironment 接口Category参数中的特征类别使用 (.)定义它的特征子集。如果Category为空值,PropertyBag返回可用的特征全集。Example:public void GetApplicationFeatures(SCAPI.Application scApp) Console.WriteLine(show all property:); / 取得全部应用环境属性 SCAPI.PropertyBag scBag = scApp.ApplicationEnvironment.get_PropertyBag(null, null, true); PrintPropertyBag(scBag); Console.WriteLine(show all property:); / 1.获取全部Categories scBag = scApp.ApplicationEnvironment.get_PropertyBag(null, Categories, true); if (scBag.get_Value(Categories).GetType().IsArray) string aCategories = (string)scBag.get_Value(Categories); if (aCategories.Length 0) / 2.将Categories中每个类别的属性打印出来 foreach (string categoryName in aCategories) scBag = scApp.ApplicationEnvironment.get_PropertyBag(categoryName, null, true); Console.WriteLine(Values for the + categoryName + category:); PrintPropertyBag(scBag); / 3. 得到Api属性值 Console.WriteLine(show api version); scBag = scApp.ApplicationEnvironment.get_PropertyBag(Application.API, API Version, true); PrintPropertyBag(scBag); private void PrintPropertyBag(PropertyBag scBag) if (scBag != null) for (int i = 0; i 0) Console.WriteLine(i + ) + scBag.get_Name(i) + is an array:); foreach (string value in values) System.Console.WriteLine(t + value); else Console.WriteLine(i + ) + scBag.get_Name(i) + = + scBag.get_Value(i); 输出结果如下:show all property:0)Categories is an array:ApplicationApplication.APIApplication.API.FeaturesApplication.PersistenceApplication.Persistence.FileSystemApplication.Persistence.ModelMart1)Title = Computer Associates ERwin2)Version = ERwin 4.1.4 Beta Build 36433)Hosting Application = Stand-alone4)Metadata Version = V2.52 ERwin5)API Version = SCAPI Version 4.2 (ERwin 4.1.4 Beta)6)API Major Version Number = 47)API Minor Version Number = 28)Undo = Mot supported9)Redo = Not supported10)Change Logging = Not supported11)Ownership Support = Ownership with cycles12)Transactions = Begin, End and Rollback13)Current Directory = C:Documents and SettingsuserMy DocumentsVisual Studio 2005ProjectsErwinSpyErwinSpybinDebug14)Model Mart Connection Types is an array:SQL Server Vers. 7.x (using db-lib)SQL Server 2000 (using db-lib)Sybase System 11.9/12.0 (using ct-lib)Oracle Vers. 8.xx/9iInformix Vers. 9.xxshow all property:Values for the category:Categories is an array:ApplicationApplication.APIApplication.API.FeaturesApplication.PersistenceApplication.Persistence.FileSystemApplication.Persistence.ModelMartValues for the Application category:0)Title = Computer Associates ERwin1)Version = ERwin 4.1.4 Beta Build 36432)Hosting Application = Stand-alone3)Metadata Version = V2.52 ERwinValues for the Application.API category:0)API Version = SCAPI Version 4.2 (ERwin 4.1.4 Beta)1)API Major Version Number = 42)API Minor Version Number = 2Values for the Application.API.Features category:0)Undo = Mot supported1)Redo = Not supported2)Change Logging = Not supported3)Ownership Support = Ownership with cycles4)Transactions = Begin, End and RollbackValues for the Application.Persistence category:Values for the Application.Persistence.FileSystem category:0)Current Directory = C:Documents and SettingsuserMy DocumentsVisual Studio 2005ProjectsErwinSpyErwinSpybinDebugValues for the Application.Persistence.ModelMart category:0)Model Mart Connection Types is an array:SQL Server Vers. 7.x (using db-lib)SQL Server 2000 (using db-lib)Sybase System 11.9/12.0 (using ct-lib)Oracle Vers. 8.xx/9iInformix Vers. 9.xxshow api version0)API Version = SCAPI Version 4.2 (ERwin 4.1.4 Beta)3读取模型信息SCAPI 客户端通过持久化单元池存取模型中的信息。3.1 附加工具中使用ISAPIAPI 客户端以DLL的形式附加在ERWIN的Add In菜单中。311 Application Interface312 PersistenceUnitCollection Interface313 PersistenceUnit Interface314 PersistenceUnit中的PropertyBag成员315 PropertyBag Interface同ApplicationEnviroment.PropertyBag的使用方法。316 Example Programpublic void ShowPUPropertyBag() PersistenceUnit scPUnit = OpenModel(E:DW-Home0400逻辑数据模型详细设计SPDB-EDW-LDM.ER1); if (scPUnit != null) PropertyBag pb = scPUnit.get_PropertyBag(Locator;Model Type, true); Console.WriteLine(Locator=+pb.get_Value(Locator); Console.WriteLine(Model Type= + pb.get_Value(Model Type); 输出:Locator=erwin:/E:DW-Home0400逻辑数据模型详细设计SPDB-EDW-LDM.ER1Model Type=ERwin Logical Physical Model32 独立应用程序中使用API即在ERWIN以外建立一个进程,与ERWIN不能共享数据,Application初始建立时PersistenceUnits是空集,要得到有效的PersistenceUnit,要么建立一个新的模型,要么打开已经存在的模型。321 建立PropertyBag实例接口方法:322 新建PersistenceUnit实例323 Example (新建一个PersistenceUnit 实例)public SCAPI.PersistenceUnit CreateNewModel() SCAPI.PersistenceUnits scPersistenceUnitCol; scPersistenceUnitCol = DmApp.PersistenceUnits; SCAPI.PropertyBag bag = new PropertyBag(); /bag.Add(Name,TestModel); bag.Add(Model Type, 1); return scPersistenceUnitCol.Create(bag, null); 33 打开已经存在的模型文件331 PersistenceUnitCollection 接口l Example (打开模型文件)public SCAPI.PersistenceUnit OpenModel(string fileName) SCAPI.PersistenceUnits scPersistenceUnitCol; scPersistenceUnitCol = DmApp.PersistenceUnits; return scPersistenceUnitCol.Add(fileName, RDO=Yes); 332 打开一个Sessionl SessionCollection 接口l Session 接口l SamplescPUnit = OpenModel(E:DW-Home0400逻辑数据模型详细设计SPDB-EDW-LDM.ER1); scSession.Open(scPUnit, SC_SessionLevel.SCD_SL_M0, SC_SessionFlags.SCD_SF_NONE); if (scSession.IsOpen() 3 4 存取模型对象l Session接口l ModelObjectCollection接口l 模型对象接口ClassName包含Entity,Property,RelationShipl Example(返回模型中全部对象的ObjectId,Name,ClassName)public List GetAllModelObjectName() List result = new List(); SCAPI.PersistenceUnit scPUnit; SCAPI.ModelObjects scMObjects; / new session SCAPI.Sessions scSessionCol = DmApp.Sessions; SCAPI.Session scSession = scSessionCol.Add(); scPUnit = OpenModel(E:DW-Home0400逻辑数据模型详细设计SPDB-EDW-LDM.ER1); scSession.Open(scPUnit, SC_SessionLevel.SCD_SL_M0, SC_SessionFlags.SCD_SF_NONE); if (scSession.IsOpen() scMObjects = scSession.ModelObjects; foreach (ModelObject scObj in scMObjects) result.Add(scObj.ObjectId + , + scObj.Name + , + scObj.ClassName); scSession = null; return result; 3 5 存取指定的模型对象l ModelObjectCollection接口l Sample (根据ObjectId查找模型对象)ObjectId = A2713E92-40F7-48CC-8BC7-6EF3EB74975B+00000000; scMObjects = scSession.ModelObjects.Collect(ObjectId, null, null, null, null);3 6 筛选对象集合可以通过ModelObjectCollection的Collect方法建立模型对象的子集。该方法包含的五个参数都是可选项的。l Sample 1(按ClassName过滤)scMObjects = scSession.ModelObjects.Collect(scSession.ModelObjects.Root, “Entity”, 1 , null, null);l Sample 2(按ClassId过滤)scMObjects = scSession.ModelObjects.Collect(scSession.ModelObjects.Root, “A2713E92-40F7-48CC-8BC7-6EF3EB74975B+00000000”, null, null, null);37 存取对象的属性3.7.1 属性遍历l ModelObject 接口l ModelPropertyCollection 接口l ModelPropertyl Samplepublic List IterateObjectProperties(string objName) ModelProperties scObjProperties; List result = new List(); SCAPI.PersistenceUnit scPUnit; / new session SCAPI.Sessions scSessionCol = DmApp.Sessions; SCAPI.Session scSession = scSessionCol.Add(); scPUnit = OpenModel(E:DW-Home0400逻辑数据模型详细设计SPDB-EDW-LDM.ER1); scSession.Open(scPUnit, SC_SessionLevel.SCD_SL_M0, SC_SessionFlags.SCD_SF_NONE); ModelObject scObj; if (scSession.IsOpen() if (null=objName ) scObj = scSession.ModelObjects.Root; else scObj = GetModelObject(scSession, objName); if (scObj != null) scObjProperties = scObj.Properties; result.Add(scObj.Name + : + scObj.ClassName); foreach (ModelProperty scObjProperty in scObjProperties) if (scObjProperty.Count + scObjProperty.ClassName + ( + scObjProperty.FormatAsString() + ); else result.Add(- + scObjProperty.ClassName + + scObjProperty.Count + ); for (int i = 0; i + scObjProperty.get_Value(i, SCAPI.SC_ValueTypes.SCVT_BSTR); return result; 3.8 存取向量与非向量属性值l ModelProperty 接口3.9 存取指定的属性l PropertyValueCollection 接口l ExampleString propName= “Note”;ModelProperty prop=scObj. PropertiespropName;Console.WiretLine(“Note=”+ prop. FormatAsString();3.10 过滤属性l ModelObject 接口 l Sample /返回全部向量属性ModelPropertyCollection scMpc = scObj.CollectProperties(, SC_ModelPropertyFlags.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 作业安全操作风险评估方案
- 农业智能化管理技术研究
- CAD三维建模设计手册方案报告规划
- 工业废气治理方案
- 2025中国邮政储蓄银行威海市分行招聘4人笔试备考试题及答案解析
- 企业人才战略规划和执行策略
- 职业装面料剪裁手册
- 2025云南省红河州屏边县人民法院招聘聘用制书记员和司法警务辅助人员(2人)考试含答案
- 学校教研活动规定forIndexPath方式
- 榨汁机维修细则手册
- 萨克斯课件教学课件
- GPR39mRNA在糖尿病大鼠组织中的表达特征及关联机制研究
- 2025年专升本艺术概论考试模拟卷(艺术史论重点与艺术史研究方法探讨试题)
- 幼儿园健康预防蚊虫叮咬
- 钻石画教学课件
- 中学生健康卫生课件
- 2025年行政执法人员取得行政执法证件考试题库附答案
- 三级安全教育培训试题(含答案)
- 绿城好房子建设的理念与实践
- DB6501∕T 035-2022 乌鲁木齐市海绵城市建设标准图集
- 【课件】有理数的概念+课件+2025-2026学年人教版数学七年级上册
评论
0/150
提交评论