Última actualización el 23 de abril de 2022 por Rakesh Gupta

Gran idea o pregunta duradera:

  • ¿Cómo elimina automáticamente el marcado HTML del campo de área de texto enriquecido y devuelve texto sin formato?

Objetivos:

Después de leer este blog, podrá:

  • Comprender cómo usar el método de picadura de stripHtmlTags
  • Comprender cómo verificar el área de texto (enriquecido) ISNULL o ISBLANK
  • Llame a una clase de vértice invocable desde el flujo
  • Eliminar etiquetas HTML de un campo de texto enriquecido
  • y mucho más

Arda Turan trabaja como administradora de sistemas en Gurukul on Cloud (GoC) . Arda está en proceso de implementar la gestión de oportunidades en GoC. Tiene el requisito de almacenar valores de Rich Text (Area) Deal Analysis en texto sin formato al campo Long Text (area) Deal Analysis Text .

Enfoque de Campeón de Automatización (I-do):

A principios de esta semana, necesitaba eliminar algunas etiquetas HTML de un campo de texto enriquecido (área), la cadena de destino ya estaba guardada con etiquetas HTML y uno de los requisitos especifica que debemos representarlo como texto sin formato y almacenarlo en otro campo.

Para eliminar todas las etiquetas HTML de una cadena, existe un método de cadena específico, es decir, stripHtmlTags . Esta función se utiliza para eliminar el marcado HTML y devuelve texto sin formato. A partir de la versión actual, no es posible llamar directamente a los métodos de la clase String desde el flujo de Salesforce, por eso vamos a implementar una clase de Apex invocable.

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.

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 4 pasos para resolver el requisito comercial de Arda utilizando el flujo activado por registro después de guardar . Debemos:

  1. Cree un campo de área de texto (enriquecido) personalizado en el objeto Oportunidad
  2. Cree un campo de área de texto (largo) personalizado en el objeto Oportunidad
  3. Crear clase de Apex y clase de prueba
  4. Pasos de flujo de Salesforce:
    1. Definir propiedades de flujo para el flujo desencadenado por registro
    2. Cree una fórmula para determinar la longitud del campo de texto enriquecido (área)
    3. Agregue un elemento de decisión para verificar si la longitud es mayor que 0
    4. Agregar acción: llame a una clase de Apex para eliminar el marcado HTML
    5. Agregar un elemento de registros de actualización para actualizar la oportunidad

Paso 1: cree un campo personalizado en el objeto de oportunidad para almacenar el análisis de ofertas

En primer lugar, crearemos un campo de área de texto (enriquecido) para almacenar el análisis del trato, como se menciona a continuación:

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Oportunidad .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo.
  4. Seleccione Área de texto (enriquecida) como tipo de datos y, a continuación, haga clic en Siguiente.
  5. Ingrese Etiqueta de campo y haga clic en la tecla de tabulación, se completará el Nombre de campo .
    1. Ingrese los detalles:
      1. Longitud 32.768 .
      2. # Líneas visibles 10 .
      3. Como práctica recomendada, introduzca siempre una descripción y un texto de ayuda.
      4. Haga clic en el botón Siguiente .
  6. Establezca la seguridad a nivel de campo para los perfiles .
  7. Agregue este campo a Diseño de página .
  8. Haga clic en Guardar.

Paso 2: cree un campo personalizado en el objeto de oportunidad para almacenar el análisis de trato en texto sin formato

El siguiente paso es crear un campo de área de texto (largo) para almacenar el análisis del trato en formato de texto sin formato, como se menciona a continuación:

  1. Haga clic en Configuración .
  2. En el Administrador de objetos, escriba Oportunidad .
  3. Seleccione Campos y relaciones , luego haga clic en Nuevo.
  4. Seleccione Texto Texto (largo) como Tipo de datos, luego haga clic en Siguiente.
  5. Ingrese Etiqueta de campo y haga clic en la tecla de tabulación, se completará el Nombre de campo .
    1. Ingrese los detalles:
      1. Longitud 32.768 .
      2. # Líneas visibles 3 .
      3. Como práctica recomendada, introduzca siempre una descripción y un texto de ayuda.
      4. Haga clic en el botón Siguiente .
  6. Configure la Seguridad a nivel de campo para los perfiles y asegúrese de que el campo sea de solo lectura.  
  7. Agregue este campo a Diseño de página .
  8. Haga clic en Guardar.

Paso 3: Cree una clase de Apex y una clase de prueba

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Clases de Apex .
  3. Da clic en el botón Nuevo .
  4. Copie el código de GitHub y péguelo en su clase de Apex.
  5. Haga clic en Guardar.

