你的位置:首页 > 产品 > 产品生命周期管理 > 文档查看
开放PLM——Aras Innovator编程学习
一、ARAS基本理念 Everything in Aras Innovator is an Item. 1. 单元(Item),系统基本单元,某种类型(单元类型,ItemType,该类型也是Item)的实例。 2. 关系(Relationship),由关系类型(RelationType)定义.定义关系类型需要三个属性(Property):

不详

一、ARAS基本理念
Everything in Aras Innovator is an Item.
1. 单元(Item),系统基本单元,某种类型(单元类型,ItemType,该类型也是Item)的实例。
2. 关系(Relationship),由关系类型(RelationType)定义.定义关系类型需要三个属性(Property):

源(父)单元source(parent)item
被关联(子)单元related(child)item
关系单元Relationship Item
      当您创建RelationshipType时,您还会创建一个与RelationshipType具有相同名称的'is_relationship'的ItemType。它的id是RelationshipType上的relationship_id属性的值。这可能会让人有些困惑,但简单地说就是有一个RelationshipType / ItemType对,来定义RelationshipType规则和一个ItemType来存储关系Items。
      Relationship Item有一个related_id项目类型的属性,它是关系的related item。 related_id属性是指向一个Item的链接。Relationship Item也有一个source_id类型为Item的属性,并且是source(parent) item。
      例如,ItemType Item具有Property Relationship,并且此Item配置直接映射到关系数据库以持久存储Item实例。每个ItemType都有一个匹配的关系表TABLE,其中属性名称是COLUMN名称。
二、AML(Aras Markup Languange)
通过XML语言配置Item。一个AML文档包括数据(items)、结构(Relationship),和逻辑(Item可执行业务逻辑,即action)组成。AML文档中的每一个Item都有一个action属性,该属性是在该Item上可执行的业务逻辑的Aras Innovator Method的名称。Aras服务器已类似于脚本语言的方式解释AML文档,或称为AML脚本。

客户端通过HTTP协议将AML脚本提交给服务器,服务器解析AML,然后应用其中action描述的业务逻辑,并返回AML文档。

AML文档示例:

<Item type="Part" action="add">
    <item_number>999-888</item_number>
    <description>Some Assy</description>
    <Relationships>
         <Item type="Part BOM" action="add">
           <quantity>10</quantity>
           <related_id>
              <Item type="Part" action="add">
                 <item_number>123-456</item_number>
                 <description>1/4w 10% 10K Resistor</description>
              </Item>
           </related_id>
         </Item>
    </Relationships>
</Item>
三、Methods 和 IOM
IOM即单元对象模型(Item Object Model)是建立在AML之上的对象模型。它使用简单的API提供了构建和向Innovator服务器提交AML文档的能力。

有一种单元类型——Method,用来实现用户定义的业务逻辑。方法可以用JavaScript、C#、VB.Net或IOM API来定义。

示例:

var innovator = new Innovator();
var partItem = innovator.newItem("Part","add");
partItem.setProperty("item_number", "999-888");
partItem.setProperty("description", "Some Assy");
var bomItem = innovator.newItem("Part BOM","add");
bomItem.setProperty("quantity", "10");
var relatedItem = new Item("Part","add");
relatedItem.setProperty("item_number", "123-456");
relatedItem.setProperty("description", "1/4w 10% 10K Resistor");
bomItem.setRelatedItem(relatedItem);

partItem.addRelationship(bomItem) ;

四、AML脚本组成

一、基本Tag

1.  <Item> Tag

定义了Item实例,有三个基本的属性来定义一个item实例,大小写敏感。

id  - 每个Item实例的唯一标识
type - 该Item的类型名
action - 针对该类型的业务逻辑方法的名称(有一些预定义的action)
<Item type="Part" id="ACBDEF0123456789…" action="get"/>
2.  <RelationShips> Tag

定义和其他Item的关系,是一个包含多个关系item的集合tag,该tag没有属性。下例子定义了一个零件Item和他的BOM关系:

<Item type="Part" id="ACBDEF0123456789…" action="get">
     <Relationships>
      <Item type="BOM" action="get"/>
     </Relationships>
</Item>

3. <property> Tag

Item的属性是<Item>标签正下方的嵌套标签。属性的名称即是tag的名。如一个Part的对象可能有编号、描述、花费等属性,也就是其下的标签名,全是小写。

属性值始终使用与地域和语言环境无关的格式。正式和浮点数使用小数点作为分隔符没有类似千的逗号分隔符。短划线表示负数,日期和实践均为YYYY-MM-DD[Thh:mm:ss]格式,并带拾取。定于语言的值,用xml:lang属性指定的语言代码。

<Item type="Part">
   <item_number>292-102</item_number>
   <i18n:name xml:lang="de" xmlns:i18n="http://www.aras.com/I18N">Rad</i18n:name>
   <i18n:name xml:lang="en" xmlns:i18n="http://www.aras.com/I18N">Wheel</i18n:name>
   <cost>232.13</cost>
   <created_on>2008-08-24T08:12:02</created_on>
</Item>

二、属性(Attribute)
Properties用来定义Item的数据,Attributes是Item或者Property的元数据(meta-data)。他们用来控制服务器的逻辑和方法,可以将attribute想象为命令的选项或函数的参数。

除了id、type、action等提到过的属性外还有一些其他属性。以下是Item的attributes