使用受管理的屬性
您可以使用受管理屬性控制哪些受管理的解決方案元件可自訂。 根據預設,所有自訂解決方案元件都可自訂。 每個解決方案元件都有可自訂 (IsCustomizable
) 的屬性。 只要此屬性值設為 True,就可以指定多個解決方案元件的類型專屬的屬性。 如果您將屬性 IsCustomizable.Value
設定為 False,將解決方案安裝為受管理的解決方案之後,解決方案元件將無法自訂。
受管理屬性可確保只有來自相同發行者的解決方案才能變更元件。 受管理屬性將只會影響受管理元件,並不會在元件仍處於為受管理狀態的開發環境中強制執行此動作。 使用 IsCustomized
受管理屬性的目的是為了確保沒有來自其他發行者的其他解決方案層,而且將元件安裝為受管理解決方案後,就無法在元件上執行任何活動自訂。
下表列出了可用解決方案元件子集的受管理屬性。
元件 | 顯示名稱 | 屬性 |
---|---|---|
實體 | 可自訂 | IsCustomizable.Value |
Entity | 可修改顯示名稱 | IsRenameable.Value |
Entity | 可以是關係中的相關實體 | CanBeRelatedEntityInRelationship.Value (唯讀) |
Entity | 可以是關係中的主要實體 | CanBePrimaryEntityInRelationship.Value (唯讀) |
Entity | 可存在多對多關係 | CanBeInManyToMany.Value (唯讀) |
Entity | 可建立新表單 | CanCreateForms.Value |
Entity | 可建立新圖表 | CanCreateCharts.Value |
Entity | 可建立新檢視表 | CanCreateViews.Value |
Entity | 可以變更不是由受管理屬性代表的任何其他實體屬性 | CanModifyAdditionalSettings.Value |
實體 | 可建立屬性 | CanCreateAttributes.Value |
欄位 (屬性) | 可自訂 | IsCustomizable.Value |
欄位 (屬性) | 可修改顯示名稱 | IsRenameable.Value |
欄位 (屬性) | 可變更需求等級 | RequiredLevel.CanBeChanged 附註: RequiredLevel 是唯一使用 CanBeChanged 屬性的受管理屬性。 |
欄位 (屬性) | 可以變更不是由受管理屬性代表的任何其他屬性 (Attribute) 的屬性 (Property) | CanModifyAdditionalSettings.Value |
實體關聯 | 可自訂 | IsCustomizable.Value |
表單 | 可自訂 | SystemForm.IsCustomizable.Value |
圖表 | 可自訂 | SavedQueryVisualization.IsCustomizable.Value |
檢視表 | 可自訂 | SavedQuery.IsCustomizable.Value |
選項組 | 可自訂 | IsCustomizable.Value |
Web 資源 | 可自訂 | WebResource.IsCustomizable.Value |
Workflow | 可自訂 | Workflow.IsCustomizable.Value |
Workflow | 是否允許其他發行者執行自訂處理步驟 | Workflow.IsCustomProcessingStepAllowedForOtherPublishers.Value |
組件 | 可自訂 | SdkMessageProcessingStep.IsCustomizable.Value |
組件註冊 | 可自訂 | ServiceEndpoint.IsCustomizable.Value |
電子郵件範本 | 可自訂 | Template.IsCustomizable.Value |
知識庫文章範本 | 可自訂 | KbArticleTemplate.IsCustomizable.Value |
合約範本 | 可自訂 | ContractTemplate.IsCustomizable.Value |
合併列印範本 | 可自訂 | MailMergeTemplate.IsCustomizable.Value |
儀表板 | 可自訂 | SystemForm.IsCustomizable.Value |
資訊安全角色 | 可自訂 | Role.IsCustomizable.Value |
系統表單 | 可刪除 | CanBeDeleted.Value |
系統查詢 | 可刪除 | CanBeDeleted.Value |
工作流程是其他發行者允許的自訂處理步驟
此受管理的屬性控制是否執行由第三方註冊的外掛程式步驟 (由自訂程序動作建立的訊息)。 預設值為 false
,代表不會執行不使用相同解決方案發行者註冊的外掛程式步驟。 如果為 true
,則自訂流程動作的發行者允許執行已註冊的外掛程式註冊步驟。
更新受管理的屬性
在發行您的受管理解決方案之後,您可能決定要變更受管理的屬性。 您只能變更受管理的屬性,以降低其限制。 例如,初次發行後,您可能決定允許自訂實體。
您可以發行具有已變更受管理屬性的解決方案更新,藉此更新您解決方案的受管理屬性。 您的受管理解決方案只能由其他與原始受管理解決方案相同的發行者記錄相關聯的受管理解決方案更新。 如果您的更新包括受管理屬性中提高限制的變更,這些受管理屬性變更將會被忽略,但更新中的其他變更將會套用。
因為更新受管理解決方案的受管理屬性需要原始發行者,任何未受管理的解決方案都無法與用來安裝受管理解決方案的發行者產生關聯。
Note
這表示,您無法使用安裝受管理解決方案所在的組織,為您的解決方案開發更新。
檢查受管理的屬性
使用 IsComponentCustomizableRequest 檢查解決方案元件是否可自訂。 或者,您可以檢查解決方案元件屬性,但是您必須考量意義的最終判斷取決於數個屬性的值。 每個解決方案元件都有 IsCustomizable
屬性。 當解決方案元件隨著受管理的解決方案安裝時,IsManaged
屬性會是 true。 只有受管理解決方案的受管理屬性會強制執行。 當檢查受管理的屬性判斷個別解決方案元件是否可自訂時,您必須同時檢查 IsCustomizable
和 IsManaged
這兩個屬性。 IsCustomizable
為 False 且 IsManaged
為 False 的解決方案元件可以自訂。
除了 IsCustomizable
之外,實體和屬性擁有更多其他的受管理屬性。 如果 IsCustomizable
設為 False,這些受管理屬性就不會更新。 這表示,除了檢查個別的受管理屬性之外,您也必須檢查 IsCustomizable
屬性,查看受管理屬性是否強制執行。