分布目标分配验证
在将分布目标与部件关联之前,需要对其进行验证。验证逻辑由类的特定 API 提供,该 API 的名称从名为“分布目标分配验证程序”Windchill ESI 首选项中获取。依预设,首选项设置为 com.ptc.windchill.esi.tgt.ESITargetAssignmentValidator
自动分配验证
依预设,所需的验证在类 ESITargetAssignmentValidator 的 API isTargetValidForAutoAssignment(obj : Persistable, target : ESITarget) 中进行。如果满足以下任一条件,此方法将返回 true (从而声明输入目标可自动分配给输入部件):
通过首选项“视图到分布目标映射”设置的视图与部件视图相同。
输入部件未与任何 Windchill 视图关联。
输入目标的数量不会计入首选项“视图到分布目标映射”的值。
* 
1. API isTargetValidForAutoAssignment() 检查输入目标是否可仅从 Windchill 视图站立点自动分配给输入对象。例如,它不会 (does not) 检查目标是否与输入对象位于同一上下文中,或者目标上的 defaultForContext 属性是否设置为 True。
2. API 仅对部件执行上述验证。换句话说,对于其他类型的对象,将始终返回 true。
3. 可以自定义验证,方法是定义提供 API isTargetValidForAutoAssignment(Persistable, ESITarget) 的自定义版本的类并将“分布目标分配验证程序”设置为自定义类的名称。
4. 如果单个分布目标符合自动分配条件,则会自动将分布目标分配给构成对象 (如“构成集”或“联合生产”)。换句话说,如果发现两个或多个分布目标可用于自动分配,则不会将任何分布目标自动分配给构成对象。
显式分配验证
依预设,所需的验证在类 ESITargetAssignmentValidator 的 API isTargetValid(obj : Persistable, target : ESITarget) 中进行。如果满足以下任一条件,则此方法返回 true (从而断言输入目标可显式分配给输入部件):
通过首选项“视图到分布目标映射”给出的目标视图与部件视图相同,或是部件视图的子视图。
输入部件未与任何 Windchill 视图关联。
输入目标的数量不会计入首选项“视图到分布目标映射”的值。
* 
1. API isTargetValid() 检查输入目标是否仅从 Windchill 视图站点显式分配给输入对象。例如,它不会 (does not) 检查目标是否与输入对象位于同一上下文中,或者目标上的 defaultForContext 属性是否设置为 True。
2. API 仅对部件执行上述验证。换句话说,对于其他类型的对象,将始终返回 true。
3. 可以自定义验证,方法是定义提供 API isTargetValid(Persistable, ESITarget) 的自定义版本的类并将“分布目标分配验证程序”设置为自定义类的名称。
4. 如果对象尚未分配给分布目标,则向构成对象 (如构成集或联合生产) 显式分配分布目标成功。换句话说,如果对象已分配给分布目标,或者选择了两个或多个分布目标进行显式分配,则操作将失败。
这对您有帮助吗?