在进行Aras Innovator二次开发之前,需要先了解Aras的服务器架构以及相关的方法论。
了解这部分内容后,有助于我们进行二次开发。
一. 服务器架构
参考下表:
Aras Innovator为B/S架构,支持主流的浏览器(IE Edge,Firefox,Google)。
服务端和客户端通过XML\SOAP方式进行交互。
服务端包含网站服务和数据仓库(Vault)服务。
客户端代码为JS,服务端代码为C#或VB。
二次开发的API,主要通过与Innovator Object Model(简称为IOM)的交互来完成,,在系统中为IOM.dll。
我们通过与IOM进行交互,实现数据的增删改查。IOM 既可以从客户端(使用 JavaScript)访问,也可以从服务端(使用 C# 或VB.NET)并使用相同的方法调用(除了少数例外)。因此,IOM的API,在客户端和服务端调用的代码类似。
服务端的IOM.dll也可以通过在外部程序中引用,此处后续再进行详细说明。
注:客户端(Innovator\Client\bin\IOM.dll)和服务端(路径为\Innovator\Server\bin\IOM.dll)的IOM.dll是不同的。
通常情况下,Aras Innovator直接在系统中进行开发(Administration->Method中),方法书写验证完成后,将其嵌入到对应的事件中,即可触发对应的方法。
二.方法论
- Aras Innovator中,所有的数据都为Item,即对象;
- AML语言是用来描述对象的语言,AML为Aras Markup Language的缩写,是一种特殊的XML;
- AML语言可以传递和接收服务器信息;
- IOM可以创建AML语言;
- 我们通过API,书写方法,组合AML,然后通过AML与服务器进行交互。
- AML 样例如下(Item前后加上AML标记,即为AML语句):该AML,业务主体是"My Part"对象类,操作为新增,并且设置了对象的属性值,且添加一个关系类和关联对象。对应的IOM代码为:
三.Nash页面
nash页面的路径为http://localhost/InnovatorServer(此处为网站名)/client/scripts/nash.aspx,如下图:
在该页面输入用户名,密码,选择数据库,登录以后,Action处选择ApplyAML,可以直接提交AML语句。
注:前面提到的Package Export/Import,Export工具即为将系统配置导出为AML语句,然后由Import工具,通过ApplyAML方式将对应的配置进行导入。
附上两个AML样例(文章开头可下载),该AML在nash页面执行后,可以在系统中生成My Part对象类,并为此对象添加一个My BOM关系类,后续的二次开发以此对象类为基础,进行各种操作。