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