建構區塊 > 延伸資料模型 > 建立自訂管理員
建立自訂管理員
資料模型使用管理員物件來控制某些功能。管理員項目會保留針對功能進行任何資料庫操縱所需的功能,例如建立及更新資料庫表格。管理員項目還會實行所有負責管理與相關聯物件模型相關之服務的物形式。
這些管理員物件在 PTC.Base.Manager 物件「組態」頁的 DefaultGlobalManagerConfiguration 表格中指定。
您可以建立自訂管理員來管理 (建立及更新) 您自己的資料庫表格。使用管理員物件作為模型。
下列步驟用於說明如何建立用於管理名為 customdata 之資料庫表的管理員,其中包含兩欄︰UID (主索引鍵、自動產生) 與 CustomProperty1 (字串資料類型)。customdata 表格會以兩列初始化。
1. 建立新的建構區塊。
欲建立新的建構區塊,請完成下列步驟:
a. 建立新專案。針對您的專案使用具唯一性的前綴,例如您的公司名稱。PTC 前綴會保留給由 PTC 遞送的實體。在此範例中,建立名為 MyCompany.MyBuildingBlock 的專案。針對您為此建構區塊建立的每個新物範本、物件或其他實體,在實體的「一般資訊」頁中將您的新專案新增為「專案」值。
b. 在您的專案中建立新的進入點物範本。要使用的「基礎物範本」取決於您的構建區塊是否從 PTC 構建區塊延伸:
如果您的新建構區塊是從 PTC 建構區塊延伸而來,請使用 PTC 建構區塊中的進入點物範本。
如果您的新構建區塊不是從 PTC 構建區塊延伸而來,請使用 PTC.DefaultConfiguration.EntryPoint_TT
針對此範例,將新物範本命名為 MyCompany.MyBuildingBlock.EntryPoint_TT 並使用 PTC.DefaultConfiguration.EntryPoint_TT 作為「基礎物範本」
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 資料庫欄的長度,請參閱 設定字串資料庫欄的長度
10. 如需設定動作前或動作後事件分派與驗證,請參閱 動作前、動作時和動作後事件分派與驗證
這是否有幫助?