Quintiq file version 2.0 #parent: #root Method PTF_CheckClientStatusByScript ( LibPTF_TestScript script, Number executedsessions, Number reqsessions, output Number executingsessions_o, output String endtime_o, output Boolean alldone_o ) id:Method_LibPTF_pnlTestController_PTF_CheckClientStatusByScript { #keys: '[104342.0.777090175]' Body: [* // Checks the PTF execution status of a single script and perform some post-PTF execution routine for individual script when the script has been executed successfully columnDelimiter := LibPTF_Util::PTFLogFileColumnDelimiter(); user := script.User(); resultfiles := OS::ScanDirectory( this.PTF_GetResultLogPath(), LibPTF::FileExtEndResult() ); resultfilecount := this.PTF_GetFileCountFromResultLog( user, LibPTF::FileExtEndResult() ) tempfilecount := this.PTF_GetFileCountFromResultLog( user, LibPTF::FileExtTempResult() ) timeoutbooting := executedsessions - ( resultfilecount + tempfilecount ); executingsessions_o := timeoutbooting + tempfilecount; if( resultfilecount < reqsessions ) { alldone_o := false; if( executedsessions > 0 ) { endtime_o := this.PTF_GetCurrentDatetime(); } } else { scriptfullpath := this.PTF_GetScriptPath() + script.User() + "_" + script.Project() + LibPTF::FileExtRunningScript(); // Check if UI logging is required if( script.LoggingOptions() = "Full" and OS::IsFile( scriptfullpath ) ) { // Create execution result and result line object traverse( resultfiles, Elements, result ) { fileuser := ""; clientid := ""; this.PTF_GetInfoFromResultLogPath( fileuser, clientid, result ); if( fileuser.ToUpper() = user.ToUpper() ) { file := OSFile::Construct(); file.Open( result, "Read", true ); scriptresult := file.ReadTextToEnd(); file.Close(); totalduration := Duration::Zero(); if( scriptresult.TrimBoth().Length() > 0 ) { totalduration := [Duration]this.PTF_GetTotalDurationFromResultLines( scriptresult ) } execresult := LibPTF_ExecResult::Create( script, [Number]clientid, totalduration , fileuser ); traverse( scriptresult.Tokenize( String::NewLine() ), Elements, line ) { if( line.Length() > 0 ) { linebycol := line.Tokenize( columnDelimiter ); starttime := linebycol.Element( 1 ).TrimBoth(); endtime := linebycol.Element( 2 ).TrimBoth(); overallduration := [Number]linebycol.Element( 3 ).TrimBoth(); actualduration := [Number]linebycol.Element( 4 ).TrimBoth(); action := linebycol.Element( 5 ); isRunSuccess := [Boolean]linebycol.Element( 6 ).TrimBoth(); information := linebycol.Element( 7 ).TrimBoth(); LibPTF_ExecResultLine::Create( execresult, action, overallduration, actualduration, this.PTF_ConvertStringToDateTime( starttime ), this.PTF_ConvertStringToDateTime( endtime ), isRunSuccess, information ); } } } // end if of fileuser check } // end of traversing result file logs } // end if of logging option // SUCCESSFULLY finishes the test script execution, REMOVE QRUNSCRIPT files OS::RemoveFile( scriptfullpath ); } // end of else block *] }