diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php index cded46d1c..9ddd8f9f9 100755 --- a/workflow/engine/classes/class.wsBase.php +++ b/workflow/engine/classes/class.wsBase.php @@ -1653,6 +1653,43 @@ class wsBase } } + /** + * get all variables the system and case selected + * @param string $caseId + * + * @return $result will return an object + */ + public function getAllVariables($caseId) + { + try { + + $oCase = new Cases(); + + $caseFields = $oCase->loadCase($caseId); + + $oldFields = $caseFields['APP_DATA']; + $resFields = array(); + + foreach ($oldFields as $key => $val) { + $node = new stdClass(); + $node->name = $key; + $resFields[] = $node; + } + + $result = new wsGetVariableResponse( + 0, + count($resFields) . G::loadTranslation('ID_VARIABLES_SENT'), $resFields + ); + + return $result; + + } catch (Exception $e) { + $result = new wsGetVariableResponse(100, $e->getMessage(), null); + + return $result; + } + } + /** * new Case begins a new case under the name of the logged-in user. * @param string $processId diff --git a/workflow/engine/methods/services/pmos2.wsdl b/workflow/engine/methods/services/pmos2.wsdl index 7203cb817..940babd32 100755 --- a/workflow/engine/methods/services/pmos2.wsdl +++ b/workflow/engine/methods/services/pmos2.wsdl @@ -308,6 +308,11 @@ + + + + + @@ -325,6 +330,16 @@ + + + + + + + + + + @@ -334,6 +349,14 @@ + + + + + + + + @@ -920,6 +943,12 @@ + + + + + + @@ -1102,6 +1131,10 @@ + + + + @@ -1363,6 +1396,15 @@ + + + + + + + + + diff --git a/workflow/engine/methods/services/soap2.php b/workflow/engine/methods/services/soap2.php index 153687963..407561243 100755 --- a/workflow/engine/methods/services/soap2.php +++ b/workflow/engine/methods/services/soap2.php @@ -516,6 +516,28 @@ function GetVariables($params) return $res; } +function GetAllVariables($params) +{ + + $vsResult = isValidSession($params->sessionId); + + if ($vsResult->status_code !== 0) { + return $vsResult; + } + + if (ifPermission($params->sessionId, 'PM_CASES') == 0) { + $result = new wsGetVariableResponse(2, "You do not have privileges", null); + + return $result; + } + + $ws = new wsBase(); + + $res = $ws->getAllVariables($params->caseId); + + return $res; +} + function DerivateCase($params) { $oSession = new Sessions(); @@ -1169,6 +1191,7 @@ $server->addFunction("removeDocument"); $server->addFunction("SendMessage"); $server->addFunction("SendVariables"); $server->addFunction("GetVariables"); +$server->addFunction("GetAllVariables"); $server->addFunction("DerivateCase"); $server->addFunction("RouteCase"); $server->addFunction("executeTrigger");