Aggiungi l'evento onchange a un campo "bloccato" in Dynamics CRM 4
-
06-07-2019 - |
Domanda
Sto personalizzando Dynamics CRM 4 e vorrei modificare il modulo per l'entità Case per aggiungere un po 'di JavaScript all'evento onchange per il campo di ricerca dell'articolo della Knowledge Base (kbarticleid_ledit). Tuttavia, quando faccio clic su Modifica proprietà per quel campo ricevo un messaggio di errore:
Questo campo appartiene a una sezione bloccata e non è possibile modificarne le proprietà.
Come posso aggirare questo e modificarlo? Esiste una soluzione simile a personalizzazione della vista articoli ? Oppure posso hackerare il DB in qualche modo per " sbloccare " quel campo?
Soluzione 2
OK, l'ho capito - pubblicare qui nel caso in cui qualcun altro incontri lo stesso problema. È necessario esportare le personalizzazioni per l'entità Case in XML e modificare l'XML. Puoi " sbloccare " la sezione trovando l'elemento corrispondente nell'XML e modificando l'attributo locklevel = " 1 " in locklevel = " 0 " .
Tuttavia, sbloccarlo non mi ha aiutato a modificare il codice evento onchange. CRM aveva già del codice per quell'evento e quando ho aggiunto il mio codice nell'interfaccia utente, è stato aggiunto un secondo "onchange" evento all'XML! Quindi sono stato costretto a modificare manualmente il codice in XML (con una corretta codifica XML, ovviamente) e quindi reimportare e pubblicare le personalizzazioni.
Altri suggerimenti
Potresti anche aver aggiunto il codice onchange dall'evento onload. Ad esempio, se l'id del campo bloccato era bloccatoField, potresti fare qualcosa del genere.
var field = crmForm.all.lockedField;
if (field)
field.attachEvent('onchange', onChangeEventHandler);
function onChangeEventHandler()
{
// do something
}