Oracle Agile PLM:仅外部规格时如何填充Compliance calculated date字段?
解决Oracle Agile PLM中填充Compliance Calculated Date字段的方法
要填充标题栏的Compliance calculated date字段,你可以借助Agile PLM SDK的Item.setAttribute()方法,结合业务逻辑判断场景后执行赋值操作,具体步骤如下:
1. 确认字段的API名称
首先需要获取该日期字段的API名称(而非界面显示名),这是SDK操作的核心前提。你可以通过两种方式获取:
- 登录Agile系统,进入
Admin > Data Settings > Fields,定位到对应物料类下的目标字段,查看其API Name属性; - 或通过SDK代码动态查询:
AttributeDefinition attrDef = item.getAttributeDefinition("Compliance calculated date"); String apiName = attrDef.getApiName();
2. 编写赋值代码逻辑
在调用Item.setOverallCompliance()的同时,添加日期字段的赋值逻辑,确保仅在存在内部规格的场景下执行:
// 假设已获取到目标物料Item对象 Item item = ...; // 判断是否存在内部规格(示例逻辑,需根据实际系统结构调整) boolean hasInternalSpec = checkInternalSpecExistence(item); if (hasInternalSpec) { // 设置Overall Compliance状态 item.setOverallCompliance(OverallCompliance.PASS); // 替换为实际需要的合规状态 // 设置Compliance Calculated Date为当前时间(或指定时间) Date calcDate = new Date(); String dateFieldApiName = "ComplianceCalculatedDate"; // 替换为实际API名称 item.setAttribute(dateFieldApiName, calcDate); // 提交事务保存修改 item.save(); }
3. 关键注意事项
- 权限验证:确保执行代码的用户拥有该物料字段的修改权限,否则会抛出权限异常;
- 事务管理:修改操作需在Agile事务上下文内执行,若使用自定义扩展(如Action、Workflow),需确保事务正确提交;
- 字段类型匹配:必须传入
java.util.Date类型的值,不可使用字符串或其他类型,否则会触发类型不匹配错误; - 业务逻辑对齐:严格按照需求仅在存在内部规格时执行赋值,避免不符合场景下的错误修改。
内容的提问来源于stack exchange,提问作者DDOTS
相关产品推荐
相关产品推荐

