Query Function
The Example Sites - Corporate Website example supports creating new or editing existing Specifications through a URL query function.
The Query Function requires the term /query?and then specific parameters and parameter values appending to the URL of the website, for example:
https://webapi.driveworkslive.com/example-sites/corporate-website/query?run=Demo-Cupboard
Authentication
For security reasons authentication (Login) credentials cannot be passed into the Query Function.
To allow different logins for different situations a sharedGroupAlias for each situation, is created in the DriveWorksConfigUser.xml file.
This is a server side configuration file which is never served to the client (browser) so all settings are secure.
See Integration Theme Settings, Shared Group - Multiple Connections for more information.
Once applied, the required sharedGroupAlias is selected by using the alias parameter in the Query Function.
Permissions
Certain parameters of the Query Function have been blocked by default for security reasons.
Constants and Macros must be explicity set in the DriveWorksConfigUser.xml file.
This is a server side configuration file which is never served to the client (browser) so all settings are secure.
See Integration Theme Settings - Permissions for more information.
Query Function Parameters
The available parameters are:
- run
Will create a new Specification from the given Project name.
For example:
/query?run=MyProject
- driveapp
Will run the given DriveApp Alias name.
For example:
/query?driveapp=MyDriveApp
- specification
Will edit the given Specification ID.
For example:
/query?specification=123
- transition
Combine with the specification parameter to run the given Transition name.
For example:
/query?specification=123&transition=Edit
- operation
Combine with the specification parameter to run the given Operation name.
For example:
/query?specification=123&operation=CreateReports
- alias
The name of the Group alias as specified in the DriveWorksConfigUser.xml. Combine with the run parameter to create a specification in another Group.
This is required if the defaultGroupAlias has not been set in the config.js file. See Query Function Settings for more information.
This is also required when multiple Groups or access points to the same Group are possible.
For example:
/query?alias=DistributorAlias&run=MyProject
- DWConstantNAME
DWConstant is case sensitive.
This must be declared in the URL exactly as above.
Sets the constant to the value specified. Combine with the run parameter to set a constant value in a new Specification.
For example:
/query?run=MyProject&DWConstantName=1111
- DWMacroNAME
DWMacro is case sensitive.
This must be declared in the URL exactly as above.
Will run the given Macro name and passes in the argument (optional). Combine with the run parameter to run a Macro in a new Specification.
For example:
/query?run=MyProject&DWMacroName=Argument
When characters used in the structure of the URL are required as parameters or values to be passed into a Specification, the character must be encoded.
Common characters and their URL-encoding equivalent are listed below:
ACCII | URL Encoding |
---|
space | %20 |
& | %26 |
? | %3F |
For a complete list of URL Encoding References, please refer to HTML URL Encoding Reference (W3 Schools).
For example when the value My Company is required to be passed into a Constant named DWConstantCompanyName, the Query Function URL will look like:
/query?run=MyProject&DWConstantCompanyName=My%20Company
Query Function Settings
Settings for the Query Function are applied in the config.js file for the Corporate Website example.
Open the config.js in an editor and locate the code below:
// (Optional) Configure the query function
// Enter a default Group Alias and/or Project name
to be used (when none are passed in the query string)
// Choose how sessions are handled
query: {
defaultGroupAlias: "",
defaultProjectName: "",
autoLogin: false,
requireNewSession: false,
requireExactAlias: false,
},
Where the following settings can be applied:
- defaultGroupAlias
A default Group Alias, so if one is not provided in the URL a session will be created with these credentials.
If this is not set the alias parameter must be declared in the Query Function URL. See Query Function Parameters for more information.
- defaultProjectName
A Project to run if one is not specified, this will create a new Specification with this Project.
- autoLogin
If a session is not currently active, the Integration Theme will login to the Group with the credentials in the
Group Alias.
- requireNewSession
(true or false) will force a new session every time a URL is run, this will force the session to be change to the
credentials passed into the Integration Theme via the Group Alias.
- requireExactAlias
(true or false) This setting will ensure that the active session is running as the same Alias that has been
provided. If a session is active an the Alias provided does not match the query will not be run.