BUG 6210 Request for web service to retrieve all the case variables SOLVED
- The getVariables() web service is not very useful, if you don't know which case variables have been defined. - Added a new function for web services getAllVariables.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -308,6 +308,11 @@
|
||||
<xs:element name="value" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="variableListNameStruct">
|
||||
<xs:sequence>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="variableListRequest">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
@@ -325,6 +330,16 @@
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="getAllVariablesResponse">
|
||||
<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:element name="variables" minOccurs="0" maxOccurs="unbounded" type="xs0:variableListNameStruct"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="getVariablesRequest">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
@@ -334,6 +349,14 @@
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="getAllVariablesRequest">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="sessionId" type="xs:string"/>
|
||||
<xs:element name="caseId" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="newCaseRequest">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
@@ -920,6 +943,12 @@
|
||||
<message name="getVariablesResponse">
|
||||
<part name="parameters" element="xs0:getVariablesResponse"/>
|
||||
</message>
|
||||
<message name="getAllVariablesRequest">
|
||||
<part name="parameters" element="xs0:getAllVariablesRequest"/>
|
||||
</message>
|
||||
<message name="getAllVariablesResponse">
|
||||
<part name="parameters" element="xs0:getAllVariablesResponse"/>
|
||||
</message>
|
||||
<message name="sendMessageRequest">
|
||||
<part name="parameters" element="xs0:sendMessageRequest"/>
|
||||
</message>
|
||||
@@ -1102,6 +1131,10 @@
|
||||
<input message="xs0:getVariablesRequest"/>
|
||||
<output message="xs0:getVariablesResponse"/>
|
||||
</operation>
|
||||
<operation name="getAllVariables">
|
||||
<input message="xs0:getAllVariablesRequest"/>
|
||||
<output message="xs0:getAllVariablesResponse"/>
|
||||
</operation>
|
||||
<operation name="sendMessage">
|
||||
<input message="xs0:sendMessageRequest"/>
|
||||
<output message="xs0:pmResponse"/>
|
||||
@@ -1363,6 +1396,15 @@
|
||||
<soap12:body use="literal"/>
|
||||
</output>
|
||||
</operation>
|
||||
<operation name="getAllVariables">
|
||||
<soap12:operation soapAction="urn:getAllVariables" soapActionRequired="true" style="document"/>
|
||||
<input>
|
||||
<soap12:body use="literal"/>
|
||||
</input>
|
||||
<output>
|
||||
<soap12:body use="literal"/>
|
||||
</output>
|
||||
</operation>
|
||||
<operation name="sendMessage">
|
||||
<soap12:operation soapAction="urn:sendMessage" soapActionRequired="true" style="document"/>
|
||||
<input>
|
||||
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user