# Creación de flujos de trabajo de sincronización

### **Conceptos clave**

Antes de construir un flujo de trabajo de sincronización, ayuda comprender algunos términos:

* **Origen** — el sistema y el tipo de registro que estás sincronizando *desde* (p. ej., Duro – Revisión de pieza)
* **Destino** — el sistema y el tipo de registro que estás sincronizando *a* (p. ej., ION – Revisión de pieza)
* **Activador** — lo que hace que la sincronización genere cambios pendientes: ya sea una programación temporal, o cuando Violet identifica cambios después de obtener nuevos datos de la aplicación de origen
* **Filtros** — condiciones opcionales que limitan qué registros de origen se sincronizan (p. ej., sincronizar solo piezas con Estado = "Liberado")
* **Asignaciones** — cómo las propiedades del origen corresponden a las propiedades del destino (p. ej., "Número de pieza" del origen → "Nombre del elemento" del destino)
* **Dependencias** — registros relacionados sincronizados junto con el registro principal (p. ej., archivos adjuntos a una pieza)
* **Cambios pendientes** — una vista previa preparada de lo que se creará, actualizará o eliminará antes de que algo se aplique a tu sistema de destino
* **Lote de sincronización** — a medida que se identifican los cambios pendientes, se agrupan en un lote de sincronización. Estos lotes contienen todos los cambios pendientes de un flujo de trabajo desde la última vez que se ejecutó la sincronización.
* **Ejecución de cambios** - la ejecución real de los cambios en el sistema de destino: ya sea una aprobación manual, una programación temporal o una ejecución de cambios en vivo "al crear". Todos los cambios de un lote de sincronización se ejecutarán juntos.

### **Creación de un flujo de trabajo de sincronización**

#### **Paso 1 — Abre el generador de flujos de trabajo**

Ve a la pestaña **Flujos de trabajo** y haz clic en <mark style="color:$primary;">**+ Flujo de trabajo de sincronización**</mark>.

<figure><img src="https://3116332745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvrraExym8pNEUvBDoima%2Fuploads%2FQs9dgsvtlyGCrJ7f2qr9%2Fimage.png?alt=media&#x26;token=03559741-1db8-48e8-8c5c-ea65af8cb4fe" alt=""><figcaption></figcaption></figure>

Si iniciaste previamente un flujo de trabajo y no lo terminaste, aparecerá un indicador de **borrador disponible** — el generador restaurará automáticamente donde lo dejaste.

#### **Paso 2 — Nombra tu flujo de trabajo**

Introduce un nombre descriptivo en la parte superior del lienzo. Elige algo que facilite identificarlo más tarde, como *"ION → Sincronización de orden de compra Ramp"*. Recomendamos incluir los nombres de las aplicaciones de origen y destino y el tipo de registros que se están sincronizando en el flujo de trabajo.

#### **Paso 3 — Configura el origen y el destino**

Haz clic en el nodo **Origen** del lienzo y selecciona:

* La **integración de origen** (el sistema desde el que sincronizas)
* La **tipo de entidad de origen** (el tipo de registro — p. ej., Pieza, Orden de compra, Tarea)

Luego haz clic en el nodo **Destino** y selecciona:

* La **integración de destino** (el sistema al que sincronizas)
* La **tipo de entidad de destino**

<figure><img src="https://3116332745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvrraExym8pNEUvBDoima%2Fuploads%2FEMbzjP4H4zSKHSNTJDt9%2Fimage.png?alt=media&#x26;token=ff9121fb-bc34-46da-9b15-c6c2fe5a9050" alt=""><figcaption></figcaption></figure>

#### **Paso 4 — Establece un activador**

Haz clic en el nodo **Activador** nodo y elige cómo el flujo de trabajo generará cambios pendientes:

<table data-header-hidden><thead><tr><th width="168"></th><th></th></tr></thead><tbody><tr><td><strong>Tipo de activador</strong></td><td><strong>Cuándo se ejecuta</strong></td></tr><tr><td><strong>Actividad</strong></td><td>Automáticamente cuando se obtiene o actualiza la integración de origen</td></tr><tr><td><strong>Programado</strong></td><td>En un intervalo de tiempo que elijas: cada 15 min, 30 min, 1 h, 2 h, 4 h, 6 h, 12 h, diario o semanal</td></tr></tbody></table>

