Class ServiceTask
- 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 ServiceTask takes the data indicated by inputField
and/or inputFieldList
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.
For simplicity, if no inputFieldList
is provided and inputField
specifies an object,
inputData
is used as dsRequest.data
.
Alternatively, you can set criteria
for a "fetch" and "export" operations, or values
for other operationTypes. In both cases, you have the
ability to 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 '$' and 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 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
-
Method Summary
Modifier and TypeMethodDescriptioncreate()
Criteria (including AdvancedCriteria) to use for "fetch" and "export" operations.DataSource ID or DataSource instance to be used.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 ServiceTask
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.void
setDataSource
(DataSource dataSource) DataSource ID or DataSource instance to be used.void
setDataSource
(String dataSource) DataSource ID or DataSource instance to be used.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
getInputField, getInputFieldList, getOutputExpression, setInputField, setInputFieldList, setOutputExpression
Methods inherited from class com.smartgwt.client.util.workflow.ProcessElement
completeElement, convertToJavaScriptArray, executeElement, getBindOutput, getClassDescription, getComponentReferences, 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, 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
-
ServiceTask
public ServiceTask() -
ServiceTask
-
-
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:
ServiceTask
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:
ServiceTask
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:
ServiceTask
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.inputField
or withcriteria
if specified, viaDataSource.combineCriteria()
.- Parameters:
fixedCriteria
- New fixedCriteria value. Default value is null- Returns:
ServiceTask
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.inputField
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.inputField
or withvalues
if specified, via simple copying of fields, withfixedValues
overwriting values provided by theinputField
, but explicitly specifiedvalues
overridingfixedValues
.- Parameters:
fixedValues
- New fixedValues value. Default value is null- Returns:
ServiceTask
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.inputField
or withvalues
if specified, via simple copying of fields, withfixedValues
overwriting values provided by theinputField
, 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:
ServiceTask
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:
ServiceTask
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:
ServiceTask
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:
ServiceTask
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:
ServiceTask
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:
ServiceTask
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:
ServiceTask
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 ServiceTask 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:
ServiceTask
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:
ServiceTask
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
-
getDataSource
DataSource ID or DataSource instance to be used.- Returns:
- DataSource
-
setDataSource
DataSource ID or DataSource instance to be used.- Parameters:
dataSource
- dataSource Default value is null
-
setDataSource
DataSource ID or DataSource instance to be used.- Parameters:
dataSource
- dataSource Default value is null
-