Entradas

Cómo implementar una CUSTOMFUNCTION de Salesforce

Imagen
Son un recurso realmente interesante en Salesforces, ya que pueden usarse luego en cualquier lugar donde se admita una función, como por ejemplo, dónde podamos usar la función nativa CONCAT (). Podremos fácilmente usar nuestra función personalizada en DataRaptors, Integrations Procedures y otros componentes. Empezaremos por crear una clase APEX con cierta estructura y dentro de la cual luego incluiremos nuestro código y lógica a reutilizar. Una clase de visibilidad global para tener disponible desde cualquier lado que podamos ejectuar código APEX y que implemente la interfaz  vlocity_ins.VlocityOpenInterface , como sigue: global with sharing class StringCustomFunctions       implements vlocity_ins.VlocityOpenInterface {      global Boolean invokeMethod(           String methodName,           Map<String,Object> inputMap,           Map<String,Object> outputMap,                          Map<String,Object> options) {                        if (StringUtilsHelper.)        

Salesforce INVALID_FIELD_FOR_INSERT_UPDATE al actualizar Cuentas

Imagen
Actualmente haciendo algunas modificaciones e inserciones en el Object Account , específicamente en su field  vlocity_ins_MiddleName__pc  recibí el error " Account: bad field names on insert/update call: vlocity_ins__MiddleName__pc ". Noté que el sufijo del campo personalizado era " __pc " en lugar del típico " __c ", por lo que cuando intentaba guardar algo en él inmediatamente arrojaba el error. Curiosamente, el field al que se hace referencia en el error eran en realidad de contacto, personalizado e implementados por la fusión entre los objetos Account y PersonAccount . Esto lo implementa Vlocity y se define por el field recordTypeId, dependiendo de si esta definido o no podemos estar usando Account como Business Account o como Person Account, lo que también modifica su comportamiento, razón por la cual no esta permitido usar los fields que terminen en " __pc " como  vlocity_ins__MiddleName__pc  cuando se define como Business Account. Result

Salesforce en Safari siempre cambia a modo tradicional en Salesforce

Imagen
Un comportamiento algo molesto para los que usamos Safari como navegador principal es que cuando estamos configurando una Org en Salesforce y queremos editar Objetos en el Object Manager , frecuentemente lo veía al hacer clic en Fields & Relationships , luego dice que se nos redireccionará al la versión de Salesforce Classic o anterior. ¿Aún no sabes cuál es? a ver si un screenshot ayuda... Me refiero a este mensaje: Allí sólo queda abrir el enlace sugerido para abrirlo en Salesforce Classic. La solución es realmente sencilla y es deshabilitar la función que evita el cross-site  requerido para mostrar la página con el actual Look&Feel de Salesforce, basta con ir a Safari > Preferences... Luego en la pestaña Privacy específicamente en desactivar  Website tracking -   Prevent cross-site tracking  que es una de las funciones nuevas agregadas para evitar el tracking o seguimiento a través de cookies y sitios cruzados agregado por Apple en sus sistemas y dispositivos: Luego de a

DataRaptor Extract: no siempre retorna un Array de Objetos

Imagen
Desarrollando un Integration Procedure dentro de Vlocity para un proyecto de trabajo me topé con un comportamiento estándar de Salesforce, específicamente del DataRaptor Extract, y ya que cuando se solicita que devuelva una lista de objetos, configurando un objeto de este tipo, sencillo sería como sigue: En la sección EXTRACT simplemente indicamos de dónde vendrá la información, para este caso en particular de un Custom sObject con_ins_RiskComplianceProvider__c , validando que todos los registros tengan el field isActive__c en verdadero. Los fields a obtener son Id , HttpMethod__c , Name , ServiceName__c . En este punto y al ejecutar el PREVIEW podemos observar que para 2 registros devuelve un ARRAY, este comportamiento se repite si la cantidad de resultados es mayor a 2. Pero, que sucede si la cantidad de registros devueltos es menor a 2? ahora lo veremos. Si detallamos el Response, podemos observar que cuando la cantidad de registros es igual a uno, ya nuestra response deja de ser