Repita los pasos anteriores y haga clic en la clase de prueba. Puede obtener el código de mi repositorio de GitHub .

Paso 4.1: Definir propiedades de flujo

  1. Haga clic en Configuración .
  2. En el cuadro Búsqueda rápida, escriba Flujos .
  3. Seleccione Flujos y luego haga clic en Nuevo flujo .
  4. Seleccione el flujo activado por registro opción, haga clic en Crear y configure el flujo de la siguiente manera:
    1. Objeto : Oportunidad
    2. Activar flujo de oportunidad cuando : se crea o actualiza un registro
    3. Establecer criterios de entrada
      1. Requisitos de condición: Ninguno
    4. Optimice el flujo para la acción y los registros relacionados
  5. Haga clic en Listo .

Paso 4.2: fórmula para calcular la longitud (enriquecida) del área de texto

Los campos de texto enriquecido son un poco torcidos. ISNULL e ISBLANK no funcionan con este tipo de campo. Para verificar NULL en este campo de tipo de datos, debemos usar LEN para calcular la cantidad de caracteres.

  1. En Caja de herramientas , seleccione Administrador y, a continuación, haga clic en Nuevo recurso para calcular la longitud del campo Análisis de acuerdos.
  2. Ingrese la siguiente información :
    1. Tipo de recurso : Fórmula
    2. Nombre de API : forN_DealAnalysisLength
    3. Tipo de datos : Número
    4. Lugares decimales : 0
    5. Fórmula : LEN({!$Record.rakeshistomMVP__Deal_Analysis__c})
  3. Haga clic en Listo .

Paso 4.3: Uso del elemento de decisión para comprobar si la longitud de la fórmula

Ahora usaremos el elemento Decisión para verificar si el campo de análisis del trato tiene más de 0 caracteres o no.

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Decisión .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. En Detalles del resultado , ingrese la etiqueta que el nombre de la API se completará automáticamente.
  4. Requisitos de condición para ejecutar el resultado : se cumplen todas las condiciones (Y)
    1. Fila 1:
      1. Recurso : {!forN_DealAnalysisLength}
      2. Operador : mayor que
      3. Valor : 0
  5. Cuándo ejecutar el resultado : si se cumplen los requisitos de la condición
  6. Haga clic en Listo .

Paso 4.4: agregue una acción para llamar a la clase de Apex para eliminar el marcado HTML

  1. En Flow Designer, debajo del nodo , haga clic en el icono + y seleccione el elemento Acción .
  2. Busque y seleccione la clase apex RemoveHtmlMarkup en el menú desplegable
  3. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  4. Establecer valores de entrada:
    1. Campo : texto enriquecido
    2. Valor : {!$Record.rakeshistomMVP__Deal_Analysis__c}
  5. Seleccione Asignar variables manualmente .
  6. Almacenar valores de salida:
    1. Campo : salida
    2. Valor : {!$Record.rakeshistomMVP__Deal_Analysis_Text__c}
  7. Haga clic en Listo .

Paso 4.5: Agregar acción: actualizar registros

El siguiente paso es actualizar el registro de oportunidad, para ello utilizaremos el elemento Actualizar Registros .

  1. En Flow Designer, haga clic en el icono + y seleccione el elemento Actualizar registros .
  2. Introduzca un nombre en el campo Etiqueta ; el nombre de la API se completará automáticamente.
  3. Para obtener información sobre cómo encontrar registros para actualizar y establecer sus valores, seleccione Usar los ID y todos los valores de campo de un registro o colección de registros.
  4. Seleccionar registro(s) para actualizar
    1. Registro o colección de registros : {!$Record}
  5. Haga clic en Listo .

Al final, Arda's Flow se verá como la siguiente captura de pantalla:

Una vez que todo se vea bien, realice los siguientes pasos:

  1. Haga clic en Guardar .
  2. Introducir etiqueta de flujo   el nombre de la API se completará automáticamente.
  3. Haga clic en Mostrar avanzado .
  4. Versión de API para ejecutar el flujo : 55
  5. Etiqueta de la entrevista : eliminar el marcado HTMl {!$Flow.CurrentDateTime}
  6. Haga clic en Guardar .

¡Casi ahí! Una vez que todo se vea bien, haga clic en el botón Activar .

Prueba de concepto

A partir de ahora, cuando un usuario empresarial actualice el campo Área de texto de análisis de trato (enriquecido), el flujo activado por registros almacenará automáticamente el texto sin formato en el campo Texto de análisis de trato.

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/04/23/remove-rich-text-formatting-using-flow/

Entradas recomendadas