Admin

Process Builder y Procesos de Aprobación

En esta entrada hablaremos del maravilloso mundo de los Process Builder, alternativa muy válida para cubrir ciertas necesidades de negocio usando point-and-click frente a código Apex.

Concretamente nos centraremos en cubrir una funcionalidad muy útil, como es lanzar un proceso de aprobación específico sin tener que evaluar el resto de procesos definidos. Además, para hacerlo más interesante, veremos como podemos saltarnos el criterio de entrada del proceso.

Si es la primera vez que escuchas el término Process builder, te animo a que eches un vistazo a este magnífico Trailhead de introducción: Automate Basic Business Processes with Process Builder

¿ Cómo surgió la necesidad ? 

A grandes rasgos, necesitabámos ser capaces de crear un proceso de aprobación sobre nuestro objeto Account, con el objetivo de que cierto grupo de responsables revisara información sensible en la plataforma.

Desafortunadamente, no era admisible usar la interfaz de usuario con el botón de  ‘Submit for Approval’. El objetivo era lanzarlo de forma automática y que además no interfieriera con el resto de procesos que ya teníamos definidos sobre el Objeto.

Además de esto necesitábamos:

  1. Envíar emails a usuarios
  2. Crear un chatter post sobre el registro una vez que se revise la infomación
  3. Actualizar ciertos datos

Todas las necesidades apuntaban a una solución clara y limpia… Process builder y un proceso de aprobación.

Pero… ¿ Qué pasaba con la mezcla de los procesos de aprobación? 

Como sabemos Salesforce nos permite crear procesos de aprobación múltiples sobre un mismo objeto.

La recomendación que nos dan es usar siempre criterios de entrada excluyentes de manera que no interfieran entre ellos según su orden de ejecución. Además, cada proceso se puede reordenar según nuestras necesidades. De esta manera, cuando un registro se envía para aprobación, sea por interfaz de usuario o por Apex,  evalúa todos los procesos definidos, en el orden que estén definidos.

Múltiples procesos de aprobación

 

Desde la Winter 17′ los  Process Builder te permiten lanzar procesos de aprobación específicos sin evaluar todos y cada uno de los procesos definidos sobre un objeto. Ahora que contábamos con con toda esta información, nuestro problema se reducía a ser capaces de definir un criterio de entrada que nunca pudiera cumplirse a través de la interfaz. Así nos asegurabamos que al lanzarlo por interfaz o por Apex nunca se evaluaría ese proceso y lo podríamos ejecutar sin problema desde nuestro Process Builder, usando la opción de  ‘Skip the entry criteria for this process’.

Vamos a ello!

Definimos el proceso tal que el criterio de entrada sea FALSE siempre:

Criterio de Entrada del Proceso

 

Una vez hecho esto, introducimos las acciones pertinentes del proceso (Email Alerts, Field Updates, …):

Detalle del Proceso de aprobación

 

Por otra parte, Salesforce recomienda tener un Process Builder por objeto, con lo cual decidimos reutilizar uno de nuestros procesos ya definidos y establecer entonces los correctos criterios de entrada.

Criterio y Acción en Process Builder

En las acciones del process builder debemos seleccionar ‘Submit for Approval’ y seleccionar el proceso de aprobación. La opción  de ‘Skip the entry criteria for this process’ aparece una vez has seleccionado tu proceso.

Seleccionar y Definir la acción

Guardamos y activamos. Ahora con una determinada acción de usuario podemos lanzar procesos de aprobación específicos saltandonos el criterio de entrada!

Por el momento esta solución solo es posible implementarla desde un Process builder, con lo que aporta una gran ventaja frente a un trigger en Apex.

Espero que os sirva de ayuda!

You Might Also Like...

1 Comment

  • Reply
    Sergio Tuxsoft
    3 mayo, 2018 at 4:06 pm

    Excelente explicación, te lo agradezco, me a funcionado en un proceso que intente aplicar.
    Saludos desde mexico.

  • Leave a Reply