Los campos múltiples —teléfonos, correos, etiquetas— guardan varios valores a la vez, y los robots también devuelven listas: por ejemplo, las partes de una cadena dividida. Las acciones nativas de los procesos de negocio de Bitrix24 (Alaio) trabajan mal con las listas: la inserción une todos los valores en una sola cadena, y la escritura en un campo múltiple borra lo que había en él. Los robots de Roboteka cubren el trabajo con arreglos: tomar un elemento por índice, contar los elementos, comprobar la presencia de un valor, añadir y eliminar un valor de un campo múltiple, y además quitar duplicados, ordenar, sumar, eliminar un elemento de una lista y mostrar una lista como tabla.
¿De dónde salen los arreglos en un proceso de negocio?
Tres fuentes. Los campos múltiples de las entidades: los teléfonos y correos de un contacto, los campos personalizados con el atributo «múltiple» —etiquetas, categorías, lista de sucursales—. Las variables múltiples del proceso, en las que los valores se van acumulando a lo largo de las ramas. Y los resultados de otros robots: dividir una cadena por un separador devuelve una lista de partes; extraer por patrón, una lista de coincidencias. De forma nativa, con esa lista se puede hacer poco: la inserción en un texto une los valores con comas, la condición comprueba la pertenencia sobre la cadena unida. Tomar precisamente el segundo teléfono, contar las etiquetas o añadir con cuidado un valor sin tocar el resto ya son tareas para los robots de abajo.
¿Cómo tomar el primer, el último o el N-ésimo elemento?
El robot «Obtener elemento del array por índice» recibe un arreglo de valores y un índice: 0, el primer elemento; 1, el segundo; −1, el último; −2, el penúltimo. Salida: el elemento y el indicador «El elemento existe» (Y/N); si el índice está fuera de los límites del arreglo, se devolverá un valor vacío y el indicador N; el proceso no se detendrá, y la rama de la condición gestionará la falta de datos. Combinaciones típicas: divides una cadena con el nombre completo por el espacio y tomas el primer elemento como apellido; divides una dirección por la coma y tomas el último elemento como número de portal; de la lista de coincidencias de una expresión regular tomas la primera. El resultado se escribe en un campo o una variable simple normal para los siguientes pasos.
¿Cómo contar los elementos y comprobar la presencia de un valor?
Dos robots-pregunta. «Tamaño del array / número de elementos» devuelve la cantidad y el indicador «El arreglo está vacío» (Y/N); las cadenas vacías por defecto no se cuentan, así que una posición vacía accidental en un campo múltiple no estropeará el recuento. «Comprobar si un valor existe en el array» busca una coincidencia exacta del elemento —no una subcadena— sin distinguir mayúsculas, y con una opción se activa la comparación estricta. Salida: el indicador «Encontrado» (Y/N) y el índice de la primera coincidencia, menos uno si no hay coincidencias. Aplicación en las condiciones del proceso: «la negociación ya tiene la etiqueta VIP, omitir la concesión del descuento», «el contacto tiene cero teléfonos, una tarea para que el gestor complete la ficha antes de pasarla a la ronda de llamadas».
¿Cómo añadir un valor a un campo múltiple sin borrar el resto?
El principal dolor de los campos múltiples: el cambio de documento nativo escribe el campo entero y, al añadir una etiqueta, es fácil borrar las existentes. El robot «Añadir valor a un campo múltiple» añade el valor con cuidado: lee el contenido actual del campo de la entidad y agrega el nuevo a los existentes. Entrada: el tipo de entidad —negociación, contacto, empresa o prospecto—, el ID de la entidad por inserción desde el documento actual, el código del campo (por ejemplo, UF_CRM_TAGS o PHONE) y el propio valor. La opción «no añadir si ya existe» está activada por defecto: un nuevo lanzamiento del proceso no generará duplicados del valor. Salida: el indicador «Correcto» (Y/N) y la cantidad final de elementos en el campo.
¿Cómo eliminar un valor de un campo múltiple?
La operación inversa: quitar una etiqueta, retirar un teléfono obsoleto. A mano, eso significa abrir la ficha y editar el campo; con la acción nativa, reescribir el campo entero con todos los riesgos. El robot «Eliminar valor de un campo múltiple» recibe el tipo de entidad, el ID, el código del campo y el valor a eliminar. Se eliminan todas las apariciones de ese valor; el resto de los elementos se conservan en su sitio. Salida: el indicador «Correcto» (Y/N), cuántas apariciones se eliminaron y la cantidad final de elementos en el campo. Receta: la negociación se cierra con éxito; el proceso quita de la empresa la etiqueta «en trabajo» y, con el robot vecino de adición, agrega la etiqueta «cliente»; la ficha siempre refleja el estado actual sin edición manual.
¿Cómo obtener el último valor añadido?
Bitrix24 guarda los valores de un campo múltiple en el orden en que se añadieron, así que «el último añadido» es simplemente el último elemento de la lista. El robot «Obtener elemento del array por índice» con el índice −1 lo devuelve sin contar la longitud; −2 da el anterior. Un matiz para los campos de tipo «lista» y «vínculo a elemento de CRM»: ese campo llega al proceso de negocio como una lista de ID —de los valores de la lista o de los elementos vinculados—, no de nombres. El índice −1 te da el ID del último elemento; para leer su nombre, teléfono o cualquier otro campo, encadena el robot «Obtener el valor de un campo de una entidad relacionada»: recibe el tipo de entidad, ese ID y el código del campo. Ejemplo: una negociación tiene un campo múltiple «Aprobadores» vinculado a contactos; el proceso toma el último añadido y extrae su correo para la notificación.
¿Cómo convertir una cadena separada por comas en un campo múltiple?
Los valores de un formulario o de una integración a menudo llegan como una sola cadena: «instalación, entrega, garantía». El robot «Dividir cadena por separador» la corta en una lista de partes; el separador se toma literalmente, así que para una cadena con coma y espacio indica «coma más espacio» como separador; de lo contrario, las partes conservarán un espacio inicial. El resultado es un arreglo normal: escríbelo entero en un campo múltiple con la acción nativa «Modificar documento» (el campo se sobrescribe; para un campo vacío es justo lo que se necesita) o añade los valores uno a uno a los existentes con «Añadir valor a un campo múltiple». Más sobre dividir y unir en el artículo sobre cadenas en los procesos de negocio.
¿Cómo eliminar un elemento de un arreglo o vaciar una lista?
Dos casos distintos. Si el valor debe desaparecer de un campo de la ficha, eso es «Eliminar valor de un campo múltiple»: edita la propia entidad. Si la lista vive en una variable del proceso o proviene de otro robot y la ficha debe quedar intacta, usa «Eliminar elemento del array». Dos modos: por valor —se eliminan todas las coincidencias, por defecto sin distinguir mayúsculas— y por índice —un elemento: 0 el primero, −1 el último—. Salida: el arreglo tras la eliminación, cuántos elementos se eliminaron y la cantidad final. Vaciar por completo una variable múltiple es más fácil con las herramientas nativas: la acción «Modificar variables» con un valor vacío; un campo múltiple de la ficha se vacía con el robot «Vaciar un campo», porque una cadena vacía en el cambio de documento nativo no funciona para esos campos. El robot de eliminación es para cuando un valor sale de la lista: el primer teléfono de la cola ya se ha atendido; elimínalo por el índice 0 y pasa el resto adelante.
¿Cómo quitar los duplicados y comparar dos listas?
«Eliminar duplicados del array» conserva solo los valores únicos y mantiene el orden de las primeras apariciones; la comparación por defecto no distingue mayúsculas, con una opción para la coincidencia estricta. Salida: el arreglo sin duplicados, el número de elementos únicos y cuántas repeticiones se descartaron. Caso típico: los teléfonos de una empresa y de sus contactos reunidos en una variable antes de un envío; tras el robot, ningún número recibe dos mensajes. El mismo robot ayuda a comparar dos campos múltiples. Elemento a elemento: «Comprobar si un valor existe en el array» dentro de la construcción nativa «Bucle»; un valor del campo A se busca en el campo B. En conjunto: reúne ambas listas en una variable y ejecuta la eliminación de duplicados; si ninguno de los campos repite valores internamente y el número de repeticiones descartadas coincide con el número de elementos del campo B, el campo B está contenido por completo en el campo A.
¿Cómo sumar los valores de un arreglo?
Un campo múltiple «Pagos» o una lista de importes de una cadena dividida se suma con el robot «Suma de los elementos del array». Entiende la coma como separador decimal y los espacios dentro de los números («1 500,50»), omite los elementos no numéricos e informa por separado de cuántos omitió; una condición del proceso sobre ese contador detecta que «ha entrado texto en el campo». Salida: la suma y el número de elementos contados. Normalmente la suma se redondea después y se coloca en un campo de la negociación o en un correo; el redondeo y los porcentajes tienen su propio artículo sobre cálculos en los procesos de negocio.
¿Cómo ordenar un arreglo?
Las herramientas nativas no ordenan una lista, y ordenar números como cadenas da el orden «1, 10, 2». El robot «Ordenar array» ordena los elementos de forma ascendente o descendente; el tipo se detecta automáticamente —si todos los elementos son numéricos, comparación numérica; si no, alfabética como cadenas— y puede forzarse. Salida: el arreglo ordenado y el número de elementos. En pareja con la obtención por índice responde a «el pago más grande»: ordena de forma descendente y toma el elemento 0; «las tres fechas más tempranas»: ordena de forma ascendente y toma 0, 1 y 2.
¿Cómo mostrar una lista como tabla en un correo o una notificación?
Insertar un campo múltiple en un texto da los valores separados por comas. Para un correo legible usa el robot «Tabla HTML a partir de un array»: cada elemento del arreglo se convierte en una fila de la tabla, un separador dentro del elemento (punto y coma por defecto) lo divide en columnas y un campo aparte define la fila de encabezado. Salida: el código HTML listo de la tabla, el número de filas y de columnas. Receta: una lista de posiciones «nombre;cantidad;importe», acumulada en una variable mientras se ejecuta el proceso, se envía al cliente por correo como una tabla. Cómo entregar ese correo o notificación se explica en el artículo sobre notificaciones desde un proceso de negocio.
Conclusión
Los robots cubren el ciclo de vida de un arreglo: tomar un elemento, «Obtener elemento del array por índice»; contar, «Tamaño del array / número de elementos»; comprobar, «Comprobar si un valor existe en el array»; modificar un campo múltiple de la ficha, «Añadir valor a un campo múltiple» y «Eliminar valor de un campo múltiple»; procesar una lista sin escribir en la ficha, «Eliminar elemento del array», «Eliminar duplicados del array», «Ordenar array», «Suma de los elementos del array», «Tabla HTML a partir de un array». Todos están en el catálogo de Roboteka, gratis desde Bitrix24.Market. Si no hay la operación con arreglos que necesitas, describe la tarea y haremos el robot gratis.