BUG 5494 "Request for a web service function to cancel..." SOLVED
- New feature - Web Services for pause and unpause case - Added functions "PMFPauseCase, PMFUnpauseCase, WSPauseCase, WSUnpauseCase" in "class.pmFunctions.php" - Added function "pauseCase, unpauseCase" in "class.wsBase.php" - Added functionality for applications using Web Services - Cancel case it's solved in bug 7385 - Function "pauseCase" from "class.pmFunctions.php" has changed its name to "PMFPauseCase" * Available from version 2.0.44
This commit is contained in:
@@ -216,42 +216,6 @@ function literalDate($date, $lang='en')
|
||||
throw $oException;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @method
|
||||
*
|
||||
* Pauses a specified case.
|
||||
*
|
||||
* @name pauseCase
|
||||
* @label Pause Case
|
||||
* @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#pauseCase.28.29
|
||||
*
|
||||
* @param string(32) | $sApplicationUID= "" | ID of the case | The unique ID of the case. The UID of the current case can be found in the system variable @@APPLICATION.
|
||||
* @param string(32) | $iDelegation = 0| Delegation index of the case | The delegation index of the current task in the case.
|
||||
* @param string(32) | $sUserUID = ""| ID user | The unique ID of the user who will pause the case.
|
||||
* @param string(32) | $sUnpauseDate = null | Date | Optional parameter. The date in the format 'yyyy-mm-dd' indicating when to unpause the case.
|
||||
* @return None | $none | None | None
|
||||
*
|
||||
*/
|
||||
function pauseCase($sApplicationUID='', $iDelegation=0, $sUserUID='', $sUnpauseDate=null)
|
||||
{
|
||||
//var_dump($sApplicationUID, $iDelegation, $sUserUID, $sUnpauseDate);die(':|');
|
||||
try {
|
||||
if ($sApplicationUID == '') {
|
||||
throw new Exception('The application UID cannot be empty!');
|
||||
}
|
||||
if ($iDelegation == 0) {
|
||||
throw new Exception('The delegation index cannot be 0!');
|
||||
}
|
||||
if ($sUserUID == '') {
|
||||
throw new Exception('The user UID cannot be empty!');
|
||||
}
|
||||
G::LoadClass('case');
|
||||
$oCase = new Cases();
|
||||
$oCase->pauseCase($sApplicationUID, $iDelegation, $sUserUID, $sUnpauseDate);
|
||||
} catch (Exception $oException) {
|
||||
throw $oException;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @method
|
||||
*
|
||||
@@ -1232,6 +1196,84 @@ function WSCancelCase($caseUid, $delIndex, $userUid)
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* @method
|
||||
*
|
||||
* Pauses a specified case.
|
||||
*
|
||||
* @name WSPauseCase
|
||||
* @label WS Pause Case
|
||||
* @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#WSPauseCase.28.29
|
||||
*
|
||||
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
|
||||
* @param int | $delIndex | Delegation index of the case | The delegation index of the current task in the case.
|
||||
* @param string(32) | $userUid | ID user | The unique ID of the user who will pause the case.
|
||||
* @param string(32) | $unpauseDate=null | Date | Optional parameter. The date in the format "yyyy-mm-dd" indicating when to unpause the case.
|
||||
* @return array | $response | WS array | A WS Response associative array.
|
||||
*
|
||||
*/
|
||||
function WSPauseCase($caseUid, $delIndex, $userUid, $unpauseDate=null)
|
||||
{
|
||||
$client = WSOpen();
|
||||
|
||||
$sessionId = $_SESSION["WS_SESSION_ID"];
|
||||
|
||||
$params = array(
|
||||
"sessionId" => $sessionId,
|
||||
"caseUid" => $caseUid,
|
||||
"delIndex" => $delIndex,
|
||||
"userUid" => $userUid,
|
||||
"unpauseDate" => $unpauseDate
|
||||
);
|
||||
|
||||
$result = $client->__soapCall("pauseCase", array($params));
|
||||
|
||||
$response = array();
|
||||
$response["status_code"] = $result->status_code;
|
||||
$response["message"] = $result->message;
|
||||
$response["time_stamp"] = $result->timestamp;
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* @method
|
||||
*
|
||||
* Unpause a specified case.
|
||||
*
|
||||
* @name WSUnpauseCase
|
||||
* @label WS Unpause Case
|
||||
* @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#WSUnpauseCase.28.29
|
||||
*
|
||||
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
|
||||
* @param int | $delIndex | Delegation index of the case | The delegation index of the current task in the case.
|
||||
* @param string(32) | $userUid | ID user | The unique ID of the user who will unpause the case.
|
||||
* @return array | $response | WS array | A WS Response associative array.
|
||||
*
|
||||
*/
|
||||
function WSUnpauseCase($caseUid, $delIndex, $userUid)
|
||||
{
|
||||
$client = WSOpen();
|
||||
|
||||
$sessionId = $_SESSION["WS_SESSION_ID"];
|
||||
|
||||
$params = array(
|
||||
"sessionId" => $sessionId,
|
||||
"caseUid" => $caseUid,
|
||||
"delIndex" => $delIndex,
|
||||
"userUid" => $userUid
|
||||
);
|
||||
|
||||
$result = $client->__soapCall("unpauseCase", array($params));
|
||||
|
||||
$response = array();
|
||||
$response["status_code"] = $result->status_code;
|
||||
$response["message"] = $result->message;
|
||||
$response["time_stamp"] = $result->timestamp;
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/** Local Services Functions **/
|
||||
@@ -2345,3 +2387,60 @@ function PMFCancelCase($caseUid, $delIndex, $userUid)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @method
|
||||
*
|
||||
* Pauses a specified case.
|
||||
*
|
||||
* @name PMFPauseCase
|
||||
* @label PMF Pauses a specified case.
|
||||
*
|
||||
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
|
||||
* @param int | $delIndex | Delegation index of the case | The delegation index of the current task in the case.
|
||||
* @param string(32) | $userUid | ID user | The unique ID of the user who will pause the case.
|
||||
* @param string(32) | $unpauseDate=null | Date | Optional parameter. The date in the format "yyyy-mm-dd" indicating when to unpause the case.
|
||||
* @return int | $result | Result of the pause | Returns 1 if the case is paused successfully; otherwise, returns 0 if an error occurred.
|
||||
*
|
||||
*/
|
||||
function PMFPauseCase($caseUid, $delIndex, $userUid, $unpauseDate=null)
|
||||
{
|
||||
G::LoadClass("wsBase");
|
||||
|
||||
$ws = new wsBase();
|
||||
$result = $ws->pauseCase($caseUid, $delIndex, $userUid, $unpauseDate);
|
||||
|
||||
if ($result->status_code == 0) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @method
|
||||
*
|
||||
* Unpause a specified case.
|
||||
*
|
||||
* @name PMFUnpauseCase
|
||||
* @label PMF Unpause a specified case.
|
||||
*
|
||||
* @param string(32) | $caseUid | ID of the case | The unique ID of the case.
|
||||
* @param int | $delIndex | Delegation index of the case | The delegation index of the current task in the case.
|
||||
* @param string(32) | $userUid | ID user | The unique ID of the user who will unpause the case.
|
||||
* @return int | $result | Result of the unpause | Returns 1 if the case is unpause successfully; otherwise, returns 0 if an error occurred.
|
||||
*
|
||||
*/
|
||||
function PMFUnpauseCase($caseUid, $delIndex, $userUid)
|
||||
{
|
||||
G::LoadClass("wsBase");
|
||||
|
||||
$ws = new wsBase();
|
||||
$result = $ws->unpauseCase($caseUid, $delIndex, $userUid);
|
||||
|
||||
if ($result->status_code == 0) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2897,5 +2897,111 @@ class wsBase
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Pause case
|
||||
* @param string caseUid : ID of the case.
|
||||
* @param int delIndex : Delegation index of the case.
|
||||
* @param string userUid : The unique ID of the user who will pause the case.
|
||||
* @param string unpauseDate : Optional parameter. The date in the format "yyyy-mm-dd" indicating when to unpause
|
||||
* the case.
|
||||
* @return $result will return an object
|
||||
*/
|
||||
public function pauseCase($caseUid, $delIndex, $userUid, $unpauseDate=null)
|
||||
{
|
||||
try {
|
||||
if (empty($caseUid)) {
|
||||
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " caseUid");
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
if (empty($delIndex)) {
|
||||
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " delIndex");
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
if (empty($userUid)) {
|
||||
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " userUid");
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
if (!empty($unpauseDate)) {
|
||||
if (!preg_match("/^\d{4}-\d{2}-\d{2}$/", $unpauseDate)) {
|
||||
$result = new wsResponse(100, G::LoadTranslation("ID_INVALID_DATA") . " $unpauseDate");
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
$case = new Cases();
|
||||
$case->pauseCase($caseUid, $delIndex, $userUid, $unpauseDate);
|
||||
|
||||
//Response
|
||||
$res = new wsResponse(0, G::LoadTranslation("ID_COMMAND_EXECUTED_SUCCESSFULLY"));
|
||||
|
||||
$result = array(
|
||||
"status_code" => $res->status_code,
|
||||
"message" => $res->message,
|
||||
"timestamp" => $res->timestamp
|
||||
);
|
||||
|
||||
return $result;
|
||||
} catch (Exception $e) {
|
||||
$result = wsResponse(100, $e->getMessage());
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unpause case
|
||||
* @param string caseUid : ID of the case.
|
||||
* @param int delIndex : Delegation index of the case.
|
||||
* @param string userUid : The unique ID of the user who will unpause the case.
|
||||
* @return $result will return an object
|
||||
*/
|
||||
public function unpauseCase($caseUid, $delIndex, $userUid)
|
||||
{
|
||||
try {
|
||||
if (empty($caseUid)) {
|
||||
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " caseUid");
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
if (empty($delIndex)) {
|
||||
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " delIndex");
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
if (empty($userUid)) {
|
||||
$result = new wsResponse(100, G::LoadTranslation("ID_REQUIRED_FIELD") . " userUid");
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
$case = new Cases();
|
||||
$case->unpauseCase($caseUid, $delIndex, $userUid);
|
||||
|
||||
//Response
|
||||
$res = new wsResponse(0, G::LoadTranslation("ID_COMMAND_EXECUTED_SUCCESSFULLY"));
|
||||
|
||||
$result = array(
|
||||
"status_code" => $res->status_code,
|
||||
"message" => $res->message,
|
||||
"timestamp" => $res->timestamp
|
||||
);
|
||||
|
||||
return $result;
|
||||
} catch (Exception $e) {
|
||||
$result = wsResponse(100, $e->getMessage());
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -761,6 +761,45 @@
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="pauseCaseRequest">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="sessionId" type="xs:string"/>
|
||||
<xs:element name="caseUid" type="xs:string"/>
|
||||
<xs:element name="delIndex" type="xs:string"/>
|
||||
<xs:element name="userUid" type="xs:string"/>
|
||||
<xs:element name="unpauseDate" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="pauseCaseResponse">
|
||||
<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:element name="unpauseCaseRequest">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="sessionId" type="xs:string"/>
|
||||
<xs:element name="caseUid" type="xs:string"/>
|
||||
<xs:element name="delIndex" type="xs:string"/>
|
||||
<xs:element name="userUid" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="unpauseCaseResponse">
|
||||
<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>
|
||||
|
||||
@@ -965,6 +1004,18 @@
|
||||
<message name="cancelCaseResponse">
|
||||
<part name="parameters" element="xs0:cancelCaseResponse"/>
|
||||
</message>
|
||||
<message name="pauseCaseRequest">
|
||||
<part name="parameters" element="xs0:pauseCaseRequest"/>
|
||||
</message>
|
||||
<message name="pauseCaseResponse">
|
||||
<part name="parameters" element="xs0:pauseCaseResponse"/>
|
||||
</message>
|
||||
<message name="unpauseCaseRequest">
|
||||
<part name="parameters" element="xs0:unpauseCaseRequest"/>
|
||||
</message>
|
||||
<message name="unpauseCaseResponse">
|
||||
<part name="parameters" element="xs0:unpauseCaseResponse"/>
|
||||
</message>
|
||||
|
||||
<portType name="ProcessMakerServiceSoap">
|
||||
<operation name="login">
|
||||
@@ -1111,6 +1162,14 @@
|
||||
<input message="xs0:cancelCaseRequest"/>
|
||||
<output message="xs0:cancelCaseResponse"/>
|
||||
</operation>
|
||||
<operation name="pauseCase">
|
||||
<input message="xs0:pauseCaseRequest"/>
|
||||
<output message="xs0:pauseCaseResponse"/>
|
||||
</operation>
|
||||
<operation name="unpauseCase">
|
||||
<input message="xs0:unpauseCaseRequest"/>
|
||||
<output message="xs0:unpauseCaseResponse"/>
|
||||
</operation>
|
||||
</portType>
|
||||
|
||||
<binding name="ProcessMakerServiceSoap" type="xs0:ProcessMakerServiceSoap">
|
||||
@@ -1439,6 +1498,24 @@
|
||||
<soap12:body use="literal"/>
|
||||
</output>
|
||||
</operation>
|
||||
<operation name="pauseCase">
|
||||
<soap12:operation soapAction="urn:pauseCase" soapActionRequired="true" style="document"/>
|
||||
<input>
|
||||
<soap12:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap12:body use="literal"/>
|
||||
</output>
|
||||
</operation>
|
||||
<operation name="unpauseCase">
|
||||
<soap12:operation soapAction="urn:unpauseCase" soapActionRequired="true" style="document"/>
|
||||
<input>
|
||||
<soap12:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap12:body use="literal"/>
|
||||
</output>
|
||||
</operation>
|
||||
</binding>
|
||||
|
||||
<service name="ProcessMakerService">
|
||||
|
||||
@@ -1102,6 +1102,52 @@ function cancelCase($params)
|
||||
return $result;
|
||||
}
|
||||
|
||||
function pauseCase($params)
|
||||
{
|
||||
$result = isValidSession($params->sessionId);
|
||||
|
||||
if ($result->status_code != 0) {
|
||||
return $result;
|
||||
}
|
||||
|
||||
if (ifPermission($params->sessionId, "PM_CASES") == 0) {
|
||||
$result = new wsResponse(2, "You do not have privileges");
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
$ws = new wsBase();
|
||||
|
||||
$result = $ws->pauseCase(
|
||||
$params->caseUid,
|
||||
$params->delIndex,
|
||||
$params->userUid,
|
||||
((isset($params->unpauseDate))? $params->unpauseDate : null)
|
||||
);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
function unpauseCase($params)
|
||||
{
|
||||
$result = isValidSession($params->sessionId);
|
||||
|
||||
if ($result->status_code != 0) {
|
||||
return $result;
|
||||
}
|
||||
|
||||
if (ifPermission($params->sessionId, "PM_CASES") == 0) {
|
||||
$result = new wsResponse(2, "You do not have privileges");
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
$ws = new wsBase();
|
||||
$result = $ws->unpauseCase($params->caseUid, $params->delIndex, $params->userUid);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1144,5 +1190,7 @@ $server->addFunction("removeUserFromGroup");
|
||||
$server->addFunction("getCaseNotes");
|
||||
$server->addFunction("deleteCase");
|
||||
$server->addFunction("cancelCase");
|
||||
$server->addFunction("pauseCase");
|
||||
$server->addFunction("unpauseCase");
|
||||
$server->handle();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user