Class DSRequestTask
- All Implemented Interfaces:
HasHandlers
- Direct Known Subclasses:
DSAddTask
,DSFetchTask
,DSRemoveTask
,DSUpdateTask
Process
which calls a DataSource operation, optionally using part of the process state
as inputs or storing outputs in the process state. A
special "export" operationType
is supported to
perform a server export based on criteria. By default, a DSRequestTask takes the data indicated by inputs
as detailed in TaskIO
and uses
the inputRecord
as DSRequest.data
. This means the input
data becomes Criteria
for "fetch" and "export" operations, new record values for an
"add" operation, etc.
Alternatively, you can set criteria
for a "fetch" and "export" operations, or values
for other operationTypes. In both cases, you can use simple expressions like $input.fieldName to take
portions of the input data and use it as part of the criteria or values.
OutputData and outputFieldList work as filters. You should determine which properties should be fetched into the process state. If you want to load all data without defining every property manually, you can pass a name started with '$'. The fetched record or records will be placed as a record or an array of records by the name without this specific symbol.
For example, if you specify 'id' and 'name' in outputFieldList, only these properties will be fetched in the process state. If you pass '$orderHeader' in outputField a whole record will be stored in the process state under the 'orderHeader' key.
-
Field Summary
Fields inherited from class com.smartgwt.client.core.BaseClass
config, configOnly, factoryCreated, factoryProperties, id, scClassName
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreate()
Criteria (including AdvancedCriteria) to use for "fetch" and "export" operations.The format in which the data should be exported.ID of the next sequence or element to proceed to if a failure condition arises from DataSource operation.Criteria to be submitted as part of the DSRequest, regardless of inputs to the task.Values to be submitted as part of the DSRequest, regardless of inputs to the task.String[]
List of fields to group by for a fetch.TheoperationId
to invoke.Type of operation to invoke.static DSRequestTask
getOrCreateRef
(JavaScriptObject jsObj) Field in theprocess state
where this task writes outputs.String[]
List of multiple fields in theprocess state
where this task will write outputs.Does this processElement pass through output from the last executed task (i.e.getSort()
An array ofSortSpecifier
objects used to set up the sort configuration for a fetch.A mapping from field names tosummary functions
to be applied to each field for a fetch.Values to be submitted for "update", "add" and "remove" operations.setCriteria
(Criteria criteria) Criteria (including AdvancedCriteria) to use for "fetch" and "export" operations.setExportFormat
(ExportFormat exportFormat) The format in which the data should be exported.setFailureElement
(String failureElement) ID of the next sequence or element to proceed to if a failure condition arises from DataSource operation.setFixedCriteria
(Criteria fixedCriteria) Criteria to be submitted as part of the DSRequest, regardless of inputs to the task.setFixedValues
(Record fixedValues) Values to be submitted as part of the DSRequest, regardless of inputs to the task.setGroupBy
(String... groupBy) List of fields to group by for a fetch.setOperationId
(String operationId) TheoperationId
to invoke.setOperationType
(DSOperationType operationType) Type of operation to invoke.setOutputField
(String outputField) Field in theprocess state
where this task writes outputs.setOutputFieldList
(String... outputFieldList) List of multiple fields in theprocess state
where this task will write outputs.setPassThruOutput
(Boolean passThruOutput) Does this processElement pass through output from the last executed task (i.e.setSort
(SortSpecifier... sort) An array ofSortSpecifier
objects used to set up the sort configuration for a fetch.setSummaryFunctions
(Map<String, SummaryFunctionType> summaryFunctions) A mapping from field names tosummary functions
to be applied to each field for a fetch.Values to be submitted for "update", "add" and "remove" operations.Methods inherited from class com.smartgwt.client.util.workflow.Task
getExpressionValue, getInputFieldList, getInputRecord, getInputs, getInputsAsString, getInputsAsStringArray, getOutputExpression, getState, getStrictPaths, setInputFieldList, setInputs, setInputs, setInputs, setOutput, setOutputExpression, setState, setStrictPaths
Methods inherited from class com.smartgwt.client.util.workflow.ProcessElement
completeElement, convertToJavaScriptArray, executeElement, getBindOutput, getClassDescription, getComponentReferences, getCurrentProcess, getDescription, getDynamicValue, getEditorType, getElementDescription, getForceSingle, getID, getInvalidTaskMessage, getJsObj, getMockMode, getNextElement, getOrCreateJsObj, getProcessElements, getSupportsMultipleInputRecords, getTextFormulaValue, getTypeTitle, getUndefinedComponentMessage, getUnresolvedComponentMessage, getWaitDuration, getWaitFor, getWaitLocator, isCreated, isValid, objectReferencesLastTaskOutput, onInit, reset, setAttribute, setBindOutput, setClassDescription, setCurrentProcess, setDescription, setEditorType, setForceSingle, setID, setJavaScriptObject, setMockMode, setNextElement, setSupportsMultipleInputRecords, setTypeTitle, setUndefinedComponentMessage, setUnresolvedComponentMessage, setWaitDuration, setWaitFor, setWaitLocator, updateGlobalIDInCriteria, updateGlobalIDInTextFormula, updateGlobalIDInValueProperty, updateGlobalIDInValues, updateGlobalIDReferences, updateLastElementBindingReferences, updateLastElementInCriteria, updateLastElementInValueProperty, updateLastElementInValues
Methods inherited from class com.smartgwt.client.core.BaseClass
addDynamicProperty, addDynamicProperty, addDynamicProperty, addDynamicProperty, applyFactoryProperties, asSGWTComponent, clearDynamicProperty, createJsObj, destroy, doAddHandler, doInit, error, error, errorIfNotCreated, fireEvent, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsElement, getAttributeAsFloat, getAttributeAsInt, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsString, getAttributeAsStringArray, getClassName, getConfig, getHandlerCount, getRef, getRuleScope, getScClassName, getTestInstance, hasAutoAssignedID, hasDynamicProperty, internalSetID, internalSetID, isConfigOnly, isFactoryCreated, onBind, registerID, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setConfig, setConfigOnly, setFactoryCreated, setProperty, setProperty, setProperty, setProperty, setRuleScope, setScClassName
-
Constructor Details
-
DSRequestTask
public DSRequestTask() -
DSRequestTask
-
-
Method Details
-
getOrCreateRef
-
create
-
setCriteria
Criteria (including AdvancedCriteria) to use for "fetch" and "export" operations.Data values in this criteria prefixed with "$" will be treated as dynamic expressions which can access the inputs to this task as $input - see
TaskInputExpression
. Specifically, this means that for simple criteria, any property value that is a String and is prefixed with "$" will be assumed to be an expression, and for AdvancedCriteria, the same treatment will be applied toCriterion.value
.If any data value should not be treated as dynamic (for example, a "$" should be taken as literal), you can place it in
fixedCriteria
instead.Ignored for any operationType other than "fetch" and "export". Update or delete operations should place the primary key to update in
values
.This property supports
DynamicCriteria
- useCriterion.valuePath
to refer to values in theProcess.ruleScope
.- Parameters:
criteria
- New criteria value. Default value is null- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created- See Also:
-
getCriteria
Criteria (including AdvancedCriteria) to use for "fetch" and "export" operations.Data values in this criteria prefixed with "$" will be treated as dynamic expressions which can access the inputs to this task as $input - see
TaskInputExpression
. Specifically, this means that for simple criteria, any property value that is a String and is prefixed with "$" will be assumed to be an expression, and for AdvancedCriteria, the same treatment will be applied toCriterion.value
.If any data value should not be treated as dynamic (for example, a "$" should be taken as literal), you can place it in
fixedCriteria
instead.Ignored for any operationType other than "fetch" and "export". Update or delete operations should place the primary key to update in
values
.This property supports
DynamicCriteria
- useCriterion.valuePath
to refer to values in theProcess.ruleScope
.- Returns:
- Current criteria value. Default value is null
- See Also:
-
setExportFormat
The format in which the data should be exported. SeeExportFormat
for more information.- Parameters:
exportFormat
- New exportFormat value. Default value is "csv"- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created
-
getExportFormat
The format in which the data should be exported. SeeExportFormat
for more information.- Returns:
- Current exportFormat value. Default value is "csv"
-
setFailureElement
ID of the next sequence or element to proceed to if a failure condition arises from DataSource operation.- Parameters:
failureElement
- New failureElement value. Default value is null- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created
-
getFailureElement
ID of the next sequence or element to proceed to if a failure condition arises from DataSource operation.- Returns:
- Current failureElement value. Default value is null
-
setFixedCriteria
Criteria to be submitted as part of the DSRequest, regardless of inputs to the task. Will be combined with the data from theTask.inputs
or withcriteria
if specified, viaDataSource.combineCriteria()
.- Parameters:
fixedCriteria
- New fixedCriteria value. Default value is null- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created
-
getFixedCriteria
Criteria to be submitted as part of the DSRequest, regardless of inputs to the task. Will be combined with the data from theTask.inputs
or withcriteria
if specified, viaDataSource.combineCriteria()
.- Returns:
- Current fixedCriteria value. Default value is null
-
setFixedValues
Values to be submitted as part of the DSRequest, regardless of inputs to the task. Will be combined with the data from theTask.inputs
or withvalues
if specified, via simple copying of fields, withfixedValues
overwriting values provided by theinputs
, but explicitly specifiedvalues
overridingfixedValues
.- Parameters:
fixedValues
- New fixedValues value. Default value is null- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created
-
getFixedValues
Values to be submitted as part of the DSRequest, regardless of inputs to the task. Will be combined with the data from theTask.inputs
or withvalues
if specified, via simple copying of fields, withfixedValues
overwriting values provided by theinputs
, but explicitly specifiedvalues
overridingfixedValues
.- Returns:
- Current fixedValues value. Default value is null
-
setGroupBy
List of fields to group by for a fetch.See the
Server Summaries overview
for examples of usage.- Parameters:
groupBy
- New groupBy value. Default value is null- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created- See Also:
-
getGroupBy
List of fields to group by for a fetch.See the
Server Summaries overview
for examples of usage.- Returns:
- Current groupBy value. Default value is null
- See Also:
-
setOperationId
TheoperationId
to invoke.- Parameters:
operationId
- New operationId value. Default value is null- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created
-
getOperationId
TheoperationId
to invoke.- Returns:
- Current operationId value. Default value is null
-
setOperationType
Type of operation to invoke. A special "export" operation type is supported to perform a server export based on criteria.- Parameters:
operationType
- New operationType value. Default value is "fetch"- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created
-
getOperationType
Type of operation to invoke. A special "export" operation type is supported to perform a server export based on criteria.- Returns:
- Current operationType value. Default value is "fetch"
-
setOutputField
Field in theprocess state
where this task writes outputs. SeeTaskIO
.See
outputFieldList
for a shorthand method to save the full operation response data.- Overrides:
setOutputField
in classTask
- Parameters:
outputField
- New outputField value. Default value is null- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created- See Also:
-
getOutputField
Field in theprocess state
where this task writes outputs. SeeTaskIO
.See
outputFieldList
for a shorthand method to save the full operation response data.- Overrides:
getOutputField
in classTask
- Returns:
- Current outputField value. Default value is null
- See Also:
-
setOutputFieldList
List of multiple fields in theprocess state
where this task will write outputs. SeeTaskIO
.If
outputField
is also specified, it will be implicitly added to theoutputFieldList
if it is not already present.In addition to pulling individual fields from the task operation result and placing them into the process state the full response data can also be written into the process state without specifying individual fields. Prefix a destination field path with a "$" (ex. $orderHeader) causes the entire
dsResponse.data
to be saved.- Overrides:
setOutputFieldList
in classTask
- Parameters:
outputFieldList
- New outputFieldList value. Default value is null- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created- See Also:
-
getOutputFieldList
List of multiple fields in theprocess state
where this task will write outputs. SeeTaskIO
.If
outputField
is also specified, it will be implicitly added to theoutputFieldList
if it is not already present.In addition to pulling individual fields from the task operation result and placing them into the process state the full response data can also be written into the process state without specifying individual fields. Prefix a destination field path with a "$" (ex. $orderHeader) causes the entire
dsResponse.data
to be saved.- Overrides:
getOutputFieldList
in classTask
- Returns:
- Current outputFieldList value. Default value is null
- See Also:
-
setPassThruOutput
Does this processElement pass through output from the last executed task (i.e. transient state)?See
taskInputExpressions
for details on the transient state outputs.Note that this property does not affect the task at all but is an indicator to the user and to the workflow editor of the behavior of the task as coded (See
Process.passThruTaskOutput()
).- Overrides:
setPassThruOutput
in classProcessElement
- Parameters:
passThruOutput
- New passThruOutput value. Default value is false- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created
-
getPassThruOutput
Does this processElement pass through output from the last executed task (i.e. transient state)?See
taskInputExpressions
for details on the transient state outputs.Note that this property does not affect the task at all but is an indicator to the user and to the workflow editor of the behavior of the task as coded (See
Process.passThruTaskOutput()
).- Overrides:
getPassThruOutput
in classProcessElement
- Returns:
- Current passThruOutput value. Default value is false
-
setSort
An array ofSortSpecifier
objects used to set up the sort configuration for a fetch.- Parameters:
sort
- New sort value. Default value is null- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created
-
getSort
An array ofSortSpecifier
objects used to set up the sort configuration for a fetch.- Returns:
- Current sort value. Default value is null
-
setSummaryFunctions
public DSRequestTask setSummaryFunctions(Map<String, SummaryFunctionType> summaryFunctions) throws IllegalStateExceptionA mapping from field names tosummary functions
to be applied to each field for a fetch.See the
Server Summaries overview
for examples of usage.- Parameters:
summaryFunctions
- New summaryFunctions value. Default value is null- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created- See Also:
-
getSummaryFunctions
A mapping from field names tosummary functions
to be applied to each field for a fetch.See the
Server Summaries overview
for examples of usage.- Returns:
- Current summaryFunctions value. Default value is null
- See Also:
-
setValues
Values to be submitted for "update", "add" and "remove" operations.Similar to
Criteria
, data values prefixed with "$" will be treated as aTaskInputExpression
. UsefixedValues
for any values that start with "$" but should be treated as a literal.- Parameters:
values
- New values value. Default value is null- Returns:
DSRequestTask
instance, for chaining setter calls- Throws:
IllegalStateException
- this property cannot be changed after the underlying component has been created
-
getValues
Values to be submitted for "update", "add" and "remove" operations.Similar to
Criteria
, data values prefixed with "$" will be treated as aTaskInputExpression
. UsefixedValues
for any values that start with "$" but should be treated as a literal.- Returns:
- Current values value. Default value is null
-