Adicionar evento onchange a um campo “bloqueado” no Dynamics CRM 4
-
06-07-2019 - |
Pergunta
Estou personalizar Dynamics CRM 4 e gostaria de modificar o formulário para a entidade Caso adicionar algum JavaScript para o evento onchange para o Knowledge Base artigo de pesquisa de campo (kbarticleid_ledit). No entanto, quando eu clicar em Alterar Propriedades para esse campo, recebo uma mensagem de erro:
Este campo pertence a uma seção bloqueada e não pode ter suas propriedades modificado.
Como posso contornar esta situação e editá-lo? Existe uma solução semelhante ao personalizar a visualização do artigo ? Ou eu posso cortar o DB de alguma forma para "destravar" nesse campo?
Solução 2
OK, eu descobri-lo - postando aqui no caso de alguém corre para o mesmo problema. Você precisa exportar as personalizações para a entidade caso para XML e editar o XML. Você pode "desbloquear" na seção encontrando o elemento correspondente no XML e alterando o atributo locklevel = "1" para locklevel = "0" .
No entanto, desbloquear ele não me ajudou em editar o código de evento onchange. CRM já teve algum código para esse evento e quando eu adicionei meu código na interface do usuário que adicionou um segundo "onchange" evento para o XML! Então, eu fui forçado a editar manualmente o código no XML (com XML-codificação adequada, é claro) e, em seguida, voltar a importar e publicar as personalizações.
Outras dicas
Você também poderia ter acrescentado onchange de código a partir do evento onload. Por exemplo, se o id do campo bloqueado foi lockedField, você poderia fazer algo parecido com isso.
var field = crmForm.all.lockedField;
if (field)
field.attachEvent('onchange', onChangeEventHandler);
function onChangeEventHandler()
{
// do something
}