Última actualización el 29 de marzo de 2022 por Rakesh Gupta
Salesforce Flow es una manera fantástica de automatizar varios procesos comerciales . Le permite crear un flujo basado en ciertos criterios que establezca. El flujo de Salesforce puede hacer muchas cosas: crear un registro , actualizar registros , publicar en Chatter , enviar un correo electrónico, etc.
Hace unos años, en septiembre de 2015, escribí un artículo Asignación automática de licencias de paquetes a nuevos usuarios para mostrar cómo se pueden asignar automáticamente licencias de paquetes administrados a nuevos usuarios .
La abrumadora respuesta positiva fue seguida por solicitudes: ¡escribir otro blog que muestre cómo eliminar automáticamente la licencia del paquete administrado de los usuarios desactivados! A continuación se muestra uno de los correos electrónicos de muestra, de un caballero a quien no conozco, pero me gustaría agradecer por hacer la solicitud. ¡Porque las solicitudes e ideas de los lectores de mi blog han contribuido enormemente a mi dominio de la plataforma Salesforce!
Estoy buscando una manera de eliminar automáticamente los miembros de un paquete instalado cuando desactivo su cuenta de usuario. Actualmente, tengo que eliminar el Usuario; luego elimínelos del paquete instalado. ¿Hay alguna forma a través de PB y/o Flow? Me gustaría un proceso de eliminación automatizado que capture todas las asociaciones. Gracias, erin ryan
En esta publicación de blog, le mostraré cómo aprovechar el flujo de Salesforce para eliminar automáticamente las licencias de paquetes administrados de los usuarios desactivados. Comencemos con un caso de uso empresarial.
Martin Jones trabaja como administrador de sistemas en Gurukul on Cloud (GoC) . En GoC están utilizando Conga Composer para optimizar y escalar su proceso de generación de documentos. Martin recibió un requisito de la administración para eliminar automáticamente las licencias de paquetes administrados tan pronto como se desactive la cuenta de un usuario.
Solución para el requisito comercial anterior
Antes de continuar, primero reflexionemos: ¿por qué necesitamos automatizar este proceso en primer lugar? En AppExchange , los proveedores de aplicaciones usan paquetes administrados, en parte, para ocultar el código y la lógica de implementación a los clientes. Otro beneficio de un paquete administrado es que los proveedores de aplicaciones pueden enviar fácilmente actualizaciones a la organización de sus clientes de una sola vez.
Cuando la cuenta de un usuario se desactiva en Salesforce, su licencia de Salesforce se libera y está disponible para reasignación. Este no es el caso con respecto a la licencia de paquete administrado del usuario desactivado. A pesar de estar desactivada, la licencia del paquete administrado de un usuario no se elimina automáticamente de su cuenta; el administrador del sistema debe eliminar manualmente la licencia del paquete administrado de la cuenta del usuario desactivado.
Para resolver este requisito, utilizaremos el Flujo desencadenado por registro después de guardar . Consulte este artículo para comprender por qué estamos utilizando el flujo desencadenado por registro posterior al guardado para este escenario.
Hagamos una pausa aquí, familiarícese con los objetos UserPackageLicense y los objetos PackageLicense en Salesforce.
Nombre del objeto | Detalles |
Licencia de paquete de usuario | Representa una licencia de un paquete administrado instalado, asignado a un usuario específico. |
PaqueteLicencia | Representa una licencia de un paquete administrado instalado. |
Antes de discutir la solución, permítame mostrarle un diagrama de un flujo de proceso de alto nivel. Dedique unos minutos a repasar el siguiente diagrama de flujo y compréndalo.
Comencemos a construir este proceso de automatización.
Práctica guiada (nosotros hacemos):
Hay 5 pasos para resolver el requisito de negocio de Martin utilizando Record-Triggered Flow . Debemos:
- Flujo desencadenado por registro clonado creado en Asignación automática de licencia de paquete a nuevos usuarios
- Agregue un ORDEN DE RESULTADO en el elemento de decisión para verificar si la cuenta de usuario ha sido desactivada
- Agregue un elemento de obtención de registros para encontrar licencias de paquetes de administración asignadas
- Agregue un elemento de decisión para verificar si se encontró o no la licencia del paquete de administración
- Agregue un elemento de eliminación de registros para eliminar administrar licencias de paquetes
Paso 1: clonar un flujo
- Haga clic en Configuración .
- En el cuadro Búsqueda rápida, escriba Flujos .
- Seleccione Flujos y luego haga clic en el Nombre del flujo que será modificado. En este caso Asignar Licencia de Paquete Conga.
- Haga clic en el botón Guardar como en la parte superior derecha del generador de flujo.
- Una vez que haya terminado, haga clic en el botón Guardar .
Paso 2: agregue una ORDEN DE RESULTADO en el elemento de decisión para verificar el estado de la cuenta de usuario
Ahora usaremos el elemento Decisión para verificar si el usuario ha sido desactivado.
- Haga clic en el elemento Elemento de decisión creado o actualizado .
- Agregue un nuevo ORDEN DE RESULTADO haciendo clic en el icono + .
- En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
- Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
- Fila 1:
- Recurso: {!$Record.IsActive}
- Operador: Igual
- Valor: {!$ConstanteGlobal.Falso}
- Fila 1:
- Cuándo ejecutar el resultado : sólo si el registro que activó la ejecución del flujo se actualiza para cumplir con los requisitos de la condición .
- Haga clic en Listo .
Paso 3: Adición de un elemento Obtener registro para buscar licencias de paquete de administración asignadas
La siguiente tarea es verificar si una licencia de paquete administrado está asignada al usuario. Para ello, utilizaremos el elemento Obtener Registros .
- En Flow Designer, debajo del nodo Cuenta de usuario desactivada , haga clic en el icono + y seleccione el elemento Obtener registros .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- Seleccione el objeto Licencia de paquete de usuario de la lista desplegable.
- Seleccione Se cumplen todas las condiciones (Y) .
- Establecer condiciones de filtro
- Fila 1:
- Campo : ID de usuario
- Operador : Igual
- Valor : {!$Record.Id}
- Fila 1:
- Cuántos registros almacenar:
- seleccione Todos los registros
- Cómo almacenar datos de registro:
- Elija la opción para Almacenar automáticamente todos los campos .
- Haga clic en Listo .
Paso 4: uso del elemento de decisión para verificar si se encontró o no la licencia de Manage Package (del paso 3)
Ahora usaremos el elemento Decisión para verificar la Variable de recopilación de registros del paso 4 para encontrar si alguna licencia de paquete administrado está asignada al usuario o no.
- En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
- Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
- Fila 1:
- Recurso: {!Get_User_Package_License}
- Operador: es nulo
- Valor: {!$ConstanteGlobal.Falso}
- Haga clic en Listo .
- Fila 1:
Paso 5: agregue el elemento Eliminar registros para eliminar las licencias de paquete de administración asignadas
El paso final es agregar un elemento Eliminar registros para eliminar la licencia del paquete asignado del usuario.
- En Flow Designer, debajo del nodo Paquete de licencia encontrado , haga clic en el ícono + y seleccione el elemento Eliminar registros .
- Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
- Ingrese la siguiente información :
- Cómo encontrar un registro para eliminar : use los ID almacenados en una variable de registro o una variable de colección de registros
- Seleccionar registro(s) para eliminar
- Registro o colección de registros : {!Get_User_Package_License}
- Haga clic en Listo .
Al final, Martin's Flow se verá como la siguiente captura de pantalla:
¡Casi llegamos! Una vez que todo se vea bien, haga clic en el botón Activar .
Prueba de concepto
- En primer lugar, navegue hasta el paquete instalado y verifique las licencias utilizadas para varias aplicaciones, como se muestra a continuación:
- Ahora, desactive la cuenta de un usuario a quien haya asignado la licencia del paquete administrado Conga Composer y DocuSign para Salesforce. Para una prueba de concepto, consulte el siguiente video:
Evaluación formativa:
¡Quiero saber de ti! ¿Qué es una cosa que aprendiste de esta publicación? ¿Cómo imagina aplicar este nuevo conocimiento en el mundo real? Siéntase libre de compartir en los comentarios a continuación.
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://automationchampion.com/2022/03/29/auto-remove-managed-package-license-from-a-deactivated-user-2/