/** * @param string $KeyOrder * @param int $KeyLength * @param string $KeyData * @return bool */ public function ClearDQ($KeyOrder = '', $KeyLength = 0, $KeyData = '') { //QCLRDTAQ $params[] = $this->Toolkit->AddParameterChar('in', 10, 'dqname', 'dqname', $this->DataQueueName); $params[] = $this->Toolkit->AddParameterChar('in', 10, 'dqlib', 'dqlib', $this->DataQueueLib); if ($KeyLength > 0) { $params[] = $this->Toolkit->AddParameterChar('in', 2, 'keydataorder', 'keydataorder', $KeyOrder); $params[] = $this->Toolkit->AddParameterPackDec('in', 3, 0, 'keydatalen', 'keydatalen', $KeyLength); $params[] = $this->Toolkit->AddParameterChar('in', (int) $KeyLength, 'keydata', 'keydata', $KeyData); //$params[] = array('ds'=>$this->Toolkit->GenerateErrorParameter()); $ds = $this->Toolkit->GenerateErrorParameter(); $params[] = Toolkit::AddDataStruct($ds); } $retArr = $this->Toolkit->PgmCall('QCLRDTAQ', 'QSYS', $params); if (isset($retArr['exceptId']) && strcmp($retArr['exceptId'], '0000000')) { $this->CPFErr = $retArr['exceptId']; $this->ErrMessage = "Clear Data Queue failed. Error: {$this->CPFErr}"; return false; } return true; }
/** * if receiveDescription given, readlen = 0 * * @param int $frompos * @param int $readlen * @param null $receiveStructure * @return bool * @throws \Exception */ public function ReadUserSpace($frompos = 1, $readlen = 0, $receiveStructure = null) { //how to see via green screen DSPF STMF('/QSYS.lib/qgpl.lib/ZS14371311.usrspc') $dataRead = ' '; $params[] = Toolkit::AddParameterChar('in', 20, "User space name and library", 'userspacename', $this->getUSFullName()); $params[] = Toolkit::AddParameterInt32('in', "From position", 'position_from', $frompos); $receiverVarName = 'receiverdata'; if ($receiveStructure) { // must be a ProgramParameter if (!is_object($receiveStructure)) { throw new \Exception('Parameter 3 passed to ReadUserSpace must be a ProgramParameter object.'); } $labelForSizeOfInputData = 'dssize'; // $params[] = Toolkit::AddParameterSize("Length of data", 'dataLen', $labelForSizeOfInputData); // wrap simple ds around receive structure so we can assign a varname to retrieve later. $receiveDs[] = $receiveStructure; $params[] = Toolkit::AddDataStruct($receiveDs, $receiverVarName, 0, '', false, $labelForSizeOfInputData); } else { // regular readlen, no special structure or size labels. $params[] = Toolkit::AddParameterInt32('in', "Size of data", 'datasize', $readlen); $params[] = Toolkit::AddParameterChar('out', $readlen, $receiverVarName, $receiverVarName, $receiveStructure); } $params[] = Toolkit::AddErrorDataStruct(); $retPgmArr = $this->ToolkitSrvObj->PgmCall('QUSRTVUS', 'QSYS', $params); if ($this->ToolkitSrvObj->verify_CPFError($retPgmArr, "Read user space failed. Error:")) { return false; } $retArr = $retPgmArr['io_param']; // return our receiverstructure. return $retArr[$receiverVarName]; }