Quintiq file version 2.0 #parent: #root Method PTF_CheckClientStatus ( structured[LibPTF_TestScript] testscripts, String str ) as String id:Method_LibPTF_pnlTestController_PTF_CheckClientStatus { #keys: '[102890.0.1871494620]' Body: [* // Checks the overall PTF execution status and perform some post-PTF execution routine when all the scripts has been executed successfully alldone := true; tracker := construct( Strings ); rowDelimiter := LibPTF_Util::StringListRowDelimiter(); columnDelimiter := LibPTF_Util::StringListColumnDelimiter(); rows := str.Tokenize( rowDelimiter ); traverse( rows, Elements, row ) { columns := row.Tokenize( columnDelimiter ); user := columns.Element( 0 ); reqsessions := [Number]columns.Element( 1 ); reqconsessions := [Number]columns.Element( 2 ); executedsessions := [Number]columns.Element( 3 ); executingsessions := [Number]columns.Element( 4 ); remainingsessions := [Number]columns.Element( 5 ); startime := columns.Element( 6 ); endtime := columns.Element( 7 ); // elapsedtime := columns.Element( 8 ); Not being used startoffset := columns.Element( 9 ); remainingsessions := reqsessions - executedsessions; script := select( testscripts, Elements, s, true, s.User() = user ); this.PTF_CheckClientStatusByScript( script, executedsessions, reqsessions, executingsessions, endtime, alldone ); columns.Flush(); columns.Add( user ) columns.Add( [String]reqsessions ); columns.Add( [String]reqconsessions ); columns.Add( [String]executedsessions ); columns.Add( [String]executingsessions ); columns.Add( [String]remainingsessions ); columns.Add( startime ); columns.Add( endtime ); columns.Add( this.PTF_GetTotalDuration( startime, endtime ) ); columns.Add( startoffset ); tracker.Add( columns.ToString( columnDelimiter ) ); } // After completed all test // clock the endtime time // disable timer if( alldone ) { this.gt().Enabled( false ); lblEndTime.Text( this.PTF_GetCurrentDatetime() ); // Only execute this if Python related execution is chosen to be executed if( this.chkExecutePythonScripts().Checked() ) { // Execute the PTF_MergeResult.bat to merge the result log files LibPTF::Execute( this.PTF_GetBatchFileFullPathForMergeResult() ); } if( this.PTF_IsCopyQTransLogs() ) { LibPTF::Execute( this.PTF_GetBatchFileFullPathForCollectQServerLog() ); } // Completed all test, remove batch file OS::RemoveFile( this.PTF_GetBatchFileFullPathForKickStartClient() ); OS::RemoveFile( this.PTF_GetBatchFileFullPathForStartClient() ); this.PTF_RunPostExecution(); //Logs a line in log file as an indication of the end of a PTF run LibPTF::LogRunEnded(); } return tracker.ToString( rowDelimiter ); *] }