The Scripted Gateway adapter implements actions as batch files that execute on the gateway. These scripts must be written to run on the version of Windows that has been installed on the machine running the scripts. The same account that runs the Gateway also runs the scripts.
Scripts should follow Windows conventions and exit with a return code of 0, which indicates success. Returning a non-zero code (chosen by the script writer) indicates the operation may not have been correctly completed.
Scripts may output text to the Windows standard error or standard output stream. Depending on the nature of the operation, the context of the operation, and the type of failure, the text may be displayed in the results for that operation.
For the getUser and getAllUsers operations, this text is parsed in the standard output stream to determine the attributes of each user.
Any account attribute defined in the Identity System Resource Attribute column of the schema map can be made available to the script by prefixing the account attribute with WSUSER_. For example, if an account attribute is named Full Name, the environment variable is named WSUSER_Full Name.
Adapter configuration settings can be passed with environment variables that begin with WSRSRC_. The most important variable is WSRSRC_Name, which defines the name of the adapter. If you are running the same script on different resources, this variable can be implemented to avoid maintaining multiple copies of scripts that do the same thing on different gateways.
The WSOBJ_ID and WSOBJ_NAME variables define the account ID and name, respectively. These variables are available to the Scripted Gateway adapter only.
The following example illustrates an example generated environment:
WSUSER_Emailemail@example.com WSUSER_First Name=JUnit WSUSER_Full Name=JUnit TestUser WSUSER_Last Name=TestUser WSUSER_User ID=USER5647 WSUSER_ws_action_type=WindowsBatch WSOBJ_ID=testuser WSOBJ_NAME=testuser WSRSRC_NAME=Scripted Gateway WSRSRC_CLASS=com.waveset.adapter.ScriptedGatewayResourceAdapter WSRSRC_Host=localhost WSRSRC_List Objects Timeout=900000 WSRSRC_Request Timeout=30000 WSRSRC_TCP Port=9278 WSRSRC_connectionLimit=10
Generally, if an attribute’s value is null, the corresponding environment variable may be omitted instead of having a value of a zero-length string.
For more information about the variables available in a script, see Chapter 50, Adding Actions to Resources.