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
Constructors -
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.TheoperationIdto invoke.Type of operation to invoke.static ServiceTaskgetOrCreateRef(JavaScriptObject jsObj) Field in theprocess statewhere this task writes outputs.String[]List of multiple fields in theprocess statewhere this task will write outputs.Does this processElement pass through output from the last executed task (i.e.getSort()An array ofSortSpecifierobjects used to set up the sort configuration for a fetch.A mapping from field names tosummary functionsto 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.voidsetDataSource(DataSource dataSource) DataSource ID or DataSource instance to be used.voidsetDataSource(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) TheoperationIdto invoke.setOperationType(DSOperationType operationType) Type of operation to invoke.setOutputField(String outputField) Field in theprocess statewhere this task writes outputs.setOutputFieldList(String... outputFieldList) List of multiple fields in theprocess statewhere 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 ofSortSpecifierobjects used to set up the sort configuration for a fetch.setSummaryFunctions(Map<String, SummaryFunctionType> summaryFunctions) A mapping from field names tosummary functionsto 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, setOutputExpressionMethods 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, updateLastElementInValuesMethods 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
fixedCriteriainstead.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.valuePathto refer to values in theProcess.ruleScope.- Parameters:
criteria- New criteria value. Default value is null- Returns:
ServiceTaskinstance, 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
fixedCriteriainstead.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.valuePathto 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. SeeExportFormatfor more information.- Parameters:
exportFormat- New exportFormat value. Default value is "csv"- Returns:
ServiceTaskinstance, 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. SeeExportFormatfor 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:
ServiceTaskinstance, 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.inputFieldor withcriteriaif specified, viaDataSource.combineCriteria().- Parameters:
fixedCriteria- New fixedCriteria value. Default value is null- Returns:
ServiceTaskinstance, 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.inputFieldor withcriteriaif 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.inputFieldor withvaluesif specified, via simple copying of fields, withfixedValuesoverwriting values provided by theinputField, but explicitly specifiedvaluesoverridingfixedValues.- Parameters:
fixedValues- New fixedValues value. Default value is null- Returns:
ServiceTaskinstance, 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.inputFieldor withvaluesif specified, via simple copying of fields, withfixedValuesoverwriting values provided by theinputField, but explicitly specifiedvaluesoverridingfixedValues.- Returns:
- Current fixedValues value. Default value is null
-
setGroupBy
List of fields to group by for a fetch.See the
Server Summaries overviewfor examples of usage.- Parameters:
groupBy- New groupBy value. Default value is null- Returns:
ServiceTaskinstance, 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 overviewfor examples of usage.- Returns:
- Current groupBy value. Default value is null
- See Also:
-
setOperationId
TheoperationIdto invoke.- Parameters:
operationId- New operationId value. Default value is null- Returns:
ServiceTaskinstance, for chaining setter calls- Throws:
IllegalStateException- this property cannot be changed after the underlying component has been created
-
getOperationId
TheoperationIdto 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:
ServiceTaskinstance, 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 statewhere this task writes outputs. SeeTaskIO.See
outputFieldListfor a shorthand method to save the full operation response data.- Overrides:
setOutputFieldin classTask- Parameters:
outputField- New outputField value. Default value is null- Returns:
ServiceTaskinstance, for chaining setter calls- Throws:
IllegalStateException- this property cannot be changed after the underlying component has been created- See Also:
-
getOutputField
Field in theprocess statewhere this task writes outputs. SeeTaskIO.See
outputFieldListfor a shorthand method to save the full operation response data.- Overrides:
getOutputFieldin classTask- Returns:
- Current outputField value. Default value is null
- See Also:
-
setOutputFieldList
List of multiple fields in theprocess statewhere this task will write outputs. SeeTaskIO.If
outputFieldis also specified, it will be implicitly added to theoutputFieldListif 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.datato be saved.- Overrides:
setOutputFieldListin classTask- Parameters:
outputFieldList- New outputFieldList value. Default value is null- Returns:
ServiceTaskinstance, 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 statewhere this task will write outputs. SeeTaskIO.If
outputFieldis also specified, it will be implicitly added to theoutputFieldListif 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.datato be saved.- Overrides:
getOutputFieldListin 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
taskInputExpressionsfor 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:
setPassThruOutputin classProcessElement- Parameters:
passThruOutput- New passThruOutput value. Default value is false- Returns:
ServiceTaskinstance, 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
taskInputExpressionsfor 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:
getPassThruOutputin classProcessElement- Returns:
- Current passThruOutput value. Default value is false
-
setSort
An array ofSortSpecifierobjects used to set up the sort configuration for a fetch.- Parameters:
sort- New sort value. Default value is null- Returns:
ServiceTaskinstance, for chaining setter calls- Throws:
IllegalStateException- this property cannot be changed after the underlying component has been created
-
getSort
An array ofSortSpecifierobjects 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 functionsto be applied to each field for a fetch.See the
Server Summaries overviewfor examples of usage.- Parameters:
summaryFunctions- New summaryFunctions value. Default value is null- Returns:
ServiceTaskinstance, 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 functionsto be applied to each field for a fetch.See the
Server Summaries overviewfor 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. UsefixedValuesfor any values that start with "$" but should be treated as a literal.- Parameters:
values- New values value. Default value is null- Returns:
ServiceTaskinstance, 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. UsefixedValuesfor 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
-