高级自定义 > 业务逻辑自定义 > PDM 的自定义 > 自定义下载服务中的参数
自定义下载服务中的参数
预设委派
Windchill 提供了预设机制,可将与 CAD 文档相关的其他信息作为自定义系统参数传递。
要自定义参数,请在站点级别设置服务器端首选项“Workgroup Manager 客户端” > “映射自定义系统属性和文件特性”
该值是 CAD 文档相关对象中附加属性的列表,这些属性在 CAD 工具中显示为参数或特性。
该值是以逗号分隔的 CAD 特性和 Windchill 属性对的列表,其格式如下:
<name_of_CAD_property>:<relatedObjectCode>.<WindchillAttributeName>
其中:
说明
可能的值
name_of_CAD_property
这是 CAD 工具中参数或特性的名称
PART_REVISION
relatedObjectCode
这是用于标识相关对象的字符串
docMaster
associatedPart
relatedECN
WindchillAttributeName
这是相关对象的 Windchill 属性的逻辑名称或内部名称
CAD 文档主数据的可变类型属性
部件属性
“布尔型”、“日期”、“整数”、“实数”、“带实数的单位”或“字符串”类型的相关部件的可变类型属性
lifeCycleState
lifecycleTemplate.name
name,
number
orgid
view.identity
对于相关 ECN
number
orgid
resolutionDate
* 
对于可变类型属性,发送到 CAD 工具的值是对象在“信息页面”上呈现的显示值。显示值使用“属性处理”首选项和“类型和属性管理”设置,但不支持使用数据实用程序进行呈现的复杂显示自定义。
只有在不存在可用于插入参数的自定义服务器端委派 CustomModeledAttributesDelegate 时,才能使用此功能 (有关“自定义委派”的信息,请参阅下一部分“自定义委派”)。
对于关联部件:
此功能支持与具有所有者、提供图像、图像和提供内容的“CAD 文档”相关的部件。
选定的部件版本与“CAD 文档”信息页面相关部件表类似。
如果同一部件的多个修订版本均与 CAD 文档相关,则返回每个部件的最新修订版本。
如果系统配置为允许多个构建关联,其中服务器端首选项“操作” > “自动关联” > “允许 CAD 文档构建多个部件”设置为“是”,则可以返回多个部件。在这种情况下,每个相关部件的信息都将以带分隔符的格式返回。所使用的分隔符由服务器端首选项“属性处理” > “用于多值属性的分隔符”定义。
对于相关 ECN:
如果 CAD 文档修订版本作为“受影响对象”或“产生的对象”参与了“更改通告”,则将关于 ECN 的属性发送到 CAD 参数:
如果 CAD 文档修订版本参与了多个“更改通告”,则使用的分隔符由服务器端首选项“属性处理” > “用于多值属性的分隔符”来定义。
自定义委派
如果业务流程要求将其他属性传递到 CAD 工具,则 Windchill 会提供一个服务器端委派,该委派可用于在下载时将参数插入到 Creo Parametric 模型中。这种机制可用于将信息从服务器传送到 Creo Parametric,在此可像其他所有 Creo Parametric 参数一样使用这些信息 (例如,在绘图表单上填充信息)。以 "PTC" 或 "PROI" 开始的参数被视为保留的系统参数,不能通过自定义进行传播。如果在自定义中添加这些参数,下载服务会将其忽略。
* 
此功能适用于所有与第三方 CAD 工具集成的 Windchill Workgroup Manager
* 
自定义的参数在下载时提供给客户端,与系统参数 (如 PTC_WM_ITERATION) 不同,它们不会在执行某个 Windchill 操作 (例如,检入) 后,在 Creo Parametric 会话或本地缓存中得到更新。
例如,如果某个自定义参数分配了 CAD 文档编号的值,其值会在模型下载时提供给客户端。如果后来对 CAD 文档进行了重新编号,则 Creo Parametric 会话或客户端缓存中的值不会自动更新。
Windchill 服务委派机制用于实现自定义。以下步骤说明自定义过程:
1. 创建一个实现接口 ModeledAttributesDelegate 的 Java 类。接口定义如下:
package com.ptc.windchill.uwgm.proesrv.c11n;
import java.util.Collection;
import java.util.HashMap;
import wt.util.WTException;
public interface ModeledAttributesDelegate
{
/*
Implement this API to return list of parameters added by
customization along with it's type (customization profile of the
server). For example "WT_CADDOC_NUMBER" custom parameter will
be of type "String.class" (the java class)
*/
// getAvailableAttributes() returns
// HashMap<String, Object> which contains
// HashMap<Attribute name, Attribute type>
HashMap getAvailableAttributes();
/*
This is the API, invoked by the download service on download, to
be implemented for the customization. Create and return a
HashMap where key is input object and value is HashMap of
parameter name - value pairs that must be propagated to Pro/E
part represented by the EPMDocument (input object). Use the
getCADName() API on the EPMDocument to identify the Pro/E part
*/
// getModeledAttributes(Collection docs) returns
// HashMap<input object, HashMap<Attribute name, Attribute
value> HashMap getModeledAttributes(Collection docs) throws
WTException;
}
2. PTC 提供的自定义系统属性预设在 DefaultModeledAttributesDelegate 中提供。不过,您可以将 site.xconf 文件 (可见于 <Windchill>) 更改为指向服务器上的自定义服务:
<Service context="default"
name="com.ptc.windchill.uwgm.proesrv.c11n.ModeledAttributesDele
gate" targetFile=codebase/service.properties">
<Option cardinality="singleton"
requestor="java.lang.Object"
serviceClass="com.ptc.windchill.uwgm.proesrv.c11n.CustomerXYZModeledAttributesDelegate"/>
</Service>
然后使用 xconfmanager 工具,将这些更改应用于 service.properties 文件 (run xconfmanager -p)
使用类路径代替 serviceClass 的值 (即,使用类路径替换 com.ptc.windchill.uwgm.proesrv.c11n.DefaultModeledAttributesDelegate)。
3. 重新启动方法服务器。
这对您有帮助吗?