<figure><img src="https://3116332745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvrraExym8pNEUvBDoima%2Fuploads%2F8Xk2EeYTgKUhZtswQonb%2Fimage.png?alt=media&#x26;token=160b365f-4ad8-4a9b-bd8e-a11572d2c7da" alt=""><figcaption></figcaption></figure>

#### **Paso 5 — Añade filtros&#x20;*****(opcional)***

Haz clic en el nodo **Filtros** nodo para limitar qué registros de origen se incluyen en la sincronización.

Para cada filtro, elige:

1. Una **propiedad** del registro de origen (p. ej., Estado, Fase del ciclo de vida)
2. Un **operador** (igual a, comienza con, termina con, está en, la fecha es posterior, coincidencia con expresión regular, y más)
3. Una **valor** con el que comparar

Puedes añadir varios filtros. Los filtros marcados **deben cumplirse** actúan como condiciones AND — todos deben satisfacerse. Los demás actúan como condiciones OR.

<figure><img src="https://3116332745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvrraExym8pNEUvBDoima%2Fuploads%2FUYEB5u9sLmSDvYYiDSj8%2Fimage.png?alt=media&#x26;token=b9483c72-3294-470e-80be-f4d82f0681a3" alt=""><figcaption></figcaption></figure>

#### **Paso 6 — Asigna propiedades**

Haz clic en el nodo **Asignaciones** nodo para definir cómo las propiedades del origen se traducen en propiedades del destino. Violet rellenará automáticamente las asignaciones de propiedades más probables entre los sistemas de origen y destino, pero debes confirmar que sean correctas.

* Las propiedades marcadas con \* son obligatorias — deben asignarse antes de que puedas guardar
* Las propiedades opcionales pueden asignarse o dejarse en blanco según sea necesario. Si se dejan en blanco, las sincronizaciones no crearán ni actualizarán datos en esa propiedad de destino durante una sincronización
* Para **propiedades de selección/desplegable**, también puedes asignar valores de opción individuales (p. ej., estado de origen "Liberado" → estado de destino "Activo")

**Opciones de asignación:**

<table data-header-hidden><thead><tr><th width="200"></th><th></th></tr></thead><tbody><tr><td><strong>Opción</strong></td><td><strong>Descripción</strong></td></tr><tr><td><strong>Asignación directa</strong></td><td>Asignar una propiedad de origen directamente a una propiedad de destino</td></tr><tr><td><strong>Valor literal</strong></td><td>Establecer un valor de texto fijo en la propiedad de destino, independientemente del origen</td></tr><tr><td><strong>Concatenación</strong></td><td>Combinar varias propiedades de origen con separadores (p. ej., <code>{Número de pieza} / {Revisión}</code>)</td></tr><tr><td><strong>Transformador</strong></td><td>Aplicar una transformación integrada (p. ej., convertir a minúsculas, extraer una fecha, eliminar caracteres no numéricos)</td></tr></tbody></table>

<figure><img src="https://3116332745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvrraExym8pNEUvBDoima%2Fuploads%2FuT1u5a6y8AIxf631QC6f%2Fimage.png?alt=media&#x26;token=8cd183e6-1c7a-41e6-90b3-0dd916de4b0c" alt=""><figcaption></figcaption></figure>

#### **Paso 7 — Configura las dependencias&#x20;*****(si se muestra)***

Algunos tipos de entidad de destino tienen relaciones obligatorias o subentidades relacionadas. Por ejemplo, si estás sincronizando una Orden de compra, el sistema de destino puede requerir que esté asociada a un Proveedor en ese sistema. Del mismo modo, las Líneas de orden de compra son una subentidad de la Orden de compra y se sincronizarán juntas.

Estas sincronizaciones dependientes aparecen como filas adicionales debajo de la sincronización principal en el lienzo. Si tu sincronización tiene dependencias obligatorias, debes configurar tu integración para obtener esos tipos de entidad junto con la entidad principal que deseas sincronizar (p. ej., debes obtener tanto Órdenes de compra como Proveedores/ Vendedores en la misma integración para los sistemas de Origen y Destino). Las subentidades, como las Líneas de orden de compra, se obtienen automáticamente junto con su entidad principal; no necesitas hacer ninguna configuración especial para habilitar esto.

Para cada dependencia:

1. **Selecciona la relación de origen** — si pueden aplicarse varias relaciones de origen, elige cuál usar
2. Opcionalmente añade **Filtros** y **Asignaciones** específicos para esa dependencia

