Quintiq file version 2.0
|
#parent: #root
|
Method PTF_StartClient (
|
String user,
|
String password,
|
String clienttype,
|
String project,
|
String view,
|
String customargumentline,
|
Number minstartclientdelayinsecond,
|
Number maxstartclientdelayinsecond,
|
String dataset,
|
String datasetfolder,
|
String datasetkind
|
) id:Method_LibPTF_pnlTestController_PTF_StartClient
|
{
|
#keys: '[105690.0.145844532]'
|
Body:
|
[*
|
// Construct the commandline for starting a Client with the parameters entered by user
|
argument := "/autostart/license=ReadWrite";
|
clientexecutable := "";
|
fullpathclientexecutable := "";
|
|
if( project.Length() > 0 )
|
{
|
argument := argument + '/project="' + project + '"';
|
}
|
|
if( user.Length() > 0 )
|
{
|
argument := argument + '/user="' + user + '"';
|
}
|
|
if( password.Length() > 0 )
|
{
|
argument := argument + '/password="' + password + '"';
|
}
|
|
if( view.Length() > 0 )
|
{
|
argument := argument + '/view="' + view + '"';
|
}
|
|
// Replacement values to bypass batch file reserved words
|
argument := argument.ReplaceAll( '/', '@' );
|
|
// Dataset folder adjustment
|
datasetfolder := datasetfolder.TrimBoth();
|
missingbeginslash := datasetfolder.SubString( 0, 1 ) <> "/"
|
extraendslash := datasetfolder.RestString( datasetfolder.Length() -1 ) = "/"
|
if( missingbeginslash )
|
{
|
datasetfolder := "/" + datasetfolder;
|
}
|
if( extraendslash )
|
{
|
datasetfolder := datasetfolder.SubString( 0, datasetfolder.Length() - 1 );
|
}
|
|
selectdataset := '/selectdataset="' + datasetkind + ':' + datasetfolder + '/' + dataset + '"';
|
argument := argument + selectdataset;
|
|
if( customargumentline.Length() > 0 )
|
{
|
customargs := customargumentline.Tokenize( " " );
|
customarguments := "";
|
|
traverse( customargs, Elements, customarg )
|
{
|
customarguments := customarguments + customarg.TrimBoth();
|
}
|
|
argument := argument + customarguments;
|
}
|
|
if( clienttype = LibPTF_Util::ClientType_ThinClient() )
|
{
|
clientexecutable := LibPTF_Util::ExecutableName_ThinClient();
|
}
|
else if( clienttype = LibPTF_Util::ClientType_FatClient() )
|
{
|
clientexecutable := LibPTF_Util::ExecutableName_FatClient();
|
}
|
fullpathclientexecutable := '"' + this.PTF_GetClientExecutablePath() + clientexecutable + '"';
|
|
// The following are replaced with some other values because they are
|
// reserved words in the batch file when exectuted from command windows.
|
// The corresponding batch file will make the necessary conversion when executes
|
argument := argument.ReplaceAll( '=', '$' );
|
argument := argument.ReplaceAll( ' ', '\%20' );
|
argument := argument.ReplaceAll( '"', '#' );
|
argument := argument.ReplaceAll( ">", "gtsign" );
|
argument := argument.ReplaceAll( "<", "ltsign" );
|
|
fullpathclientexecutable := fullpathclientexecutable.ReplaceAll( ' ', '\%20' );
|
fullpathclientexecutable := fullpathclientexecutable.ReplaceAll( '"', '#' );
|
|
// Get random delay between the start client delay range
|
randomdelayinsecond := Number::Random( minstartclientdelayinsecond, maxstartclientdelayinsecond );
|
|
|
command := 'cmd /c "' + this.PTF_GetBatchFileFullPathForKickStartClient() + '" '
|
+ argument
|
+ ',' + [String]randomdelayinsecond
|
+ ',' + fullpathclientexecutable;
|
|
Application.ExecuteCommand( command );
|
*]
|
}
|