自訂建構區塊 > 自訂服務
自訂服務
您可以自訂 PTC 建構區塊中提供的服務,以實行您自己的邏輯。這包括建立從 PTC 建構區塊延伸的新建構區塊,並針對新建構區塊取代管理員物件中的服務。您可以在建構區塊管理員物件的「服務」頁中檢視建構區塊中的服務。
自訂服務時請記住下列事項︰
變更服務碼可能會導致執行時間較長或需要大量運算的服務效能降低。
最佳作法是自訂後端服務,而不是使用者介面相關的服務。
自訂服務
欲自訂服務,請完成下列步驟:
1. 確定哪個建構區塊包含您要自訂的服務。您可以從找到服務的管理員物件名稱中輕鬆確定這一點。例如,如果服務位於 PTC.StatusImpl.Manager 物件中,它就是 PTC.StatusImpl 建構區塊的一部份。
2. 建立從包含您要自訂之服務的 PTC 建構區塊延伸而來的新建構區塊。
欲建立新建構區塊,請完成下列步驟:
a. 建立新專案。針對您的專案使用具唯一性的前綴,例如您的公司名稱。PTC 前綴會保留給由 PTC 遞送的實體。在此範例中,建立名為 MyCompany.StatusImpl 的專案。針對您為此建構區塊建立的每個新物範本、物件或其他實體,在實體的「一般資訊」頁中將您的新專案新增為「專案」值。
b. 在從 PTC 建構區塊使用進入點物範本作為其「基礎物範本」的專案中建立進入點物範本。針對此範例,將新物範本命名為 MyCompany.StatusImpl.EntryPoint_TT 並使用 PTC.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 建構區塊使用進入點物範本作為其「基礎物範本」的專案中建立進入點物範本。針對此範例,將新物範本命名為 MyCompany.ProductionDashboard.EntryPoint_TT 並使用 PTC.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. 更新主混搭的 manager 內容,使該 UI 指向新建構區塊的管理員物件。這會導致從該主混搭呼叫的混搭從新管理員而非原始建構區塊的管理員執行服務。
主混搭是從解決方案導覽選單中選取建構區塊的選單項目時載入的混搭。主混搭名稱可在建構區塊管理員物件的「組態」頁上的 MenuConfiguration 表中找到。它是 menuName 值為 MasterMenuNavigation 之列中的 menuItemMashupName。例如,「生產儀表板」建構區塊的主混搭為 PTC.ProductionDashboard.MainFrame_MU
a. 導覽至 UI 建構區塊的主混搭。
b. 複製混搭。例如,如果您要複製「生產儀表板」建構區塊的主混搭,請將其命名為 MyCompany.ProductionDashboard.MainFrame_MU。針對您在步驟 step 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 建構區塊使用進入點物範本作為其「基礎物範本」的專案中建立進入點物範本。針對此範例,將新物範本命名為 MyCompany.MfgModel.EntryPoint_TT 並使用 PTC.MfgModel.EntryPoint_TT 作為其「基礎物範本」
c. 在使用於步驟 1.b 中建立的物範本作為其「基礎物範本」的專案中建立新物件。
* 
如果您也針對 PTC 建構區塊自訂在管理員中找到的服務,請遵循在前幾節中找到的自訂這些服務的指示,包括為您的新建構區塊建立管理員物範本與管理員物件。
2. 建立要覆寫服務之物範本的複本。
a. 導覽至原始設備模型物範本,在此範例中為 PTC.MfgModelDefaultWorkunit_TT
b. 複製物範本。針對此範例,將複製的物範本命名為 MyCompany.MfgModelDefaultWorkunit_TT。針對您在步驟 step 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. 按一下「儲存」,儲存設備物件的變更。
這是否有幫助?