<figure><img src="https://3116332745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvrraExym8pNEUvBDoima%2Fuploads%2FljdfR35FvFcI19o10W1x%2Fimage.png?alt=media&#x26;token=a05094f9-e210-4c39-b5c8-c85a3be93081" alt=""><figcaption></figcaption></figure>

#### **Paso 8 — Guardar**

Haz clic en **Guardar flujo de trabajo** cuando hayas terminado.

Si falta algo obligatorio, los nodos afectados mostrarán un **borde rojo con un indicador de error**. Haz clic en el nodo para ver qué debe completarse.

Si todo sale bien, se te redirigirá a la lista de flujos de trabajo y el nuevo flujo aparecerá allí.

#### **Paso 9 — Elige el método de ejecución de cambios de sincronización**

Una vez que hayas guardado tu flujo de trabajo de sincronización, el par de integraciones Destino > Origen aparecerá en la lista de **Todas las integraciones** . Haz clic en el par de integraciones y luego haz clic en el engranaje de **Configuración de ejecución:** para configurar el método de ejecución de cambios de sincronización.

&#x20;

<figure><img src="https://3116332745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvrraExym8pNEUvBDoima%2Fuploads%2FfcTALw1jm6XvxGri02Im%2Fimage.png?alt=media&#x26;token=9fd09d36-f962-4381-8e03-e9e5c81e1aef" alt=""><figcaption></figcaption></figure>

Puedes elegir ejecutar los cambios de sincronización con un **temporizador**, o **al actividad**. Si deseas ejecutar los cambios de sincronización **al actividad**, puedes elegir entre una *aprobación* *manual*, o *ejecución automática* cada vez que finaliza el flujo de trabajo de creación de cambios de sincronización.

<figure><img src="https://3116332745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvrraExym8pNEUvBDoima%2Fuploads%2FgXHicomEDsX1Rhl2BTVV%2Fimage.png?alt=media&#x26;token=516e87c8-a7b6-4823-8a17-1cb2b6acfba1" alt=""><figcaption></figcaption></figure>

***

### **Administración de flujos de trabajo de sincronización**

Desde la lista de Flujos de trabajo, cada tarjeta de flujo muestra su nombre, las integraciones de origen y destino, y el estado actual.

* **Editar:** Para editar un flujo de trabajo, haz clic en cualquier parte de la tarjeta del flujo de trabajo.
* **Preparar cambios manualmente (**<img src="https://3116332745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvrraExym8pNEUvBDoima%2Fuploads%2FD41eLUQ66ztWfx8mQ2O0%2Fimage.png?alt=media&#x26;token=fca824a2-abf0-4b3a-8f95-ead3bfd638b5" alt="" data-size="line">**):** Haz clic en el icono "Crear cambios para la integración completa" para preparar inmediatamente los cambios de sincronización pendientes para todos los registros del sistema de origen. Puedes usar esto para los cambios iniciales cuando configures tu flujo de trabajo por primera vez si no quieres esperar a la siguiente obtención de la integración de origen.
* **Ver historial de ejecuciones (**<img src="https://3116332745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvrraExym8pNEUvBDoima%2Fuploads%2F4IFOJyH4FdXmxqleBNRw%2Fimage.png?alt=media&#x26;token=70bfbb64-f6fb-46fd-957e-2bf759ddc2ec" alt="" data-size="line">**):** Haz clic en el icono de historial para ver sincronizaciones anteriores. Puedes ver el estado de cada ejecución histórica, así como los cambios sincronizados y el estado de cada cambio.
* **Eliminar (**<img src="https://3116332745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvrraExym8pNEUvBDoima%2Fuploads%2FUxTon9pv8KzaDgQhCi2t%2Fimage.png?alt=media&#x26;token=9c775919-0420-4894-8593-d0949f8c1c72" alt="" data-size="line">**):** Haz clic en el icono de eliminar para borrar el flujo de trabajo.

### **Borradores**

El generador guarda automáticamente tu trabajo como borrador en tu navegador mientras avanzas; no se necesita guardar manualmente.

* Una **borrador disponible** aparece una insignia en la pestaña Flujos de trabajo si tienes un borrador sin guardar
* Si navegas fuera, se te preguntará si deseas **conservar el borrador**, **descartarlo**, o **volver**
* Puedes borrar un borrador manualmente en cualquier momento usando el botón **Borrar borrador** dentro del generador

> ***Nota:** Los borradores se almacenan en tu navegador y no aparecerán en otros dispositivos ni después de borrar los datos de tu navegador.*
