BUG-12219 SOLVED Cuando una tarea tiene por configuración marcada la regla de asignación “Self Service”, la tarea puede ser apropiada por otro usuario en la sección 'HOME / Unassigned', seleccionar un registro, opción 'Open' , opción 'Claim This Case'; en consecuencia la tarea pasa al Inbox del usuario. Se requiere una opción similar por ejemplo: 'claimCase', para ProcessMaker SOAP Service. Nota: ProcessMaker SOAP Service ofrece el servicio 'UnassignedCaseList' que obtiene la lista de los casos que no tiene asignación.
This commit is contained in:
25
workflow/engine/classes/class.wsBase.php
Executable file → Normal file
25
workflow/engine/classes/class.wsBase.php
Executable file → Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
37
workflow/engine/methods/services/pmos2.wsdl
Executable file → Normal file
37
workflow/engine/methods/services/pmos2.wsdl
Executable file → Normal file
@@ -873,6 +873,24 @@
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="claimCaseRequest">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="sessionId" type="xs:string"/>
|
||||
<xs:element name="guid" type="xs:string"/>
|
||||
<xs:element name="delIndex" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="claimCaseResponse">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="status_code" type="xs:integer"/>
|
||||
<xs:element name="message" type="xs:string"/>
|
||||
<xs:element name="timestamp" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
</types>
|
||||
|
||||
@@ -1101,6 +1119,12 @@
|
||||
<message name="addCaseNoteResponse">
|
||||
<part name="parameters" element="xs0:addCaseNoteResponse"/>
|
||||
</message>
|
||||
<message name="claimCaseRequest">
|
||||
<part name="parameters" element="xs0:claimCaseRequest"/>
|
||||
</message>
|
||||
<message name="claimCaseResponse">
|
||||
<part name="parameters" element="xs0:claimCaseResponse"/>
|
||||
</message>
|
||||
|
||||
<portType name="ProcessMakerServiceSoap">
|
||||
<operation name="login">
|
||||
@@ -1263,6 +1287,10 @@
|
||||
<input message="xs0:addCaseNoteRequest"/>
|
||||
<output message="xs0:addCaseNoteResponse"/>
|
||||
</operation>
|
||||
<operation name="claimCase">
|
||||
<input message="xs0:claimCaseRequest"/>
|
||||
<output message="xs0:claimCaseResponse"/>
|
||||
</operation>
|
||||
</portType>
|
||||
|
||||
<binding name="ProcessMakerServiceSoap" type="xs0:ProcessMakerServiceSoap">
|
||||
@@ -1627,6 +1655,15 @@
|
||||
<soap12:body use="literal"/>
|
||||
</output>
|
||||
</operation>
|
||||
<operation name="claimCase">
|
||||
<soap12:operation soapAction="urn:claimCase" soapActionRequired="true" style="document"/>
|
||||
<input>
|
||||
<soap12:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap12:body use="literal"/>
|
||||
</output>
|
||||
</operation>
|
||||
</binding>
|
||||
|
||||
<service name="ProcessMakerService">
|
||||
|
||||
25
workflow/engine/methods/services/soap2.php
Executable file → Normal file
25
workflow/engine/methods/services/soap2.php
Executable file → Normal file
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user