From 5fa88630ee0b56a3e3bb1b694815db67d5b26eba Mon Sep 17 00:00:00 2001 From: "marcelo.cuiza" Date: Fri, 6 Feb 2015 14:35:44 -0400 Subject: [PATCH 1/3] PM-1492 Las condiciones no funcionan correctamente, si es que no estan dentro de parentesis (). Se encapsulo en parentesis toda condicion dada. --- workflow/engine/classes/class.derivation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 9c3328886..88416c60d 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -194,7 +194,7 @@ class Derivation $pmScript = new PMScript(); $pmScript->setFields($arrayApplicationData["APP_DATA"]); - $pmScript->setScript($arrayRouteData["ROU_CONDITION"]); + $pmScript->setScript("( ".$arrayRouteData["ROU_CONDITION"]." )"); $flagContinue = $pmScript->evaluate(); } From a6fde3c2d57de712de4148f5c2d1edf03600f787 Mon Sep 17 00:00:00 2001 From: "marcelo.cuiza" Date: Thu, 19 Feb 2015 12:40:19 -0400 Subject: [PATCH 2/3] PM-1492 Las condiciones no funcionan correctamente, si es que no estan dentro de parentesis (). Se encapsulo en parentesis toda condicion dada que contenga un operador logico. --- workflow/engine/classes/class.derivation.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 88416c60d..1aba0e0fc 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -194,7 +194,12 @@ class Derivation $pmScript = new PMScript(); $pmScript->setFields($arrayApplicationData["APP_DATA"]); - $pmScript->setScript("( ".$arrayRouteData["ROU_CONDITION"]." )"); + $condition = strtoupper($arrayRouteData["ROU_CONDITION"]); + if(strpos($condition,"AND") || strpos($condition,"OR") || strpos($condition,"XOR")) { + $pmScript->setScript("( ".$arrayRouteData["ROU_CONDITION"]." )"); + } else { + $pmScript->setScript($arrayRouteData["ROU_CONDITION"]); + } $flagContinue = $pmScript->evaluate(); } From 647e754200423bb5c03c34dd514796ecb5b74298 Mon Sep 17 00:00:00 2001 From: "marcelo.cuiza" Date: Thu, 19 Feb 2015 14:39:17 -0400 Subject: [PATCH 3/3] PM-1492 Las condiciones no funcionan correctamente, si es que no estan dentro de parentesis (). Se encapsulo en parentesis toda condicion dada que contenga un operador logico --- workflow/engine/classes/class.derivation.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 1aba0e0fc..d8c49c54b 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -194,8 +194,7 @@ class Derivation $pmScript = new PMScript(); $pmScript->setFields($arrayApplicationData["APP_DATA"]); - $condition = strtoupper($arrayRouteData["ROU_CONDITION"]); - if(strpos($condition,"AND") || strpos($condition,"OR") || strpos($condition,"XOR")) { + if(preg_match('/\b(or|and|xor)\b/i' , $arrayRouteData["ROU_CONDITION"])) { $pmScript->setScript("( ".$arrayRouteData["ROU_CONDITION"]." )"); } else { $pmScript->setScript($arrayRouteData["ROU_CONDITION"]);