创建规范 XML 文件
业务管理更改升级规范文件是一种机制,使您能够使用 XML 文件来定义选择要导出的宏观级别管理对象时所要遵循的条件。例如,您可以指定一个筛选条件,以便仅导出来自特定组织或上下文的配置文件,或仅导出给定承担者的策略访问控制规则,等等诸如此类的操作。BACSpec.xsd 文件包含创建规范文件时适用的规则和约束。BACSpec.xsd 文件位于 <Windchill_Home>\prog_examples\BAC\schema。同步和选择性模式下均支持使用规范文件筛选对象。该主题的后续部分将介绍每个对象的规范文件中要使用的元素结构及相关信息,以及示例规范 XML 代码。此外,在 <Windchill_Home>\prog_examples\BAC 下还针对每种类型对象提供了一些示例规范文件,作为参考。
使用导出命令中的 -s 和 --objectType 选项可上载和处理规范 XML 文件。-s 或 --objectType 选项仅在将 wt.properties 中的 com.ptc.windchill.bac.features.enabled 属性设置为 2666518 时才可用。如果未进行此配置,则尝试上载规范文件时将被拒绝,并会显示一条错误消息。此选项在选择性模式和同步模式下均可用。
除使用对象标识属性作为筛选条件外,您还可以通过在规范文件中使用 GlobalContainerCriteria 标记来筛选容器级别的对象。有关详细信息,请参阅本主题中的全局容器条件部分。
系统中的每种对象类型仅支持一组特定的筛选条件。创建规范文件时,请确保所提供的条件对该对象类型有效。例如,对于策略访问控制规则,名称就不是受支持的筛选条件。因此,不能基于名称导出策略访问规则。类似地,生命周期状态或类型 ID 也不是配置文件支持的筛选条件。以下各部分详细介绍了在创建业务管理更改升级规范文件时可用于各个对象类型的不同元素。
规范文件中为元素、子元素或属性指定的字符串值区分大小写。
配置文件
使用规范文件时,可以根据特定组织容器或交换容器中的配置文件的名称来筛选配置文件。对于本部分所介绍的 XML 元素,可用于在选择性模式系统中根据配置文件来筛选对象。配置文件架构包含以下元素:
元素 | 说明 |
ExchangeContainer | 使用此元素可筛选在站点级别创建的配置文件。 在规范 XML 文件中,此标记只能有一个实例。 |
Organization | 指定组织的名称。例如,PTC。 |
name | 指定配置文件的名称。例如,Profile1。 |
您可以创建一个规范 XML 文件,用于选择 ExchangeContainer 或 PTC 组织中所有名为 Profile1 的配置文件,如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<Profile>
</ExchangeContainer>
<Organization>PTC</Organization>
<name>Profile1</name>
</Profile>
</BACSpec>
对象初始化规则
对于本部分所介绍的 XML 元素,可用于在选择性模式系统中筛选和导出对象初始化规则 (OIR) 记录。OIR 仅支持 TypeBasedRule 元素。您可以根据特定组织容器、应用程序容器、交换容器或对象类型的 OIR 名称来筛选 OIR。OIR 架构中包含以下元素:
元素 | 子元素 | 属性 | 说明 |
ExchangeContainer | – | – | 使用此元素可筛选在站点级别创建的 OIR。 在规范 XML 文件中,此标记只能有一个实例。 |
AppContainer | – | type | 指定应用程序容器的类型。有效值为 Project、Product 或 Library。 这是 AppContainer 的必需属性。 |
– | name | 指定应用程序容器的名称。 这是 AppContainer 的必需属性。 |
– | orgName | 指定应用程序容器内组织的名称。例如,PTC。 这是 AppContainer 的必需属性。 |
Organization | – | name | 指定组织的名称。例如,PTC。 |
name | – | – | 指定 OIR 的名称。例如,TestUser。 |
objectType | – | – | 指定对象的内部名称。例如,wt.doc.WTDocument。“类型和属性管理”实用程序中提供了对象的内部名称。 |
下面的示例规范文件可用于在 PTC 组织中根据对象类型 WTDocument 筛选和导出名为 OIR-part-org、OIR-doc-org 和 OIR-doc-prod1 的 OIR 记录:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<OIR>
<name>OIR-part-org</name>
<name>OIR-BACdocument-org</name>
<name>OIR-document-org</name>
<Organization name=”PTC”/>
<objectType>WCTYPE|wt.doc.WTDocument</objectType>
<objectType>WCTYPE|wt.doc.WTDocument|com.ptc.ptcnet.BACDocument</objectType>
</OIR>
</BACSpec>
首选项
对于本部分所介绍的 XML 元素,可用于在选择性模式系统中筛选和导出首选项。首选项架构中包含以下元素:
您可以根据容器的类型、Windchill 用户、首选项类别、首选项定义以及首选项客户端来筛选首选项。
元素 | 子元素 | 属性 | 说明 |
ExchangeContainer | – | – | 使用此元素可筛选在站点级别创建的首选项实例。 在规范 XML 文件中,此标记只能有一个实例。 |
AppContainer | – | type | 指定应用程序容器的类型。有效值为 Project、Product 或 Library。 |
– | name | 指定应用程序容器的名称。 |
– | orgName | 指定组织的名称。例如,PTC。 |
Organization | – | name | 指定组织容器的名称。例如,PTC。 |
User | – | – | 指定要筛选和导出用户首选项实例的 Windchill 用户或 WTUser 的名称、ufid 或电子邮件 ID。您必须在规范文件中至少指定其中一个值作为 WTUser 的筛选条件。 |
excludeInstances | | | 使用 excludeInstances 来指定是否想要在筛选首选项的过程中排除任何首选项实例。 如果仅使用 excludeInstances,那么,所有的首选项实例都将在筛选过程中被排除。对于更具体的筛选,请使用 instanceType 和 visibility 子元素作为筛选条件。 |
instanceType | – | 指定要从首选项筛选过程中排除的实例类型。有效值如下: • USER • CONTAINER • ORGANIZATION • SITE |
visibility | – | 指定需要排除首选项实例的可见性设置值。有效值如下: • USER • CONTAINER • ORGANIZATION • SITE • HIDDEN • PRODUCT • PROJECT • LIBRARY • USERONLY • PRODUCT,PROJECT • PRODUCT,LIBRARY • PROJECT,LIBRARY • PRODUCT,PROJECT,LIBRARY |
Name | – | – | 指定首选项定义的内部名称。 使用 getInternalNames 命令可获取内部名称。有关详细信息,请参阅getInternalNames。 |
CategoryName | – | – | 指定首选项类别的内部名称。 使用 getInternalNames 命令可获取内部名称。有关详细信息,请参阅getInternalNames。 |
ClientName | – | – | 指定首选项客户端的内部名称。 使用 getInternalNames 命令可获取内部名称。有关详细信息,请参阅getInternalNames。 |
容器信息、用户信息以及 excludeInstances 是筛选首选项的互斥选项。
用于从 Test Organization 下的 GOLF_CART 应用程序容器中筛选和导出名为 Intro 的首选项定义的示例规范文件。规范文件还指定了相应的筛选条件,可从名为 Windchill 和 DEMO 的首选项客户端中导出名为 AAA 的首选项记录,并排除了 User 和 Container 实例中具有隐藏可见性的首选项筛选。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<Preference>
<AppContainer name="GOLF_CART" type="Product" orgName="Test Organization"/>
<Name>Intro<Name/>
<excludeInstances>
<instanceType>USER<instanceType/>
<instanceType>CONTAINER<instanceType/>
<visibility>HIDDEN</visibility>
</excludeInstances>
<Name>AAA<Name/>
<ClientName>WINDCHILL</ClientName>
<CategoryName>DEMO</CategoryName>
<Preference>
</BACSpec>
要获取内部名称 - 根据首选项类别、首选项定义以及首选项客户端指定筛选条件时需要用户提供首选项的内部名称。使用以下命令获取特定区域首选项的内部名称:
java wt.scm.client.SCMCMD getInternalNames getInternalNames [--user <user>] [--password <password>] [--outputdir <outputdir] [--locale <locale>] [--objectType <objectType] [--help]
选项 | 是否必需 | 说明 |
-p --password | 否 | 运行命令的 Windchill 用户的密码。 |
-t --objectType | 是 | 要获取内部名称的对象类型。为该选项指定 Preferences。此选项的功能在以后的版本中将会得到增强,以支持新的对象类型。 |
-u --user | 否 | 运行命令的 Windchill 用户的用户名。运行命令的用户必须是有效的 Windchill 用户和站点管理员。 |
-h --help | 否 | 使用此选项来为实用程序显示帮助文本。该帮助文本将列出每个选项和实用程序运行语法的完整说明。 |
-l --locale | 否 | 生成输出文件的区域。如果未指定区域,将在默认区域中生成输出文件。 |
-o --outputdir | 是 | 生成并保存 CSV 文件的位置的文件路径。如果未指定此选项,文件将保存到 Windchill 临时目录 ${wt.temp}/bac 中的默认位置。 |
执行此命令时,将会生成 CSV 报告并将其保存在指定位置。CSV 报告提供了有关命令中所指定区域中的对象类型、内部名称和显示名称的信息。
策略访问控制规则
选择性模式系统的策略访问控制规则架构中包含以下元素:
您只能基于选择性模式系统的承担者属性筛选策略访问控制规则。您可以将筛选器设为承担者元素与容器、域或仅属性的组合。
创建同步模式系统的策略访问控制规则的规范文件时,请仅指定对象类型。不支持其他筛选条件。
元素 | 子元素 | 属性 | 说明 |
Organization | name | – | 指定组织的名称。例如,PTC。 |
ExchangeContainer | – | – | 使用此元素可筛选在站点级别创建的策略访问控制规则。 在规范 XML 文件中,此标记只能有一个实例。 |
AppContainer | – | type | 指定应用程序容器的类型。有效值为 Project、Product 或 Library。 这是 AppContainer 的必需属性。 |
– | name | 指定应用程序容器的名称。 这是 AppContainer 的必需属性。 |
– | orgName | 指定组织的名称。例如,PTC。 这是 AppContainer 的必需属性。 |
OrganizationDomains | name | – | 指定组织的名称。例如,PTC。 这是 OrganizationDomains 的必需属性。 |
path | – | 指定已定义对象的管理域的文件路径或文件夹位置。 这是 OrganizationDomains 的必需属性。 |
ExchangeContainerDomains | domain | path | 指定已定义对象的管理域。 |
AppContainerDomains | – | type | 指定应用程序容器的类型。有效值为 Project、Product 或 Library。 这是 AppContainerDomains 的必需属性。 |
– | name | 指定应用程序容器的名称。 这是 AppContainerDomains 的必需属性。 |
– | orgName | 指定组织的名称。例如,PTC。 这是 AppContainerDomains 的必需属性。 |
domain | path | 指定已定义对象的管理域。 这是 AppContainerDomains 的必需属性。 |
Principal | – | – | 指定承担者或参与者。有关不同子元素及其相应属性的详细信息,请参阅本主题中的承担者部分。 |
typeid | – | – | 指定对象的类型标识符,例如 WTPart 和 WTDocument。例如:WCTYPE|com.ptc.windchill.bac.delivery.BACReceivedDelivery |
state | – | – | 以大写形式指定对象类型的生命周期状态。 |
allExceptPrincipal | – | – | 指定是否要收集承担者对象。有效值为 true 和 false。 |
下面的示例规范文件用于筛选并导出类型 ID 为 WTPart、生命周期状态设置为 APPROVED 且 allExceptPrincipal 为 true 的所有策略访问控制规则。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<typeid>WCTYPE|wt.part.WTPart</typeid>
<state>APPROVED</state>
<allExceptPrincipal>true</allExceptPrincipal>
</PolicyAccessControlRule>
</BACSpec>
下面的示例规范文件用于筛选并导出 System 交换容器域、Test Organization 组织域和应用程序容器域 (如 GOLF_CART、Test_Lib 和 Test_Project) 中的所有策略访问控制规则。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<ExchangeContainerDomains>
<domain path=”/System”/>
<OrganizationDomains name=”Test Organization”/>
<domain path=”/Test Organization”/>
</OrganizationDomains>
<AppContainerDomains type=”Product” name=”GOLF_CART” orgName=”Test Organization”>
<domain path=”/Default”/>
</AppContainerDomains>
<AppContainerDomains type=”Library” name=”Test_Lib” orgName=”Test Organization”>
<domain path=”/Default”/>
</AppContainerDomains>
<AppContainerDomains type=”Project” name=”Test_Project” orgName=”Test Organization”>
<domain path=”/Default”/>
</AppContainerDomains>
</PolicyAccessControlRule>
</BACSpec>
下面的示例规范文件用于筛选并导出交换容器和 Test Organization 中的所有配置文件,以及交换容器和应用程序容器 (如产品、项目和存储库) 中的所有策略访问控制规则。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<Profile>
<ExchangeContainer/>
<Organization name=”Test Organization”/>
</Profile>
<PolicyAccessControlRule>
<ExchangeContainer/>
<Organization name=”Test Organization”/>
<AppContainer type=”Product” name=”GOLF_CART” orgName=”Test Organization”/>
<AppContainer type=”Library” name=”Test_Lib” orgName=”Test Organization”/>
<AppContainer type=”Project” name=”Test_Project” orgName=”Test Organization”/>
</PolicyAccessControlRule>
</BACSpec>
下面的示例规范文件用于导出同步模式系统中的所有配置文件、对象初始化规则以及策略访问控制规则:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<Profile/>
<PolicyAccessControlRule/>
<OIR/>
<Preference/>
</BACSpec>
生命周期模板
本部分所介绍的 XML 元素可用于在选择性模式系统中筛选和导出生命周期模板记录。您可以根据生命周期模板的名称在特定组织容器、应用程序容器或交换容器中筛选生命周期模板。
生成生命周期模板的规范文件时,请考虑以下指导准则:
• 您可以传播仅存在于 System 域中的生命周期模板。
• 您仅可以传播生命周期模板的最新小版本。即使源系统和目标系统中生命周期模板的小版本数量不同,也同样如此。
• 当在目标系统中的生命周期模板的上一小版本上传播删除操作时,此操作还会自动删除主数据。即使源系统上已导出的生命周期模板的最新小版本是目标系统中存在的唯一小版本,也同样如此。
• 仅当在同步模式系统中找到相匹配的“数据库映射”与“局部 ID”信息时,方可针对生命周期模板传播删除操作。在选择性模式系统中,必须找到相匹配的“数据库映射”。
• 不支持删除生命周期模板的中间小版本。相对于交换模式,将仅删除与“数据库映射”或“局部 ID”信息相匹配的最新小版本。
• 如果生命周期模板的小版本已从源系统上删除,则在导出过程中,小版本的已删除信息以及源系统中可用的最新小版本将一同传播到目标系统。这有助于同步目标系统中正使用的最新小版本。
• 在传播删除操作时,不支持根据业务标识筛选生命周期模板。
• 不支持删除正由其他对象使用的生命周期模板。
选择性模式系统的生命周期模板模式中包含以下元素:
元素 | 子元素 | 属性 | 说明 |
Name | – | – | 指定生命周期模板的名称。 |
ExchangeContainer | – | – | 使用此元素可筛选在站点级别创建的生命周期模板。 在规范 XML 文件中,此标记只能有一个实例。 |
AppContainer | – | type | 指定应用程序容器的类型。有效值为 Project、Product 或 Library。 这是 AppContainer 的必需属性。 |
– | name | 指定应用程序容器的名称。 这是 AppContainer 的必需属性。 |
– | orgName | 指定应用程序容器内组织的名称。例如,PTC。 这是 AppContainer 的必需属性。 |
Organization | – | name | 指定组织的名称。例如,PTC。 |
以下示例规范文件用于从 Demo Organization 中的 Exchange 容器和 GOLF_CART 产品中筛选和导出所有生命周期模板:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<LifeCycleTemplate>
<ExchangeContainer/>
<AppContainer type=”Product” name=”GOLF_CART” orgName=”Demo Organization”/>
</LifeCycleTemplate>
</BACSpec>
以下示例规范文件用于筛选和导出 Demo Organization 中命名为 Default 的所有生命周期模板:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<LifeCycleTemplate>
<Organization name="Demo Organization"/>
<Name>Default</Name>
</LifeCycleTemplate>
</BACSpec>
以下示例规范文件用于筛选和导出命名为 Basic 和 Default 的所有生命周期模板:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<LifeCycleTemplate>
<Name>Basic</Name>
<Name>Default</Name>
</LifeCycleTemplate>
</BACSpec>
工作流进程模板
本部分所介绍的 XML 元素可用于在选择性模式系统中筛选和导出工作流进程模板记录。您可以根据生命周期模板的名称在特定组织容器、应用程序容器或交换容器中筛选工作流进程模板。
生成工作流进程模板的规范文件时,请考虑以下指导准则:
• 您可以传播仅存在于 System 域中的工作流进程模板。
• 您仅可以传播工作流进程模板的最新小版本。即使源系统和目标系统中工作流进程模板的小版本数量不同,也同样如此。
• 当在目标系统中的工作流进程模板的最新小版本上传播删除操作时,此操作还会自动删除主数据。即使源系统上已导出的工作流进程模板的最新小版本是目标系统中存在的唯一小版本,也同样如此。
• 仅当在同步模式系统中找到相匹配的“数据库映射”与“局部 ID”信息时,方可针对工作流进程模板传播删除操作。在选择性模式系统中,必须找到相匹配的“数据库映射”。
• 不支持删除工作流进程模板的中间小版本。相对于交换模式,将仅删除与“数据库映射”或“局部 ID”信息相匹配的最新小版本。
• 如果工作流进程模板的小版本已从源系统上删除,则在导出过程中,小版本的已删除信息以及源系统中可用的最新小版本将一同传播到目标系统。这有助于同步目标系统中正使用的最新小版本。
• 在传播删除操作时,不支持根据业务标识筛选工作流进程模板。
• 不支持删除由其他对象使用的工作流进程模板。
• 不支持交换已外部化的工作流进程模板。
选择性模式系统的工作流进程模板模式中包含以下元素:
元素 | 子元素 | 属性 | 说明 |
Name | – | – | 指定工作流进程模板的名称。 |
ExchangeContainer | – | – | 使用此元素可筛选在站点级别创建的工作流进程模板。 在规范 XML 文件中,此标记只能有一个实例。 |
AppContainer | – | type | 指定应用程序容器的类型。有效值为 Project、Product 或 Library。 这是 AppContainer 的必需属性。 |
– | name | 指定应用程序容器的名称。 这是 AppContainer 的必需属性。 |
– | orgName | 指定应用程序容器内组织的名称。例如,PTC。 这是 AppContainer 的必需属性。 |
Organization | – | name | 指定组织的名称。例如,PTC。 |
以下示例规范文件用于从 Demo Organization 中的 Exchange 容器和 GOLF_CART 产品中筛选和导出所有工作流进程模板:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<WorkflowProcessTemplate>
<ExchangeContainer/>
<AppContainer type=”Product” name=”GOLF_CART” orgName=”Demo Organization”/>
</WorkflowProcessTemplate>
</BACSpec>
以下示例规范文件用于筛选和导出 Demo Organization 中命名为 Submit 的所有工作流进程模板:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<WorkflowProcessTemplate>
<Organization name="Demo Organization"/>
<Name>Submit</Name>
</WorkflowProcessTemplate>
</BACSpec>
以下示例规范文件用于筛选和导出 Submit 中命名为 Review 的所有工作流进程模板:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<WorkflowProcessTemplate>
<Name>Review</Name>
<Name>Submit</Name>
</WorkflowProcessTemplate>
</BACSpec>
类型定义
规范文件可用于根据类型定义的内部名称筛选和导出属性模板。属性模板架构包含以下元素:
元素 | 说明 |
Name | 指定类型定义的内部名称。例如,Name1。 |
Namespace | 指定类型定义的名称空间。例如,Namespace1。 | 如果没有要为名称空间提供的信息,请勿将其包括在规范文件中。 |
|
Flavor | 指定类型定义的属性模板风格。例如,LWCTYPE。 |
如下是用于筛选和导出属性模板的规范文件示例:
测量系统
规范文件可用于根据测量系统的名称来筛选和导出测量系统。架构包含以下元素:
元素 | 说明 |
Name | 指定测量系统的名称。例如,MS1。 |
如下是用于筛选和导出测量系统的规范文件示例:
测量数量
规范文件可用于根据测量数量的名称来筛选和导出测量数量。架构包含以下元素:
元素 | 说明 |
Name | 指定测量数量的名称。例如,QOM1。 |
如下是用于筛选和导出测量数量的规范文件示例:
全局枚举
规范文件可用于根据枚举、组织器名称和拥有组织的名称来筛选和导出全局枚举。架构包含以下元素:
元素 | 说明 |
internalName | 指定全局枚举的名称。例如,ENU1。 |
OrganizerName | 指定枚举组织器的名称。 |
owningOrg | 指定在其中创建枚举的组织。 |
下面是一个规范文件示例,可用于筛选和导出命名为 basic 和 default 的全局枚举:
下面是一个规范文件示例,可用于根据枚举组织器来筛选和导出全局枚举:
下面是一个规范文件示例,可用于根据枚举组织器和拥有组织来筛选和导出全局枚举:
下面是一个规范文件示例,可用于根据拥有组织来筛选和导出全局枚举:
可重用属性
规范文件可用于根据属性名称和属性组织器来筛选和导出可重用属性。架构包含以下元素:
元素 | 说明 |
name | 指定具有或不带域名的属性的内部名称。例如 org.rnd.SampleAttr1 或 SampleAttr1 |
OrganizerName | 指定层次结构中属性组织器的内部名称。 |
下面是一个规范文件示例,可用于根据属性的内部名称来筛选和导出可重用属性:
下面是一个规范文件示例,可用于根据属性组织器来筛选和导出可重用属性。
承担者
您可以使用一个元素或承担者元素组合来创建规范文件。如果在规范文件中使用承担者的所有元素,则架构中元素的顺序必须与下图中所示顺序一致。
承担者架构中包含以下元素:
• 角色承担者
代表为分配给上下文团队和共享团队成员的角色创建的系统组,且在应用程序上下文中创建的系统组代表在上下文团队中具有成员的组织。
此元素支持 Windchill 角色或 WTRoleprincipal 的组名称、组类型和容器 (可能是交换容器或组织容器)。您必须为 WTRolePrincipal 指定交换容器或组织。
WTRoleprincipal 架构中包含以下元素:
元素 | 子元素 | 属性 | 说明 |
groupname | | | 指定 APPROVER 作为内部组的名称。 |
grouptype | | | 指定 DynamicRole 作为内部组所属组的类型。 |
ExchangeContainer | – | – | 使用此元素可筛选在站点级别创建的系统组。 在规范 XML 文件中,此标记只能有一个实例。 |
Organization | – | name | 指定组织的名称。例如,PTC。 |
下面的示例规范文件用于筛选并导出 PTC 组织中的所有基于 RolePrincipal 的策略访问控制规则。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<RolePrincipal>
<groupname>112211_ORG</groupname>
<grouptype>DynamicRole</grouptype>
<Organization name=”PTC”/>
</RolePrincipal>
</PolicyAccessControlRule>
</BACSpec>
下面的示例规范文件用于筛选并导出交换容器中所有基于 RolePrincipal 的策略访问控制规则。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<RolePrincipal>
<ExchangeContainer/>
</RolePrincipal>
</PolicyAccessControlRule>
</BACSpec>
• 组
指定 ufid 或者名称与 Windchill 组或 WTGroup 的交换容器或组织容器的组合。
WTGroup 架构中包含以下元素:
元素 | 子元素 | 属性 | 说明 |
name | – | – | 指定组的名称。例如,Administrator。 |
Organization | – | – | 指定组织的名称。例如,PTC。 |
ExchangeContainer | domain | path | 使用此元素可筛选在站点级别创建的组。 在规范 XML 文件中,此标记只能有一个实例。 |
ufid | – | name | 指定对象的唯一联合标识符 (UFID)。此参数的有效格式为:<ufid_string>|<ldap repository>|<ldap repository> |
下面的示例规范文件用于筛选并导出 PTC 组织的 Administrator 组、交换容器及特定 ufid 中的所有策略访问控制规则:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<Group>
<name>Administrator</name>
<grouptype>DynamicRole</grouptype>
<Organization name=”PTC”/>
</Group>
<Group>
<ufid>uid=test,ou=people,cn=adminsitrativeldap,cn=ajohn.111.01.01,o=ptc|Ldap.ptcnet.ptc.com|Ldap.ptcnet.ptc.com</ufid>
</Group>
</PolicyAccessControlRule>
</BACSpec>
下面的示例规范文件用于筛选并导出交换容器下所有组中的所有策略访问控制规则:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<Group>
<ExchangeContainer/>
</Group>
</PolicyAccessControlRule>
</BACSpec>
• 内部组
这些组在 LDAP 中无法体现,但会由 Windchill 进行内部维护。例如,存储库创建者。
InternalGroup 架构中包含以下元素:
元素 | 子元素 | 属性 | 说明 |
groupname | | | 指定内部组的名称。 |
grouptype | | | 指定 DynamicRole 作为内部组所属组的类型。 |
ExchangeContainer | – | – | 使用此元素筛选在站点级别创建的内部组。 在规范 XML 文件中,此标记只能有一个实例。 |
Organization | – | name | 指定组织的名称。例如,PTC。 |
AppContainer | – | type | 指定应用程序容器的类型。有效值为 Project、Product 或 Library。 这是 AppContainer 的必需属性。 |
– | name | 指定应用程序容器的名称。 这是 AppContainer 的必需属性。 |
– | orgName | 指定组织的名称。例如,PTC。 这是 AppContainer 的必需属性。 |
下面的示例规范文件用于筛选并导出 PTC 组织的 LIBRARY CREATOR 组中所有的策略访问控制规则:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<InternalGroup>
<groupname>LIBRARY CREATOR</groupname>
<grouptype>DynamicRole</grouptype>
<Organization name=”PTC”/>
</InternalGroup>
</PolicyAccessControlRule>
</BACSpec>
• WTUser
指定 Windchill 用户或 WTUser 的名称、ufid 或电子邮件 ID。在规范文件的 WTUser 下,您必须至少指定其中一个元素作为筛选条件。
WTUser 架构中包含以下元素:
元素 | 说明 |
name | 指定用户名。例如,TestUser。 |
emailid | 指定用户的电子邮件 ID。例如,testuser@ptc.com。 |
ufid | 指定对象的唯一联合标识符 (UFID)。此参数的有效格式为:<ufid_string>|<ldap repository>|<ldap repository> |
下面的示例规范文件用于基于 ufid 筛选并导出所有的策略访问控制规则:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<User>
<ufid>uid=test,ou=people,cn=adminsitrativeldap,cn=ajohn.111.01.01,o=ptc|Ldap ptcnet.ptc.com|Ldap.ptcnet.ptc.com</ufid>
</User>
</PolicyAccessControlRule>
</BACSpec>
下面的示例规范文件用于基于名为 TestUser 的用户的电子邮件 ID 筛选并导出所有的策略访问控制规则:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<User>
<emailid>testuser@ptc.com</emailid>
</User>
</PolicyAccessControlRule>
</BACSpec>
• WTOrganization
指定 Windchill 组织或 WTOrganization 的名称或 ufid。规范文件中至少需要有一个元素。在规范文件的 WTOrganization 下,您必须至少指定其中一个元素作为筛选条件。
WTOrganization 架构中包含以下元素:
元素 | 说明 |
name | 指定组织的名称。例如,PTC。 |
ufid | 指定对象的唯一联合标识符 (UFID)。此参数的有效格式为:<ufid_string>|<ldap repository>|<ldap repository> |
下面的示例规范文件用于筛选并导出 PTC 组织与 ufid 中的所有策略访问控制规则:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<Org>
<ufid>uid=test,ou=people,cn=adminsitrativeldap,cn=ajohn.111.01.01,o=ptc|Ldap ptcnet.ptc.com|Ldap.ptcnet.ptc.com</ufid>
</Org>
<Org>
<name>PTC</name>
</Org>
</PolicyAccessControlRule>
</BACSpec>
• PseudoRole
指定筛选器来基于虚拟角色收集对象。
PseudoRole 架构中包含以下元素:
元素 | 说明 |
name | 为此属性指定 ALL 或 OWNER,其中, • ALL 为 Windchill 用来代表所有参与者的虚拟角色 • OWNER 为 Windchill 用来代表对象所有者的虚拟角色 |
下面的示例规范文件用于筛选并导出虚拟角色设为 ALL 或 OWNER 的所有策略访问控制规则:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<PseudoRole>
<name>ALL</name>
</PseudoRole>
<PseudoRole>
<name>OWNER</name>
</PseudoRole>
</PolicyAccessControlRule>
</BACSpec>
下面的示例规范文件按规定顺序引用了所有的承担者元素:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<PolicyAccessControlRule>
<RolePrincipal>
<groupname>112211_ORG</groupname>
<grouptype>DynamicRole</grouptype>
<Organization name=”PTC”/>
</RolePrincipal>
<Group>
<name>Administrator</name>
<grouptype>DynamicRole</grouptype>
<Organization name=”PTC”/>
</Group>
<User>
<emailid>testuser@ptc.com</emailid>
</User>
<User>
<name>Test User</name>
</User>
<Org>
<ufid>uid=test,ou=people,cn=adminsitrativeldap,cn=ajohn.111.01.01,o=ptc|Ldap ptcnet.ptc.com|Ldap.ptcnet.ptc.com</ufid>
</Org>
<Org>
<name>PTC</name>
</Org>
<InternalGroup>
<groupname>LIBRARY CREATOR</groupname>
<grouptype>LIBRARY CREATOR</grouptype>
<Organization name=”PTC”/>
</InternalGroup>
<PseudoRole>
<name>ALL</name>
</PseudoRole>
<PseudoRole>
<name>OWNER</name>
</PseudoRole>
</PolicyAccessControlRule>
</BACSpec>
全局容器条件
使用 GlobalContainerCriteria 可将常用容器指定为规范文件中所指定的所有对象类型的全局筛选条件。此外,GlobalContainerCriteria 中指定的容器还将应用于规范文件中的所有对象类型。在规范文件中使用 GlobalContainerCriteria 可导入或导出记录,仅在选择性模式系统中支持此功能。
例如,要从 GlobalContainerCriteria 的 PTC 组织和交换容器中筛选和导出所有配置文件,将从 PTC 和 ExchangeContainer 中提取所有配置文件记录。如下为本例中的示例 XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<GlobalContainerCriteria>
<Organization name=”PTC”/>
</GlobalContainerCriteria>
<Profile>
<ExchangeContainer/>
</Profile>
</BACSpec>
使用 GlobalContainerCriteria 创建规范文件时,必须考虑以下几点:
• 此元素位于紧随 BACSpec 根标记后的第一级别。
• 此元素与规范文件中的对象标记位于同一级别。
• 此元素支持下列容器:
◦ 交换容器
◦ 组织容器
◦ 应用程序容器
• 检查在 GlobalContainerCriteria 中指定的容器对给定对象类型是否有效。
• 对于粒度搜索,在管理对象内指定有效的容器。例如,针对策略访问控制规则指定应用程序容器。
| 不能使用配置文件的 GlobalContainerCriteria 指定应用程序容器或域。 |
• 不支持在对象元素内使用域作为子元素。例如,不能在策略访问控制规则的应用程序容器下指定域。
下面的示例规范文件用于筛选并导出交换容器中的所有配置文件,以及 PTC 组织下“驱动系统”应用程序容器中的策略访问控制规则。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BACSpec xmlns="http://www.ptc.com/bac">
<GlobalContainerCriteria>
<Organization name=”PTC”/>
</GlobalContainerCriteria>
<Profile>
<ExchangeContainer/>
</Profile>
<PolicyAccessControlRule>
<AppContainer name=”Drive System” orgName=”Demo Organization” type=”Product”/>
</PolicyAccessControlRule>
</BACSpec>