Olá pessoal,
Post com uma dica rápida!
Como filtrar a lista de entidades que é mostrada em um lookup/partylist através do uso de uma função pouco conhecida/divulgada do próprio SDK, chamada setEntityTypes!
Uma explicação sobre a imagem acima…
Vejam que temos um email aberto, uma regra de negócio requer que o partylist/lookup “To” (para) apenas mostre a entidade “User” (usuário). Com um pouco de JavaScript podem “resoolver” isso facilmente, vejam:
// Define TMC namespace
if (typeof (TMC) === "undefined") {
TMC = {
namespace: true
};
}
// TMC.Email namespace
TMC.Email = {
// Initialize Constants
FORM_CONTEXT: null,
EMAIL_TO_ENTITY_TYPES: null,
OnLoad: function (executionContext) {
TMC.FORM_CONTEXT = executionContext.getFormContext();
// Set To List to only show User entity
// If you want to add more entities, create an array:
// var entityArray = ["systemuser","lead"];
// TMC.Email.SetToEmailField(entityArray);
TMC.Email.SetToEmailField("systemuser");
},
// Set values to To field
SetToEmailField: function (entity) {
var entityArray = null;
var to = TMC.FORM_CONTEXT.getControl("to");
if (TMC.Email.EMAIL_TO_ENTITY_TYPES == null) {
TMC.Email.EMAIL_TO_ENTITY_TYPES = to.getEntityTypes();
}
if (entity == null) {
entityArray = TMC.Email.EMAIL_TO_ENTITY_TYPES;
}
if (entity != null) {
if (entity.constructor.name == "Array") {
entityArray = entity;
}
else {
entityArray = [entity];
}
}
// Check if multiple type dropdowns enabled for this lookup
if (to.getEntityTypes().length >= 1) {
// Set entity type to entity
to.setEntityTypes(entityArray);
}
}
};
Adicione este script no formulário que pretende fazer o filtro, no meu caso “Email”:
Informe onde e quando a função será executada, no meu caso no OnLoad (abertura) do formulário:
Pronto! Filtro aplicado!
Se observarem a função SetToEmailField, vejam que adicionei a possibilidade de remover o filtro, assim se passarmos “null” como parametro (SetToEmailField(null)), o filtro será “resetado”!
Com o filtro, não precisamos necessariamente clicar no ícone do lookup (lupinha do lado direito), se simplesmente iniciarmos a digitação, apenas serão retornados resultados da(s) entidade(s) que filtramos:
Bom, como disse simples e rápida dica para ter em mente quando precisar!
[]’s,
Tiago



