与其他应用程序集成 > Windchill Workgroup Manager 文档 > CADDS 5 > 高级技术 > 管理业务对象 > 用法示例
  
用法示例
在 CADDS 5 中通过 Windchill 中的现有部件填充业务对象详细信息
此情况假定针对 Windchill 中已存在的新创建 Creo CADDS 5 部件,业务对象生成器已在其中标识了业务对象。例如,如果使用自顶向下的开发过程,并且在实际设计部件之前已在 Windchill 中指定部件,则可能会发生此情况。设计者可以以后再针对 Creo CADDS 5 进行部件设计,然后将其与先前定义的 WTPart 相关联。
1. Creo CADDS 5 中打开部件并启动业务对象浏览器。
2. 在浏览器中选择一个业务对象。
3. 单击鼠标右键,然后从下拉菜单中选择“搜索”。随即打开 Windchill Workgroup Manager 用户界面。
* 
在搜索业务对象上的 Windchill 部件时,您需要将“业务浏览器”视图设置为单级。但是,对于目录项具体值,可以在设置多级视图后再启动搜索。
4. Windchill 用户界面中,定义搜索条件 (例如,Number=1234Name=XYZ)。在搜索结果中,查找与所需业务对象对应的 Windchill 部件 (WTPart),然后单击“确定”
随后,“业务对象浏览器”中的 BO ID 字段将填充相应的 Windchill 部件编号。
如果要保存搜索到的 WTPart 的信息,则必须按下列步骤选择业务对象 (在该业务对象上搜索要发布的 WTPart):
* 
这些步骤也对选定的业务对象进行标记,以便于发布。
1. 在导航器树中选中“业务对象”框可获得“业务对象浏览器”,如下所示。
2. 从“业务对象浏览器”中选择“文件” > “应用”
忽略这些步骤将导致通过“业务对象浏览器”搜索到的 WTPart 的信息在刷新浏览器视图或关闭浏览器后丢失。
检入部件且生成一些业务对象
此情况假定以下条件:
部件在 Creo CADDS 5 中处于活动状态
BO 已定义并标记为用于发布:
在“业务对象浏览器”中,选中所需业务对象旁边的复选框,然后选择“文件” > “应用”,对 BO 进行标记以便于发布。部件和业务对象报告将存储在工作区本地目录和本地工作区缓存中。
* 
能够以整体形式选择业务对象,但不能选择其子组件。
业务对象存在合适的 XML。
模型项子类型中定义的全局属性。(请参阅下面的属性映射部分)
为合适类型的模型项定义了 Windchill 部件子类型。
* 
此操作必须由 Windchill 服务器管理员通过“类型和属性管理器”实用程序执行,通过以管理员身份登录并选择“站点” > “实用程序” > “类型和属性管理器”可访问此功能。在“类型和属性管理器”中,选择“管理类型”,然后展开“模型项”条目,并选择合适的子类型。有关使用“类型和属性管理器”的详细信息,请参阅使用类型和属性管理实用程序,或参阅“Windchill 帮助中心”主题“专业化管理” > “使用类型和属性管理器”
Creo CADDS 5 中的“文件”菜单中选择“检入”(自动或自定义均可)。如果需要 CAD 部件和模型项与 Windchill 部件自动关联,则应在检入期间进行指定。也可以指定构建 Windchill 部件的结构。对于自定义检入,此为自动关联区域。可从用户界面设置构建选项。对于自动检入,可以使用 Windchill“首选项管理”实用程序来设置构建选项。
此时,Creo CADDS 5 将重新运行“业务对象生成器”,以查看业务对象在首次定义后是否有所更新。如果发生更新,则检入失败。如果未发生更新,则将使用旧业务对象报告。Windchill Workgroup Manager 为每个业务对象创建模型项,并通过业务对象报告填充其属性。部件及所有关联信息都将上载到 Windchill 并进行检入。CAD 文档和模型项文档与相应的 Windchill 部件相关联。这些操作会在无用户交互的情况下发生。
要使用关联的 WTPart 将结构对象发布至 Windchill,就必须在与 WTPart 进行关联前计算出结构对象上的 ST 数量。否则,与 WTPart 的关联会失败,随后检入也会失败。如果检入的 CAD 部件包含具有未计算数量和为便于发布而标记的自动关联选项的结构对象时,会出现错误消息“数量未算出或数量为 0”。如果禁用了自动关联选项,则检入操作将会成功。要计算数量,可针对为便于发布而标记的每个结构对象运行 Creo CADDS 5 命令 "Calculate STQuantities"。
检入过程完成后,Creo CADDS 5Windchill 中的信息将实现同步。标识的业务对象将作为属于部件 (该部件也会检入) 的模型项检入。CAD 文档和模型项都将与相应的合适类型的 Windchill 部件相关联。
通常,对于发布了 BO 且关联并构建了 WTPart 的 CAD 部件,Windchill 部件结构应显示以下结构:
CAD 文档的 WTPart
业务对象 (BO) 的 WTPart
具体值的 WTPart
存储库项 (目录部件) 的 WTPart
使用 Workgroup Manager 客户端检入部件
此情况与先前的情况类似,但是,我们将使用 Windchill Workgroup Manager 客户端而非使用 Creo CADDS 5“文件”菜单执行检入。此外,我们假定业务对象报告与最近的 Creo CADDS 5 会话中所做的更改并不同步。
检入中所述检入部件。
事件的发生顺序与上述情况相同,但是,在这种情况下,业务对象生成器在“后台”运行,并生成新的业务对象报告。如果 Windchill 中的模型项与业务对象中可能已发生的任何更改都不同步,检入将失败。
使用生命周期状态
用户可能希望锁定部件,防止部件发生不需要的更改。通过在 Windchill 中更改生命周期状态可以实现。
在此情况下,我们假定部件及所有相关的业务对象和模型项均检入到 Windchill 且与正确的 Windchill 部件实现正确关联,并假定已定义各模型项存储 Windchill 部件生命周期状态系统属性。
此时,在 Windchill 中选择相应的模型项,然后将其状态更新为“已发布”。这可以通过如下方式来实现:将对象检出到工作区,然后从“操作”菜单中选择“设置状态”(您必须为管理员或具有修改对象的权限)。现在,如果在 Creo CADDS 5 中激活部件并启动了“业务对象浏览器”,则业务对象将显示为“已锁定”。可通过在 Creo CADDS 5 命令窗口中运行下列命令来对此进行验证: List Property: <UID of the BO>,此命令会显示出业务对象的特性信息。此符号表示业务对象处于“已发布”状态。此外,RDON 特性的值应为 1,表示业务对象此时为只读。
您不能对该文件进行任何更改。(可通过转至 Windchill Workgroup Manager 用户界面,并观察相应 Windchill 部件的生命周期状态是否显示为“已发布”来进行验证。)
* 
如果 Windchill 部件状态变为“已发布”且 CAD 部件已在 Windchill 中打开,则必须关闭并重新打开部件文件并查看业务对象是否为只读状态。
默认的 CADDS 5 模型项属性
默认情况下,会从 Creo CADDS 5 业务对象传送下列属性:
UID – 唯一 ID 号
Stockno – 坯件编号
说明 – 业务对象说明
管理员可在 Windchill Workgroup Manager 中使用“类型和属性管理器”将这些属性添加到模型项,如上所述。这些属性应作为字符串类型属性添加,且应添加到将用于管理 Creo CADDS 5 业务对象的模型项和 WTPart 子类型中。
使用数据字典映射文件
如上所述,数据目录字典为 XML 文件,它描述了 Creo CADDS 5 中业务对象的属性与其在 Windchill Workgroup Manager 中的对应模型项之间的关系。此文件的文件名为 bo2mi_mapping.xsl,它位于 usr/apl/cadds/data/businessobject 目录中,此位置为映射文件的默认位置。可自定义映射文件并从一个非默认位置使用该文件,方法是设置下面的环境变量:setenv BOXSLMAPPINGFILE "<到包含映射文件的目录的路径>/bo2mi_mapping.xsl">
以下示例显示了名为 DUCTLINE 的业务对象和一个具体值项 DUCT_NLINE 创建映射的方法:
----------------------------DUCTLINE-----------------------------------
<xsl:template match="SUPER_ITEM[@NAME='DUCTLINE']">
<bo>
<xsl:call-template name="BO_ATTRS"/>
<iba Name="Description">
<xsl:attribute name="VALUE">
<xsl:value-of select="CLASS[@NAME='MAIN']/LABEL/@VALUE"/>
</xsl:attribute>
</iba>
<iba Name="UID">
<xsl:attribute name="VALUE">
<xsl:value-of select="@UID"/>
</xsl:attribute>
</iba>
<xsl:apply-templates select="CLASS[@NAME='LIBRARY']/descendant::
ITEM[@NAME='DUCT_NLINE']"/>
<xsl:apply-templates select="CLASS[@NAME='LIBRARY']/descendant::
ITEM[@NAME='DUCT_FITTING']"/>
<xsl:apply-templates select="CLASS[@NAME='LIBRARY']/descendant::
ITEM[@NAME='DUCT_NLINE_GASKET']"/>
</bo>
</xsl:template>
----------------------------DUCTLINE_NLINE-----------------------------
<xsl:template match="ITEM[@NAME='DUCT_NLINE']">
<!--Occurence-->
<occurence>
<xsl:call-template name="OCCURENCE_ATTRS"/>
<iba Name="UID">
<xsl:attribute name="VALUE">
<xsl:value-of select="@UID"/>
</xsl:attribute>
</iba>
<library>
<xsl:call-template name="LIBRARY_ATTRS"/>
<iba Name="stockno">
<xsl:attribute name="VALUE">
<xsl:value-of select="PROP[@PUBLISH_NAME='STOCK NUMBER']/@VALUE"/>
</xsl:attribute>
</iba>
</library>
<link>
<xsl:call-template name="OCC_TO_LIB_LINK_ATTRS"/>
<xsl:attribute name="mQuantity">
<xsl:value-of select="LENGTH/@VALUE"/>
</xsl:attribute>
<xsl:attribute name="mUnits">
<xsl:value-of select="LENGTH/@UNITS"/>
</xsl:attribute>
</link>
</occurence>
</xsl:template>
如您所见,系统为映射业务对象属性、具体值和存储库节点提供了通用模板 (BO_ATTRS、OCCURRENCE_ATTRS、LIBRARY_ATTRS)。此外还为具体值和存储库之间的链接提供了一个模板 (OCC_TO_LIB_LINK_ATTRS)。其中的一些属性是业务对象填充过程正确运行所必需的,不应对其进行更改。文件中显示了注释对此进行指示。
1. 调用用于属性填充的通用模板 (BO_ATTRS)。
2. 全局属性是模型项的用户定义属性。您可以根据特定“模型项”所需的属性来添加、修改或删除全局属性标记。
3. 对于业务对象中的每个类型的具体值项,必须调用 apply_templates 操作。
为具体值节点创建模板时:
1. 调用用于属性填充的通用模板 (OCCURENCE_ATTRS)。
2. 具体值模板必须置于 <occurence> </occurence> 标记内。
3. 如果具体值模型项必须链接到目录项,则必须存在 <library> 和 <link> 标记。否则,它们不是必需项。
4. 在 <library> </library> 部分中,调用用于属性填充的通用模板 (LIBRARY_ATTRS)。
5. 在 <link> </link> 部分中,调用用于属性填充的通用模板 (OCC_TO_LIB_LINK_ATTRS)。但是,由于对于各个具体值类型,属性 quantityunits 的 xpath 值不同,所以通用模板将这些属性排除在外。调用通用模板后,必须添加这些属性。
定义模型项的属性
这些值类型格式适用于 bo2mi_mapping.xsl 文件中的全局属性。除非另有说明,否则数据类型应为字符串。
类型
整数
<iba Name=”PSO_MI”>
<xsl:attribute name=”TYPE”>INTEGER</xsl:attribute>
<xsl:attribute name=”VALUE”>101</xsl:attribute></iba>
字符串
<iba Name=”PSO_MI”>
<xsl:attribute name=”TYPE”>STRING</xsl:attribute>
<xsl:attribute name=”VALUE”>string value</xsl:attribute></iba>
实际
<iba Name=”PSO_MI”>
<xsl:attribute name=”TYPE”>REAL</xsl:attribute>
<xsl:attribute name=”VALUE”>10.11</xsl:attribute></iba>
布尔型
<iba Name=”PSO_MI”>
<xsl:attribute name=”TYPE”>BOOLEAN</xsl:attribute>
<xsl:attribute name=”VALUE”>Yes</xsl:attribute></iba>
定义 CADDS 5 模型项的子类型用法
要使用 Windchill 代码库中的 EPMDefaultSoftTypes.xml,可创建一个名为 EPMDefaultSoftTypes.xml 的文件 (内含下列内容),并将其添加到 Windchill Workgroup Manager 服务器的 $WT_HOME/codebase 目录中,然后重新启动服务器。
<?xml version="1.0" encoding="UTF-8"?>
IMP NOTE: PLEASE do NOT edit this file directly. In order to override the
subtypes specified here,
create a similar file [with the same name] under $WT_HOME/codebase
directory and restart the server.
Document: EPMDefaultSoftTypes.xml
Created on: August 21, 2009, 2:14 PM
Author: kboora
Description: Specify the out-of-the-box subtype mappings for a given type and subtype of a
model item / EPM document per authoring application
-->
<SoftTypeDescriptor xmlns='http://www.ptc.com'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://www.ptc.com
SoftTypeDescriptor.xsd'>
<AuthAppSoftTypeInfo authAppName="CADDS5">
<ObjectClassInfo classType="ModelItem">
<ObjectTypeInfo type="COMPONENT">
<SoftTypeInfo softTypeId="${internet_domain_name}.BOM"/>
<SoftTypeInfo subType="CUSTOM"
softTypeId="${internet_domain_name}.MI_BO"/>
<softTypeInfo subType="LIBRARY" softTypeId="${internet_domain_name}.BOM"/>
</ObjectTypeInfo>
</ObjectClassInfo>
</AuthAppSoftTypeInfo>
</SoftTypeDescriptor>
要使用模型项上的全局属性来定义子类型,可在 Windchill Workgroup Manager 中以站点管理员的身份登录,然后导航至站点级“首选项管理”实用程序。搜索“子类型参数”首选项。出厂设置时,此首选项中定义的全局属性为 "UPLOAD_SOFT_TYPE"。
可按如下方式在 "bo2mi_mapping.xsl" 数据目录映射文件中方便地使用上述全局属性来定义模型项的子类型。(此时假定您已创建了所需的模型项子类型及相应的 WTParts 子类型。)
<!-- ===========================BO PIPE SPOOL
================================================== -->
<!-- ====================================================================
======================= -->
<xsl:template match="SUPER_ITEM[@NAME='PIPESPOOL']">
<bo>
<xsl:call-template name="BO_ATTRS"/>
<iba Name="Description">
<xsl:attribute name="VALUE">
<xsl:value-of select="CLASS[@NAME='MAIN']/LABEL/@VALUE"/>
</xsl:attribute>
</iba>
<iba Name="UID">
<xsl:attribute name="VALUE">
<xsl:value-of select="@UID"/>
</xsl:attribute>
</iba>
<iba Name="UPLOAD_SOFT_TYPE">
<xsl:attribute name="VALUE">com.ptc.ptcnet.C5_MI_BO</xsl:attribute>
</iba>
* 
‘com.ptc.ptcnet.C5_MI_BO’ 是该模型项子类型的内部名称。