自定义构建基块 > 自定义服务
自定义服务
您可以自定义 PTC 构建基块中提供的服务来实现您自己的逻辑。这其中包括创建一个从 PTC 构建基块扩展而来的新构建基块,并覆盖此新构建基块中管理器事物的服务。构建基块中的服务可在构建基块中管理器事物的“服务”页面上进行查看。
自定义服务时,请注意以下事项:
更改服务代码可能会导致服务长时间运行或需要进行密集计算,进而导致性能下降。
最佳做法是自定义后端服务,而不是自定义与用户界面相关的服务。
自定义服务
要自定义服务,请完成以下步骤:
1. 确定哪个构建基块中包括您要自定义的服务。这一点可通过服务所在管理器事物的名称轻松确定。例如,如果服务是面向 PTC.StatusImpl.Manager 事物的,则该服务是 PTC.StatusImpl 构建基块的一部分。
2. 创建一个新的构建基块,该构建基块从 PTC 构建基块扩展而来,所述 PTC 构建基块中包含您要自定义的服务。
要创建新的构建基块,请完成以下步骤:
a. 创建一个新项目。为您的项目指定唯一的前缀,例如您的公司名称。对于 PTC 提供的实体,保留 PTC 前缀。在本示例中,创建一个名为 MyCompany.StatusImpl 的项目。对于为此构建基块创建的各个新事物模板、事物或其他实体,将新项目添加为实体“常规信息”页面上的“项目”值。
b. 在您的项目中创建一个新事物模板,该事物模板使用 PTC.DefaultConfiguration.EntryPoint_TT 作为其“基本事物模板”。在本示例中,将此新事物模板命名为 MyCompany.StatusImpl.EntryPoint_TT
c. 在您的项目中创建一个新事物,该事物使用在步骤 2.b 中创建的事物模板作为其“基本事物模板”。在本示例中,将此新事物命名为 MyCompany.StatusImpl.EntryPoint
d. 在您的项目中创建一个新事物模板,该事物模板使用您的构建基块所扩展自的 PTC 构建基块中的管理器事物模板作为其“基本事物模板”。在本示例中,将此新事物模板命名为 MyCompany.StatusImpl.Manager_TT,并使用 PTC.StatusImpl.Manager_TT 作为其“基本事物模板”
e. 在您的项目中创建一个新事物,该事物使用在步骤 2.d 中创建的事物模板作为其“基本事物模板”。在本示例中,将此新事物命名为 MyCompany.StatusImpl.Manager,并使用 MyCompany.StatusImpl.Manager_TT 作为其“基本事物模板”
3. 将管理器事物的配置从原始 UI 构建基块添加到新构建基块的管理器事物中。
a. 导航至在步骤 2.e 中创建的管理器事物,在本示例中为 MyCompany.StatusImpl.Manager
b. “配置”下,添加在原始构建基块管理器事物 (在本示例中为 PTC.StatusImpl.Manager)“配置”页面中找到的配置。
4. 将新构建基块的管理器事物注册为要使用的管理器,以取代此构建基块所扩展自的 PTC 构建基块中的管理器。
a. 导航至 PTC.Base.Manager 事物。
b. “配置”下,找到 DefaultGlobalManagerConfiguration 配置表。
c. 单击 managerThingName 值与此构建基块所扩展自的 PTC 构建基块的管理器相匹配的行所对应的 编辑图标
在本示例中,单击 managerThingName 值为 PTC.StatusImpl.Manager 的行所对应的 编辑图标
d. 在编辑窗口中,将 manageThingName 字段设置为步骤 2.e 中所创建构建基块的管理器事物的名称。
e. 单击“设置”以设置新值。
f. 单击“保存”以保存对 PTC.Base.Manager 事物所做的更改。
5. 覆盖服务以实现您的自定义逻辑。
a. 导航至构建基块的管理器事物模板。在本示例中,导航至 MyCompany.StatusImpl.Manager_TT 事物模板。
b. “服务”下,找到要自定义的服务,然后单击 覆盖图标 以覆盖服务。
c. 在脚本编辑器中,进行必要的代码更改以实现您的自定义逻辑。
d. 单击“完成”以保存对服务的更改。
e. 单击“保存”以保存对管理器事物所做的更改。
针对 UI 构建基块自定义服务
如果要覆盖的服务是针对 UI 构建基块的服务,请完成以下步骤:
1. 创建一个新的构建基块,该构建基块从 PTC 构建基块 (在本示例中为 PTC.ProductionDashboard 构建基块) 扩展而来。
要创建新的构建基块,请完成以下步骤:
a. 创建一个新项目。为您的项目指定唯一的前缀,例如您的公司名称。对于 PTC 提供的实体,保留 PTC 前缀。在本示例中,创建一个名为 MyCompany.ProductionDashboard 的项目。对于为此构建基块创建的各个新事物模板、事物或其他实体,将新项目添加为实体“常规信息”页面上的“项目”值。
b. 在您的项目中创建一个新事物模板,该事物模板使用 PTC.Base.ComponentEntryPoint_TT 作为其“基本事物模板”。在本示例中,将此新事物模板命名为 MyCompany.ProductionDashboard.EntryPoint_TT
c. 在您的项目中创建一个新事物,该事物使用在步骤 1.b 中创建的事物模板作为其“基本事物模板”
d. 在您的项目中创建一个新事物模板,该事物模板使用您的构建基块所扩展自的 PTC 构建基块中的管理器事物模板作为其“基本事物模板”。在本示例中,将此新事物模板命名为 MyCompany.ProductionDashboard.Manager_TT,并使用 PTC.ProductionDashboard.Manager_TT 作为其“基本事物模板”
e. 在您的项目中创建一个新事物,该事物使用在步骤 1.d 中创建的事物模板作为其“基本事物模板”。在本示例中,将此新事物命名为 MyCompany.ProductionDashboard.Manager,并使用 MyCompany.ProductionDashboard.Manager_TT 作为其“基本事物模板”
2. 覆盖服务以实现您的自定义逻辑。
a. 导航至构建基块的管理器事物模板。在本示例中,导航至 MyCompany.ProductionDashboard.Manager_TT 事物模板。
b. “服务”下,找到要自定义的服务,然后单击 覆盖图标 以覆盖服务。
c. 在脚本编辑器中,进行必要的代码更改以实现您的自定义逻辑。
d. 单击“完成”以保存对服务的更改。
e. 单击“保存”以保存对管理器事物所做的更改。
3. 更新该 UI 主混搭的 manager 属性,使其指向新构建基块的管理器事物。这将导致从此主混搭调用的混搭从新管理器中执行服务,而不是从原始构建基块的管理器中执行。
主混搭是从解决方案导航菜单中选择构建基块的菜单项时所加载的混搭。主混搭名称可以在构建基块管理器事物的“配置”页面上的 MenuConfiguration 表格中找到。该名称就是 menuName 值为 MasterMenuNavigation 的行中的 menuItemMashupName。例如,生产仪表板构建基块的主混搭为 PTC.ProductionDashboard.MainFrame_MU
a. 导航至 UI 构建基块的主混搭。
b. 重复此混搭。例如,如果要重复生产仪表板构建基块的主混搭,则需将其命名为 MyCompany.ProductionDashboard.MainFrame_MU。将混搭“常规信息”页面上的“项目”值更改为在步骤 1.a 中创建的项目。
c. 单击“设计”以在 Mashup Builder 中查看混搭。
d. “资源管理器”中,选择混搭的顶层。
e. “属性”下,更改 manager 属性,使其指向在步骤 1.e 中创建的新构建基块的管理器。
f. 单击“保存”以保存混搭。
4. 将管理器事物的配置从原始 UI 构建基块添加到新构建基块的管理器事物中。
a. 导航至在步骤 1.e 中创建的管理器事物,在本示例中为 MyCompany.ProductionDashboard.Manager
b. “配置”下,添加在原始构建基块的管理器事物 (在本示例中为 PTC.ProductionDashboard.Manager)“配置”页面中找到的配置。特别是,添加 MashupConfigurationDefaultConfiguration 表格中的配置。
5. 编辑解决方案导航菜单中的菜单项以启动重复的主混搭。有关详细信息,请参阅自定义解决方案菜单
6. 请确保对原始混搭或任何直接调用原始混搭的服务或其他混搭的书签进行更新,以便使用您在步骤 3.b 中创建的重复混搭。
自定义来自模型逻辑事物形态的服务
不同构建基块中的 PTC 模型逻辑事物形态是由设备型号实体 (企业、地区、站点、区域、工作中心和工作单元) PTC.MfgModel 构建基块中的事物模板来实现的。您可以覆盖从单个设备事物的 PTC 模型逻辑事物形态中继承的服务,或覆盖设备型号类型事物模板上的服务,以针对该设备型号类型的所有事物更改该服务。
要确定服务是否继承自模型逻辑事物形态,请查看 PTC 针对此服务所在设备类型提供的事物模板的“服务”页面。“服务”页面会标识从中继承服务的实体。
要针对设备类型覆盖从模型逻辑事物形态中继承并用于事物模板的服务,请完成以下步骤:
1. 创建一个新的构建基块,该构建基块从 PTC 构建基块 (在本示例中为PTC.MfgModel 构建基块) 扩展而来。
要创建新的构建基块,请完成以下步骤:
a. 创建一个新项目。为您的项目指定唯一的前缀,例如您的公司名称。对于 PTC 提供的实体,保留 PTC 前缀。在本示例中,创建一个名为 MyCompany.MfgModel 的项目。对于为此构建基块创建的各个新事物模板、事物或其他实体,将新项目添加为实体“常规信息”页面上的“项目”值。
b. 在您的项目中创建一个新事物模板,该事物模板使用 PTC.Base.ComponentEntryPoint_TT 作为其“基本事物模板”。在本示例中,将此新事物模板命名为 MyCompany.MfgModel.EntryPoint_TT
c. 在您的项目中创建一个新事物,该事物使用在步骤 1.b 中创建的事物模板作为其“基本事物模板”
* 
如果还要针对 PTC 构建基块自定义在管理器事物中找到的服务,请按照以下说明自定义在前述部分中找到的服务,包括为新的构建基块创建管理器事物模板和管理器事物。
2. 创建要覆盖其服务的事物模板的副本。
a. 导航至原始设备型号事物模板,在本示例中为 PTC.MfgModelDefaultWorkunit_TT
b. 重复此事物模板。在本示例中,将此重复的事物模板命名为 MyCompany.MfgModelDefaultWorkunit_TT。将混搭“常规信息”页面上的“项目”值更改为在步骤 1.a 中创建的项目。
c. 单击“保存”以保存重复的事物模板。
3. 覆盖服务以实现您的自定义逻辑。
* 
仅覆盖重复事物模板上的服务。对于 PTC.MfgModel 构建基块中的事物模板,请不要覆盖其上的服务,也不要为其添加服务。
a. 在步骤 2.c 中创建的重复事物模板的“服务”下,查找要自定义的服务,然后单击 覆盖图标 以覆盖该服务。如果该服务不存在该图标,则无法覆盖该服务。
b. 在脚本编辑器中,进行必要的代码更改以实现您的自定义逻辑。
c. 单击“完成”以保存对服务的更改。
d. 单击“保存”以保存对事物模板所做的更改。
4. 更新模型类型配置以使用新的事物模板。
a. 导航至 PTC.MfgModel.Manager 事物。
b. “配置”下的 ModelTypeConfiguration 配置表中,查找在步骤 3 中重复事物模板的设备型号类型所在的行,然后单击 覆盖图标 以编辑该行。
c. thingTemplate 值更改为在步骤 3 中创建的重复事物模板,在本示例中为 MyCompany.MfgModelDefaultWorkunit_TT
d. 单击“保存”以保存对管理器事物所做的更改。
* 
执行上述步骤,可更改用于特定设备型号类型的事物的事物模板。为使所做更改生效,必须使用新的模型类型事物模板重新创建该模型类型的现有设备事物,或者必须针对单个设备事物自定义该服务。
PTC 建议在事物模板层级而非针对单个事物进行此类更改。
要针对单个设备事物覆盖从模型逻辑事物形态中继承的服务,请完成以下步骤:
1. 导航至设备事物。
2. “服务”下,找到要自定义的服务,然后单击 覆盖图标 以覆盖服务。
3. 在脚本编辑器中,进行必要的代码更改以实现您的自定义逻辑。
4. 单击“完成”以保存对服务的更改。
5. 单击“保存”以保存对管理器事物所做的更改。
这对您有帮助吗?