Использование управляемых свойств
Можно управлять, какие компоненты управляемых решений могут быть настроены с помощью управляемых свойств. По умолчанию все пользовательские компоненты решения являются настраиваемыми. Каждый компонент решения имеет свойство Можно настроить (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 свойство. |
Поле (атрибут) | Может изменять любые другие свойства атрибута, не представленные управляемым свойством | CanModifyAdditionalSettings.Value |
Отношение сущностей | Можно настраивать | IsCustomizable.Value |
Форма | Можно настраивать | SystemForm.IsCustomizable.Value |
Диаграмма | Можно настраивать | SavedQueryVisualization.IsCustomizable.Value |
Просмотреть | Можно настраивать | SavedQuery.IsCustomizable.Value |
Набор параметров | Можно настраивать | IsCustomizable.Value |
Веб-ресурс | Можно настраивать | 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 |
Системная форма | Можно удалять | МожноУдалить.Value |
Системный запрос | Можно удалять | МожноУдалить.Value |
Рабочий процесс — "Допускается ли настраиваемый этап обработки для других издателей"
Это управляемое свойство определяет, будут ли выполняться шаги подключаемого модуля, зарегистрированные третьими сторонами для сообщений, созданных с помощью действий настраиваемых процессов. Значение по умолчанию — false
, что означает, что зарегистрированные шаги подключаемого модуля, которые не используют того же издателя решения, не будут выполняться. Когда это равно true
, издатель настраиваемого действия процесса разрешает выполнение шагов регистрации зарегистрированного подключаемого модуля.
Обновление управляемых свойств
После выпуска управляемого решения вы можете решить, что хотите изменить управляемые свойства. Вы можете изменить только управляемые свойства, чтобы сделать их менее строгими. Например, после вашего первоначального выпуска вы можете разрешить настройку сущности.
Вы обновляете управляемые свойства решения, выпуская обновление решения с измененными управляемыми свойствами. Ваше управляемое решение может быть обновлено только другим управляемое решение, связанным с той же записью издателя, что и исходное управляемое решение. Если в ваше обновление включены изменения управляемых свойств, чтобы сделать их более строгими, эти изменения управляемых свойств будут игнорироваться, но будут применены другие изменения в обновлении.
Поскольку исходный издатель является обязательным требованием для обновления управляемых свойств для управляемого решения, любое неуправляемое решение не может быть связано с издателем, который использовался для установки управляемого решения.
Заметка
Это означает, что вы не сможете разработать обновление для своего решения, используя организацию, в которой установлено ваше управляемое решение.
Проверка управляемых свойств
Используйте IsComponentCustomizableRequest, чтобы проверить, является ли компонент решения настраиваемым. Кроме того, вы можете проверить свойства компонента решения, но вы должны учитывать, что окончательное определение значения зависит от значений нескольких свойств. Каждый компонент решения имеет свойство IsCustomizable
. Когда компонент решения устанавливается как часть управляемого решения, свойство IsManaged
будет иметь значение true. Управляемые свойства принудительно применяются только для управляемых решений. При проверке управляемых свойств, чтобы определить, можно ли настроить отдельный компонент решения, вы должны проверить оба свойства IsCustomizable
и IsManaged
. Компонент решения, где IsCustomizable
имеет значение false и IsManaged
имеет значение false, можно настраивать.
Сущность и атрибут имеют больше управляемых свойств в дополнение к IsCustomizable
. Эти управляемые свойства не обновляются, если для свойства IsCustomizable
установлено значение false. Это означает, что помимо проверки отдельного управляемого свойства необходимо также проверить свойство IsCustomizable
, чтобы увидеть, применяется ли управляемое свойство.