Related Topics
Administration Custom Variables
Process Director 's Administrative settings can be customized by editing the custom variables in this section.
Process Director advances processes and send reminders based on recurring activity checks that occur on the system. These activity checks occur when certain process events are initiated, when the Activity Check page is run, or at minimum intervals specified by default Custom Variable settings.
When the activity check page runs, Process Director will determine which timer processing functions need to occur. (There are a few things like GOALS that will be evaluated EVERY time the activity check runs because they are low-impact.) You can control the timer functions by setting custom variables in the vars.cs customization file. These timer functions are NOT controlled by the frequency that the activity_check.aspx page is scheduled. The following configuration variables control the amount of time to wait between different types of timer processing. The following Custom Variables control the timing of advancing process steps and reminders that are time based:
- TimerSecondsCheckWfAdvance: Checks Workflows to advance time-based steps. The default timing is 6 hours.
- TimerSecondsCheckWfReminders: Checks Workflows to send time-based reminders. The default timing is 1 hour.
- TimerSecondsCheckProjAdvance: Checks Process Timelines to advance time-based Activities. The default timing is 6 hours.
- TimerSecondsCheckProjReminders: Checks Process Timelines to send time-based reminders. The default timing is 1 hour.
For Process Director v5.39 and below, the default timings for TimerSecondsCheckWfAdvance and TimerSecondsCheckProjAdvance are set to 2 hours. This was changed in newer versions as the shorter time limits could use excessive system resources on very active systems.
Additionally, the fDisableUserPrediction Custom Variable will, when set to "false", enable more accurate prediction of activity times based on each specific user that has been assigned to an activity. This setting will consume more system resources when being used, so the default value for this variable is "true". When set to "true", prediction will still occur, but with less predictive accuracy.
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Default to 6 hours between checking projects for advance
// AND prediction calculations (e.g. completed/start when
// conditions, due dates, etc.)
bp.Vars.TimerSecondsCheckProjAdvance = 60 * 60 * 6;
// default to 1 hour between checking projects for email reminders
bp.Vars.TimerSecondsCheckProjReminders = 60 * 60 * 1;
// Less accurate user predictions for task completion,
// but fewer system resources used
bp.Vars.fDisableUserPrediction = true;
}
The AllowedExportLocations variable is a list of strings that contains all of the folder locations to where a file export via Knowledge View, Custom Task or other file location export is allowed.
For instance, this variable enables you to control the locations to which a KView can export documents when called via a URL. Calling a Knowledge View via URL will accept a URL Parameter named exportname that enables the Knowledge View to export a file to a specified file path/file name. Similarly, a file export from a Custom Task will usually provide a file path property to specify an export location for an exported document attachment.
To prevent users from exporting files to unwanted locations, or overwriting existing files, this variable MUST be set. Any attempt to export a file to any folder not listed in this variable will fail. The locations listed in this system variable will be treated as parent-level folders, which means that you can write documents to any location or subfolder below the specified folder location.
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Create List values
List<string> MyExportLocations = new List<string>();
MyExportLocations.Add(@"C:\Documents");
MyExportLocations.Add(@"C:\Files\Images");
// Apply List values to the Custom Variable
bp.Vars.AllowedExportLocations = MyExportLocations;
}
This variable, when set to "false", will disable the migration to AES encryption when upgrading to Process Director v5.44.700 or higher from v5.44.600 or lower. The default value for this variable is "true".
The encryption system used by Process Director prior to v.5.44.600 has been deprecated. Setting this value to "false" will prevent encrypted fields from being upgraded to full AES encryption, and existing encrypted fields will use the deprecated encryption system, which is being replaced by AES.
When this value is set to "false", though migration of existing encrypted values won't occur on upgrade, new encrypted values will still be created using AES, e.g., submitting a new form instance with encrypted form controls.
Any time data that uses the deprecated encryption is accessed, an ERROR log message will be generated as a reminder that migration hasn't yet been performed (I.e., "ERROR: Deprecated encrypted value detected, please upgrade using Administration pages."). There won't be any data-loss or corruption, as the system will recognize both AES and deprecated encryption.
Example
public override void PreSetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Turn off AES Encryption Migration
bp.Vars.fEnableEncryptionMigration= false;
}
This Custom Variable, when set to "true", enables you to call the custom functions called UserDisplayString()
and UserDisplayString2()
in the vars.cs.ascx Customization File. These functions enable you to control what the display string looks like for a user in the product.
The UserDisplayString()
function sets the display string universally in the product.
The UserDisplayString2()
function returns the Display string to the location/object from which it is being called, to give you the flexibility to only change the display string for the user in a specific place instead of in the whole product.
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Enables you to call the UserDisplayString and UserDisplayString2 functions.
bp.Vars.fAllowCustomUserString = true;
}
This variable, when set to true, enables the use of Windows login security. The default value for this variable is "false", and is set in the XSD file.
You usually don't turn on this feature on by changing the value of this System Variable. Instead, this feature is enabled in the product in the User Authentication settings by setting the Enable Windows Authentication dropdown to "True" .Windows login security can't be implemented until the Enable Windows Authentication setting is set to "True".
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Windows authentication is disabled
bp.Vars.fAuthWindows = false;
}
This variable, when set to true, enables the use of NTLM integration. The default value for this variable is "true", and is set in the XSD file.
While this variable is set to "true" by default, Windows Integrated Security is set to "false' by default. You usually turn on this feature in the product in the User Authentication settings by setting the Enable Windows Authentication dropdown to "True". Even though the fAuthWindowsIntegrated variable is set to true by default, windows login security can't be implemented until the Enable Windows Authentication setting is set to "true".
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// NTLM Integration is disabled.
bp.Vars.fAuthWindowsIntegrated = false;
}
This variable enables you to override whether daylight savings is used in the time zone.
Example
public override void PreSetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Use CST for everyone
bp.Vars.sTimeZoneID = "Pacific Standard Time";
// Do not use daylight savings time adjustments
bp.Vars.fAutoDST = false;
}
This variable, when set to "true", will disable application level caching in the Knowledge Views when using a Load Balanced system. The default value for this variable is "false".
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Disable application-level caching for load balancing
bp.Vars.fDisableKViewAppCaches = true;
}
This variable, when set to "true", will disable the time-consuming update of the sValueSearch field that takes place during some upgrades. This option enables the system to be updated and work without using the sValueSearch field. Upgrades that require this field update can take up to 24 hours. The sValueSearch field was added to the database to significantly improve search performance. It must be populated, however, which can be a very time-consuming process. This population, by default, happens during the upgrade cycle, which can cause the upgrade to take a very long time.
You can, when this value is set to "true", skip the field update during the upgrade, and populate it later using the Troubleshooting section in the IT Admin area in DEBUG mode. There is a link to update the search value column in tblFormData. This command could take 24 hours to run, depending on the speed of your database. It can be run and re-run and, each time, will pickup where it left off, until the entire update is complete. This feature enables you to perform the update during non-work hours. Once the update has no more records to process you can remove this variable setting from the vars file to have the searches start using the new sValueSearch column.
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Disable the update to the sValueSearch field
bp.Vars.fDisable_sValueSearch = true;
}
This variable enables Process Director to implement a "Deny" permissions model, so that users can be specifically denied access to objects. In most cases, the default Process Director permissions model is adequately hardened, so this variable is set to "false" by default. There are, however, some use cases for adding specific denial records. Setting this variable to "true" will turn on the denial permissions model, but the extra permissions checking that the denial model requires may have some impact on system performance.
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// This will enable denial permissions.
bp.Vars.fEnableDenyPermissions = true;
}
This variable, when set to "true" enables users to download the form fields in an excel file, from a link on the Properties tab of the Form Definition. The default value is "false".
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Allow form field downloads in Excel.
bp.Vars.fEnableFormFieldDownload = true;
}
This variable, when set to "true", enables custom forms to pass JavaScript to be executed after a form completes. The default value for this variable is "false". For users of Process Director v4.54 and below, this variable must be set to "true" to enable the Copy Form Data Custom Task to close one form and open another, when configured to do so.
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// This will enable custom forms to pass JavaScript to be executed
// after the form completes.
Vars.fEnableJSURL = true;
}
This variable, when set to "true", disables the Group Name wildcard functionality for ShowAttach controls. The default value for this variable is "false".
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Disable wildcards for ShowAttach control Group Names
bp.Vars.fEnableOldShowAttach = true;
}
This Boolean variable, when set to "true," enables Process Director to screen for Cross-Site Request Forgery (CSRF) by ensuring that the HTTP Referrer header is valid. CSRF is a type of malicious exploit of a website where unauthorized commands are transmitted from a user that the website trusts. The default value for this variable is "false".
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// HTML header validation to protect against CSRF
Vars.fEnableReferrerProtection = true;
}
This variable, when set to "true", will remove all saved form instances for a user that is deleted or disabled. The default value for this variable is "false".
Caution should be used when implementing this feature, as removing or disabling a user will delete all historical form data for the user.
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Remove form instances for deleted/disabled users
bp.Vars.fRemoveSavedInstForOldUsers = true;
}
This variable , when set to "true" will implement Shared Delegation for all processes. The default value for this variable is "false".
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// This will enable shared delegation for all processes.
bp.Vars.fSharedDelegationAllProcesses = true;
}
This string variable enables customers who have licensed the offline Appenate server to configure the custom URL of their mobile server for use by Custom Tasks and other features. This feature is unavailable for versions prior to Process Director v5.45, and who have not also licensed the offline mobile feature.
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Mobile App server URL
bp.Vars.sMobileWebServerURL = "http://mobile.bplogix.com";
}
These variables allow you to set the system into a test mode. In this mode, Windows Integrated authentication is disabled. This mode enables anyone to log into the server without a password. Use this setting with caution. It should only be used on non-production systems to test processes and Forms.
For more information, see the Test Server Methodology topic in the System Administrator's Guide.
Example
public override void PreSetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// ****************************************
// SET THE TEST USER FOR TEST MODE
// Turn test mode on
bp.Vars.fTestMode = true;
// Set the test email user
bp.Vars.TestUserEmails = User.GetUserByUserID(bp, "my_test_id");
// ===OR===
// ****************************************
// SET THE TEST USER EMAIL ADDRESS FOR TEST MODE
// Turn test mode on
bp.Vars.fTestMode = true;
// Set the test email user
bp.Vars.TestUserEmailAddress = "username@domain.com";
}
This variable, when set to "true", will cause the users session GUID to be cleared any time a new login occurs. This setting will automatically relog a user who signs in using same user ID, even if that login is still active on the same computer in a different browser window. Relogging the user will clear all existing session data, including session variables, and will initiate a new session for the user.
This variable is configured in the PreSetSystemVars()
function.
Example
public override void PreSetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// This will clear an existing users active session if the user logs in again
bp.Vars.fUseNewLoginSessionGUID = true;
}
This string variable enables you to add additional cultures to process director. In most cases, each additional culture will have a resource file for localizing strings for different cultures, as described in the Localization topic of the Developer's Guide. Once the cultures have been added, they'll appear in the Culture property dropdown controls that appear in each user's profile, and in other places.
Parameters
- pName: The string name of the culture, e.g. "Spanish"
- pValue: The string value used to identify the culture, in one of the standard culture formats, e.g. "es". Process Director will use this value to identify the Culture name used on the name of the RESX file, e.g., "strings.es.resx".
Example
public override void PreSetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Add Cultures to process Director
bp.Vars.Locales.Add(new NameValue("Spanish", "es"));
bp.Vars.Locales.Add(new NameValue("German", "de"));
}
If a Process Timeline instance is determined to be in an endless loop condition, the problem activity will be placed into an error state. This detection logic to define an endless loop is controlled through the nMaxActivityStarts, nMaxActivityStartsInLastSecs, and nTimelineLoopCountStarts variables.
This variable sets how many times a step restarts in the number of seconds set in the nMaxActivityStartsInLastSecs variable before considering it in a loop. The default value is 100.
Example
public override void SetSystemVars (BPLogix.WorkflowDirector.SDK.bp bp)
{
bp.Vars.nMaxActivityStarts = 100;
}
If a Process Timeline instance is determined to be in an endless loop condition, the problem activity will be placed into an error state. This detection logic to define an endless loop is controlled through the nMaxActivityStarts, nMaxActivityStartsInLastSecs, and nTimelineLoopCountStarts variables.
This variable sets how many seconds to use in loop calculations performed by the nMaxActivityStarts variable. The default is 60.
Example
public override void SetSystemVars (BPLogix.WorkflowDirector.SDK.bp bp)
{
bp.Vars.nMaxActivityStartsInLastSecs = 60;
}
If a Process Timeline instance is determined to be in an endless loop condition, the problem activity will be placed into an error state. This detection logic to define an endless loop is controlled through the nMaxActivityStarts, nMaxActivityStartsInLastSecs, and nTimelineLoopCountStarts variables.
This variable sets the number of activities that may be started in one pass of a process. The default is 100.
Example
public override void SetSystemVars (BPLogix.WorkflowDirector.SDK.bp bp)
{
// Set max number of allowable loops to 50
bp.Vars.nTimelineLoopCountStarts = 50;
}
IIS in Windows 2008 R2 and higher requires a path to be configured to the mail pickup directory when using the local SMTP server to send email. This is set using the sPickupDirectoryLocation custom variable. For Process Director v5.31 and higher, Process Director defaults this pickup directory to the Windows default of C:\Inetpub\mailroot\Pickup\ so it only needs to be set when it is in a different location. Additionally, the setting of this variable won't force emails to use the local SMTP server when an SMTP Host is specified in the installation settings.
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Change the mail pickup directory to a non-default location.
bp.Vars.sPickupDirectoryLocation = "C:\nonDefault\directory";
}
This variable enables you to set the default time zone for the server and for all users. A time zone configured in a user profile will override this variable for that user. This string should be set to the Time Zone ID specified by the .NET environment. Leave this variable null to use the system time zone.
Example
public override void PreSetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// Use CST for everyone
bp.Vars.sTimeZoneID = "Central Standard Time";
// Automatically adjust for daylight savings
bp.Vars.fAutoDST = true;
}
The list below shows the possible time zone values as defined by .NET:
Morocco Standard Time |
GMT Standard Time |
Romance Standard Time |
W. Europe Standard Time |
Central Europe Standard Time |
Namibia Standard Time |
Central European Standard Time |
W. Central Africa Standard Time |
Middle East Standard Time |
Jordan Standard Time |
GTB Standard Time |
South Africa Standard Time |
Egypt Standard Time |
Syria Standard Time |
E. Europe Standard Time |
FLE Standard Time |
Israel Standard Time |
Russian Standard Time |
Arabic Standard Time |
Arab Standard Time |
Arabian Standard Time |
E. Africa Standard Time |
Iran Standard Time |
Georgian Standard Time |
Azerbaijan Standard Time |
Mauritius Standard Time |
Ekaterinburg Standard Time |
Caucasus Standard Time |
Afghanistan Standard Time |
India Standard Time |
Pakistan Standard Time |
West Asia Standard Time |
Central Asia Standard Time |
Sri Lanka Standard Time |
Nepal Standard Time |
Myanmar Standard Time |
Bangladesh Standard Time |
N. Central Asia Standard Time |
China Standard Time |
SE Asia Standard Time |
North Asia Standard Time |
W. Australia Standard Time |
North Asia East Standard Time |
Singapore Standard Time |
Tokyo Standard Time |
Taipei Standard Time |
Ulaanbaatar Standard Time |
Cen. Australia Standard Time |
Korea Standard Time |
Yakutsk Standard Time |
AUS Eastern Standard Time |
AUS Central Standard Time |
E. Australia Standard Time |
Vladivostok Standard Time |
West Pacific Standard Time |
Tasmania Standard Time |
New Zealand Standard Time |
Magadan Standard Time |
Central Pacific Standard Time |
Tonga Standard Time |
Fiji Standard Time |
Kamchatka Standard Time |
Mid-Atlantic Standard Time |
Azores Standard Time |
Cape Verde Standard Time |
SA Eastern Standard Time |
E. South America Standard Time |
Argentina Standard Time |
Newfoundland Standard Time |
Greenland Standard Time |
Montevideo Standard Time |
Central Brazilian Standard Time |
Paraguay Standard Time |
Atlantic Standard Time |
Venezuela Standard Time |
SA Western Standard Time |
Pacific SA Standard Time |
US Eastern Standard Time |
SA Pacific Standard Time |
Eastern Standard Time |
Central Standard Time (Mexico) |
Central America Standard Time |
Central Standard Time |
Mountain Standard Time (Mexico) |
Canada Central Standard Time |
US Mountain Standard Time |
Pacific Standard Time |
Mountain Standard Time |
Pacific Standard Time (Mexico) |
Samoa Standard Time |
Alaskan Standard Time |
Hawaiian Standard Time |
|
Dateline Standard Time |
Greenwich Standard Time |
|
This variable is used to set the optional list of local IP addresses on the server. This is used so that any browser request from one of the local IP addresses will be able to access all administration functions.
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// This will set the following IP addresses as "local" IP
// addresses for this multi-NIC server
bp.Vars.sLocalIPs = "10.1.5.14,10.1.5.32";
}
This variable enables you specify the IP addresses that are allowed to connect to a Process Director Server that has been placed in Test mode, via the fTestMode custom variable. This is required to allow access to a server that is in test mode. If accessing the server locally, the IP address doesn't need to be listed.
Example
public override void SetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// ****************************************
// SET THE TEST USER FOR TEST MODE
// Turn test mode on
bp.Vars.fTestMode = true;
// Set the IP Addresses allowed to access the server
bp.Vars.TestModeIPs.Add("10.1.1.1");
}
This variable enables you to route all process emails (task list emails, notifications, etc.) to a single email address. This system variable doesn't require a database connection. Use this setting with caution. It should only be used on non-production systems to test process and Forms. If your installation is configured to enable users to retrieve forgotten passwords, via the fAllowRetrievePassword custom variable, the TestUserEmailAddress won't receive password reset request emails.
Example
public override void PreSetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// ****************************************
// SET THE TEST USER FOR TEST MODE
// Turn test mode on
bp.Vars.fTestMode = true;
// Set test email
bp.Vars.TestUserEmailAddress = "demo@bplogix.com";
}
This variable enables you to route all process emails (task list emails, notifications, etc) to a single user. Use this setting with caution. It should only be used on non-production systems to test processes and Forms.
Example
public override void PreSetSystemVars(BPLogix.WorkflowDirector.SDK.bp bp)
{
// ****************************************
// SET THE TEST USER FOR TEST MODE
// Turn test mode on
bp.Vars.fTestMode = true;
// Specify user to use for test emails
bp.Vars.TestUserEmails = User.GetUserByUserID(bp, "my_test_id");
}
Documentation Feedback and Questions
If you notice some way that this document can be improved, we're happy to hear your suggestions. Similarly, if you can't find an answer you're looking for, ask it via feedback. Simply click on the button below to provide us with your feedback or ask a question. Please remember, though, that not every issue can be addressed through documentation. So, if you have a specific technical issue with Process Director, please open a support ticket.