Usar propriedades gerenciadas
É possível controlar quais dos componentes da solução gerenciada são personalizáveis, usando as propriedades gerenciadas. Por padrão, todos os componentes da solução são personalizáveis. Todos os componentes da solução têm uma propriedade Pode ser personalizado (IsCustomizable
). Contanto que o valor desta propriedade esteja definido como verdadeiro, um maior número de propriedades específicas para o tipo de componente da solução poderá ser especificado. Se você definir a propriedade IsCustomizable.Value
para falso, depois que a solução tiver sido instalada como uma solução gerenciada, o componente da solução não será personalizável.
As propriedades gerenciadas garantem que apenas uma solução do mesmo editor poderá alterar o componente. As propriedades gerenciadas afetarão apenas os componentes gerenciados e não forçarão isso nos ambientes de desenvolvimento em que o componente ainda não é gerenciado. O uso da propriedade gerenciada IsCustomized
destina-se a garantir que nenhuma outra camada de solução de qualquer outro editor e nenhuma personalização ativa possa ser feita no componente depois de instalado como um solução gerenciada.
A tabela a seguir lista algumas propriedades gerenciais para um subconjunto de componentes da solução disponíveis.
Componente | Nome para Exibição | Propriedade |
---|---|---|
Entidade | Pode ser personalizado | IsCustomizable.Value |
Entity | O nome para exibição pode ser modificado | IsRenameable.Value |
Entity | Pode ser a entidade relacionada no relacionamento | CanBeRelatedEntityInRelationship.Value (Somente Leitura) |
Entity | Pode ser a entidade primária no relacionamento | CanBePrimaryEntityInRelationship.Value (Somente Leitura) |
Entity | Pode estar em um relacionamento muitos para muitos | CanBeInManyToMany.Value (Somente Leitura) |
Entity | Novos formulários podem ser criados | CanCreateForms.Value |
Entity | Novos gráficos podem ser criados | CanCreateCharts.Value |
Entity | Novas exibições podem ser criadas | CanCreateViews.Value |
Entity | Pode modificar quaisquer outras propriedades de uma entidade não representadas por uma propriedade gerenciada | CanModifyAdditionalSettings.Value |
Entidade | Pode criar atributos | CanCreateAttributes.Value |
Campo (Atributo) | Pode ser personalizado | IsCustomizable.Value |
Campo (Atributo) | O nome de exibição pode ser modificado | IsRenameable.Value |
Field (Atributo) | Pode alterar o nível de requisito | RequiredLevel.CanBeChanged Observação: RequiredLevel é a única propriedade gerenciada que usa a propriedade CanBeChanged . |
Field (Atributo) | Pode modificar quaisquer outras propriedades de um atributo não representadas por uma propriedade gerenciada | CanModifyAdditionalSettings.Value |
Relacionamento de Entidade | Pode ser personalizado | IsCustomizable.Value |
Formulário | Pode ser personalizado | SystemForm.IsCustomizable.Value |
Gráfico | Pode ser personalizado | SavedQueryVisualization.IsCustomizable.Value |
Exibir | Pode ser personalizado | SavedQuery.IsCustomizable.Value |
Conjunto de Opções | Pode ser personalizado | IsCustomizable.Value |
Recurso da Web | Pode ser personalizada | WebResource.IsCustomizable.Value |
Workflow | Pode ser personalizada | Workflow.IsCustomizable.Value |
Workflow | A Etapa de Processamento Personalizado é Permitida para Outros Editores | Workflow.IsCustomProcessingStepAllowedForOtherPublishers.Value |
Assembly | Pode ser personalizada | SdkMessageProcessingStep.IsCustomizable.Value |
Registro de assembly | Pode ser personalizada | ServiceEndpoint.IsCustomizable.Value |
Modelo de Email | Pode ser personalizado | Template.IsCustomizable.Value |
Modelo de Artigo da Base de Dados de Conhecimento | Pode ser personalizado | KbArticleTemplate.IsCustomizable.Value |
Modelo de Contrato | Pode ser personalizado | ContractTemplate.IsCustomizable.Value |
Modelo de Mala Direta | Pode ser personalizado | MailMergeTemplate.IsCustomizable.Value |
Painel | Pode ser personalizado | SystemForm.IsCustomizable.Value |
Funções de Segurança | Pode ser personalizado | Role.IsCustomizable.Value |
Formulário do Sistema | Pode ser excluída | CanBeDeleted.Value |
Consulta do Sistema | Pode ser excluída | CanBeDeleted.Value |
Fluxo de Trabalho A Etapa de Processamento Personalizado é Permitida para Outros Editores
Esta propriedade gerenciada controla se as etapas de plug-in registradas por terceiros para mensagens criadas por ações de processo personalizado serão executadas. O valor padrão é false
, o que significa que as etapas do plug-in registradas que não usam o mesmo fornecedor de soluções não serão executadas. Quando isso for true
, o editor da ação do processo personalizado permite que as etapas de registro do plug-in sejam executadas.
Atualizar propriedades gerenciadas
Depois de lançar a solução gerenciada, é possível decidir se você deseja alterar as propriedades gerenciadas. Você só poderá alterar as propriedades gerenciadas para torná-las menos restritivas. Por exemplo, após o lançamento inicial, você poderá optar por permitir a personalização de uma entidade.
Atualize as propriedades gerenciadas da solução lançando uma atualização para a solução com as propriedades gerenciadas alteradas. A solução gerenciada só pode ser atualizada por outra solução gerenciada associada ao mesmo registro do fornecedor que a solução gerenciada original. Se a atualização incluir uma alteração nas propriedades gerenciadas para torná-las mais restritivas, essas alterações das propriedades gerenciadas serão ignoradas, mas outras modificações na atualização serão aplicadas.
Como o fornecedor original é um requisito para a atualização das propriedades gerenciadas de uma solução gerenciada, todas as soluções não gerenciadas não poderão ser associadas a um fornecedor usado para instalar uma solução gerenciada.
Nota
Isso significa que não será possível desenvolver uma atualização para a solução usando uma organização onde a solução gerenciada está instalada.
Verificar as propriedades gerenciadas
Use IsComponentCustomizableRequest para verificar se um componente da solução é personalizável. Como alternativa, é possível verificar as propriedades do componente da solução, mas você deve considerar que a determinação final do significado depende dos valores de várias propriedades. Todos os componentes da solução têm uma propriedade IsCustomizable
. Quando um componente da solução é instalado como parte de uma solução gerenciada, a propriedade IsManaged
será verdadeira. As propriedades gerenciadas são impostas somente para as soluções gerenciadas. Ao verificar as propriedades gerenciadas para determinar se um componente individual da solução é personalizável, verifique as propriedades IsCustomizable
e IsManaged
. Um componente da solução em que IsCustomizable
é falso e IsManaged
é falso é personalizável.
A entidade e o atributo têm mais propriedades gerenciadas além de IsCustomizable
. Essas propriedades gerenciadas não serão atualizadas se IsCustomizable
for definido para falso. Isso significa que além de verificar a propriedade gerenciada individual, você também deve verificar a propriedade IsCustomizable
para determinar se a propriedade gerenciada está sendo imposta.