一、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) ;
var resultItem = partItem.apply();

开放PLM——Aras Innovator编程学习(一)简介相关推荐

  1. Computer:少儿编程—每个人都应该学习编程,它能教你如何思考—编程入门的简介(编程语言的特点种类开发工具对比人类语言)、编程应用、编程意义之详细攻略

    Computer:少儿编程-每个人都应该学习编程,它能教你如何思考-编程入门的简介(编程语言的特点&种类&开发工具&对比人类语言).编程应用.编程意义之详细攻略 导读:乔布斯说 ...

  2. Python编程学习:让函数更加灵活的*args和**kwargs(设计不同数量参数的函数)的简介、使用方法、经典案例之详细攻略

    Python编程学习:让函数更加灵活的*args和**kwargs(设计不同数量参数的函数)的简介.使用方法.经典案例之详细攻略 目录 *args和**kwargs(设计不同数量的参数函数)的简介 1 ...

  3. Interview之AI:人工智能领域岗位求职面试—人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础、ML算法简介、DL算法简介)来理解技术交互流程

    Interview之AI:人工智能领域岗位求职面试-人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础.ML算法简介.DL算法简介)来理解技术交互流程 目录 一.A ...

  4. 基于SSM的青少年编程学习系统设计与实现

    摘 要:在智能技术飞速发展的今天,各国都努力争取在人工智能时代的发展中占据优势,青 少年编程教育就显得格外重要.不过,相比一些青少年编程教育发展更先进的国家,我国青少 年编程教育仍处在初级阶段,很多青 ...

  5. Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D C#: Learn To Code Making 3D Games

    Unity 3D游戏代码编程学习教程 Full Guide To Unity 3D & C#: Learn To Code Making 3D Games Full Guide To Unit ...

  6. 内核对象——Windows核心编程学习手札系列之三

    内核对象 --Windows核心编程学习手札系列之三 内核对象可供系统和应用程序使用来管理各种各样的资源,如进程.线程.文件等,是内核分配的一个内存块,只能又内核访问,该内存块是一种数据结构,它的成员 ...

  7. java中解决脏读_java并发编程学习之脏读代码示例及处理

    使用interrupt()中断线程     当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即 ...

  8. c++语言表白超炫图形_青少年编程学习之C语言怎么学?现在知道,将来不亏!...

    少儿编程兴起,当孩子们图形化的编程工具使用熟练以后,编程中的概念也逐步理解消化,那么可以尝试慢慢脱离图形化工具,接触真正的编程语言,也就是常说的代码.因为有了图形化的基础,接触代码变得难度小了很多,所 ...

  9. 现代3D图形编程学习-关于本书(译)

    本书系列 现代3D图形编程学习 关于这本书 三维图像处理硬件很快成为了必不可少的组件.很多操作系统能够直接使用三维图像硬件,有些甚至要求需要有3D渲染能力的硬件.同时对于日益增加的手机系统,3D图像硬 ...

  10. 两岸三地在线编程学习网站大全

    说到国内的在线编程学习网站,很多人都是一脸茫然,即使是资深开发者也是如此.在许多人眼中,尽管国内App开发景象一派繁荣,但教育疲软却是不争的事实.在<移动开发者的自学宝典:十大在线编程学习网站& ...

最新文章

  1. CV算法复现(分类算法4/6):GoogLeNet(2014年 谷歌)
  2. 第二十五章 面向对象------封装、内置函数、反射、动态导入
  3. Toolbar-5.0新特性
  4. WPF初学——自定义样式
  5. mysql安装注意步骤,mysql安装步骤
  6. Win11系统点击回滚没有反应是怎么回事
  7. 安卓编译php,编译PHP
  8. Atitit java字符串模板渲染总结 目录 1. 总结:指标 1 1.1. 支持中文变量 提升可读性 1 1.2. 变量placeholder简单性,,velo可以直接¥前导简单。。Free的
  9. 企业级AD域管理部署实战 微软升级版MCSE MCSA必修课程 Windows Server 2016AD管理实战
  10. 【数据结构】——逆波兰表达式
  11. 用区块链保护数字作品版权,守护创作者的合法权益
  12. CAD怎么快速用计算机加面积,CAD如何利用“命令”快速计算图形面积
  13. 杨辉三角斜列规律及与循环层数的关系
  14. 消费金融进入“第二赛段”,突围关键是什么?
  15. linux 的vim快速查找内容
  16. python爬取付费漫画_Python爬虫---爬取腾讯动漫全站漫画
  17. rtx2060什么水平_rtx2060性能怎么样
  18. 诛仙手游服务器维护到几点,诛仙手游9月22日更新维护到几点
  19. 认识LTE平台(一):LTE的物理层
  20. 每日一问 --欧拉公式是什么?

热门文章

  1. mysql hugepage_huge page 能给MySQL 带来性能提升吗?
  2. python random函数sample_Python random.sample()用法及代码示例
  3. 智能手表是java的_PerfDog性能狗实测智能手表性能
  4. 综合能源服务认证的定义,综合能源服务认证意义
  5. 报错:further occurrences of HTTP request parsing errors will be logged at DEBUG level
  6. JavaScript数组方法(最全)
  7. 如何快速分割每段视频,并提取画面中任意一帧
  8. python语言月份缩写_[宜配屋]听图阁
  9. wordpress 企业 主题 html5,Maxx 漂亮简洁的企业 WordPress主题
  10. PHP - 收藏集 - 掘金