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");