
简介这是 Aras Open PLM 系统管理手册面向负责 Aras PLM 平台落地与日常运维的系统管理员、实施顾问以及需要理解权限模型的产品研发管理人员。内容围绕用户管理、权限、数据类型等核心管理任务展开结合目录中的用户创建与编辑、登录验证方式、参与者及特殊参与者设置以及权限发现、可创建者权限、TOC 访问权限和子类对象权限配置系统讲解配置思路。资源为单个 docx 文档压缩包约 11.11MB携带方便适合边读边在测试环境操作。手册还涉及数据类型概述、创建列表、外部数据类型、配置序列以及对象类型等扩展内容可帮助读者从基础账户管理推进到更深层的对象建模配置。目前已有 3008 人学习/下载口碑和适用性经过较多实践用户验证适合作为 PLM 系统管理入门与日常查阅的系统性资料。1. Aras Open PLM 系统管理手册第一周你都该稳住的那些事接手一套已经跑起来的 Aras Open PLM 系统第一周最常做的往往不是建模或开发而是先把环境稳住早上确认备份跑完了上午处理两个「附件传不上去」的工单下午给新同事开一个只能看不能改的账号。这个「系统管理手册」讲的就是这些日常。Aras 是开源 PLM 平台业务数据落在 SQL Server应用跑在 IIS 上附件文件放进独立的文件库Vault所以管理员真正要抓的是三条线数据库与文件库、用户与权限、生命周期与工作流。这套内容适合公司已部署 Aras 但缺专职运维的人也适合准备往 PLM 这个方向落地的工程师。按这个顺序把维护工作拆成清单新人不至于手忙脚乱。2. 看懂 Aras 的管理骨架数据库、文件库与配置对象2.1 Aras 数据库里的一切都是 Item先改掉「把它当关系表」的习惯Aras 的数据库模型和传统 ERP 不太一样。几乎所有业务数据——用户、角色、文档、ECR、BOM、审批任务——都以 Item 为基本存储单位靠类型字段去区分。也就是说你要管的数据是 Item你要管的系统配置权限、生命周期、工作流本质上也是一类 Item。这种设计保证了整个系统的行为一致但也带来一个常见误用总想直接写 SQL 去改业务数据改完发现工作流不走了、权限也乱了。管理员要明白的是数据库层面你可以做备份恢复、索引维护、空间规划但业务数据的增删改尽量通过 Aras 提供的 AML 或界面完成。因为直接在表里 UPDATE state 字段系统里那些在状态机上注册的动作、通知、权限校验全都跳过了轻则列表和实际不一致重则把数据一致性破坏掉留下一堆孤儿记录。如果非要在数据库层做巡检最常查的就是 ItemType 注册表。下面这个查询能快速告诉你当前实例挂了多少业务类型-- 查看当前 Aras 实例注册了哪些业务类型ItemType SELECT [id], [name], [label], [is_active], [is_revisionable] FROM [InnovatorSolution].[innovator].[itemtype] WHERE [is_active] 1 ORDER BY [name];这里InnovatorSolution是安装时指定的数据库名你环境里叫什么就以什么为准innovator是 Aras 默认 Schema 名。is_active 1表示该类型在客户端 TOC 里可见is_revisionable则标识这个类型是否启用版本管理——文档、图纸类一般开启而基础数据类多数不开启。巡检时如果发现新导入的业务类型不显示多半是is_active没置位。反过来千万别习惯性地用这个视图直接去 DELETE 记录注册表里的数据删除会导致已有实例变成孤儿数据。日常处理做到「能走界面和 AML 就不走 SQL」这条原则能帮你省掉很多日志排查的时间。2.2 文件库Vault附件真身所在权限与空间都要看Aras 把附件文件独立存放在文件库Vault目录数据库里只保留文件记录与引用关系。这样做的好处是把大文件 I/O 和应用数据库分开坏处是备份、恢复时必须数据库与文件库对齐否则出现「列表还在、附件打不开」的诡异现象。管理文件库重点其实是三件事确认 Vault 路径、检查写权限、监控磁盘空间。常见的一个坑是 Vault 目录在系统盘不知不觉把 C 盘塞满导致所有上传失败日志里全是Vault store failed。我一般会在 Vault 根目录用下面这种命令定期统计占用# 统计文件库目录下的文件数与总大小用于监控磁盘配额 Get-ChildItem D:\Aras\Vault\Default -Recurse -File | Measure-Object -Property Length -Sum | Select-Object {NFiles;E{$_.Count}}, {NSizeMB;E{[math]::Round($_.Sum/1MB,2)}}D:\Aras\Vault\Default要替换成你环境里实际 Vault 路径。这个命令不是 Aras 官方接口只是管理员排障时的辅助手段。注意 Vault 的目录是由配置对象决定的多个 Vault 或多个子目录并存时需要逐个统计不要只盯着一个目录看。文件库的权限通常挂在访问组上。若你发现特定用户能上传、不能下载先去查 Vault 权限对象的 Access Rules而不是急着改文件夹 NTFS 权限——Aras 自己管一层Windows 文件系统管一层两层都通才能真正读写。2.3 管理入口TOC 与 Administration 下的核心配置对象登录 Aras 后左侧的 TOCTree of Contents是业务导航管理员真正的工作入口在 Administration 节点下。它把系统配置集中成几个对象User Identities、Permissions、Life Cycle Maps、Workflows、Vaults、Audit Trail。这里有个容易被忽略的点这些配置对象本身也是 Item权限体系对它们同样生效。也就是说如果你某次把管理员账号的权限改小了可能连 Administration 入口都看不见。常见的稳妥做法是给管理员账号建一个独立的管理员角色Identity并把该角色加入系统默认的 Everyone 组保证基础可见性再用专门的 Permission 去收紧。想快速判断一套 Aras 的管理成熟度就看三件事有没有独立的备份恢复流程、权限是否按角色而不是按个人分配、生命周期和工作流是不是集中在少数人手里配置。满足这三条系统维护通常稳定。Aras 基于 .NET 技术栈应用由 IIS 承载数据由 SQL Server 承载这也决定了管理员需要具备三项基础能力能读懂 C# 脚本至少会排查方法报错、会用 SQL Server 管理工具、能上手 IIS 应用池与日志。开源 PLM 的好处是许可成本低但也有代价——没有厂商兜底时这些基础能力的组合就是你的兜底。所以不要只把眼光放在配置界面上数据库索引、应用池内存、网络带宽这些「非 PLM 概念」反而常常是故障源头。3. 把「谁能看什么」管清楚用户、角色与权限的完整配置链路3.1 先分清四个名词Identity、Membership、Permission 与 Team系统管理里权限最容易翻车但翻车的根源不是权限规则难而是名词没对齐。Aras 权限体系里四个词各管一段Identity身份既可以是一个人也可以是一个角色或一个组。所有权限判断都以 Identity 为单位。Membership身份之间的从属关系用户属于某个角色、某个角色属于某个团队都由 Membership 记录。Permission对某种 Item 的一批操作权限包含 Get、Update、Delete、Execute 等权限对象可以绑定到多个 Identity。Team附加在某个具体对象上的协作成员集合比如一张 ECR 的审批人组。理解这四个词的先后顺序很重要先有 Identity再配 Membership 把人和角色挂上然后建 Permission 并把对应 Identity 放进去最后把 Permission 绑定到生命周期状态。顺序反了配置界面看起来没问题实际跑起来权限不生效。同一角色在不同状态下的权限也可能完全不同这也是为什么「测试账号走一遍真实流程」是验证权限的唯一可靠方式靠肉眼读配置界面经常读不出差异。3.2 从空角色到可见可改一套可复制的权限配置链路用最常见的需求做例子某公司要开一个外部协作账号只允许查看已发布的文档不允许修改任何内容。完整流程我一般按下面五步走在 User Identities 创建一个用户 Identity登录名、邮箱、初始密码按公司规范填新建一个角色 Identity比如doc_viewer_external用 Membership 把用户挂到该角色下创建 Permission给该角色分配 Get 权限、剥夺 Update/Delete在对应文档类型的 Life Cycle Map 里把该 Permission 挂到每个需要开放的状态上。第 5 步是新手最容易漏的Permission 只有挂到生命周期状态上才能真正生效。否则你这个角色配得再漂亮用户登录后依然什么都看不到。如果需要在多个环境批量同步角色直接用界面点会累死通常的做法是导出 AML 再导入。一个典型权限的 AML 长这样AML Item typePermission actionadd idPERM_DOC_VIEW namedoc_viewer_external_perm/name description外部协作查看权限/description access Item typeAccess actionadd idACC_DOC_VIEW related_idIDENTITY_DOC_VIEWER/related_id permission_idPERM_DOC_VIEW/permission_id can_get1/can_get can_update0/can_update can_delete0/can_delete /Item /access /Item /AML这段 XML 的作用是一次性创建 Permission 并绑定 Accessrelated_id是目标角色 Identity 的 IDpermission_id指向权限对象can_get/can_update/can_delete分别控制查看、修改和删除。需要注意这里写入的IDENTITY_DOC_VIEWER是一个占位符实际使用时要替换成你环境里角色 Identity 的真实 IDID 可以从 Administration 界面复制或者在 AML 查询里取。导入结构还要根据你所用 Aras 版本做微调但字段含义不变。在界面手工配置时你看到的操作是「建权限 → 加访问组 → 选角色 → 勾权限项」与这段 AML 一一对应。我一般建议小团队用界面配置超过三套环境就统一用 AML 脚本管理避免环境之间权限漂移。3.3 配置完不生效状态机、缓存与登录态三个隐蔽前提按上面流程配完用户还是说进不去这种现象太常见了。按我排障的习惯按顺序查三处第一确认该条数据当前处于哪个状态。权限是挂在生命周期状态上的如果数据还在 Draft而 Draft 状态的权限没配置用户当然看不到。先去看 Life Cycle Map 里对应状态的权限列表。第二权限缓存。Aras 在服务器端会缓存权限计算结果改了 Permission 后有时不会立即对所有会话生效。常见做法是重启 IIS 应用池或者等待缓存过期在测试环境可以直接重启应用池验证排除「配置没问题、缓存没刷新」的干扰。第三登录态。用户已经打开的客户端会话不会自动感知 Identity 变更必须退出重新登录。很多「改了没用」的工单其实只是用户没重新登录。如果这三处都没问题再看日志。开启权限调试后日志会逐条列出该用户对目标 Item 的鉴权结果能告诉你到底是哪一条 Access 拒绝了。这一步不要怕日志量大定位权限问题就是靠它。另外要强调一点不要把管理员账号当成测试账号用管理员往往有系统级权限测出来的结果不能代表普通用户。4. 让变更在流程里跑起来生命周期与工作流的配置路径4.1 生命周期映射状态、转变与动作分层控制Aras 的业务对象大多有生命周期Life Cycle Map 是管理员配置状态流转的地方。一张生命周期映射由三类元素组成State状态比如 Draft、Review、Approved、Released。状态上挂权限、表单和策略决定了数据在这个阶段谁能看、谁能改。Transition转变从状态 A 到状态 B 的跳转规则定义了允许的路径。没有配置的跳转路径用户点按钮也没用。Action动作跳转时触发的服务器端逻辑比如发通知、写字段、创建审批任务、调用外部接口。配置生命周期记住一句话状态定权限转变定路径动作定副作用。三者分开维护排查问题时就能快速定位——数据卡在某个状态先看它当前状态的权限按钮点不出先看转变路径状态变了但没发通知再查动作。实务里最常见的配置错误是状态很多、转变没连全结果业务人员反馈「我想把它直接退回到 Draft 怎么不行」。不是功能缺失而是你根本没在 Transition 里放那条回退路径。设计生命周期时最好先画一遍完整路径把异常回退路径也提前留好不要等着用户来教你。4.2 用工作流把审批组织起来Activity、Assignment 与 Vote生命周期定义了「数据走到哪」工作流定义了「谁在这个环节做什么」。Aras 的 Workflow 与生命周期配合使用三个关键对象Activity一个工作环节比如「评审」或「审批」Assignment这个环节的参与者可以是具体用户、角色或团队Vote多人参与时的规则常见是全员通过或一票通过。工作流与生命周期配合的方式是数据进入某个状态 → 自动启动对应工作流 → 生成 Activity 并分派给 Assignment → 参与者投票 → 投票结果满足规则后推动状态转移。这里要注意一个边界工作流不是生命周期本身它更像是挂在状态机上的执行引擎。生命周期转了但工作流没启动或工作流结束了但状态没变往往是因为两者之间缺了「绑定动作」。Vote 规则的设置经常被忽略。如果审批环节需要三个人都同意才能通过而你把 Vote 设成了「一票通过」那么只要一个人点了同意数据就被推走了。这类问题在工作流上线一两周后会以「某张单子没审完就被发布了」的形式暴露出来。选 Vote 规则前先确认业务到底是会签还是或签。4.3 跑通一条 ECR 审批流的最小路径最常见的落地场景是工程变更ECR提交后进入评审评审通过后发布。这里给一条最小可跑通的路径作为参考创建 Life Cycle Map状态依次为 Draft → Review → Approved → Released在 Draft → Review 的 Transition 上配置 On Exit 动作启动工作流创建工作流包含一个 Activity「ECR 评审」Assignment 绑定ECR_Reviewer角色Vote 规则选「全部通过」在 Activity 完成后的动作里配置「将对象转移到 Approved 状态」用测试用户提交 ECR走完整条链验证。关于第 2 步和第 4 步的动作常见做法是写一个 C# 方法挂在 Action 上。一个典型方法是这样// 工作流中 Activity 完成后的动作创建任务并记录开始时间 public Item OnAfterReview(Item ecr, Aras.Server.Core.Innovator innovator) { Item task this.newItem(MethodTask, add); task.setProperty(related_id, ecr.getID()); task.setProperty(assigned_to, ECR_Reviewer); task.setProperty(message, 请对 ECR 进行评审); Item result task.apply(); ecr.setProperty(review_started, DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss)); ecr.apply(); return result; }这段代码发生在服务器端。this.newItem()是 Aras C# Method 里的通用入口MethodTask表示创建一条任务记录具体对象名以你环境中是否启用任务模块为准assigned_to指向角色 Identity 名称related_id关联当前 ECR。注意ecr.setProperty(...)之后一定要调用apply()才会真正写库漏掉apply()是新手写方法时最常见的「看起来没生效」的原因。参数方面需要留意 Action 的触发时机启动工作流一般放在 On Exit离开前一个状态时更稳而状态切换动作放在 Activity 完成后。如果你发现 ECR 进了 Review 但没人收到待办先看 Assignment 绑定的角色里到底有没有人——角色建了但没挂成员系统不会提示你。如果工作流没按预期启动还要检查 Life Cycle Map 里绑定的 Workflow ID 是否和实际使用的工作流对得上改过工作流地图但没重新绑定是常见疏漏。5. Aras 日常维护排查与避坑指南备份、性能与升级的血泪经验管了几套 Aras 环境之后我最大的感受是这个系统不是没有坑而是坑都集中在维护环节。备份不完整、性能突然变慢、升级后自定义项消失这三个问题几乎占据了日常工单的一大部分。5.1 备份不是只备份数据库数据库与文件库必须一致现象某公司一直按 SQL 作业只备份数据库Vault 目录没纳入备份范围。一次磁盘故障后用数据库备份恢复环境文档列表还在但所有附件都下载不了点开全报「文件不存在」。原因数据库里存的是文件的记录与路径引用文件真身在 Vault。只备份数据库等于只有目录没有货恢复后引用指向的路径上找不到文件。解决把数据库备份和 Vault 目录备份放进同一个作业。我常用的命令组合长这样# 备份数据库 同步文件库目录Windows 计划任务调用 sqlcmd -S .\ARAS -E -Q BACKUP DATABASE [InnovatorSolution] TO DISKD:\Backup\db.bak WITH COMPRESSION, STATS10 robocopy D:\Aras\Vault D:\Backup\vault /MIR /R:1 /W:1第一行用 sqlcmd 触发 SQL Server 完整备份WITH COMPRESSION压缩备份文件STATS10每完成 10% 输出一条进度。第二行用 robocopy 把 Vault 目录镜像到备份盘/MIR是镜像模式会自动删除目标端多余文件/R:1 /W:1设置失败重试 1 次、等待 1 秒避免网络抖动时长时间卡住。这里要特别提醒/MIR有删除动作第一次建立备份作业时建议先改用/E只复制不删除确认目标目录结构干净后再改成/MIR做持续同步。否则目标端一个误删你的备份也会把文件带没。恢复后要做一次验证随机抽几个附件下载试试再对比 Vault 目录里文件数量和数据库里的引用数是否对得上。这个验证动作应该写进恢复演练流程而不是等故障了才临时做。5.2 性能变慢时先查这三样慢查询、索引与应用池现象某天开始列表页打开要十几秒而且不止一个人反馈。这种「整体变慢」和「局部报错」不一样排查路径要按顺序走。先查 SQL Server 慢查询统计看是不是某条语句成了瓶颈-- 按单次平均耗时找出最耗时的前 15 条语句 SELECT TOP 15 qs.total_elapsed_time / qs.execution_count AS avg_elapsed_ms, qs.execution_count, SUBSTRING(st.text, (qs.statement_start_offset/2)1, ((CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset)/2)1) AS sql_text FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st ORDER BY avg_elapsed_ms DESC;avg_elapsed_ms 是平均耗时execution_count 是执行次数。光看耗时不看次数容易误判——一条跑了 5 秒但一天只跑一次的分析型查询通常不是元凶真正要盯的是那种单次几十毫秒但每分钟执行几千次的语句。sys.dm_exec_query_stats是实例级视图包含所有数据库的查询排障时先用数据库名过滤再定位。第二步看索引。Aras 的表大多以 Item 类型为逻辑单位但同一张物理表里混着多种类型数据查询时靠 itemtype 字段过滤。如果过滤条件经常变而组合索引没建好慢就慢在这种过滤上。让数据库引擎生成执行计划看有没有明显的 Table Scan然后针对高频查询条件建复合索引。第三步看 IIS 应用池。.NET 应用跑在 IIS 上如果应用池设置了定期回收回收瞬间首次请求会明显慢。把应用池的空闲超时调长或者把回收时间放在非工作时间能缓解「每天固定时间卡一下」的诡异现象。这三样查完大多数慢问题都能定位。剩下的一类常见反模式是有人在客户端列表页一次性加载上万行数据这属于应用层设计问题不是调索引能解决的需要改查询逻辑或分页。5.3 升级过程中自定义项为什么容易翻车现象升级到新版本后部分自定义方法找不到了或者登录后脚本直接报「对象名无效」。更隐蔽的表现是功能没报错但行为变了比如原本自动填写的字段不再填写。原因Aras 升级本质上是把官方标准包与你的环境做合并凡是与标准对象同名的自定义项都有可能被标准版本覆盖或标记为冲突。如果你从一开始就把自定义项直接建在标准方法上升级时根本没有独立对象可以保留。解决我现在的习惯是给所有自定义对象加统一前缀比如XX_从第一天就强制隔离。升级前把自定义项导出备份成独立包在测试环境做一次「干跑」升级对比差异清单后再动生产环境。升级后逐个验证自定义方法、表单和报表重点看引用路径有没有变化。这个问题的深层原因是Aras 的扩展机制很灵活但没有强制的「你的命名空间」。灵活性带来的代价就是升级时合并冲突要靠人为纪律去规避。自定义与标准分不清时升级就是一场赌运气别拿生产环境直接赌。5.4 高频问题的避坑记录现象、原因、解决各一条把日常最常遇到的几个问题按「现象 → 原因 → 解决」整理一下作为维护手册里的速查页现象新开放的文档用户说看不到。 原因数据还停在 Draft 状态该状态的权限没挂。 解决去 Life Cycle Map 给 Draft 状态补 Permission或用状态转移把数据推到已授权状态。现象附件上传失败日志报Vault store failed。 原因Vault 目录磁盘满或 NTFS 写权限不足。 解决清理磁盘检查 Vault 访问组的权限不要只盯着应用层看。现象审批人收到通知但登录后没有待办任务。 原因Activity 分派给了某个 Team而用户并不在那个 Team 里。 解决核对 Membership 和 Team 归属确认后重新发布工作流。现象数据库文件增长异常快。 原因审计日志保留周期过长或者历史版本未定期清理。 解决在系统设置里缩短日志保留时间对可归档业务数据建立定期归档作业。现象修改了权限用户重启客户端后还是老样子。 原因服务器端权限缓存未刷新。 解决重启 IIS 应用池或按缓存策略等待过期测试环境优先重启验证。6. 进阶技巧用 AML 与日志把管理问题定位到对象6.1 管理员的 AML 三板斧配置界面能解决 80% 的问题但批量修数据、跨环境同步配置的时候还是 AML 高效。我给新人的建议是先练熟三个动作用法get、update、状态转移。查询示例找出所有处于 Review 和 Approved 状态的 ECR。AML Item typeECR actionget selectid,item_number,state,owned_by maxrow50 state conditioninReview,Approved/state /Item /AMLselect指定返回字段减少网络开销maxrow50限制返回条数避免一次拉全表conditionin是范围条件。排障时先用这种带过滤的查询确认数据在什么状态再决定下一步动作永远不要不带条件就 get。6.2 日志分别看哪几个地方Aras 的日志分散在四个位置对应四个排查层次应用服务器日志通常在 Aras 安装目录的 Server/Log 下Method 执行错误、AML 报错都会记录在这里IIS 日志负责网络层看请求有没有到达应用SQL Server 错误日志管数据库层索引损坏、死锁会留在里面Audit Trail 则是 Aras 自己的审计模块记录谁在什么时候改了权限或状态。排障顺序我一般固定为先审计日志确认操作记录再应用日志看具体报错最后才是 IIS 和数据库日志——大多数日常问题到第二步就结束了。6.3 一个验证习惯永远用测试账号走一遍改完权限或流程不急着让真实用户测。我现在每个环境都留了一个专用测试账号权限改动后用这个账号从用户视角完整走一遍顺手把「配置界面看到的」和「业务实际经历的」对照一次。有一次给文档类型的 Released 状态配权限我把它挂到了 Draft 状态上配置界面看起来完全正常测试账号一测立刻发现状况已发布文档反而没权限。这类「对的配置放错了状态」的错误靠肉眼检查很难发现测试账号走一遍是最快的验证方式。这个习惯帮我挡掉了不少「说的和做的不一样」的尴尬。系统的管理手册可以写得很厚但真正值钱的往往是这些随手验证的小动作。希望帮到你。本文还有配套的精品资源点击获取