/** * @method * * Executes a Talend Web Service.. * * @name executeTalendWebservice * @label Executes a Talend Web Service. * * @param string | $wsdl | Talend Web Service (including ?WSDL) * @param array(array(n1 v1) array(n2 v2) array(nN vN)) | $params | Array of params. Pairs of param Name Value * @param string | $message | Message to be displayed * @return array | $return | Talend Array * */ function executeTalendWebservice($wsdl, $params = array(), $message) { $client = new SoapClient($wsdl, array('trace' => 1)); $params[0] = ""; foreach ($params as $paramO) { $params[] = "--context_param" . $paramO[0] . "=" . $paramO[1]; } $result = $client->__SoapCall('runJob', array($params)); /* $params[1]="--context_param nb_line=".@=Quantity; $result = $client->__SoapCall('runJob', array($params)); foreach ($result->item as $keyItem => $item){ $gridRow=$keyItem+1; @=USERSINFO[$gridRow]['NAME']=$item->item[1]; @=USERSINFO[$gridRow]['LASTNAME']=$item->item[2]; @=USERSINFO[$gridRow]['DATE']=$item->item[0]; @=USERSINFO[$gridRow]['STREET']=$item->item[3]; @=USERSINFO[$gridRow]['CITY']=$item->item[4]; @=USERSINFO[$gridRow]['STATE']=$item->item[5]; @=USERSINFO[$gridRow]['STATEID']=$item->item[6]; } */ G::SendMessageText("<font color='blue'>Information from Talend ETL webservice</font><font color='darkgray'><br>" . $wsdl . "</font>", "INFO"); }
function continuarCaso($app_uid, $sessionId) { try { $caseId = $app_uid; $Endpoint = "http://staging.portal-excel.com:80/sysworkflow/en/classic/services/wsdl2"; $client = new SoapClient($Endpoint); $params = array(array('sessionId' => $sessionId, 'caseId' => $caseId, 'delIndex' => '1')); $result = $client->__SoapCall('routeCase', $params); if ($result->status_code == 0) { return true; } else { return false; } } catch (Exception $e) { return false; } }
/** * @method * * Creates SugarCRM entries from the Account module * * @name CreateSugarLeads * * @label Creates SugarCRM entries from the Account module * * @param string | $sugarSoap | Sugar SOAP URL | http://www.example.com/sugar/soap.php?wsdl * @param string | $user | User * @param string | $password | Password * @param string | $first_name | First Name * @param string | $last_name | Last Name * @param string | $email | Email * @param string | $title | Title * @param string | $phone | Phone Work * @param string | $account_id | Valid id account * @param string | $resultType=array | Result type (array or object) * * @return array/object | $sugarContact | Sugar Opportunities (array or object) * */ function CreateSugarLeads($sugarSoap, $user, $password, $first_name, $last_name, $email, $title, $phone, $account_id, $resultType = "array") { $module = "Leads"; $sessionId = sugarLogin($sugarSoap, $user, $password); $client = new SoapClient($sugarSoap, array('trace' => 1)); $request_array = array('session' => $sessionId, 'module_name' => $module, array(array("name" => 'first_name', "value" => $first_name), array("name" => 'last_name', "value" => $last_name), array("name" => 'email1', "value" => $email), array("name" => 'title', "value" => $title), array("name" => 'phone_work', "value" => $phone), array("name" => 'account_id', "value" => $account_id))); $sugarEntriesO = $client->__SoapCall('set_entry', $request_array); switch ($resultType) { case 'array': $sugarEntries = objectToArray($sugarEntriesO); break; case 'object': $sugarEntries = $sugarEntries; break; default: $sugarEntries = objectToArray($sugarEntries); } return $sugarEntries; }
protected function getAuthHeaders() { //this function is used to get the proper headers for inclusion in our own __soapCall method // if we don't have a saved auth token get one if ((!isset($this->authToken)) || trim($this->authToken == '')) { $this->log .= "Fetching new authToken\n"; //these are the params set in the constructor $authReqParams = Array('userName' => $this->userName, 'password' => $this->userPass); $responseHeaders = ''; try { //run the soap call to get it - with the headers. Use the parent soap call in case we overload our soap method $response = parent::__SoapCall("Authenticate", array('parameters' => $authReqParams), null, null, $responseHeaders); $this->authToken = $responseHeaders['AuthorizationToken']->Token; $this->xwebNamespace = $response->AuthenticateResult; } catch (SoapFault $exception) { throw $exception; } } //return the header we oh so want. return new SoapHeader($this->xwebNamespace, 'AuthorizationToken', Array('Token' => $this->authToken), true); }
public function caseSchedulerCron($date, &$log = array(), $cron = 0) { G::LoadClass('dates'); require_once 'classes/model/LogCasesScheduler.php'; $oDates = new dates(); $nTime = strtotime($date); $dCurrentDate = date('Y-m-d', $nTime) . ' 00:00:00'; $dNextDay = date('Y-m-d', strtotime("{$dCurrentDate}")) . ' 23:59:59'; $oCriteria = $this->getAllCriteria(); $oCriteria->addAnd(CaseSchedulerPeer::SCH_STATE, 'INACTIVE', Criteria::NOT_EQUAL); $oCriteria->addAnd(CaseSchedulerPeer::SCH_STATE, 'PROCESSED', Criteria::NOT_EQUAL); $oCriteria->add($oCriteria->getNewCriterion(CaseSchedulerPeer::SCH_TIME_NEXT_RUN, $dCurrentDate, Criteria::GREATER_EQUAL)->addAnd($oCriteria->getNewCriterion(CaseSchedulerPeer::SCH_TIME_NEXT_RUN, $dNextDay, Criteria::LESS_EQUAL))->addOr($oCriteria->getNewCriterion(CaseSchedulerPeer::SCH_OPTION, '5', Criteria::GREATER_EQUAL))); $oCriteria->add(CaseSchedulerPeer::SCH_END_DATE, null, Criteria::EQUAL); $oCriteria->addOr(CaseSchedulerPeer::SCH_END_DATE, $dCurrentDate, Criteria::GREATER_EQUAL); $oDataset = CaseSchedulerPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $sValue = ''; $sActualTime = ''; $sDaysPerformTask = ''; $sWeeks = ''; $sStartDay = ''; $sMonths = ''; while ($aRow = $oDataset->getRow()) { if ($cron == 1) { $arrayCron = unserialize(trim(@file_get_contents(PATH_DATA . "cron"))); $arrayCron["processcTimeStart"] = time(); @file_put_contents(PATH_DATA . "cron", serialize($arrayCron)); } $sSchedulerUid = $aRow['SCH_UID']; $sOption = $aRow['SCH_OPTION']; switch ($sOption) { case '1': $sDaysPerformTask = $aRow['SCH_DAYS_PERFORM_TASK']; $aDaysPerformTask = explode('|', $sDaysPerformTask); $sValue = $aDaysPerformTask[0]; if ($sValue != 1) { $sDaysPerformTask = $aDaysPerformTask[1]; } break; case '2': $sDaysPerformTask = $aRow['SCH_EVERY_DAYS']; $sWeeks = $aRow['SCH_WEEK_DAYS']; break; case '3': $sStartDay = $aRow['SCH_START_DAY']; $sMonths = $aRow['SCH_MONTHS']; $aStartDay = explode('|', $sStartDay); $sValue = $aStartDay[0]; break; case '4': $aRow['SCH_STATE'] = 'PROCESSED'; break; case '5': break; } $sActualTime = $aRow['SCH_TIME_NEXT_RUN']; $sActualDataHour = date('H', strtotime($aRow['SCH_TIME_NEXT_RUN'])); $sActualDataMinutes = date('i', strtotime($aRow['SCH_TIME_NEXT_RUN'])); $dActualSysHour = date('H', $nTime); $dActualSysHour = $dActualSysHour == '00' ? '24' : $dActualSysHour; $dActualSysMinutes = date('i', $nTime); $sActualDataTime = strtotime($aRow['SCH_TIME_NEXT_RUN']); $sActualSysTime = strtotime($nTime); // note added consider the posibility to encapsulate some in functionality in a class method or some funtions if ($sActualDataHour < $dActualSysHour) { $_PORT = SERVER_PORT != '80' ? ':' . SERVER_PORT : ''; $defaultEndpoint = 'http://' . SERVER_NAME . $_PORT . '/sys' . SYS_SYS . '/' . SYS_LANG . '/classic/services/wsdl2'; println(" - Connecting webservice: {$defaultEndpoint}"); $user = $aRow["SCH_DEL_USER_NAME"]; $pass = $aRow["SCH_DEL_USER_PASS"]; $processId = $aRow["PRO_UID"]; $taskId = $aRow["TAS_UID"]; $client = new SoapClient($defaultEndpoint); $params = array('userid' => $user, 'password' => 'md5:' . $pass); $result = $client->__SoapCall('login', array($params)); eprint(" - Logging as user {$user}............."); if ($result->status_code == 0) { eprintln("OK+", 'green'); $sessionId = $result->message; $newCaseLog = new LogCasesScheduler(); $newRouteLog = new LogCasesScheduler(); $variables = array(); $params = array('sessionId' => $sessionId, 'processId' => $processId, 'taskId' => $taskId, 'variables' => $variables); $paramsLog = array('PRO_UID' => $processId, 'TAS_UID' => $taskId, 'SCH_UID' => $sSchedulerUid, 'USR_NAME' => $user, 'RESULT' => '', 'EXEC_DATE' => date('Y-m-d'), 'EXEC_HOUR' => date('H:i:s'), 'WS_CREATE_CASE_STATUS' => '', 'WS_ROUTE_CASE_STATUS' => ''); $sw_transfer_control_plugin = false; //This SW will be true only if a plugin is allowed to continue the action //If this Job was was registered to be performed by a plugin if (isset($aRow['CASE_SH_PLUGIN_UID']) && $aRow['CASE_SH_PLUGIN_UID'] != "") { //Check if the plugin is active $pluginParts = explode("--", $aRow['CASE_SH_PLUGIN_UID']); if (count($pluginParts) == 2) { //***************** Plugins ************************** G::LoadClass('plugin'); //here we are loading all plugins registered //the singleton has a list of enabled plugins $sSerializedFile = PATH_DATA_SITE . 'plugin.singleton'; $oPluginRegistry =& PMPluginRegistry::getSingleton(); if (file_exists($sSerializedFile)) { $oPluginRegistry->unSerializeInstance(file_get_contents($sSerializedFile)); } $oPluginRegistry =& PMPluginRegistry::getSingleton(); $activePluginsForCaseScheduler = $oPluginRegistry->getCaseSchedulerPlugins(); foreach ($activePluginsForCaseScheduler as $key => $caseSchedulerPlugin) { if (isset($caseSchedulerPlugin->sNamespace) && $caseSchedulerPlugin->sNamespace == $pluginParts[0] && isset($caseSchedulerPlugin->sActionId) && $caseSchedulerPlugin->sActionId == $pluginParts[1]) { $sw_transfer_control_plugin = true; $caseSchedulerSelected = $caseSchedulerPlugin; } } } } //If there is a trigger that is registered to do this then transfer control if (isset($caseSchedulerSelected) && is_object($caseSchedulerSelected)) { eprintln(" - Transfering control to a Plugin: " . $caseSchedulerSelected->sNamespace . "/" . $caseSchedulerSelected->sActionId, 'green'); $oData['OBJ_SOAP'] = $client; $oData['SCH_UID'] = $aRow['SCH_UID']; $oData['params'] = $params; $oData['sessionId'] = $sessionId; $oData['userId'] = $user; $paramsLogResultFromPlugin = $oPluginRegistry->executeMethod($caseSchedulerSelected->sNamespace, $caseSchedulerSelected->sActionExecute, $oData); $paramsLog['WS_CREATE_CASE_STATUS'] = $paramsLogResultFromPlugin['WS_CREATE_CASE_STATUS']; $paramsLog['WS_ROUTE_CASE_STATUS'] = $paramsLogResultFromPlugin['WS_ROUTE_CASE_STATUS']; $paramsLogResult = $paramsLogResultFromPlugin['paramsLogResult']; $paramsRouteLogResult = $paramsLogResultFromPlugin['paramsRouteLogResult']; } else { eprint(" - Creating the new case............."); $paramsAux = $params; $paramsAux["executeTriggers"] = 1; $result = $client->__SoapCall("NewCase", array($paramsAux)); if ($result->status_code == 0) { eprintln("OK+ CASE #{$result->caseNumber} was created!", 'green'); $caseId = $result->caseId; $caseNumber = $result->caseNumber; $log[] = $caseNumber . ' was created!, ProcessID: ' . $aRow['PRO_UID']; $paramsLog['WS_CREATE_CASE_STATUS'] = "Case " . $caseNumber . " " . strip_tags($result->message); $paramsLogResult = 'SUCCESS'; $params = array('sessionId' => $sessionId, 'caseId' => $caseId, 'delIndex' => "1"); eprint(" - Routing the case #{$caseNumber}.............."); try { $result = $client->__SoapCall('RouteCase', array($params)); if ($result->status_code == 0) { $paramsLog['WS_ROUTE_CASE_STATUS'] = strip_tags($result->message); $retMsg = explode("Debug", $paramsLog['WS_ROUTE_CASE_STATUS']); $retMsg = $retMsg[0]; eprintln("OK+ {$retMsg}", 'green'); $paramsRouteLogResult = 'SUCCESS'; } else { $paramsLog['WS_ROUTE_CASE_STATUS'] = strip_tags($result->message); eprintln("FAILED-> {$paramsLog['WS_ROUTE_CASE_STATUS']}", 'red'); $paramsRouteLogResult = 'FAILED'; } } catch (Exception $oError) { setExecutionResultMessage(' WITH ERRORS', 'error'); $paramsLog['WS_ROUTE_CASE_STATUS'] = strip_tags($oError->getMessage()); eprintln(" '-" . strip_tags($oError->getMessage()), 'red'); $paramsRouteLogResult = 'FAILED'; } } else { $paramsLog['WS_CREATE_CASE_STATUS'] = strip_tags($result->message); $paramsLogResult = 'FAILED'; } } } else { eprintln($result->message, 'red'); // invalid user or bad password } if ($paramsLogResult == 'SUCCESS' && $paramsRouteLogResult == 'SUCCESS') { $paramsLog['RESULT'] = 'SUCCESS'; } else { $paramsLog['RESULT'] = 'FAILED'; } $newCaseLog->saveLogParameters($paramsLog); $newCaseLog->save(); if ($sOption != '4' && $sOption != '5') { $nSchLastRunTime = $sActualTime; $dEstimatedDate = $this->updateNextRun($sOption, $sValue, $sActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths); if ($aRow['SCH_END_DATE'] != '') { if (date("Y-m-d", strtotime($dEstimatedDate)) > date("Y-m-d", strtotime($aRow['SCH_END_DATE']))) { $Fields = $this->Load($sSchedulerUid); $Fields['SCH_LAST_STATE'] = $aRow['SCH_STATE']; $Fields['SCH_STATE'] = 'PROCESSED'; $this->Update($Fields); } } $nSchTimeNextRun = $dEstimatedDate; $this->updateDate($sSchedulerUid, $nSchTimeNextRun, $nSchLastRunTime); } elseif ($sOption != '5') { $Fields = $this->Load($sSchedulerUid); $Fields['SCH_LAST_STATE'] = $aRow['SCH_STATE']; $Fields['SCH_LAST_RUN_TIME'] = $Fields['SCH_TIME_NEXT_RUN']; $Fields['SCH_STATE'] = 'PROCESSED'; $this->Update($Fields); } else { $nSchLastRunTime = $sActualTime; $Fields = $this->Load($sSchedulerUid); $Fields['SCH_LAST_RUN_TIME'] = $Fields['SCH_TIME_NEXT_RUN']; //$nSchTimeNextRun = strtotime( $Fields['SCH_TIME_NEXT_RUN'] ); $nSchTimeNextRun = $nTime; $nextRun = $Fields['SCH_REPEAT_EVERY'] * 60 * 60; $nSchTimeNextRun += $nextRun; $nSchTimeNextRun = date("Y-m-d H:i", $nSchTimeNextRun); $this->updateDate($sSchedulerUid, $nSchTimeNextRun, $nSchLastRunTime); } } elseif ($sActualDataHour == $dActualSysHour && $sActualDataMinutes <= $dActualSysMinutes) { $_PORT = ''; if (isset($_SERVER['SERVER_PORT'])) { $_PORT = $_SERVER['SERVER_PORT'] != '80' ? ':' . $_SERVER['SERVER_PORT'] : ''; } elseif (defined('SERVER_PORT')) { $_PORT = SERVER_PORT != '80' ? ':' . SERVER_PORT : ''; } //$defaultEndpoint = 'http://' . $_SERVER ['SERVER_NAME'] . ':' . $_PORT . '/sys' . SYS_SYS .'/'.SYS_LANG.'/classic/green/services/wsdl2'; $defaultEndpoint = 'http://' . SERVER_NAME . $_PORT . '/sys' . SYS_SYS . '/' . SYS_LANG . '/classic/services/wsdl2'; println(" - Connecting webservice: {$defaultEndpoint}"); $user = $aRow["SCH_DEL_USER_NAME"]; $pass = $aRow["SCH_DEL_USER_PASS"]; $processId = $aRow["PRO_UID"]; $taskId = $aRow["TAS_UID"]; $client = new SoapClient($defaultEndpoint); $params = array('userid' => $user, 'password' => 'md5:' . $pass); $result = $client->__SoapCall('login', array($params)); eprint(" - Logging as user {$user}............."); if ($result->status_code == 0) { eprintln("OK+", 'green'); $sessionId = $result->message; $newCaseLog = new LogCasesScheduler(); $newRouteLog = new LogCasesScheduler(); $variables = array(); $params = array('sessionId' => $sessionId, 'processId' => $processId, 'taskId' => $taskId, 'variables' => $variables); $paramsLog = array('PRO_UID' => $processId, 'TAS_UID' => $taskId, 'SCH_UID' => $sSchedulerUid, 'USR_NAME' => $user, 'RESULT' => '', 'EXEC_DATE' => date('Y-m-d'), 'EXEC_HOUR' => date('H:i:s'), 'WS_CREATE_CASE_STATUS' => '', 'WS_ROUTE_CASE_STATUS' => ''); $paramsAux = $params; $paramsAux["executeTriggers"] = 1; $result = $client->__SoapCall("NewCase", array($paramsAux)); eprint(" - Creating the new case............."); if ($result->status_code == 0) { eprintln("OK+ CASE #{$result->caseNumber} was created!", 'green'); $caseId = $result->caseId; $caseNumber = $result->caseNumber; $log[] = $caseNumber . ' was created!, ProcessID: ' . $aRow['PRO_UID']; $paramsLog['WS_CREATE_CASE_STATUS'] = "Case " . $caseNumber . " " . strip_tags($result->message); $paramsLogResult = 'SUCCESS'; $params = array('sessionId' => $sessionId, 'caseId' => $caseId, 'delIndex' => "1"); try { $result = $client->__SoapCall('RouteCase', array($params)); eprint(" - Routing the case #{$caseNumber}.............."); if ($result->status_code == 0) { $paramsLog['WS_ROUTE_CASE_STATUS'] = strip_tags($result->message); $retMsg = explode("Debug", $paramsLog['WS_ROUTE_CASE_STATUS']); $retMsg = $retMsg[0]; eprintln("OK+ {$retMsg}", 'green'); $paramsRouteLogResult = 'SUCCESS'; } else { eprintln("FAILED-> {$paramsLog['WS_ROUTE_CASE_STATUS']}", 'red'); $paramsLog['WS_ROUTE_CASE_STATUS'] = strip_tags($result->message); $paramsRouteLogResult = 'FAILED'; } } catch (Exception $oError) { setExecutionResultMessage(' WITH ERRORS', 'error'); $paramsLog['WS_ROUTE_CASE_STATUS'] = strip_tags($oError->getMessage()); eprintln(" '-" . strip_tags($oError->getMessage()), 'red'); $paramsRouteLogResult = 'FAILED'; } } else { $paramsLog['WS_CREATE_CASE_STATUS'] = strip_tags($result->message); eprintln("FAILED->{$paramsLog['WS_CREATE_CASE_STATUS']}", 'red'); $paramsLogResult = 'FAILED'; } } else { // invalid user or bad password eprintln($result->message, 'red'); } if ($paramsLogResult == 'SUCCESS' && $paramsRouteLogResult == 'SUCCESS') { $paramsLog['RESULT'] = 'SUCCESS'; } else { $paramsLog['RESULT'] = 'FAILED'; } $newCaseLog->saveLogParameters($paramsLog); $newCaseLog->save(); if ($sOption != '4' && $sOption != '5') { $nSchLastRunTime = $sActualTime; $dEstimatedDate = $this->updateNextRun($sOption, $sValue, $sActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths); if ($aRow['SCH_END_DATE'] != '') { if (date("Y-m-d", strtotime($dEstimatedDate)) > date("Y-m-d", strtotime($aRow['SCH_END_DATE']))) { $Fields = $this->Load($sSchedulerUid); $Fields['SCH_LAST_STATE'] = $aRow['SCH_STATE']; $Fields['SCH_STATE'] = 'PROCESSED'; $this->Update($Fields); } } $nSchTimeNextRun = $dEstimatedDate; $this->updateDate($sSchedulerUid, $nSchTimeNextRun, $nSchLastRunTime); } elseif ($sOption != '5') { $Fields = $this->Load($sSchedulerUid); $Fields['SCH_LAST_STATE'] = $aRow['SCH_STATE']; $Fields['SCH_LAST_RUN_TIME'] = $Fields['SCH_TIME_NEXT_RUN']; $Fields['SCH_STATE'] = 'PROCESSED'; $this->Update($Fields); } else { $nSchLastRunTime = $sActualTime; $Fields = $this->Load($sSchedulerUid); $Fields['SCH_LAST_RUN_TIME'] = $Fields['SCH_TIME_NEXT_RUN']; //$nSchTimeNextRun = strtotime( $Fields['SCH_TIME_NEXT_RUN'] ); $nSchTimeNextRun = $nTime; $nextRun = $Fields['SCH_REPEAT_EVERY'] * 60 * 60; $nSchTimeNextRun += $nextRun; $nSchTimeNextRun = date("Y-m-d H:i", $nSchTimeNextRun); $this->updateDate($sSchedulerUid, $nSchTimeNextRun, $nSchLastRunTime); } } $oDataset->next(); } }
function LogicBoxes_Contract_Register($Settings, $PepsonID, $Person, $DomainZone) { /****************************************************************************/ $__args_types = array('array', 'string', 'array', 'string'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ $Wsdl = System_Element('config/Wsdl/Customer.wsdl'); if (Is_Error($Wsdl)) { return ERROR | @Trigger_Error(500); } #----------------------------------------------------------------------------- $AddCustomer = new SoapClient($Wsdl, array('exceptions' => 0)); #----------------------------------------------------------------------------- $Params = array('SERVICE_USERNAME' => $Settings['Login'], 'SERVICE_PASSWORD' => $Settings['Password'], 'SERVICE_ROLE' => 'reseller', 'SERVICE_LANGPREF' => 'ru', 'SERVICE_PARENTID' => $Settings['ParentID'], 'customerUserName' => $Person['Email'], 'customerPassword' => UniqID()); #----------------------------------------------------------------------------- switch ($PepsonID) { case 'Natural': #------------------------------------------------------------------------- $Params['name'] = SPrintF('%s %s %s', Translit($Person['Name']), Mb_SubStr(Translit($Person['Lastname']), 0, 1), Translit($Person['Sourname'])); $Params['company'] = 'N/A'; $Params['address1'] = Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])); $Params['address2'] = Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])); $Params['address3'] = Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])); $Params['city'] = Translit($Person['pCity']); $Params['state'] = Translit($Person['pState']); $Params['country'] = isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry']; $Params['zip'] = $Person['pIndex']; break; case 'Juridical': #------------------------------------------------------------------------- $Params['name'] = SPrintF('%s %s %s', Translit($Person['dName']), Translit($Person['dLastname']), Translit($Person['dSourname'])); $Params['company'] = SPrintF('%s %s', Translit($Person['CompanyName']), Translit($Person['CompanyFormFull'])); $Params['address1'] = Translit(SPrintF('%s %s', $Person['jType'], $Person['jAddress'])); $Params['address2'] = Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])); $Params['address3'] = Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])); $Params['city'] = Translit($Person['jCity']); $Params['state'] = Translit($Person['jState']); $Params['country'] = Translit($Person['jCountry']); $Params['zip'] = $Person['jIndex']; break; default: return ERROR | @Trigger_Error(400); } #----------------------------------------------------------------------------- $Phone = $Person['Phone']; #----------------------------------------------------------------------------- if ($Phone) { #--------------------------------------------------------------------------- $Phone = Preg_Split('/\\s+/', $Phone); #--------------------------------------------------------------------------- $Params['telNoCc'] = Trim(Current($Phone), '+'); $Params['telNo'] = SPrintF('%s%s', Next($Phone), Next($Phone)); #--------------------------------------------------------------------------- Reset($Phone); #--------------------------------------------------------------------------- $Params['altTelNoCc'] = Trim(Current($Phone), '+'); $Params['altTelNo'] = SPrintF('%s%s', Next($Phone), Next($Phone)); } else { #--------------------------------------------------------------------------- $Params['telNoCc'] = ''; $Params['telNo'] = ''; $Params['altTelNoCc'] = ''; $Params['altTelNo'] = ''; } #----------------------------------------------------------------------------- $Fax = $Person['Fax']; #----------------------------------------------------------------------------- if ($Fax) { #--------------------------------------------------------------------------- $Fax = Preg_Split('/\\s+/', $Fax); #--------------------------------------------------------------------------- $Params['faxNoCc'] = Trim(Current($Fax), '+'); $Params['faxNo'] = SPrintF('%s%s', Next($Fax), Next($Fax)); } else { #--------------------------------------------------------------------------- $Params['faxNoCc'] = ''; $Params['faxNo'] = ''; } #----------------------------------------------------------------------------- $Params['customerLangPref'] = 'ru'; #----------------------------------------------------------------------------- Debug(Print_R($Params, TRUE)); #----------------------------------------------------------------------------- $Response = $AddCustomer->__SoapCall('addCustomer', $Params); #----------------------------------------------------------------------------- if (Is_SOAP_Fault($Response)) { #--------------------------------------------------------------------------- Debug($Response->faultstring); #--------------------------------------------------------------------------- return new gException('ANSWER_ERROR', 'Ошибка обращения к регистратору'); } #----------------------------------------------------------------------------- $CustomerID = $Response; #----------------------------------------------------------------------------- $Wsdl = System_Element('config/Wsdl/DomContact.wsdl'); if (Is_Error($Wsdl)) { return ERROR | @Trigger_Error(500); } #----------------------------------------------------------------------------- $DefaultContact = new SoapClient($Wsdl, array('exceptions' => 0)); #----------------------------------------------------------------------------- $Response = $DefaultContact->addDefaultContact($Settings['Login'], $Settings['Password'], 'reseller', 'ru', $Settings['ParentID'], $CustomerID); #----------------------------------------------------------------------------- if (Is_SOAP_Fault($Response)) { #--------------------------------------------------------------------------- Debug($Response->faultstring); #--------------------------------------------------------------------------- return new gException('ANSWER_ERROR', 'Ошибка обращения к регистратору'); } #----------------------------------------------------------------------------- return array('TicketID' => $CustomerID); }
/** * Return the user that can start a task * * @param string $sProcessUID {@min 32} {@max 32} * @param string $sActivityUID {@min 32} {@max 32} * @param array $oData * * return array * * @access public */ public function projectWsUserCanStartTask($sProcessUID, $sActivityUID, $oData) { try { Validator::proUid($sProcessUID, '$prj_uid'); /** * process_webEntryValidate * validates if the username and password are valid data and if the user assigned * to the webentry has the rights and persmissions required */ $sTASKS = $sActivityUID; $sWS_USER = trim($oData['username']); $sWS_PASS = trim($oData['password']); if (\G::is_https()) { $http = 'https://'; } else { $http = 'http://'; } $endpoint = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/services/wsdl2'; @($client = new \SoapClient($endpoint)); $user = $sWS_USER; $pass = $sWS_PASS; $params = array('userid' => $user, 'password' => $pass); $result = $client->__SoapCall('login', array($params)); $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; $messageCode = 1; \G::LoadClass('Task'); \G::LoadClass('User'); \G::LoadClass('TaskUser'); \G::LoadClass('Groupwf'); /** * note added by gustavo cruz gustavo-at-colosa-dot-com * This is a little check to see if the GroupUser class has been declared or not. * Seems that the problem its present in a windows installation of PM however. * It's seems that could be replicated in a Linux server easily. * I recomend that in some way check already if a imported class is declared * somewhere else or maybe delegate the task to the G Class LoadClass method. */ if (!class_exists('GroupUser')) { \G::LoadClass('GroupUser'); } // if the user has been authenticated, then check if has the rights or // permissions to create the webentry if ($result->status_code == 0) { $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\UsersPeer::USR_UID); $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID); $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID); $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); $oCriteria->addSelectColumn(\TaskPeer::PRO_UID); $oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN); $oCriteria->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN); if ($sTASKS) { $oCriteria->add(\TaskUserPeer::TAS_UID, $sTASKS); } $oCriteria->add(\UsersPeer::USR_USERNAME, $sWS_USER); $oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID); $userIsAssigned = \TaskUserPeer::doCount($oCriteria); // if the user is not assigned directly, maybe a have the task a group with the user if ($userIsAssigned < 1) { $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\UsersPeer::USR_UID); $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME); $oCriteria->addJoin(\UsersPeer::USR_UID, \GroupUserPeer::USR_UID, \Criteria::LEFT_JOIN); $oCriteria->addJoin(\GroupUserPeer::GRP_UID, \TaskUserPeer::USR_UID, \Criteria::LEFT_JOIN); $oCriteria->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN); if ($sTASKS) { $oCriteria->add(\TaskUserPeer::TAS_UID, $sTASKS); } $oCriteria->add(\UsersPeer::USR_USERNAME, $sWS_USER); $oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID); $userIsAssigned = \GroupUserPeer::doCount($oCriteria); if (!($userIsAssigned >= 1)) { if ($sTASKS) { throw new \Exception(\G::LoadTranslation("ID_USER_NOT_ID_ACTIVITY", array($sWS_USER, $sTASKS))); } else { throw new \Exception(\G::LoadTranslation("ID_USER_NOT_ACTIVITY", array($sWS_USER))); } } } $oDataset = \TaskUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $messageCode = array('usr_uid' => $aRow['USR_UID'], 'usr_username' => $aRow['USR_USERNAME'], 'usr_firstname' => $aRow['USR_FIRSTNAME'], 'usr_lastname' => $aRow['USR_LASTNAME']); $oDataset->next(); } } else { throw new \Exception($result->message); } return $messageCode; } catch (Exception $e) { throw $e; } }
function jas_wsLogin() { //-------------------------------- try { global $sessionId; global $client; global $endpoint; $client = new SoapClient($endpoint); // defined in config.jas.php // login to admin/admin $pass = '******' . md5('admin'); $params = array(array('userid' => 'admin', 'password' => $pass)); $result = $client->__SoapCall('login', $params); if ($result->status_code == 0) { $sessionId = $result->message; } else { die("Unable to connect to ProcessMaker." . "Error Number: " . $result->status_code . "Error Message: " . $result->message); } } catch (Exception $e) { die("error in wsLogin 201002141853 " . $e); } }
function ws_open_with_params($endpoint, $user, $pass) { global $sessionId; global $client; $sessionId = ''; @($client = new SoapClient($endpoint)); $params = array('userid' => $user, 'password' => $pass); $result = $client->__SoapCall('login', array($params)); if ($result->status_code == 0) { $sessionId = $result->message; return 1; } throw new Exception($result->message); }
/** * get the process Data from a process * @param $proId process Uid * @return $result */ function ws_processGetData($proId) { global $sessionId; global $client; $endpoint = PML_WSDL_URL; $client = new SoapClient($endpoint); $sessionId = ''; $params = array('sessionId' => $sessionId, 'processId' => $proId); $result = $client->__SoapCall('processGetData', array($params)); if ($result->status_code == 0) { return $result; } throw new Exception($result->message); }
function envioNomina($usuario, $password, $app_uid, $id_sgn, $nomina) { $user = $usuario; $pass = $password; $Endpoint = "http://staging.portal-excel.com:10080/sysworkflow/en/classic/services/wsdl2"; $client = new SoapClient($Endpoint); $params = array('userid' => $user, 'password' => $pass); /* * On line 30, i call to process maker login web service * and if the call result is "ok", the code create a new path * and decode de $nomina parameter to get a file. */ $result = $client->__SoapCall('login', array($params)); if ($result->status_code == 0) { /******nomina sgn***************/ $path = "/var/www/rest-excel/archivos/" . $id_sgn; mkdir($path, 770); shell_exec("chmod 770 {$path}"); $pathFile = $path . "/" . $id_sgn . ".xls"; $x = base64_decode($nomina); file_put_contents($pathFile, base64_decode($nomina)); /* * On line 54 i create a new object of grandCreater class, * the grandCreater class parse a xml file and return an array from the data of the same file * * * * */ require_once "/var/www/rest-excel/classExcel2.php"; $class = new grandCreater(); $location = $pathFile; $params = $class->grandReaderLayout($location); /* * * I send the inside the $location parameter, the file path that its going to by parse * to the grandReaderlayout method and return an multidimensional array * */ $params = json_decode(json_encode($params), true); /* * From the array that the grandReaderLayout method return, I get the info of * $rfc_Cliente and $rfc_Pagadora */ $rfc_Cliente = $params[0]['RFC_CLIENTE']; $rfc_Pagadora = $params[0]['RFC_PAGADORA']; /* * On line 84 the object of routeCaseSGN class is created, * on line 85 the object call a method of the routeCaseSGN class and send parameters * * */ require_once "/var/www/rest-excel/consumeCaso.php"; $route = new routeCaseSGN(); /* * * I call buscaNomina method from the routeCaseSGN Class and * send four params and the get the result of the method inside $execution variable * */ $execution = $route->buscaNomina($rfc_Cliente, $rfc_Pagadora, $location, $params); return "El archivo se recibio correntamente" . print_r($execution, true) . print_r($result, true); } else { return "Error favor de revisar usuario o password"; } }
//$query = "contacts.email1 != '' "; //$orderby = 'email1 desc '; $query = ''; $orderby = ''; $fields = array('id', 'first_name', 'last_name', 'account_name', 'account_id', 'email1', 'phone_work'); $params = array($session, 'Leads', $query, $orderby, 0, $fields, 100, false); $res = $client->__SoapCall('get_entry_list', $params); krumo($res); } break; case 'processList': $wsdl = PATH_METHODS . "services" . PATH_SEP . "pmos.wsdl"; $endpoint = $wsdl; $client = new SoapClient($endpoint); $params = array('sessionId' => $sessionId); $result = $client->__SoapCall('processesList', array($params)); krumo($result); die; break; default: krumo($_POST); die; } ?> <div class="krumo-root"> <ul class="krumo-node krumo-first"> <li class="krumo-child"> <div class="krumo-element"> status_code (<em class="krumo-type">Integer</em>) <strong class="krumo-integer"><?php echo $result->error->number;
public function getCustomerByIndToken($token) { $authResult = $this->getAuthToken(); $xwebNamespace = $authResult['xwebNamespace']; $authToken = $authResult['authToken']; $input_headers = new SoapHeader($xwebNamespace, 'AuthorizationToken', array('Token' => $authToken), true); if ((bool) Mage::getStoreConfig('avectraconnect_options/avectraconfigfields/useliveurl')) { $function_name = $this->__prefixCall . "WEBWebUserValidateToken"; } else { $function_name = "WEBWebUserValidateToken"; } $arguments = array('parameters' => array('authenticationToken' => $token)); $options = null; $org_name = ''; $output_headers = null; define('WEBWebUserValidateTokenResult', 'WEBWebUserValidateTokenResult'); try { $soapClientSetUp = array('trace' => true, 'exceptions' => false); $soap_client = new SoapClient($this->__token_path, $soapClientSetUp); //$soap_client = new SoapClient('http://10.30.1.210/' . $this->__token_path, $soapClientSetUp); $soapresponse = $soap_client->__SoapCall($function_name, $arguments, $options, $input_headers, $output_headers); } catch (Exception $e) { Mage::logException($e); } if ((bool) Mage::getStoreConfig('avectraconnect_options/avectraconfigfields/useliveurl')) { $methodPrefix = $this->__prefixCall . WEBWebUserValidateTokenResult; $WEBWebUserValidateTokenResult = $soapresponse->{$methodPrefix}; } else { $WEBWebUserValidateTokenResult = $soapresponse->WEBWebUserValidateTokenResult; } if ($soapresponse && $WEBWebUserValidateTokenResult) { //load data from Avectra //Fetch the data from Avectra Response if ((bool) Mage::getStoreConfig('avectraconnect_options/avectraconfigfields/useliveurl')) { $responseTokenPrefix = $this->__prefixCall . WEBWebUserValidateTokenResult; $email = $soapresponse->{$responseTokenPrefix}->Email->eml_address; $avectraKey = $soapresponse->{$responseTokenPrefix}->Individual->ind_cst_key; $emailKey = isset($soapresponse->{$responseTokenPrefix}->Customer->cst_eml_key) ? $soapresponse->{$responseTokenPrefix}->Customer->cst_eml_key : ''; $responseFirstName = $soapresponse->{$responseTokenPrefix}->Individual->ind_first_name; $responseLastName = $soapresponse->{$responseTokenPrefix}->Individual->ind_last_name; $responseCustomerNumber = $soapresponse->{$responseTokenPrefix}->Customer->cst_recno; } else { $email = $soapresponse->WEBWebUserValidateTokenResult->Email->eml_address; $avectraKey = $soapresponse->WEBWebUserValidateTokenResult->Individual->ind_cst_key; $emailKey = isset($soapresponse->WEBWebUserValidateTokenResult->Customer->cst_eml_key) ? $soapresponse->WEBWebUserValidateTokenResult->Customer->cst_eml_key : ''; $responseFirstName = $soapresponse->WEBWebUserValidateTokenResult->Individual->ind_first_name; $responseLastName = $soapresponse->WEBWebUserValidateTokenResult->Individual->ind_last_name; $responseCustomerNumber = $soapresponse->WEBWebUserValidateTokenResult->Customer->cst_recno; } /*********************************************************** */ if ($email) { $account = Mage::getModel('icc_avectra/account'); $avectra = Mage::getModel('icc_avectra/avectraCommunication'); $customer = $account->getByEmail($email); if ($customer) { if ($avectra_key = $customer->getAvectraKey()) { $user_info = $avectra->getUserInfo($avectra_key); } else { $user_info = $avectra->getUserInfoByEmail($email); } } else { $fields['customer_exists'] = 0; $user_info = $avectra->getUserInfoByEmail($email); } if ($user_info) { $data = false; if (isset($user_info->IndividualObject)) { $data = $user_info->IndividualObject; } else { if (isset($user_info->Individual)) { $data = $user_info->Individual; } } if ($data) { $orgs = $avectra->getUserAffiliatedOrganizations($avectra_key, true); if ($orgs) { $org_name = $orgs[0]->Organization->org_name; } } } } $avectraData = array('firstname' => $responseFirstName, 'lastname' => $responseLastName, 'email' => $email, 'avectra_key' => $avectraKey, 'customer_no' => $responseCustomerNumber, 'email_avectra_key' => $emailKey, 'org_name' => $org_name); $validator = new Zend_Validate_EmailAddress(); if (empty($email) || !$validator->isValid($email)) { return null; } //try getting customer by Avectra key in Magento $select = Mage::getModel('customer/customer')->getCollection()->addAttributeToSelect('*')->addAttributeToFilter('avectra_key', $avectraKey)->load(); $customer = $select->getFirstItem(); //no customer with this key in Magento if (!($customer && $customer->getId())) { //check if the email in Magento matches the one from Avectra $customer = Mage::getModel("customer/customer"); $customer->setWebsiteId(Mage::app()->getWebsite()->getId()); $customer->loadByEmail($email); if (!($customer && $customer->getId())) { //Create new customer in Magento because it exists in Avectra $customer = Mage::getModel('customer/customer'); $avectraData['password'] = substr(md5(rand()), 0, 10); $customer->setWebsiteId(Mage::app()->getWebsite()->getId()); $customer->setConfirmation(null); } } $customer->addData($avectraData); try { $customer->save(); } catch (Exception $e) { Mage::logException($e); } if ($customer && $customer->getId()) { return $customer; } } }
* validates if the username and password are valid data and if the user assigned * to the process and task has the rights and persmissions required to create a cron task */ $sWS_USER = trim($_REQUEST['USERNAME']); $sWS_PASS = trim($_REQUEST['PASSWORD']); if (G::is_https()) { $http = 'https://'; } else { $http = 'http://'; } $endpoint = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/services/wsdl2'; @($client = new SoapClient($endpoint)); $user = $sWS_USER; $pass = $sWS_PASS; $params = array('userid' => $user, 'password' => $pass); $result = $client->__SoapCall('login', array($params)); $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; $messageCode = $result->message; if ($result->status_code == 0) { if (!class_exists('Users')) { require "classes/model/UsersPeer.php"; } $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn('USR_UID'); $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER); $resultSet = UsersPeer::doSelectRS($oCriteria); $resultSet->next(); $user_id = $resultSet->getRow();
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 . '/en/green/services/wsdl2'; $endpoint = isset($_SESSION['END_POINT']) ? $_SESSION['END_POINT'] : $defaultEndpoint; $sessionId = isset($_SESSION['SESSION_ID']) ? $_SESSION['SESSION_ID'] : ''; @($client = new SoapClient($endpoint)); 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);
/** * get the process Data from a process * * @param $proId process Uid * @return $result */ public function ws_processGetData ($proId) { global $sessionId; global $client; $endpoint = PML_WSDL_URL; $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 ); $sessionId = ''; $params = array ('sessionId' => $sessionId,'processId' => $proId ); $result = $client->__SoapCall( 'processGetData', array ($params ) ); if ($result->status_code == 0) { return $result; } throw (new Exception( $result->message )); }
function checkCredentials($params) { require_once 'classes/model/Event.php'; require_once 'classes/model/Users.php'; require_once 'classes/model/TaskUser.php'; require_once 'classes/model/GroupUser.php'; $sPRO_UID = $params->PRO_UID; $sEVN_UID = $params->EVN_UID; //$sDYNAFORM = $params->DYN_UID; $sWS_USER = trim($params->WS_USER); $sWS_PASS = trim($params->WS_PASS); if (G::is_https()) { $http = 'https://'; } else { $http = 'http://'; } $endpoint = $http . $_SERVER['HTTP_HOST'] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/services/wsdl2'; @($client = new SoapClient($endpoint)); $user = $sWS_USER; $pass = $sWS_PASS; $parameters = array('userid' => $user, 'password' => $pass); $result = $client->__SoapCall('login', array($parameters)); $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; $messageCode = true; $message = $result->message; G::LoadClass('Task'); //G::LoadClass ( 'Event' ); G::LoadClass('User'); G::LoadClass('TaskUser'); G::LoadClass('Groupwf'); $event = new Event(); $event->load($sEVN_UID); $sTASKS = $event->getEvnTasUidTo(); $task = new Task(); $task->load($sTASKS); $sTASKS_SEL = $task->getTasTitle(); if (!class_exists('GroupUser')) { G::LoadClass('GroupUser'); } // if the user has been authenticated, then check if has the rights or // permissions to create the webentry if ($result->status_code == 0) { $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(UsersPeer::USR_UID); $oCriteria->addSelectColumn(TaskUserPeer::USR_UID); $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID); $oCriteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->add(TaskUserPeer::TAS_UID, $sTASKS); $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER); //$oCriteria->add(TaskUserPeer::TU_RELATION,1); $userIsAssigned = TaskUserPeer::doCount($oCriteria); // if the user is not assigned directly, maybe a have the task a group with the user if ($userIsAssigned < 1) { $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(UsersPeer::USR_UID); $oCriteria->addJoin(UsersPeer::USR_UID, GroupUserPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->addJoin(GroupUserPeer::GRP_UID, TaskUserPeer::USR_UID, Criteria::LEFT_JOIN); $oCriteria->add(TaskUserPeer::TAS_UID, $sTASKS); $oCriteria->add(UsersPeer::USR_USERNAME, $sWS_USER); $userIsAssigned = GroupUserPeer::doCount($oCriteria); if (!($userIsAssigned >= 1)) { $messageCode = false; $message = "The User \"" . $sWS_USER . "\" doesn't have the task \"" . $sTASKS_SEL . "\" assigned."; } } } else { $messageCode = false; } $this->success = $messageCode; $this->msg = $message; }
public function caseSchedulerCron ($date, &$log = array(), $cron = 0) { try { require_once("classes" . PATH_SEP . "model" . PATH_SEP . "LogCasesScheduler.php"); //Set variables $port = ""; if (isset($_SERVER["SERVER_PORT"])) { $port = ($_SERVER["SERVER_PORT"] . "" != "80")? ":" . $_SERVER["SERVER_PORT"] : ""; } else { if (defined("SERVER_PORT")) { $port = (SERVER_PORT . "" != "80")? ":" . SERVER_PORT : ""; } } $wsdl = "http://" . SERVER_NAME . $port . "/sys" . SYS_SYS . "/" . SYS_LANG . "/classic/services/wsdl2"; $timeDate = strtotime($date); $dateHour = date("H", $timeDate); $dateMinutes = date("i", $timeDate); $dateCurrentIni = date("Y-m-d", $timeDate) . " 00:00:00"; $dateCurrentEnd = date("Y-m-d", $timeDate) . " 23:59:59"; //Query $criteria = $this->getAllCriteria(); $criteria->add( $criteria->getNewCriterion(CaseSchedulerPeer::SCH_STATE, "INACTIVE", Criteria::NOT_EQUAL)->addAnd( $criteria->getNewCriterion(CaseSchedulerPeer::SCH_STATE, "PROCESSED", Criteria::NOT_EQUAL)) ); $criteria->add( $criteria->getNewCriterion(CaseSchedulerPeer::SCH_TIME_NEXT_RUN, $dateCurrentIni, Criteria::GREATER_EQUAL)->addAnd( $criteria->getNewCriterion(CaseSchedulerPeer::SCH_TIME_NEXT_RUN, $dateCurrentEnd, Criteria::LESS_EQUAL))->addOr( //$criteria->getNewCriterion(CaseSchedulerPeer::SCH_OPTION, 5, Criteria::GREATER_EQUAL))->addOr( $criteria->getNewCriterion(CaseSchedulerPeer::SCH_TIME_NEXT_RUN, $dateCurrentIni, Criteria::LESS_THAN)) ); $criteria->add( $criteria->getNewCriterion(CaseSchedulerPeer::SCH_END_DATE, null, Criteria::EQUAL)->addOr( $criteria->getNewCriterion(CaseSchedulerPeer::SCH_END_DATE, $dateCurrentIni, Criteria::GREATER_EQUAL)) ); $rsCriteria = CaseSchedulerPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); if ($cron == 1) { $arrayCron = unserialize(trim(@file_get_contents(PATH_DATA . "cron"))); $arrayCron["processcTimeStart"] = time(); @file_put_contents(PATH_DATA . "cron", serialize($arrayCron)); } $caseSchedulerUid = $row["SCH_UID"]; $caseSchedulerOption = (int)($row["SCH_OPTION"]); $caseSchedulerTimeNextRun = $row["SCH_TIME_NEXT_RUN"]; //Create the new case $flagNewCase = false; $caseSchedulerTimeNextRunNew = ""; if (strtotime($caseSchedulerTimeNextRun) < strtotime($dateCurrentIni)) { //Generate new date for old SCH_TIME_NEXT_RUN $flagNewCase = true; //Create the old case $caseSchedulerTimeNextRunNew = $this->getTimeNextRunByDate($row, $date, false); } else { $caseSchedulerTimeNextRunHour = date("H", strtotime($row["SCH_TIME_NEXT_RUN"])); $caseSchedulerTimeNextRunMinutes = date("i", strtotime($row["SCH_TIME_NEXT_RUN"])); if ((int)($dateHour . $dateMinutes) <= (int)($caseSchedulerTimeNextRunHour . $caseSchedulerTimeNextRunMinutes)) { $flagNewCase = $caseSchedulerTimeNextRunHour == $dateHour && $caseSchedulerTimeNextRunMinutes == $dateMinutes; } else { $flagNewCase = true; //Create the old case } } if ($flagNewCase) { println(" CASE SCHEDULER: " . $row["SCH_NAME"]); println(" - Connecting webservice: $wsdl"); $user = $row["SCH_DEL_USER_NAME"]; $pass = $row["SCH_DEL_USER_PASS"]; $processId = $row["PRO_UID"]; $taskId = $row["TAS_UID"]; $client = new SoapClient($wsdl); $result = $client->__SoapCall("login", array( array("userid" => $user, "password" => Bootstrap::getPasswordHashType() . ":" . $pass) ) ); eprintln(" - Logging as user \"$user\"..."); $paramsLog = array( "PRO_UID" => $processId, "TAS_UID" => $taskId, "SCH_UID" => $caseSchedulerUid, "USR_NAME" => $user, "RESULT" => "", "EXEC_DATE" => date("Y-m-d"), "EXEC_HOUR" => date("H:i:s"), "WS_CREATE_CASE_STATUS" => "", "WS_ROUTE_CASE_STATUS" => "" ); $paramsLogResult = "FAILED"; $paramsRouteLogResult = "FAILED"; if ($result->status_code == 0) { eprintln(" OK", "green"); $sessionId = $result->message; $params = array("sessionId" => $sessionId, "processId" => $processId, "taskId" => $taskId, "variables" => array()); //If this Job was was registered to be performed by a plugin if (isset($row["CASE_SH_PLUGIN_UID"]) && $row["CASE_SH_PLUGIN_UID"] != "") { //Check if the plugin is active $pluginParts = explode("--", $row["CASE_SH_PLUGIN_UID"]); if (count($pluginParts) == 2) { //Plugins G::LoadClass("plugin"); //Here we are loading all plugins registered //The singleton has a list of enabled plugins $sSerializedFile = PATH_DATA_SITE . "plugin.singleton"; $oPluginRegistry = &PMPluginRegistry::getSingleton(); if (file_exists($sSerializedFile)) { $oPluginRegistry->unSerializeInstance(file_get_contents($sSerializedFile)); } $oPluginRegistry = &PMPluginRegistry::getSingleton(); $activePluginsForCaseScheduler = $oPluginRegistry->getCaseSchedulerPlugins(); foreach ($activePluginsForCaseScheduler as $key => $caseSchedulerPlugin) { if (isset($caseSchedulerPlugin->sNamespace) && $caseSchedulerPlugin->sNamespace == $pluginParts[0] && isset($caseSchedulerPlugin->sActionId) && $caseSchedulerPlugin->sActionId == $pluginParts[1]) { $caseSchedulerSelected = $caseSchedulerPlugin; } } } } //If there is a trigger that is registered to do this then transfer control if (isset($caseSchedulerSelected) && is_object($caseSchedulerSelected)) { eprintln(" - Transfering control to a Plugin: " . $caseSchedulerSelected->sNamespace . "/" . $caseSchedulerSelected->sActionId, "green"); $oData = array(); $oData["OBJ_SOAP"] = $client; $oData["SCH_UID"] = $row["SCH_UID"]; $oData["params"] = $params; $oData["sessionId"] = $sessionId; $oData["userId"] = $user; $paramsLogResultFromPlugin = $oPluginRegistry->executeMethod($caseSchedulerSelected->sNamespace, $caseSchedulerSelected->sActionExecute, $oData); $paramsLog["WS_CREATE_CASE_STATUS"] = $paramsLogResultFromPlugin["WS_CREATE_CASE_STATUS"]; $paramsLog["WS_ROUTE_CASE_STATUS"] = $paramsLogResultFromPlugin["WS_ROUTE_CASE_STATUS"]; $paramsLogResult = $paramsLogResultFromPlugin["paramsLogResult"]; $paramsRouteLogResult = $paramsLogResultFromPlugin["paramsRouteLogResult"]; } else { eprintln(" - Creating the new case..."); $paramsAux = $params; $paramsAux["executeTriggers"] = 1; $oPluginRegistry = &PMPluginRegistry::getSingleton(); if ($oPluginRegistry->existsTrigger(PM_SCHEDULER_CREATE_CASE_BEFORE)) { $oPluginRegistry->executeTriggers(PM_SCHEDULER_CREATE_CASE_BEFORE, $paramsAux); } $result = $client->__SoapCall("NewCase", array($paramsAux)); if ($oPluginRegistry->existsTrigger (PM_SCHEDULER_CREATE_CASE_AFTER)) { $oPluginRegistry->executeTriggers(PM_SCHEDULER_CREATE_CASE_AFTER, $result); } if ($result->status_code == 0) { eprintln(" OK case #" . $result->caseNumber . " was created!", "green"); $caseId = $result->caseId; $caseNumber = $result->caseNumber; $log[] = $caseNumber . " was created!, ProcessID: " . $row["PRO_UID"]; $paramsLog["WS_CREATE_CASE_STATUS"] = "Case " . $caseNumber . " " . strip_tags($result->message); $paramsLogResult = "SUCCESS"; $params = array("sessionId" => $sessionId, "caseId" => $caseId, "delIndex" => "1"); try { eprintln(" - Routing the case #$caseNumber..."); $result = $client->__SoapCall("RouteCase", array($params)); if ($result->status_code == 0) { $paramsLog["WS_ROUTE_CASE_STATUS"] = strip_tags($result->message); $retMsg = explode("Debug", $paramsLog["WS_ROUTE_CASE_STATUS"]); $retMsg = $retMsg[0]; $paramsRouteLogResult = "SUCCESS"; eprintln(" OK $retMsg", "green"); } else { $paramsLog["WS_ROUTE_CASE_STATUS"] = strip_tags($result->message); $paramsRouteLogResult = "FAILED"; eprintln(" Failed: " . $paramsLog["WS_ROUTE_CASE_STATUS"], "red"); } } catch (Exception $e) { //setExecutionResultMessage("WITH ERRORS", "error"); $paramsLog["WS_ROUTE_CASE_STATUS"] = strip_tags($e->getMessage()); $paramsRouteLogResult = "FAILED"; eprintln(" Failed: " . strip_tags($e->getMessage()), "red"); } } else { $paramsLog["WS_CREATE_CASE_STATUS"] = strip_tags($result->message); $paramsLogResult = "FAILED"; eprintln(" Failed: " . $paramsLog["WS_CREATE_CASE_STATUS"], "red"); } } } else { //Invalid user or bad password eprintln(" " . $result->message, "red"); } if ($paramsLogResult == "SUCCESS" && $paramsRouteLogResult == "SUCCESS") { $paramsLog["RESULT"] = "SUCCESS"; } else { $paramsLog["RESULT"] = "FAILED"; } $newCaseLog = new LogCasesScheduler(); $newCaseLog->saveLogParameters($paramsLog); $newCaseLog->save(); //Update the SCH_TIME_NEXT_RUN field switch ($caseSchedulerOption) { case 1: case 2: case 3: //Daily //Weekly //Monthly if ($caseSchedulerTimeNextRunNew == "") { list($value, $daysPerformTask, $weeks, $startDay, $months) = $this->getVariablesFromRecord($row); $caseSchedulerTimeNextRunNew = $this->updateNextRun($caseSchedulerOption, $value, $caseSchedulerTimeNextRun, $daysPerformTask, $weeks, $startDay, $months); } if ($row["SCH_END_DATE"] . "" != "" && strtotime($row["SCH_END_DATE"]) < strtotime($caseSchedulerTimeNextRunNew)) { $result = $this->update(array( "SCH_UID" => $caseSchedulerUid, "SCH_LAST_STATE" => $row["SCH_STATE"], "SCH_LAST_RUN_TIME" => $caseSchedulerTimeNextRun, "SCH_STATE" => "PROCESSED" )); } else { $this->updateDate($caseSchedulerUid, $caseSchedulerTimeNextRunNew, $caseSchedulerTimeNextRun); } break; case 4: //One time only $result = $this->update(array( "SCH_UID" => $caseSchedulerUid, "SCH_LAST_STATE" => $row["SCH_STATE"], "SCH_LAST_RUN_TIME" => $caseSchedulerTimeNextRun, "SCH_STATE" => "PROCESSED" )); break; case 5: //Every if ($caseSchedulerTimeNextRunNew == "") { $caseSchedulerTimeNextRunNew = date("Y-m-d H:i:s", $timeDate + round(floatval($row["SCH_REPEAT_EVERY"]) * 60 * 60)); } $this->updateDate($caseSchedulerUid, $caseSchedulerTimeNextRunNew, $caseSchedulerTimeNextRun); break; } } } } catch (Exception $e) { throw $e; } }
</tr> </thead> <tbody> <?php //deshabilitar cache ini_set("soap.wsdl_cache_enabled", "0"); //establecer parametros de envío $params = array("custodio" => "0001"); try { //iniciar cliente soap //escribir la dirección donde se encuentra el servicio $client = new SoapClient("http://localhost/movile/servicio.php?wsdl"); //llamar a la función para consultar usuarios //y guardar el resultado $result = $client->__SoapCall("consultaVehiculos", $params); //Contar la cantidad de elemenos del arreglo recibido $limite = count($result); //Imprimir la lista de usuarios recibida for ($i = 0; $i < $limite; $i++) { $MATCODIGO = $result[$i]->MATCODIGO; $MATNOMBRE = $result[$i]->MATNOMBRE; ?> <tr> <td><?php echo $MATCODIGO; ?> </td> <td><?php echo $MATNOMBRE; ?>