diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php
index eea3faf7f..21499df7a 100755
--- a/workflow/engine/classes/class.wsBase.php
+++ b/workflow/engine/classes/class.wsBase.php
@@ -3288,5 +3288,30 @@ class wsBase
return $result;
}
}
+
+ /**
+ * ClaimCase
+ *
+ * @param string $userId
+ * @param string $guid
+ * @param string $delIndex
+ * @return $result will return an object
+ */
+ public function claimCase($userId, $guid, $delIndex)
+ {
+ try {
+ G::LoadClass('case');
+ $oCase = new Cases();
+ $oCase->loadCase($guid);
+ $oCase->setCatchUser($guid, $delIndex, $userId);
+
+ $result = new wsResponse(0, G::LoadTranslation("ID_COMMAND_EXECUTED_SUCCESSFULLY"));
+ return $result;
+ } catch (Exception $e) {
+
+ $result = new wsResponse(100, $e->getMessage());
+ return $result;
+ }
+ }
}
diff --git a/workflow/engine/methods/services/pmos2.wsdl b/workflow/engine/methods/services/pmos2.wsdl
index 00da67108..507c175d8 100755
--- a/workflow/engine/methods/services/pmos2.wsdl
+++ b/workflow/engine/methods/services/pmos2.wsdl
@@ -873,6 +873,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1101,6 +1119,12 @@
+
+
+
+
+
+
@@ -1263,6 +1287,10 @@
+
+
+
+
@@ -1627,6 +1655,15 @@
+
+
+
+
+
+
+
diff --git a/workflow/engine/methods/services/soap2.php b/workflow/engine/methods/services/soap2.php
index 2f4c827c7..3a8395199 100755
--- a/workflow/engine/methods/services/soap2.php
+++ b/workflow/engine/methods/services/soap2.php
@@ -1208,6 +1208,30 @@ function addCaseNote($params)
return $result;
}
+function claimCase($params)
+{
+ $vsResult = isValidSession($params->sessionId);
+ if ($vsResult->status_code !== 0) {
+ return $vsResult;
+ }
+
+ if (ifPermission($params->sessionId, 'PM_CASES') == 0) {
+ $result = new wsResponse(2, G::LoadTranslation('ID_NOT_PRIVILEGES'));
+
+ return $result;
+ }
+
+ G::LoadClass('sessions');
+
+ $oSessions = new Sessions();
+ $session = $oSessions->getSessionUser($params->sessionId);
+
+ $ws = new wsBase();
+ $res = $ws->claimCase($session['USR_UID'], $params->guid, $params->delIndex);
+
+ return $res;
+}
+
$server = new SoapServer($wsdl);
$server->addFunction("Login");
@@ -1251,5 +1275,6 @@ $server->addFunction("cancelCase");
$server->addFunction("pauseCase");
$server->addFunction("unpauseCase");
$server->addFunction("addCaseNote");
+$server->addFunction("claimCase");
$server->handle();