自定义 > 自定义对象初始化规则
自定义对象初始化规则
解决方案元素
元素
类型
说明
加载文件集
XML
自定义加载程序文件,用于添加自定义 OIR XML 文件的条目。
在模块中的位置:<customizationRootDirectory>/configurations/loadfiles/acme
OIR 加载文件
XML
对象类型的 OIR 的自定义 XML 文件
在模块中的位置:<customizationRootDirectory>/configurations/loadfiles/acme
自定义 OIR 算法的 Java 类
JAVA
用于定义自定义 OIR 算法
在模块中的位置:<customizationRootDirectoty>/module1/main/src
BAC 包
zip
通过从 UI 上传或使用 loadFiles 加载 OIR 后,可以选择通过 BAC UI 导出 zip 并将 zip 作为自定义构件而非 loadFiles 进行提交。
在模块中的位置:<customizationRootDirectory>/generated/BAC
用于自定义的模块化结构
<customizationRootDirectory>
├── configurations
│ ├── deploy.xml
│ ├── loadFiles
│ └── acme
│ └── oirLoadSet
│ ├── acmeLoadSet.xml
│ └── oirLoadFiles
│ └── acmeOIR.xml
└── OIRPackage
├── descriptor.xml
└── main
└── src
└── com
└── acme
└── algorithm
└── AcmePartMyCustomOIRAlgorithm.java
过程
1. 下载 OIR XML 文件。
2. 创建加载程序以加载 OIR 文件。
请参阅为变更请求对象类型提供的示例 XML 文件,并为所需对象类型创建类似的文件。根据对象类型,在 CDATA 部分中包括 OIR XML。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE OrganizationConfig SYSTEM "standard13_0.dtd">
<OrganizationConfig>

<TypeBasedRule>
<EngineRule isDefault="false" enabled="true">
<ruleName>Change Request Load</ruleName>
<ruleSpecification><![CDATA[
<AttributeValues objType="wt.change2.WTChangeRequest2">

<!-- set the folder -->
<AttrValue id="folder.id" algorithm="com.ptc.core.foundation.folder.server.impl.FolderPathAttributeAlgorithm">
<Arg>/Default</Arg>
</AttrValue>

<!-- set the lifecycle -->
<AttrValue id="lifeCycle.id" algorithm="com.ptc.core.foundation.lifecycle.server.impl.LifeCycleTemplateAttributeAlgorithm">
<Arg>Change Request Life Cycle</Arg>
</AttrValue>

<!-- set the team template -->
<AttrValue id="teamTemplate.id" algorithm="com.ptc.core.foundation.team.server.impl.TeamTemplateAttributeAlgorithm">
<Arg>Change Request Team</Arg>
</AttrValue>

<!-- set the number to a generated number -->
<AttrValue id="number" algorithm="com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator">
<Arg>{GEN:wt.enterprise.SequenceGenerator:WTCHANGEREQUESTID_seq:5:0}</Arg>
</AttrValue>

</AttributeValues>
]]>
</ruleSpecification>
<ruleType type="INIT"/>
</EngineRule>
<className>wt.change2.WTChangeRequest2</className>
</TypeBasedRule>

</OrganizationConfig>
3. 将加载程序复制到以下路径:<customizationRootDirectory>/configurations/loadFiles/<customFolder>
4. 将此加载文件的条目与所需容器一起添加到 configurations/loadFiles/custom/loadFileSet.xml 文件。如果要加载尚未加载的 OIR,请确保在 configurations/deploy.xml 中添加此 XML 的条目。
* 
如果上下文中存在类型的现有 OIR,则加载操作将失败。必须先删除现有的 OIR。
5. 按照步骤 2 中所述,定义自定义算法,并将其添加到以下路径:<customizationRootDirectory>/<module>/main/src/。您需要编译和部署此算法,并在 OIR 中根据容器级别使用此算法。
* 
建议所有加载文件都应位于自定义文件夹中。有关详细信息,请参阅CCD 包结构
在开发环境中部署自定义
有关部署 CCD 进程的信息,请参阅部署代码和配置包中的“创建和部署构建包”部分。
准备要升级的 CCD 包
从 BAC UI 导出 TypeBasedRule (OIR) 并将其添加到 CCD 包。有关详细信息,请参阅CCD 包结构
确保从 CCD 包结构中移除相应的加载程序。
有关升级 CCD 进程的信息,请参阅部署代码和配置包中的“工作流”部分。
这对您有帮助吗?