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;
|
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
|
* @method
|
||||||
*
|
*
|
||||||
@@ -1232,6 +1196,84 @@ function WSCancelCase($caseUid, $delIndex, $userUid)
|
|||||||
return $response;
|
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 **/
|
/** 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;
|
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:sequence>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</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>
|
</xs:schema>
|
||||||
</types>
|
</types>
|
||||||
|
|
||||||
@@ -965,6 +1004,18 @@
|
|||||||
<message name="cancelCaseResponse">
|
<message name="cancelCaseResponse">
|
||||||
<part name="parameters" element="xs0:cancelCaseResponse"/>
|
<part name="parameters" element="xs0:cancelCaseResponse"/>
|
||||||
</message>
|
</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">
|
<portType name="ProcessMakerServiceSoap">
|
||||||
<operation name="login">
|
<operation name="login">
|
||||||
@@ -1111,6 +1162,14 @@
|
|||||||
<input message="xs0:cancelCaseRequest"/>
|
<input message="xs0:cancelCaseRequest"/>
|
||||||
<output message="xs0:cancelCaseResponse"/>
|
<output message="xs0:cancelCaseResponse"/>
|
||||||
</operation>
|
</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>
|
</portType>
|
||||||
|
|
||||||
<binding name="ProcessMakerServiceSoap" type="xs0:ProcessMakerServiceSoap">
|
<binding name="ProcessMakerServiceSoap" type="xs0:ProcessMakerServiceSoap">
|
||||||
@@ -1439,6 +1498,24 @@
|
|||||||
<soap12:body use="literal"/>
|
<soap12:body use="literal"/>
|
||||||
</output>
|
</output>
|
||||||
</operation>
|
</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>
|
</binding>
|
||||||
|
|
||||||
<service name="ProcessMakerService">
|
<service name="ProcessMakerService">
|
||||||
|
|||||||
@@ -1102,6 +1102,52 @@ function cancelCase($params)
|
|||||||
return $result;
|
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("getCaseNotes");
|
||||||
$server->addFunction("deleteCase");
|
$server->addFunction("deleteCase");
|
||||||
$server->addFunction("cancelCase");
|
$server->addFunction("cancelCase");
|
||||||
|
$server->addFunction("pauseCase");
|
||||||
|
$server->addFunction("unpauseCase");
|
||||||
$server->handle();
|
$server->handle();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user