首页 / 资讯中心 / 文章详情

Aras PLM 入门实战:从 ItemType 建模到表单权限配置

Aras PLM 入门实战:从 ItemType 建模到表单权限配置 ★ FEATURED ARTICLE
简介这份 Aras PLM 学习文档面向刚接触产品生命周期管理系统的工程师、实施人员与运维管理者帮助其系统掌握 Aras PLM 的用户、权限与数据建模机制。资源包内含 1 个 docx 文件压缩包约 11.06MB以 Word 手册形式组织便于检索与打印。文档围绕系统管理展开涵盖用户管理中的用户页面、登录用户、创建参与者与特殊参与者权限部分的权限创建、发现权限、可创建者权限、创建子类对象权限及 TOC 访问权限以及数据类型中的列表创建、外部数据类型与序列配置并延伸至对象类型等模块目录层级清晰适合按章节逐项查阅。目前已有 1278 人学习下载可作为日常配置与权限排查的案头参考。1. Aras 学习文档从“装完就懵”到能自己改表单的入门路径很多团队第一次接触 Aras 的场景都差不多老板说这套 PLM 能免费下载IT 把安装包装上浏览器打开登录页然后所有人对着那个叫“Innovator”的界面发愣——菜单在哪、数据存哪、想加个字段为什么要点进三层配置。Aras 学习文档之所以被反复搜不是因为资料少而是因为官方文档偏“参考手册”风格它告诉你每个按钮是什么却不告诉你一个新人该按什么顺序把整套东西跑起来。这篇笔记面向的是需要在一到两周内把 Aras 用起来的开发者或实施人员目标很具体能自己建一个 ItemType、挂上表单、配好权限、跑通一次增删改查而不是停留在“知道它是个 PLM 平台”。下面按我实际带人时用的顺序展开每一步都落到可复现的操作和参数上。2. 先把 Aras 的“数据模型”这件事想明白为什么改表单之前必须先懂 ItemTypeAras 最劝退新人的地方是它把“数据库表”“业务对象”“界面表单”这三样东西用一套概念串起来了。你如果拿传统 CRUD 的思路去理解会一直卡在“我字段加哪了”。这一章先把这套模型讲透再动手建第一个自定义对象。2.1 ItemType、Item、Property 三者的关系在 Aras 里ItemType 相当于一张业务表的定义比如 Part、Document 都是内置 ItemType。一个 ItemType 下面有很多 PropertyProperty 就是字段定义它决定了这个对象能存哪些数据、字段类型是什么、是否必填。而 Item 是 ItemType 的实例也就是一条具体记录。你新建一个零件就是创建了一个 Part 这个 ItemType 的 Item。关键点在于Property 不只是数据库列它还携带了界面渲染信息。也就是说你在 ItemType 里加一个 Property表单设计器里就能把它拖出来不需要另外去改前端代码。这是 Aras 低代码能力的核心也是新人最容易忽略的地方——很多人以为改界面要去动 HTML其实大部分场景在 ItemType 配置里就完成了。理解这层关系之后你再看 Aras 的目录结构就不会迷路Administration 下面管 ItemType 和权限Design 下面管表单和界面实际业务数据在各自的业务菜单里。三者是配置与运行时的关系不是三套独立系统。2.2 用 AML 查询验证你对模型的理解光看概念容易飘最快的验证方式是直接用 AMLAras Markup Language查一次数据。AML 是 Aras 的查询语言长得像 XML服务端和客户端都用它通信。下面这段是在浏览器地址栏或客户端 AML 控制台里都能跑的查询作用是列出当前系统里所有自定义 ItemType!-- 查询所有非系统内置的 ItemTypeis_system 为 0 表示用户自定义 -- AML Item typeItemType actionget selectname,label,is_system is_system0/is_system /Item /AML这段 AML 的逻辑很直白typeItemType指定查哪种对象actionget表示读取select列出要返回的字段is_system0/is_system是过滤条件。跑完之后你会看到系统里所有自定义类型如果刚装完这个列表大概率是空的。参数上要注意is_system这个属性在部分版本里叫法一致但如果你查不到结果先确认登录账号有没有管理员权限普通用户看不到 ItemType 定义。2.3 建第一个自定义 ItemType 的完整步骤现在动手建一个。假设我们要做一个“设备台账”对象用来记录实验室里的仪器。步骤按顺序来第一步进入 Administration → ItemTypes点新建。Name 填Equipment这是程序内部标识只能用英文和数字一旦保存不建议改因为后面 AML 和权限都引用它。Label 填“设备台账”这是界面上显示的名字可以随时改。第二步保存后切到 Properties 标签页逐个加字段。至少加这几个equipment_code设备编号String必填、equipment_name设备名称String、purchase_date采购日期Date、status状态List选项为在用/维修/报废。加 Property 时注意 Data Type 要和业务匹配Date 类型在表单上会自动渲染成日期选择器List 类型需要你先在 List 配置里定义好选项再引用。第三步给 ItemType 设置权限。切到 Permissions 标签至少给当前管理员组全部权限给普通用户组读权限。Aras 的权限是按 Identity 配的Identity 可以理解成用户组后面章节会细说。第四步回到主菜单你会发现“设备台账”还没出现在导航里。这是因为 ItemType 建好之后还需要挂到某个 TOC目录或者通过搜索访问。最快的验证方式是直接在搜索框里搜 Equipment能搜到就说明对象建成了。提示ItemType 的 Name 一旦被 AML 或权限引用改名会导致引用失效。我一般建议先用一个临时名建好验证流程确认字段设计没问题后再正式命名。3. 表单和界面怎么改从默认表单到自定义布局的落地操作ItemType 建好之后系统会给一个默认表单字段按字母序排列能用但不好看。这一章讲怎么把表单改成业务人员愿意用的样子以及改界面时哪些操作会触发缓存问题。3.1 表单设计器的基本操作和字段绑定进入 Design → Forms找到刚才那个 Equipment 对应的表单。Aras 的表单设计器是拖拽式的左侧是可用字段列表右侧是画布。你把字段从左侧拖到画布上就完成了绑定。每个字段在画布上是一个 HTML 控件可以调宽度、换行、分组。这里有个容易翻车的点字段拖上去之后属性面板里的“Field Name”必须和 ItemType 里的 Property Name 完全一致大小写敏感。如果对不上表单能保存但运行时字段是空的而且不报错。我见过有人把equipment_code写成Equipment_Code排查了半天以为是权限问题。表单布局建议按业务分组比如“基本信息”放编号、名称“采购信息”放日期“状态信息”放状态字段。Aras 支持 Field Group 容器把相关字段放一个组里界面上会显示成一个带标题的区块比一堆字段平铺好看得多。3.2 用 CSS 和事件做最小化定制表单设计器能覆盖大部分场景但有些交互它做不了比如“选了报废状态之后采购日期变灰”。这种需求要用表单事件。Aras 的表单支持在字段上挂 onchange 事件写 JavaScript。下面这段是给 status 字段挂的事件逻辑是当状态为“报废”时禁用 purchase_date// 挂在 status 字段的 onchange 事件上 // 参数 sender 是触发事件的字段对象value 是当前选中的值 var purchaseDateField document.getFieldByName(purchase_date); if (value 报废) { // 禁用字段用户无法编辑 purchaseDateField.disabled true; // 视觉上置灰避免用户困惑 purchaseDateField.style.backgroundColor #f0f0f0; } else { purchaseDateField.disabled false; purchaseDateField.style.backgroundColor ; }这段代码的关键是document.getFieldByName它按 Property Name 拿到表单上的字段对象。disabled属性控制是否可编辑style控制外观。参数上要注意value是 List 字段选中项的 value 而不是 label如果你在 List 配置里 value 和 label 不一样这里要写 value。改完表单和事件之后一定要清缓存。Aras 客户端缓存很顽固不清缓存你会以为代码没生效。清缓存的方式是在客户端里按 CtrlShiftR或者退出重新登录。我一般改一次清一次不省这一步。3.3 表单改动后必须验证的三件事改完表单别急着交付按这三条过一遍第一用不同权限的账号登录确认字段的可见性和可编辑性符合预期。管理员能看到所有字段普通用户可能只能看不能改这个要在 ItemType 的 Permissions 和表单的字段级权限里同时配。第二新建一条记录填完所有必填字段保存再打开编辑确认数据回显正确。这一步能抓出字段绑定错误和数据类型不匹配的问题。第三触发一次你写的事件逻辑确认行为符合预期。比如上面那个报废禁用日期的例子把状态改成报废看日期字段是不是真的灰了。注意表单设计器里的改动是即时保存的没有“撤销”按钮。改之前最好在测试环境先做一遍或者至少记下改了什么出问题能回退。4. 权限和身份体系为什么你配了权限但用户还是看不到数据权限是 Aras 学习曲线里第二陡的地方第一陡的是数据模型。很多人配完权限发现用户还是看不到数据或者能看到但改不了问题往往出在 Identity 的继承关系上。这一章把权限模型拆开讲并给出排查顺序。4.1 Identity、Permission、Access 三者的关系Aras 的权限体系有三个层次Identity 是身份可以理解成用户或用户组Permission 是权限条目把某个 Identity 和某个 ItemType 关联起来指定这个 Identity 对这个 ItemType 有什么权限Access 是具体的权限级别比如 get、update、delete、create。关键点在于 Identity 可以嵌套。比如“研发组”这个 Identity 下面有“结构工程师”和“电子工程师”两个子 Identity那么给“研发组”配的权限子 Identity 自动继承。这个继承关系是单向的子继承父父不继承子。很多人配权限时给子组配了但用户属于父组结果用户没权限就是没搞清楚继承方向。另外Aras 有一个“World” Identity代表所有登录用户。如果你给 World 配了读权限那所有用户都能读。这个在设计公开数据时有用但要注意别不小心把敏感数据的读权限给了 World。4.2 配一次完整的权限并验证假设我们要让“设备台账”满足管理员能增删改查普通用户只能查和改状态字段不能删。步骤第一步在 Administration → Identities 里确认有“管理员组”和“普通用户组”两个 Identity没有就新建。把对应用户账号分别加进这两个组。第二步回到 Equipment 这个 ItemType 的 Permissions 标签添加两条权限条目。第一条Identity 选管理员组Access 勾选 get、update、delete、create。第二条Identity 选普通用户组Access 只勾 get 和 update。第三步字段级权限。普通用户虽然能 update但我们只想让他改 status。这个要在表单的字段属性里配找到 status 字段在权限设置里只给普通用户组可编辑其他字段设为只读。第四步验证。用普通用户账号登录打开一条设备记录确认能改状态、不能改编号、看不到删除按钮。如果删除按钮还在检查 ItemType 权限里普通用户组是不是误勾了 delete。4.3 权限排查的固定顺序用户反馈“看不到数据”时按这个顺序查能省很多时间先查用户属于哪个 Identity再查这个 Identity 对目标 ItemType 有没有 get 权限然后查这个 Identity 有没有被嵌套在某个有权限的父 Identity 下最后查数据本身有没有被“Can View”之类的字段级权限挡住。这四步走完九成权限问题能定位。提示Aras 的权限改动有时需要用户重新登录才生效因为权限在会话初始化时加载。改完权限让用户退出重进别在缓存上浪费时间。5. 避坑与常见问题Aras 上手阶段最容易翻车的五个点这一章是我带人过程中反复遇到的坑每个都按“现象 → 原因 → 解决”写你对照自己的情况看。现象一AML 查询返回空但数据明明存在。原因通常是查询条件里的属性名写错了或者权限不够导致服务端过滤掉了结果。解决先用管理员账号跑同样的 AML如果管理员能查到就是权限问题如果管理员也查不到检查属性名大小写和 ItemType 的 Name 是否一致。现象二表单改了但界面没变化。原因是客户端缓存。解决CtrlShiftR 强制刷新或者退出重新登录。如果还不行检查你改的是不是当前用户所属的 FormAras 支持按 Identity 分配不同表单可能你改的表单不是用户实际看到的那个。现象三新建 ItemType 后搜索不到。原因是 ItemType 没有加入任何 TOC 或搜索索引。解决在 ItemType 配置里确认“Search”相关选项已启用或者手动把它加到某个目录下。最直接的方式是用 AML 查一次确认对象存在然后通过搜索框的“高级搜索”找到它。现象四字段类型改了但旧数据报错。比如把 String 改成 Date旧数据里存的是文本转换会失败。解决Aras 不允许直接改已有数据的字段类型正确做法是新建一个 Property用 AML 或脚本把旧数据转换后写入新字段再删旧字段。这个操作不可逆改之前备份数据库。现象五事件代码不执行。原因可能是事件挂错了字段或者代码里有语法错误被静默吞掉了。解决打开浏览器开发者工具的控制台看有没有报错。Aras 的事件代码报错不会弹窗只在控制台输出不看控制台等于闭着眼睛调试。6. 进阶技巧用 AML 脚本批量导入数据并做一次完整性校验当你把模型、表单、权限都跑通之后下一步通常是要把现有 Excel 里的设备台账导进去。手工一条条建不现实用 AML 脚本批量导入是标准做法。这一章给一个可复现的导入加校验方案。6.1 从 CSV 生成 AML 导入脚本假设你有一个equipment.csv三列编号、名称、采购日期。下面这段 Python 读 CSV 并生成 AML 文件import csv # 读取 CSV生成 Aras 可执行的 AML 导入文件 # 每行数据生成一个 Item 节点type 对应之前建的 Equipment with open(equipment.csv, encodingutf-8) as f, open(import.aml, w, encodingutf-8) as out: out.write(AML\n) reader csv.DictReader(f) for row in reader: out.write( Item typeEquipment actionadd\n) out.write(f equipment_code{row[编号]}/equipment_code\n) out.write(f equipment_name{row[名称]}/equipment_name\n) out.write(f purchase_date{row[采购日期]}/purchase_date\n) out.write( /Item\n) out.write(/AML\n)这段脚本的逻辑是拼 XML 字符串actionadd表示新增。参数上要注意日期格式Aras 默认接受yyyy-MM-dd如果你的 CSV 里是2024/1/5这种要先在 Python 里转格式否则导入会失败或存成空值。6.2 导入后做一次完整性校验导入完成不代表数据没问题。用下面这段 AML 查一次找出所有必填字段为空的记录!-- 查找 equipment_code 为空的记录这类数据属于导入异常 -- AML Item typeEquipment actionget selectequipment_code,equipment_name equipment_code conditionis null/equipment_code /Item /AMLconditionis null是 AML 的空值判断语法。跑完之后如果返回结果说明 CSV 里有空编号的行需要回源头补数据再重新导入。这个校验步骤我每次导入都会做比导入完再人工翻列表靠谱得多。6.3 把校验做成习惯批量操作最怕的是“以为成功了”。我的习惯是任何批量导入之后至少跑三条校验——总数对不对、必填字段有没有空、关键字段的值域对不对。这三条用 AML 都能查花不了几分钟但能避免把脏数据带进正式环境。Aras 学习文档里很少强调这一点但实际项目里数据质量出问题比功能不会用更麻烦。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站