构建基块 > 扩展数据模型 > 创建自定义管理器
创建自定义管理器
数据模型使用管理器事物来控制某些功能。管理器事物包含数据库操作所需的必要功能,例如创建和更新数据库表。管理器事物还实施所有负责管理与关联对象模型相关的服务的所有事物形态。
这些管理器事物在 PTC.Base.Manager 事物的“配置”页面上的 DefaultGlobalManagerConfiguration 配置表中注册。
您可以创建自定义管理器来管理 (创建和更新) 您自己的数据库表。使用默认事物作为模型。
以下步骤说明如何创建用于管理名为 customdata 的数据库表的管理器,该表包含两列:UID (自动生成的主键) 和 CustomProperty1 (字符串数据类型)。customdata 表初始化为两行。
1. 创建新构建基块。
要创建新构建基块,请完成以下步骤:
a. 创建一个新项目。为您的项目指定唯一的前缀,例如您的公司名称。对于 PTC 提供的实体,保留 PTC 前缀。在本示例中,创建一个名为 MyCompany.MyBuildingBlock 的项目。 对于为此构建基块创建的各个新事物模板、事物或其他实体,将新项目添加为实体“常规信息”页面上的“项目”值。
b. 在您的项目中创建一个新事物模板,该事物模板使用 PTC.Base.ComponentEntryPoint_TT 作为其“基本事物模板”。在本示例中,将此新事物模板命名为 MyCompany.MyBuildingBlock.EntryPoint_TT。 如果此新构建基块从 PTC 构建基块扩展而来,则将 PTC 构建基块中的入口点事物模板用作新构建基块的“基本事物模板”
c. 在您的项目中创建一个新事物,该事物使用在步骤 1.b 中创建的事物模板作为其“基本事物模板”
2. ThingWorx Composer 中,创建新数据形状。
a. “名称”中,输入 MyCompany.MyBuildingBlock.CustomData_DS
b. “项目”中,为此构建基块选择项目。在本示例中为 MyCompany.MyBuildingBlock
c. “字段定义”下,单击“添加”
d. 选择以下字段:
“名称” - 输入 UID
“基本类型” - 选择 LONG
“是主键” - 选中此复选框。
e. 单击 用于添加当前字段并随后立即添加另一个字段的图标。 可添加第一个字段,并定义另一个字段:
“名称” - 输入 CustomProperty1
“基本类型” - 选择 STRING
f. 单击 添加图标 添加第二个字段。
g. 单击“保存”以保存新数据形状。
3. ThingWorx Composer 中,创建新事物模板。
a. “名称”中,输入 MyCompany.MyBuildingBlock.Manager_TT
b. “基本事物模板”中,选择 PTC.Base.CommonManager_TT 事物模板。如果新构建基块从 PTC 构建基块扩展而来,则将扩展自 PTC 构建基块的管理器事物模板用作“基本事物模板”
c. “实现的事物形态”中,搜索并添加 PTC.DBConnection.DBManagement_TS 事物形态。如果管理器用于调用创建服务,则还应搜索并添加 PTC.DBConnection.ServiceConfiguration_TS 事物形态。
d. 单击“保存”以保存事物模板。
4. ThingWorx Composer 中,创建新事物。
a. “名称”中,输入 MyCompany.MyBuildingBlock.Manager
b. “基本事物模板”中,搜索并选择 MyCompany.MyBuildingBlock.Manager_TT 事物模板 (步骤 3 中创建的事物模板)。
c. “服务”下,覆盖 GetDBInfo 服务并添加以下代码,然后单击“完成”
var result = {
dbInfo: [{dataShapeName: "CustomData"}]
};
d. “服务”下,覆盖 InitData 服务并添加以下代码,然后单击“完成”
var infoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape({
infoTableName : "InfoTable",
dataShapeName : "CustomData"
});
infoTable.AddRow({"CustomProperty1":"TestValue1"});
infoTable.AddRow({"CustomProperty1":"TestValue2"});
Things[me.GetDatabaseThingName()].Insert({
infoTable: infoTable,
dataShapeName: "CustomData"
});
e. 单击“保存”以保存事物。
5. 如果此新构建基块从 PTC 构建基块扩展而来,则将原始构建基块的管理器事物中的所有配置均添加到此新构建基块的管理器事物中。
a. 导航至步骤 4 中创建的管理器事物,在本示例中为 MyCompany.MyBuildingBlock.Manager
b. “配置”下,添加在原始构建基块的管理器事物“配置”页面中找到的配置。
6. 注册自定义管理器。
a. 导航至 PTC.Base.Manager 事物。
b. “配置”下,单击 DefaultGlobalManagerConfiguration 配置表的“添加”
“名称”中,输入自定义管理器的名称,例如 MyCompany.MyBuildingBlock.Manager
“值”中,搜索并选择在步骤 4 中创建的自定义管理器事物。
c. 单击“添加”将自定义管理器添加到配置表中。
d. 单击“保存”以保存对管理器事物的更新。
7. 在步骤 4 中创建的 MyCompany.MyBuildingBlock.Manager 事物的“服务”下,执行 CreateTables 服务。名为 customdata 的数据库表创建完成,其中包含两行。
8. 如果要定义外键,请参阅添加或移除外键
9. 要更改 String 数据库列的长度,请参阅设置 STRING 数据库列的长度
10. 要配置操作前或操作后事件的分派与验证,请参阅操作前、操作时和操作后事件的分派与验证
这对您有帮助吗?