En este artículo vamos a estudiar un caso de uso del generador de workflows de la empresa vtextra.com de la cual hemos extraido de su web esta aplicación del mismo a la versión de vTiger CRM 7.
Dado un pedido de orden de venta en vTiger CRM que nos genera un cliente este puede derivar en la tener la posibilidad de crear un pedido de compra, pero no solo una orden de compra, sino una para cada proveedor de productos que forman parte de la orden de venta inicial, así una orden de venta da pie a N posibles ordenes de compra.
Supongamos que tenemos un pedido de venta con el siguiente producto:
Producto 1 – proveedor A
Producto 2 – proveedor B
Producto 3 – vendedor A
Producto 4 – proveedor C
Producto 5 – proveedor C
En este caso necesito 3 órdenes de compra:
ORDEN DE COMPRA 1: con el producto 1 y el producto 3 del proveedor A
ORDEN DE COMPRA 2: con el producto 2 del proveedor B
ORDEN DE COMPRA 3: con el producto 4 y el producto 5 del proveedor C
Por supuesto, el precio de los productos de cara a los proveedores debe ser el precio de compra en el catálogo de productos en el precio de lista.
Implementar esta posibilidad con el módulo de diseño de flujo de trabajo de vtextra.com es algo factible de ser desplegado en nuestra instancia de vTiger CRM.
Flujo de trabajo principal: bucle a través de productos
El flujo de trabajo principal lo desplegamos y se establece en el módulo de Ordenes de venta y debe ser implementado de esta forma:
El bloque principal que utilizamos después del inicio es el bucle a través del producto que en nuestro caso se establecerá de esta forma:
Este bloque formará un bucle en cada producto del pedido de venta que son procesados en cada iteración, pasando la información por cada item del pedido al flujo de trabajo en cuestion.
Como no toda la información está disponible, usaremos otro bloque llamado ejecutar expresión con un registro externo, para obtener la información que falta, en este bloque buscamos en el módulo del producto todos los productos que tienen la ID del producto que está seleccionado en el bucle que estamos recorriendo en el workflow princiapl. Cuando encontramos este producto, establecemos alguna variable de entorno (dentro de la ficha del producto podemos establecer cuál es su proveedor por defecto) para tener el ID del proveedor, el nombre del producto y el costo de compra.
Ahora el siguiente paso es verificar si existe una orden de compra relacionada con nuestra orden de venta (para administrar esta relación, agregamos un campo uitype 10 en la orden de compra que apunta a la orden de venta) con el proveedor del producto seleccionado del bucle principal: si existe, agregamos la producto al pedido de compra, si no existe, creamos pedido de compra sin producto y con este proveedor en concreto y luego agregamos el producto a comprar.
La condición se debe establecer de la siguiente manera:
Agregar productos que mueven datos a un flujo de trabajo externo
Esta es una solución potente que usamos para agregar productos a las órdenes de compra que se pueden ir creando en cada iteración.
Movemos algunos datos del flujo de trabajo principal a un flujo de trabajo secundario usando WRITE ENTITY DATA BL.
Como puede ver en la imagen, establecemos algunas variables en el ejemplo idproduct tomará valores de la variable de entorno $ env [“producto”] [“productid”] y así sucesivamente.
Entonces llamamos a un flujo de trabajo externo:
El flujo de trabajo es “agregar producto de ODV” y se ejecuta en la orden de compra con la identificación que se encuentra en la búsqueda global.
El nuevo flujo de trabajo es así:
El bloque READ ENTITY DATA puede leer datos escritos en el bloque WRITE ENTITY DATA:
El último paso es agregar un producto a esta orden de compra, utilizando los datos que obtenemos:
Este flujo de trabajo podría llamarse con un botón en la orden de venta, que permita crear automáticamente todas las ordenes de compra o bien dispararlo con alguna condición llegado un determinado estado del pedido de venta como puede ser cuando llegue a estado aceptado.
A través de este módulo de creación de workflow de vtextra.com se pueden crear flujos de trabajo de crear este flujo de trabajo en esta linea:
Workflow Designer https://vtextra.com/knowledgebase/workflow-designer-quick-start/
Hola necesito algun desarrollador vtiger que me pueda ayudar
gguerrero@fragata.ec