. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ use ProcessMaker\Core\System; ini_set( "soap.wsdl_cache_enabled", "0" ); // enabling WSDL cache $filter = new InputFilter(); $_GET = $filter->xssFilterHard($_GET); //$_SESSION = $filter->xssFilterHard($_SESSION); if ($RBAC->userCanAccess( 'PM_SETUP' ) != 1 && $RBAC->userCanAccess( 'PM_FACTORY' ) != 1) { G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' ); //G::header('location: ../login/login'); die(); } //G::pr($_SESSION); $_POST['action'] = get_ajax_value( 'action' ); if ($_POST['action'] == '') { $_POST['action'] = (isset( $_GET['action'] )) ? $_GET['action'] : ''; } $_POST = $filter->xssFilterHard($_POST); switch ($_POST['action']) { case 'showForm': global $G_PUBLISH; $xmlform = isset( $_POST['wsID'] ) ? 'setup/ws' . $_POST['wsID'] : ''; if (file_exists( PATH_XMLFORM . $xmlform . '.xml' )) { global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $G_PUBLISH = new Publisher(); $fields['SESSION_ID'] = isset( $_SESSION['WS_SESSION_ID'] ) ? $_SESSION['WS_SESSION_ID'] : ''; $fields['ACTION'] = $_POST['wsID']; $G_PUBLISH->AddContent( 'xmlform', 'xmlform', $xmlform, '', $fields, '../setup/webServicesAjax' ); G::RenderPage( 'publish', 'raw' ); } break; case 'showDetails': $dbc = new DBConnection(); $ses = new DBSession( $dbc ); if (! isset( $_SESSION['END_POINT'] )) { $aFields['WS_HOST'] = $_SERVER['HTTP_HOST']; $aFields['WS_WORKSPACE'] = SYS_SYS; } else { if (strpos( $_SESSION['END_POINT'], 'https' ) !== false) { preg_match( '@^(?:https://)?([^/]+)@i', $_SESSION['END_POINT'], $coincidencias ); } else { preg_match( '@^(?:http://)?([^/]+)@i', $_SESSION['END_POINT'], $coincidencias ); } $aAux = explode( ':', $coincidencias[1] ); $aFields['WS_HOST'] = $aAux[0]; $aFields['WS_PORT'] = (isset( $aAux[1] ) ? $aAux[1] : ''); $aAux = explode( $aAux[0] . (isset( $aAux[1] ) ? ':' . $aAux[1] : ''), $_SESSION['END_POINT'] ); $aAux = explode( '/', $aAux[1] ); $aFields['WS_WORKSPACE'] = substr( $aAux[1], 3 ); } $rows[] = array ('uid' => 'char','name' => 'char','age' => 'integer','balance' => 'float' ); $rows[] = array ('uid' => 'http','name' => 'http' ); $rows[] = array ('uid' => 'https','name' => 'https' ); global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['protocol'] = $rows; $_SESSION['_DBArray'] = $_DBArray; if (! isset( $_SESSION['END_POINT'] )) { //$wsdl = 'http://'.$_SERVER['HTTP_HOST'].'/sys'.SYS_SYS. '/'. SYS_LANG .'/classic/services/wsdl'; $wsdl = 'http://' . $_SERVER['HTTP_HOST']; $workspace = SYS_SYS; } else { $wsdl = $_SESSION['END_POINT']; $workspace = $_SESSION['WS_WORKSPACE']; } $defaultEndpoint = 'http://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/classic/services/wsdl2'; $wsdl = isset( $_SESSION['END_POINT'] ) ? $_SESSION['END_POINT'] : $defaultEndpoint; $wsSessionId = ''; if (isset( $_SESSION['WS_SESSION_ID'] )) { $wsSessionId = $_SESSION['WS_SESSION_ID']; } $aFields['WSDL'] = $wsdl; $aFields['OS'] = $workspace; $aFields['WSID'] = $wsSessionId; $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/webServicesDetails', '', $aFields, 'webServicesSetupSave' ); G::RenderPage( "publish", "raw" ); break; case 'showUploadFilesForm': global $G_PUBLISH; $xmlform = 'setup/wsSendFiles'; if (file_exists( PATH_XMLFORM . $xmlform . '.xml' )) { global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $G_PUBLISH = new Publisher(); $fields['SESSION_ID'] = isset( $_SESSION['WS_SESSION_ID'] ) ? $_SESSION['WS_SESSION_ID'] : ''; $fields['ACTION'] = 'wsSendFiles'; $G_PUBLISH->AddContent( 'xmlform', 'xmlform', $xmlform, '', $fields, '../setup/webServicesAjax' ); G::RenderPage( 'publish', 'blank' ); } break; } try { global $G_PUBLISH; if (isset( $_POST['form']['ACTION'] )) { $frm = $_POST['form']; $action = $frm['ACTION']; if (isset( $_POST["epr"] )) { $_SESSION['END_POINT'] = $_POST["epr"]; } $defaultEndpoint = 'http://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/classic/services/wsdl2'; $endpoint = isset( $_SESSION['END_POINT'] ) ? $_SESSION['END_POINT'] : $defaultEndpoint; $sessionId = isset( $_SESSION['SESSION_ID'] ) ? $_SESSION['SESSION_ID'] : ''; //Apply proxy settings $proxy = array (); $sysConf = System::getSystemConfiguration(); if ($sysConf['proxy_host'] != '') { $proxy['proxy_host'] = $sysConf['proxy_host']; if ($sysConf['proxy_port'] != '') { $proxy['proxy_port'] = $sysConf['proxy_port']; } if ($sysConf['proxy_user'] != '') { $proxy['proxy_login'] = $sysConf['proxy_user']; } if ($sysConf['proxy_pass'] != '') { $proxy['proxy_password'] = $sysConf['proxy_pass']; } } @$client = new SoapClient( $endpoint, $proxy ); switch ($action) { case "Login": $user = $frm["USER_ID"]; $pass = $frm["PASSWORD"]; $params = array ('userid' => $user,'password' => $pass ); $result = $client->__SoapCall( 'login', array ($params ) ); $_SESSION['WS_SESSION_ID'] = ''; if ($result->status_code == 0) { $_SESSION['WS_SESSION_ID'] = $result->message; } $G_PUBLISH = new Publisher(); $fields['status_code'] = $result->status_code; $fields['message'] = 'ProcessMaker WebService version: ' . $result->version . "\n" . $result->message; $fields['version'] = $result->version; $fields['time_stamp'] = $result->timestamp; $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'raw' ); break; case "ProcessList": $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId ); $wsResponse = $client->__SoapCall( 'ProcessList', array ($params ) ); $result = G::PMWSCompositeResponse( $wsResponse, 'processes' ); $G_PUBLISH = new Publisher(); $rows[] = array ('guid' => 'char','name' => 'char' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } } } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->name )) { $name = $item->name; } } $rows[] = array ('guid' => $guid,'name' => $name ); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['process'] = $rows; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'process' ); $c->addAscendingOrderByColumn( 'name' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrProcessList', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; case "RoleList": $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId ); $wsResponse = $client->__SoapCall( 'RoleList', array ($params ) ); $result = G::PMWSCompositeResponse( $wsResponse, 'roles' ); $G_PUBLISH = new Publisher(); $rows[] = array ('guid' => 'char','name' => 'char' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } } } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->name )) { $name = $item->name; } } $rows[] = array ('guid' => $guid,'name' => $name ); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['role'] = $rows; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'role' ); $c->addAscendingOrderByColumn( 'name' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrRoleList', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; case "GroupList": $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId ); $wsResponse = $client->__SoapCall( 'GroupList', array ($params ) ); $result = G::PMWSCompositeResponse( $wsResponse, 'groups' ); $G_PUBLISH = new Publisher(); $rows[] = array ('guid' => 'char','name' => 'char' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } } } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->name )) { $name = $item->name; } } $rows[] = array ('guid' => $guid,'name' => $name ); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['group'] = $rows; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'group' ); $c->addAscendingOrderByColumn( 'name' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrGroupList', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; case "CaseList": $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId ); $wsResponse = $client->__SoapCall( 'CaseList', array ($params ) ); $G_PUBLISH = new Publisher(); $rows[] = array ('guid' => 'char','name' => 'char','status' => 'char','delIndex' => 'char' ); $result = G::PMWSCompositeResponse( $wsResponse, 'cases' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } if ($val->key == 'status') { $status = $val->value; } if ($val->key == 'delIndex') { $delIndex = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } if ($val->key == 'status') { $status = $val->value; } if ($val->key == 'delIndex') { $delIndex = $val->value; } } } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->name )) { $name = $item->name; } if (isset( $item->status )) { $status = $item->status; } if (isset( $item->delIndex )) { $delIndex = $item->delIndex; } } $rows[] = array ('guid' => $guid,'name' => $name,'status' => $status,'delIndex' => $delIndex ); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['case'] = $rows; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'case' ); //$c->addAscendingOrderByColumn ( 'name' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrCaseList', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; case "UnassignedCaseList": $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId ); $wsResponse = $client->__SoapCall( 'UnassignedCaseList', array ($params ) ); $G_PUBLISH = new Publisher(); $rows[] = array ('guid' => 'char','name' => 'char','delIndex' => 'char' ); $result = G::PMWSCompositeResponse( $wsResponse, 'cases' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } if ($val->key == 'delIndex') { $delIndex = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } if ($val->key == 'delIndex') { $delIndex = $val->value; } } } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->name )) { $name = $item->name; } if (isset( $item->delIndex )) { $delIndex = $item->delIndex; } } $rows[] = array ('guid' => $guid,'name' => $name,'delIndex' => $delIndex ); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['case'] = $rows; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'case' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrUnassignedCaseList', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; case "UserList": $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId ); $wsResponse = $client->__SoapCall( 'UserList', array ($params ) ); $result = G::PMWSCompositeResponse( $wsResponse, 'users' ); $G_PUBLISH = new Publisher(); $rows[] = array ('guid' => 'char','name' => 'char' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } } } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->name )) { $name = $item->name; } } $rows[] = array ('guid' => $guid,'name' => $name ); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['user'] = $rows; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'user' ); $c->addAscendingOrderByColumn( 'name' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrUserList', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; case "SendMessage": require_once ('classes/model/Application.php'); $sessionId = $frm["SESSION_ID"]; $from = $frm["FROM"]; $to = $frm["TO_EMAIL"]; $cc = isset( $frm["CC_MAIL"] ) ? $frm["CC_MAIL"] : ''; $bcc = isset( $frm["BCC_MAIL"] ) ? $frm["BCC_MAIL"] : ''; $caseId = $frm["CASE_ID"]; $subject = $frm["SUBJECT"]; $message = $frm["MESSAGE"]; // getting the proUid variable $oCases = new Application(); $oCases->load( $caseId ); $proUid = $oCases->getProUid(); $caseNumber = $oCases->getAppNumber(); // generating the path for the template msj $templateFile = PATH_DB . SYS_SYS . PATH_SEP . 'mailTemplates' . PATH_SEP . $proUid . PATH_SEP . 'tempTemplate.hml'; // generating the file adding the msj variable $messageBody = "message for case: " . $caseNumber . "
" . $message; file_put_contents( $templateFile, $messageBody ); $params = array ('sessionId' => $sessionId,'caseId' => $caseId,'from' => $from,'to' => $to,'cc' => $cc,'bcc' => $bcc,'subject' => $subject,'template' => 'tempTemplate.hml' ); $result = $client->__SoapCall( 'sendMessage', array ($params ) ); $G_PUBLISH = new Publisher(); $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = $result->timestamp; if ($result->status_code == 9) { $_SESSION['WS_SESSION_ID'] = ''; } $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'raw' ); break; case "SendVariables": $sessionId = $frm["SESSION_ID"]; $caseId = $frm["CASE_ID"]; $variables = Array (); $o = new stdClass(); $o->name = $frm["NAME1"]; $o->value = $frm["VALUE1"]; array_push( $variables, $o ); $o = new stdClass(); $o->name = $frm["NAME2"]; $o->value = $frm["VALUE2"]; array_push( $variables, $o ); $params = array ('sessionId' => $sessionId,'caseId' => $caseId,'variables' => $variables ); $result = $client->__SoapCall( 'SendVariables', array ($params ) ); $G_PUBLISH = new Publisher(); $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = $result->timestamp; if ($result->status_code == 9) { $_SESSION['WS_SESSION_ID'] = ''; } $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'raw' ); break; case "DerivateCase": $sessionId = $frm["SESSION_ID"]; $caseId = $frm["CASE_ID"]; $delIndex = $frm["DEL_INDEX"]; $params = array ('sessionId' => $sessionId,'caseId' => $caseId,'delIndex' => $delIndex ); $result = $client->__SoapCall( 'RouteCase', array ($params ) ); $G_PUBLISH = new Publisher(); $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = $result->timestamp; if ($result->status_code == 9) { $_SESSION['WS_SESSION_ID'] = ''; } $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'raw' ); break; case "ReassignCase": $sessionId = $frm["SESSION_ID"]; $caseId = $frm["CASE_ID"]; $delIndex = $frm["DEL_INDEX"]; $userIdSource = $frm['USERIDSOURCE']; $userIdTarget = $frm['USERIDTARGET']; $params = array ('sessionId' => $sessionId,'caseId' => $caseId,'delIndex' => $delIndex,'userIdSource' => $userIdSource,'userIdTarget' => $userIdTarget ); $result = $client->__SoapCall( 'reassignCase', array ($params ) ); $G_PUBLISH = new Publisher(); $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = $result->timestamp; if ($result->status_code == 9) { $_SESSION['WS_SESSION_ID'] = ''; } $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'raw' ); break; case "NewCaseImpersonate": $sessionId = $frm["SESSION_ID"]; $processId = $frm["PROCESS_ID"]; $userId = $frm["USER_ID"]; $variables = Array (); foreach ($frm['VARIABLES'] as $iRow => $aRow) { $o = new stdClass(); $o->name = $aRow['NAME']; $o->value = $aRow['VALUE']; array_push( $variables, $o ); } $params = array ('sessionId' => $sessionId,'processId' => $processId,'userId' => $userId,'variables' => $variables ); $result = $client->__SoapCall( 'NewCaseImpersonate', array ($params ) ); $G_PUBLISH = new Publisher(); $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = $result->timestamp; if ($result->status_code == 9) { $_SESSION['WS_SESSION_ID'] = ''; } $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'raw' ); break; case "NewCase": $sessionId = $frm["SESSION_ID"]; $processId = $frm["PROCESS_ID"]; $taskId = $frm["TASK_ID"]; $variables = Array (); foreach ($frm['VARIABLES'] as $iRow => $aRow) { $o = new stdClass(); $o->name = $aRow['NAME']; $o->value = $aRow['VALUE']; array_push( $variables, $o ); } $params = array ('sessionId' => $sessionId,'processId' => $processId,'taskId' => $taskId,'variables' => $variables ); $result = $client->__SoapCall( 'NewCase', array ($params ) ); $G_PUBLISH = new Publisher(); $fields['status_code'] = $result->status_code; $fields['time_stamp'] = $result->timestamp; if (isset( $result->caseId )) { $fields['message'] = "Case ID: " . $result->caseId . "\nCase Number: " . $result->caseNumber . "\n" . $result->message; } else { $fields['message'] = ''; } if ($result->status_code == 9) { $_SESSION['WS_SESSION_ID'] = ''; } $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'raw' ); break; case "AssignUserToGroup": $sessionId = $frm["SESSION_ID"]; $userId = $frm["USER_ID"]; $groupId = $frm["GROUP_ID"]; $params = array ('sessionId' => $sessionId,'userId' => $userId,'groupId' => $groupId ); $result = $client->__SoapCall( 'AssignUserToGroup', array ($params ) ); $G_PUBLISH = new Publisher(); $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = $result->timestamp; if ($result->status_code == 9) { $_SESSION['WS_SESSION_ID'] = ''; } $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'raw' ); break; case "CreateUser": $sessionId = $frm["SESSION_ID"]; $userId = $frm["USER_ID"]; $firstname = $frm["FIRST_NAME"]; $lastname = $frm["LAST_NAME"]; $email = $frm["EMAIL"]; $role = $frm["ROLE"]; $password = $frm["PASSWORD"]; $params = array ('sessionId' => $sessionId,'userId' => $userId,'firstname' => $firstname,'lastname' => $lastname,'email' => $email,'role' => $role,'password' => $password ); $result = $client->__SoapCall( 'CreateUser', array ($params ) ); $G_PUBLISH = new Publisher(); $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = $result->timestamp; if ($result->status_code == 9) { $_SESSION['WS_SESSION_ID'] = ''; } $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'raw' ); break; case "TaskList": $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId ); $wsResponse = $client->__SoapCall( 'TaskList', array ($params ) ); $result = G::PMWSCompositeResponse( $wsResponse, 'tasks' ); $G_PUBLISH = new Publisher(); $rows[] = array ('guid' => 'char','name' => 'char' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } } } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->name )) { $name = $item->name; } } $rows[] = array ('guid' => $guid,'name' => $name ); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['task'] = $rows; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'task' ); $c->addAscendingOrderByColumn( 'name' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrTaskList', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; case "TriggerList": $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId ); $wsResponse = $client->__SoapCall( 'triggerList', array ($params ) ); $result = G::PMWSCompositeResponse( $wsResponse, 'triggers' ); $G_PUBLISH = new Publisher(); $rows[] = array ('guid' => 'char','name' => 'char','processId' => 'char' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } if ($val->key == 'processId') { $processId = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } if ($val->key == 'processId') { $processId = $val->value; } } } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->name )) { $name = $item->name; } if (isset( $item->processId )) { $processId = $item->processId; } } $rows[] = array ('guid' => $guid,'name' => $name,'processId' => $processId ); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); foreach ($rows as $key => $row) { $proId = $row['processId']; if (isset( $_DBArray['process'] ) && is_array( $_DBArray['process'] )) { foreach ($_DBArray['process'] as $pkey => $prow) { if ($proId == $prow['guid']) { $rows[$key]['processId'] = $prow['name']; } } } } $_DBArray['triggers'] = $rows; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'triggers' ); $c->addAscendingOrderByColumn( 'name' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrTriggerList', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; case "InputDocumentList": $caseId = $frm["CASE_ID"]; $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId,'caseId' => $caseId ); $wsResponse = $client->__SoapCall( 'InputDocumentList', array ($params ) ); //g::pr($wsResponse); $result = G::PMWSCompositeResponse( $wsResponse, 'documents' ); $G_PUBLISH = new Publisher(); $rows[] = array ('guid' => 'char','name' => 'char','processId' => 'char' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'filename') { $filename = $val->value; } if ($val->key == 'docId') { $docId = $val->value; } if ($val->key == 'version') { $version = $val->value; } if ($val->key == 'createDate') { $createDate = $val->value; } if ($val->key == 'createBy') { $createBy = $val->value; } if ($val->key == 'type') { $type = $val->value; } if ($val->key == 'link') { $link = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'filename') { $filename = $val->value; } if ($val->key == 'docId') { $docId = $val->value; } if ($val->key == 'version') { $version = $val->value; } if ($val->key == 'createDate') { $createDate = $val->value; } if ($val->key == 'createBy') { $createBy = $val->value; } if ($val->key == 'type') { $type = $val->value; } if ($val->key == 'link') { $link = $val->value; } } } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->filename )) { $filename = $item->filename; } if (isset( $item->docId )) { $docId = $item->docId; } if (isset( $item->version )) { $version = $item->version; } if (isset( $item->createDate )) { $createDate = $item->createDate; } if (isset( $item->createBy )) { $createBy = $item->createBy; } if (isset( $item->type )) { $type = $item->type; } if (isset( $item->link )) { $link = $item->link; } } $rows[] = array ('guid' => $guid,'filename' => $filename,'docId' => $docId,'version' => $version,'createDate' => $createDate,'createBy' => $createBy,'type' => $type,'link' => $link ); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['inputDocument'] = $rows; $documentArray = array (); $documentArray[] = array ('guid' => 'char','filename' => 'char' ); if (isset( $_DBArray['inputDocument'] )) { foreach ($_DBArray['inputDocument'] as $key => $val) { if ($key != 0 && isset( $val['filename'] )) { $documentArray[] = array ('guid' => $val['guid'],'filename' => $val['filename'] ); } } } if (isset( $_DBArray['outputDocument'] )) { foreach ($_DBArray['outputDocument'] as $key => $val) { if ($key != 0 && isset( $val['filename'] )) { $documentArray[] = array ('guid' => $val['guid'],'filename' => $val['filename'] ); } } } $_DBArray['documents'] = $documentArray; $_DBArray['WS_TMP_CASE_UID'] = $frm["CASE_ID"]; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'inputDocument' ); $c->addAscendingOrderByColumn( 'name' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrInputDocumentList', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; case "InputDocumentProcessList": $processId = $frm["PROCESS_ID"]; $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId,'processId' => $processId ); $wsResponse = $client->__SoapCall( 'InputDocumentProcessList', array ($params ) ); $result = G::PMWSCompositeResponse( $wsResponse, 'documents' ); $G_PUBLISH = new Publisher(); $rows[] = array ('guid' => 'char','name' => 'char','description' => 'char' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } if ($val->key == 'description') { $description = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } if ($val->key == 'description') { $description = $val->value; } } } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->name )) { $name = $item->name; } if (isset( $item->description )) { $description = $item->description; } } $rows[] = array ('guid' => $guid,'name' => $name,'description' => $description ); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['inputDocuments'] = $rows; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'inputDocuments' ); $c->addAscendingOrderByColumn( 'name' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrInputDocumentProcessList', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; case "OutputDocumentList": $caseId = $frm["CASE_ID"]; $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId,'caseId' => $caseId ); $wsResponse = $client->__SoapCall( 'outputDocumentList', array ($params ) ); $result = G::PMWSCompositeResponse( $wsResponse, 'documents' ); $G_PUBLISH = new Publisher(); $rows = array (); $rows[] = array ('guid' => 'char','name' => 'char' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'filename') { $filename = $val->value; } if ($val->key == 'docId') { $docId = $val->value; } if ($val->key == 'version') { $version = $val->value; } if ($val->key == 'createDate') { $createDate = $val->value; } if ($val->key == 'createBy') { $createBy = $val->value; } if ($val->key == 'type') { $type = $val->value; } if ($val->key == 'link') { $link = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'filename') { $filename = $val->value; } if ($val->key == 'docId') { $docId = $val->value; } if ($val->key == 'version') { $version = $val->value; } if ($val->key == 'createDate') { $createDate = $val->value; } if ($val->key == 'createBy') { $createBy = $val->value; } if ($val->key == 'type') { $type = $val->value; } if ($val->key == 'link') { $link = $val->value; } } } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->filename )) { $filename = $item->filename; } if (isset( $item->docId )) { $docId = $item->docId; } if (isset( $item->version )) { $version = $item->version; } if (isset( $item->createDate )) { $createDate = $item->createDate; } if (isset( $item->createBy )) { $createBy = $item->createBy; } if (isset( $item->type )) { $type = $item->type; } if (isset( $item->link )) { $link = $item->link; } } $rows[] = array ('guid' => $guid,'filename' => $filename,'docId' => $docId,'version' => $version,'createDate' => $createDate,'createBy' => $createBy,'type' => $type,'link' => $link ); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['outputDocument'] = $rows; $documentArray = array (); $documentArray[] = array ('guid' => 'char','filename' => 'char' ); if (isset( $_DBArray['inputDocument'] )) { foreach ($_DBArray['inputDocument'] as $key => $val) { if ($key != 0 && isset( $val['filename'] )) { $documentArray[] = array ('guid' => $val['guid'],'filename' => $val['filename'] ); } } } if (isset( $_DBArray['outputDocument'] )) { foreach ($_DBArray['outputDocument'] as $key => $val) { if ($key != 0 && isset( $val['filename'] )) { $documentArray[] = array ('guid' => $val['guid'],'filename' => $val['filename'] ); } } } $_DBArray['documents'] = $documentArray; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'outputDocument' ); $c->addAscendingOrderByColumn( 'name' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrOutputDocumentList', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; //add removeUserFromGroup case "removeUserFromGroup": $sessionId = $frm["SESSION_ID"]; $userId = $frm["USER_ID"]; $groupId = $frm["GROUP_ID"]; $params = array ('sessionId' => $sessionId,'userId' => $userId,'groupId' => $groupId ); $result = $client->__SoapCall( 'removeUserFromGroup', array ($params ) ); $G_PUBLISH = new Publisher(); $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = $result->timestamp; if ($result->status_code == 9) { $_SESSION['WS_SESSION_ID'] = ''; } $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'raw' ); break; //end add case "RemoveDocument": $appDocUid = $frm["APP_DOC_UID"]; $sessionId = $frm["SESSION_ID"]; $params = array ('sessionId' => $sessionId,'appDocUid' => $appDocUid ); $result = $client->__SoapCall( 'RemoveDocument', array ($params ) ); $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = $result->timestamp; if ($result->status_code == 9) { $_SESSION['WS_SESSION_ID'] = ''; } $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'raw' ); break; case "TaskCase": $sessionId = $frm["SESSION_ID"]; $caseId = $frm["CASE_ID"]; $params = array ('sessionId' => $sessionId,'caseId' => $caseId); $wsResponse = $client->__SoapCall( 'TaskCase', array ($params) ); $result = G::PMWSCompositeResponse( $wsResponse, 'taskCases' ); $G_PUBLISH = new Publisher(); $rows[] = array ('guid' => 'char','name' => 'char', 'delegate' => 'char' ); if (is_array( $result )) { foreach ($result as $key => $item) { if (isset( $item->item )) { foreach ($item->item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } if ($val->key == 'name') { $name = $val->value; } if ($val->key == 'delegate') { $delegate = $val->value; } } } elseif (is_array( $item )) { foreach ($item as $index => $val) { if ($val->key == 'guid') { $guid = $val->value; } } } if (isset($val->key) && ($val->key == 'name')) { $name = $val->value; } else { if (isset( $item->guid )) { $guid = $item->guid; } if (isset( $item->name )) { $name = $item->name; } if (isset( $item->delegate )) { $delegate = $item->delegate; } } $rows[] = array ('guid' => $guid, 'name' => $name, 'delegate' => $delegate); } global $_DBArray; $_DBArray = (isset( $_SESSION['_DBArray'] ) ? $_SESSION['_DBArray'] : ''); $_DBArray['taskCases'] = $rows; $_SESSION['_DBArray'] = $_DBArray; $c = new Criteria( 'dbarray' ); $c->setDBArrayTable( 'taskCases' ); $c->addAscendingOrderByColumn( 'name' ); $G_PUBLISH->AddContent( 'propeltable', 'paged-table', 'setup/wsrTaskCase', $c ); } elseif (is_object( $result )) { $_SESSION['WS_SESSION_ID'] = ''; $fields['status_code'] = $result->status_code; $fields['message'] = $result->message; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); } G::RenderPage( 'publish', 'raw' ); break; case "wsSendFiles": if (isset( $_FILES['form'] )) { foreach ($_FILES['form']['name'] as $sFieldName => $vValue) { if ($_FILES['form']['error'][$sFieldName] == 0) { file_put_contents( G::sys_get_temp_dir() . PATH_SEP . $_FILES['form']['name'][$sFieldName], file_get_contents( $_FILES['form']['tmp_name'][$sFieldName] ) ); $filename = G::sys_get_temp_dir() . PATH_SEP . $_FILES['form']['name'][$sFieldName]; } } } // G::pr ( $_SESSION ); if (! isset( $_POST['form']['INPUT_DOCUMENT'] )) { $_POST['form']['INPUT_DOCUMENT'] = ''; } if (isset( $_SESSION['_DBArray']['inputDocument'] )) { foreach ($_SESSION['_DBArray']['inputDocument'] as $inputDocument) { if ($inputDocument['guid'] == $_POST['form']['INPUT_DOCUMENT']) { $doc_uid = $inputDocument['docId']; } } } else { $doc_uid = "default"; } if (! isset( $_SESSION['_DBArray']['WS_TMP_CASE_UID'] )) { $_SESSION['_DBArray']['WS_TMP_CASE_UID'] = ''; } $usr_uid = $_SESSION['USER_LOGGED']; $app_uid = $_SESSION['_DBArray']['WS_TMP_CASE_UID']; $del_index = 1; function sendFile ($FILENAME, $USR_UID, $APP_UID, $DEL_INDEX = 1, $DOC_UID = null, $title = null, $comment = null) { $defaultEndpoint = 'http://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/classic/services/upload'; $upload = isset( $_SESSION['END_POINT'] ) ? $_SESSION['END_POINT'] : $defaultEndpoint; $DOC_UID = ($DOC_UID != null) ? $DOC_UID : - 1; $APP_DOC_TYPE = ($DOC_UID == - 1) ? 'ATTACHED' : 'INPUT'; $title = ($title != null) ? $title : $FILENAME; $comment = ($comment != null) ? $comment : ''; $params = array ('ATTACH_FILE' => "@$FILENAME",'APPLICATION' => $APP_UID,'INDEX' => $DEL_INDEX,'USR_UID' => $USR_UID,'DOC_UID' => $DOC_UID,'APP_DOC_TYPE' => $APP_DOC_TYPE,'TITLE' => $title,'COMMENT' => $comment ); $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $defaultEndpoint ); //curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt( $ch, CURLOPT_POST, 1 ); curl_setopt( $ch, CURLOPT_POSTFIELDS, $params ); $response = curl_exec( $ch ); curl_close( $ch ); return $response; } $fields['status_code'] = 0; $fields['time_stamp'] = date( "Y-m-d H:i:s" ); if ($_POST['form']['UPLOAD_OPTION'] == '1') { // G::pr($doc_uid); $fields['message'] = sendFile( $filename, $usr_uid, $app_uid, 1, $doc_uid ); } else { $fields['message'] = sendFile( $filename, $usr_uid, $app_uid ); } $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields ); G::RenderPage( 'publish', 'blank' ); die(); break; default: $post = $filter->xssFilterHard($_POST); print_r( $post ); } } global $_DBArray; } catch (Exception $e) { $G_PUBLISH = new Publisher(); $aMessage['MESSAGE'] = $e->getMessage(); $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'login/showMessage', '', $aMessage ); G::RenderPage( 'publish', 'raw' ); }