function NewCase($params) { G::LoadClass("sessions"); $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; } $oSession = new Sessions(); $session = $oSession->getSessionUser($params->sessionId); $userId = $session["USR_UID"]; $variables = $params->variables; /* this code is for previous version of ws, and apparently this will work for grids inside the variables.. if (!isset($params->variables) ) { $variables = array(); $field = array(); } else { if ( is_object ($variables) ) { $field[ $variables->name ]= $variables->value ; } if ( is_array ( $variables) ) { foreach ( $variables as $key=>$val ) { $name = $val->name; $value = $val->value; if (!is_object($val->value)) { eval('$field[ ' . $val->name . ' ]= $val->value ;'); } else { if (is_array($val->value->item)) { $i = 1; foreach ($val->value->item as $key1 => $val1) { if (isset($val1->value)) { if (is_array($val1->value->item)) { foreach ($val1->value->item as $key2 => $val2) { $field[$val->name][$i][$val2->key] = $val2->value; } } } $i++; } } } } } } */ $variables = $params->variables; $field = array(); if (is_object($variables)) { $field[$variables->name] = $variables->value; } if (is_array($variables)) { foreach ($variables as $key => $val) { if (!is_object($val->value)) { eval("\$field[" . $val->name . "]= \$val->value;"); } } } $params->variables = $field; $ws = new wsBase(); $res = $ws->newCase($params->processId, $userId, $params->taskId, $params->variables, isset($params->executeTriggers) ? (int) $params->executeTriggers : 0); // we need to register the case id for a stored session variable. like a normal Session. $oSession->registerGlobal("APPLICATION", $res->caseId); return $res; }