new ArchVariableWorkitem(coreVariableViewModel)
Parameters:
| Name | Type | Description |
|---|---|---|
coreVariableViewModel |
object | ( Internal ) an Architect core variable view model. |
Extends
Members
-
readonly canAssignInitialValue :boolean
-
Returns whether or not this variable can have an initial value configured for it in the flow.
-
readonly canDelete :boolean
-
This returns whether this variable can be deleted.
- Overrides:
-
cannotDeleteReason :string
-
This property returns a reason string indicating why this variable cannot be deleted if the variable cannot be deleted. If it can be deleted, accessing this property returns nothing.
- Overrides:
-
readonly dataType :ArchDataType
-
Returns the Architect Scripting data type for this variable.
- Overrides:
-
description :string
-
The description of the variable. Calling the description setter with "", null or undefined are all treated as if you are setting the description string to undefined so if you were to call the description getter in that case, nothing is returned.
- Overrides:
-
readonly displayTypeName :string
-
Returns the display type name string 'ArchVariableWorkitem'.
-
readonly hasUsages :boolean
-
Returns whether or not the variable consumed by the flow.
- Overrides:
-
readonly id :string
-
The identifier string for this object.
- Overrides:
-
readonly idMayBeBlank :string
-
Returns whether or not the id property may be blank or undefined for this object. For example, the returned settings from
ArchMenu#settingsMenuwill have a blank identifier along with the settings returned fromArchMenu#settingsSpeechRec. Note that this is an extremely rare case.- Overrides:
- See:
-
readonly isArchBaseCoreObject :boolean
-
Returns true indicating that this is an ArchBaseCoreObject instance.
-
readonly isArchVariableWorkitem :boolean
-
Returns true indicating that this is an ArchVariableWorkitem instance.
-
readonly isFlowManagedVariable :boolean
-
Returns whether or not this variable is managed by the flow, i.e., not directly user creatable. These are automatically created based on other flow configuration.
-
readonly isFlowVariable :boolean
-
Returns whether or not this variable is a flow variable.
- Overrides:
-
isInput :boolean
-
Whether or not this variable is an input variable. Remember that the ability to be an input variable depends on whether the variable is a flow, state or task variable and what type of flow it is in. You can use the
ArchBaseVariable#settingsproperty to get at a settings object and access theArchVariableSettings#canSetIsInputto know whether or not it is valid to configure this property. Remember that if a variable is secure that it cannot be used as a flow input.- Overrides:
-
isOutput :boolean
-
Whether or not this variable is an output variable. Remember that the ability to be an output variable depends on whether the variable is a flow, state or task variable and what type of flow it is in. You can use the
ArchBaseVariable#settingsproperty to get at a settings object and access theArchVariableSettings#canSetIsOutputto know whether or not it is valid to configure this property. Remember that if a variable is secure that it cannot be used as a flow output.- Overrides:
-
readonly isReadOnly :boolean
-
Returns whether or not this variable is read only at flow runtime. Read only in this context means that thevariable cannot have a value assigned to it by the flow at runtime. Examples include assigning a value to it using an Update Data action or binding the variable to an output of a Call DataAction. Please note that some variables that return true for this property do allow for assignment of an initial value at flow startup which can be checked by accessing the
canAssignInitialValueproperty. -
isSecure :boolean
-
Whether or not this variable is secure.
- Overrides:
-
readonly isStateVariable :boolean
-
Returns whether or not this variable is a state variable.
- Overrides:
-
readonly isSystemVariable :boolean
-
Returns whether or not this variable is a system variable. System variables provide information about things the system tracks automatically, such as the caller’s phone number, or the contact list associated with an outbound flow. Examples of a system variable is "Flow.Version" or "System.MaxInt".
- Overrides:
-
readonly isTaskVariable :boolean
-
Returns whether or not this variable is a task variable.
- Overrides:
-
readonly isUnavailable :boolean
-
Returns whether or not the variable is available for use. Sometimes variables are feature toggled off and are not available for use in a flow.
- Overrides:
-
readonly logStr :string
-
A string suitable for logging that contains information about this variable.
- Overrides:
-
readonly logStrTypeOnly :string
-
This is a string suitable for logging information about this object where it's just the object's type. This is normally used when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal logging str contents wouldn't be set up.
- Overrides:
-
name :string
-
The name of the variable
- Overrides:
-
readonly parentFlow :ArchBaseFlow
-
Returns the parent flow for this variable.
- Overrides:
-
readonly scope :string
-
Returns the scope of the variable. The string values in
ArchEnums#VARIABLE_SCOPESlists valid values. The scope is the prefix you will see on variable names.- Overrides:
-
readonly settings :ArchVariableSettings
-
Returns the settings associated with this variable which provides meta data about this variable like whether it can be configured as an input or output.
- Overrides:
-
readonly type :string
-
The core type for this variable
- Overrides:
Methods
-
isFilterMatch(archFilterObject) → {boolean}
-
Returns whether or not this Architect Scripting object is a match for the supplied ArchFilterObject instance.
Parameters:
Name Type Description archFilterObjectArchFilterObject the object filter to use to determine if it's a match.
Returns:
boolean- Overrides:
-
logError(errorStr)
-
Logs an error to the logging service with a log header from this object's
logStrproperty value whenArchLogging#logErrorsis true.Parameters:
Name Type Description errorStrstring the error string to log.
- Overrides:
-
logErrorAndThrow(errorStr)
-
Logs an error to the logging service with a log header from this object's
logStrproperty value whenArchLogging#logErrorsis true and then throws the string in the errorStr parameter.Parameters:
Name Type Description errorStrstring the error string to log. This should be a non-blank string.
Throws:
- Throws the submitted error string.
- Overrides:
-
logNote(noteStr)
-
Logs a note to the logging service with a log header from this object's
logStrproperty value whenArchLogging#logNotesis true.Parameters:
Name Type Description noteStrstring the note string to log. This should be a non-blank string.
- Overrides:
-
logNoteVerbose(noteStr)
-
Logs a note to the logging service with a log header from this object's
logStrproperty value whenArchLogging#logNotesVerboseis true.Parameters:
Name Type Description noteStrstring the note string to log. This should be a non-blank string.
- Overrides:
-
logWarning(warningStr)
-
Logs a warning to the logging service with a log header from this object's
logStrproperty value whenArchLogging#logWarningsis true.Parameters:
Name Type Description warningStrstring the warning string to log. This should be a non-blank string.
- Overrides:
-
rename(newName)
-
Renames the variable to a new name.
Parameters:
Name Type Description newNamestring the new name to assign to the variable. This should be just the new variable name with no scope prefix like Flow., Task. or State. Variable names need to be at least one character long and start with a letter. Subsequent characters must either be a letter, underscore or digit.
- Overrides:
-
setInitialValueNotSet()
-
Sets the initial value of the singleton variable to NOT_SET. Note: This is a wrapper around calling accessing the initialValue property and calling setNoValue() on it.
-
traverse(callbackFunction, traverseFilteropt) → {number}
-
This method iterates over this object and ArchBaseCoreObject instances within it. For each object it will call the
ArchBaseObject#isFilterMatchmethod with a filter and call the supplied callback function if isMatch returns true. The callback will be passed anArchTraverseInfowith details about the match such as the match object itself along with current contextual information such as the object hierarchy for the match object relative to the object on which this traverse call is being made.The traverse
filteris one which you can create by callingArchFactoryFilters#createFilterObjectand then add desired clauses or clause containers to it. If not specified, this function will use adefault filter.Here is an example that does a simple flow traversal using the default filter and logs information about objects in the callback from the traverse object that's passed back:
archInboundCallFlow.traverse(function(traverseInfo) { archLogging.logNote(' Object : ' + traverseInfo.matchObject.logStr); archLogging.logNote(' Hierarchy: ' + traverseInfo.context.hierarchyStr); });This might be enough for most uses and you can check various aspects about the object in the callback such as "is this an Architect action?" by seeing if traverseInfo.matchObject.isArchBaseAction is true. You can specify a filter for the traversal code to use as well and only have it call your callback when the object's
ArchBaseCoreObject#isFilterMatchmethod returns true for the filter. Here's an example that creates a filter for callbacks onany type of transfer action, anydecision actionor objects whose name property case insensitively matches the word 'foo'. While this could all be done with one property callback clause the example will use multiple clauses for the sake of simplicity:const myTraverseFilter = filterFactory.createFilterObject(archEnums.FILTER_CONTAINER_OPERATORS.or); myTraverseFilter.addClausePropertyValueEquals('isArchBaseActionTransfer', true); myTraverseFilter.addClausePropertyValueEquals('isArchActionDecision', true); myTraverseFilter.addClausePropertyCallback('name', function(propValue, archContainingObject, propName) { // We fully spelled out the function signature above but archContainingObject and propName are // not needed in this case. The archContainingObject is the object that contains the // property and propName is the property name itself. We pass in propName because the same // function could be used for multiple property callback clauses. // Remember to return a boolean true, false or undefined from ths callback. :) return propValue && propValue.toLowerCase() === 'foo'; }); archTask.traverse(function(traverseContext) { // You will only be called back here for ArchBaseCoreObject instances that // have the isArchBaseActionTransfer or isArchActionDecision property values equal to true. }, myTraverseFilter);If you supply a filter with no clauses, this tells the traverse method to call the supplied callback function for every
ArchBaseCoreObjectit traverses.If you want traversal itself to stop after a callback, simply return boolean false from the callback function you supply to the traverse call.
The traverse method does not process deprecated property names such as
orgId,orgNameorlanguageSettings. Additionally it does not traverse in to properties that would "jump out" of the current traversal. An example of this would be if the code was traversing anArchActionJumpToMenuaction that it would not start traversing in to the menu that it jumps to. Another example would be aArchActionChangeStateaction where it would not traverse in to the target state of the action. This also means traversal does not traverse in to theArchBaseValue#flowLevelDefaultproperty.And lastly, as Scripting evolves over time with new versions, you can expect to get callbacks for new object types such as new actions or new properties on objects. As such, it's important not to assume any particular order in callbacks to keep code most compatible with traversal callbacks. Or if you use inequality checks in filter clauses remember that new "stuff" may satisfy an inequality check which may or may not be anticipated in your logic.
Note: This traverse method is a helper method and is very handy for iterating over Architect Scripting objects and their properties in a generic fashion with filtering capabilities. Obviously you can write your own custom traversal code if this implementation doesn't cut it for some reason. :)
This function returns the number of times it called the callback function.
Parameters:
Name Type Attributes Default Description callbackFunctioncallbackTraverseInfo the callback function to call for objects that match the traverse filter.
traverseFilterArchFilterObject <optional>
ArchFactoryFilters#createFilterTraverseDefaultthe filter to use when performing the traversal to determine which
ArchBaseCoreObjectinstances you wish to be called back for. If no filter is specified, this function will callArchFactoryFilters#createFilterTraverseDefaultand use that traversal default filter. The wantArchBaseValues parameter on that call is set to true.Returns:
number- Overrides: