public function JobLog($JobName, $JobUser, $JobNumber, $direction = 'L')
    {
        if ($JobName=='' ||$JobUser=='' || $JobNumber == '') {
            return false;
        }

        $this->TmpUserSpace = new TmpUserSpace($this->ToolkitSrvObj, $this->TmpLib);
        $FullUSName = $this->TmpUserSpace->getUSFullName();
        $InputArray[]=$this->ToolkitSrvObj->AddParameterChar('input', 20, 'USER SPACE NAME', 'userspacename', $FullUSName);
        $InputArray[]=$this->ToolkitSrvObj->AddParameterChar('input', 10, 'JOB NAME', 'jobname', $JobName);
        $InputArray[]=$this->ToolkitSrvObj->AddParameterChar('input', 10, 'USER NAME', 'username', $JobUser);
        //L from the last log message to the first one
        //from the first message to the last one
        $dir = 'L';

        if (strtoupper($direction) == "N") {
            $dir = $direction;
        }

        $InputArray[]=$this->ToolkitSrvObj->AddParameterChar('input', 6, 'Job Number', 'jobnumber', $JobNumber);
        //From the Last - "L"
        $InputArray[]=$this->ToolkitSrvObj->AddParameterChar('input', 1, 'Direction', 'direction', $dir);
        $ret_code ='0';
        $InputArray[]=$this->ToolkitSrvObj->AddParameterChar('both', 1, 'retcode', 'retcode', $ret_code);

        $OutputArray = $this->ToolkitSrvObj->PgmCall(ZSTOOLKITPGM, $this->ToolkitSrvObj->getOption('HelperLib'), $InputArray, NULL, array('func'=>'JOBLOGINFO'));
        if (isset($OutputArray['io_param']['retcode'])) {
            //may be authorization problem
            if ($OutputArray['io_param']['retcode'] == '1') {
                //No data created in US.
                return false;
            }
        }

        sleep(1);

        $JobLogRows = $this->TmpUserSpace->ReadUserSpace(1, $this->TmpUserSpace->RetrieveUserSpaceSize());
        $this->TmpUserSpace->DeleteUserSpace();
        unset ($this->TmpUserSpace);

        if (trim($JobLogRows) != '') {
            $logArray = str_split($JobLogRows, $this->JOBLOG_RECORD_SIZE);
            return $logArray;
        } else {
            return false;
        }
    }