@Apurva
We use the following on V8 and I assume that it would still operate properly on more current versions. The following is a very simple example (untested) of the technique that we use.
1. A Client specific version of a Variable object is placed in each client with its contents set appropriately. They are distinguished by suffixing the Client number on their name.
SETTINGS_CLIENT1:
Validity keyword Value
WIN_HOST agent
WIN_LOGIN login_object
WORKING_DIRECTORY d:\some\path\to\command
2. An Include object is used in all Job objects that is responsible for setting the various attributes.
SET_SETTINGS:
:SET &client = SYS_ACT_CLIENT()
:SET &client = FORMAT(&client)
:SET &settings = "SETTINGS_CLIENT&client"
:SET &the_dir = GET_VAR(&settings,WORKING_DIRECTORY)
:SET &the_host = GET_VAR(&settings,WIN_HOST)
:SET &the_login = GET_VAR(&settings,WIN_LOGIN)
:PUT_ATT HOST = &the_host
:PUT_ATT LOGIN = &the_login
3. Each Job object has the following in its Pre Process tab -
:INC SET_SETTINGS
4. Each Job object has the following in its Process tab -
&the_dir\shell.name.ext
In actuality the Process tab also contains an Include that determines the shell command name and parameters to pass, if any, based upon standardized criteria.
Hope this helps.