Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[RESUELTO] - WF programado funciona OK?
#1
Thumbs Up 
Hola,
He hecho un WF que tiene la ejecución "programada" para actualizar un campo cuando se dan unas condiciones.
Si en lugar de que sea "programada", le digo que lo ejecute "cada vez que se guarda la entidad", funciona perfectamente.
El problema que tengo, es que he observado que cuando esta "programada" solo actualiza ese campo en un único registro que cumple la condición, pero no en todos los que sí la cumplen.
Funciona correctamente mi CRM? No debería cambiar ese campo en todos los registros que cumplan la condición?
Saludos.
Reply
#2
Sí debería cambiarlo en todos.
Sube una captura de tu configuración y/o verifica la consulta con el script evalwf.php

http://corebos.org/documentation/doku.php?id=en:devel:helperscripts&evalwfphp#evalwfphp
Joe
TSolucio
Reply
#3
(09-23-2016, 04:18 PM)joebordes Wrote: Sí debería cambiarlo en todos.
Sube una captura de tu configuración y/o verifica la consulta con el script evalwf.php

http://corebos.org/documentation/doku.php?id=en:devel:helperscripts&evalwfphp#evalwfphp

Gracias Joe,
EL CRM ID que me solicita de donde lo saco? el otro ID del WF ya lo se.
Saludos.

Hola Joe,
Te dejo unas capturas con la configuracion del WF (hay una de la vista desde el PHPmyadmin)
Saludos.


Attached Files Image(s)
               
Reply
#4
Busca Potentials en la table vtiger_ws_entity y utiliza el id delante de una 'x' seguida de cualquier id de potential.

13x999

donde el '13' es el ID de la fila con Potentials en esa tabla y 999 es un registro cualquiera de potentials
Joe
TSolucio
Reply
#5
(09-28-2016, 10:24 PM)joebordes Wrote: Busca Potentials en la table vtiger_ws_entity y utiliza el id delante de una 'x' seguida de cualquier id de potential.

13x999

donde el '13' es el ID de la fila con Potentials en esa tabla y 999 es un registro cualquiera de potentials

Tengo la impresión que pongo algo mal, me sale NOT FOUND. El script está donde toca, eso sí.
He probado con todo lo que se me ha ocurrido:

evalwf110&13x62550.php
evalwf?110&13x62550.php
evalwf 110&13x62550.php
evalwf? 110&13x62550.php
evalwf? 110&13x62550.php
evalwf ?workflowid=110&crmid=13x62550.php
etc...

y siempre la respuesta es la misma, NOT FOUND.

Qué hago mal?
Saludos.
Reply
#6
evalwf.php?workflowid=110&crmid=13x62550
Joe
TSolucio
Reply
#7
(09-29-2016, 08:44 PM)joebordes Wrote: evalwf.php?workflowid=110&crmid=13x62550


Gracias Joe.

He puesto esa cadena que me indicas y sale esto:

Scheduled: SQL for affected records:

SELECT vtiger_potential.potentialid FROM vtiger_potential INNER JOIN vtiger_crmentity ON vtiger_potential.potentialid = vtiger_crmentity.crmid WHERE vtiger_crmentity.deleted=0 AND ( (( vtiger_potential.sales_stage <> 'Closed Won') or ( vtiger_potential.sales_stage <> 'Closed Lost') or ( vtiger_potential.sales_stage <> 'Closed Lost (Competencia)') or ( vtiger_potential.sales_stage <> 'Closed Lost (WF)') ) and (( vtiger_crmentity.createdtime IS NULL or vtiger_crmentity.createdtime = '') )) AND vtiger_potential.potentialid > 0



Te dice algo?


Saludos.
Reply
#8
Sí, me dice.
No se pueden utilizar fórmulas en los flujos de trabajo programados. Esto es porque se convierte la condición en una consulta que recupera los registros a tratar en bloque, no es como los otros eventos que tienen un registro concreto con sus valores y pueden aplicar la fórmula. Por eso la condición que tienes de fecha está vacía

vtiger_crmentity.createdtime IS NULL or vtiger_crmentity.createdtime = ''

tienes que cambiar esa, debido a esa no está encontrando ningún registro
Joe
TSolucio
Reply
#9
(09-30-2016, 10:18 AM)joebordes Wrote: Sí, me dice.
No se pueden utilizar fórmulas en los flujos de trabajo programados. Esto es porque se convierte la condición en una consulta que recupera los registros a tratar en bloque, no es como los otros eventos que tienen un registro concreto con sus valores y pueden aplicar la fórmula. Por eso la condición que tienes de fecha está vacía

vtiger_crmentity.createdtime IS NULL or vtiger_crmentity.createdtime = ''

tienes que cambiar esa, debido a esa no está encontrando ningún registro

Pues vaya Angry .

De todas formas, muchas gracias Joe por tu tiempo.

Pensando en ello...
No puedo de alguna manera pedírselo?
O sea, en lugar de lo que tengo y no funciona:

(fecha de creación)(es)(time_diffdays(get_date('yesterday'),createdtime )>180)

cómo puedo usar?:

(fecha de creación)(menos de x horas antes)(NO SE AQUÍ CÓMO DEBERÍA PONER PARA INDICARLE 4320 HORAS, QUE SON LOS 180 DÍAS)

Cómo debería hacerlo? Cuál es el formato a seguir?
Reply
#10
Mira a ver si esto te ayuda:

http://corebos.org/documentation/doku.php?id=en:scheduled_workflows#scheduled_workflow_conditions


   
Joe
TSolucio
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)