Workflow file
The schema-companion to the Workflows & scheduling task guide. This page is the generated field list.
At a glance
Section titled “At a glance”Purpose : An ordered list of activities — the recipe that runs modules (and nested workflows) in sequence. Governs the forecasting lifecycle.
Folder
: Config/WorkflowFiles/
Root element
: <workflow> (version required, not fixed — 1.1 is conventional)
Referenced by
: A WorkflowDescriptor (to be offered/scheduled).
Minimal example
Section titled “Minimal example”<?xml version="1.0" encoding="UTF-8"?><workflow xmlns="http://www.wldelft.nl/fews" version="1.1"> <activity> <runIndependent>true</runIndependent> <moduleInstanceId>ImportObservations</moduleInstanceId> </activity></workflow>Field reference
Section titled “Field reference”Auto-generated from workflow.xsd. Descriptions are the schema's own annotations.
Element <workflow>
Attributes
| Attribute | Use | Notes |
|---|---|---|
version | required |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
properties | WorkflowPropertiesComplexType | optional | These properties can be referenced in nested workflow files and module config file with $key$, similar to global properties. These properties are overruling the properties defined at a higher level. The property $MODULE_INSTANCE_ID$ is added automatically and should not be added manually. |
activity | ActivityComplexType | required | |
parallel | ParallelComplexType | required | Runs multiple activities at the same time |
sequence | SequenceComplexType | required | Runs multiple activities in one by one. Allow you to group activities and to apply properties to all activities in the sequence. |
completed | CompletedComplexType | required | Mark one or module instances as completed for the running workflow. The module instances become read-only for the rest of the workflow. When auto approve is configured for the workflow the simulated database becomes visible for other workflows and users before the complete workflow completes. The workflow can continue on a different forecasting shell if needed. See deleteTemporary if you want to transfer temporary data to the next partition forecasting shell |
deleteTemporary | DeleteTemporaryComplexType | required | Explicit deletes temporary series. At the end workflow partition or the end of the workflow temporary series are automatically deleted. Deleting specified module instances earlier prevents the temporary series are flushed to disk for no use when they are still in the memory buffer. Time series that are explicitly deleted in another workflow partition then the partition were they were created are always flushed to the database. This makes it possible to use temporary time series even when the workflows continues on a different forecasting shell. When the workflow terminates or completes all temporary series for the run are deleted from the database |
WorkflowPropertiesComplexType
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional | Optional description (this is never used in the code). |
string | StringPropertyComplexType | required | |
int | IntPropertyComplexType | required | |
float | FloatPropertyComplexType | required | |
double | DoublePropertyComplexType | required | Since 2014.01 |
bool | BoolPropertyComplexType | required | |
dateTime | DateTimePropertyComplexType | required | Since 2014.01 |
locationAttribute | LocationAttributePropertyComplexType | required | |
loopLocationAttribute | LoopLocationPropertyComplexType | required | |
qualifierAttribute | QualifierAttributePropertyComplexType | required | |
parameterAttribute | ParameterAttributePropertyComplexType | required | |
moduleInstanceAttribute | ModuleInstanceAttributePropertyComplexType | required | |
activityModuleInstanceAttribute | ActivityModuleInstancePropertyComplexType | required |
ActivityComplexType
Defines an activity of a workflow. Activities are executed in the same order as defined in the workflow XML file.
Attributes
| Attribute | Use | Notes |
|---|---|---|
logStartedAsDebug | optional | default: false. Since 2014.03 FEWS-11844 Log info messages for start of an activity as debug |
logFinishedAsDebug | optional | default: false. Since 2014.03 FEWS-11844 Log info messages for finish of an activity as debug |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
properties | WorkflowPropertiesComplexType | optional | These properties can be referenced in nested workflow files and module config file with $key$, similar to global properties. These properties are overruling the properties defined at a higher level. The property $MODULE_INSTANCE_ID$ is added automatically and should not be added manually. |
runIndependent | boolean | optional | If present, the workflow will continue with the next activity even if this activity fails. The default is to stop with the workflow as soon as an activity fails. |
downloadMissingStatesFromArchive | boolean | optional | Since 2024.01. If this option is set to true the missing states will be downloaded from the archive if the states were expired from FEWS. |
fallbackActivity | ActivityComplexType | optional | Fallback activity to execute in case the activity fails. The fallback activity is optional. |
ensemble | EnsembleComplexType | optional | Optional field for running ensembles. Ensemble id's in a sub workflow will override this ensembleId. A sub workflow without an ensembleId will make use of this ensembleId. |
description | string | optional | Available since 2019.02. Text will be displayed in workflow navigator as a mouse over label |
downloadMissingDataFromArchive | boolean | required | Since 2017.02. If this option is set to true the data will be downloaded from the archive if the data is expired from FEWS. |
downloadMissingDataFromArchiveForManualTasksOnly | boolean | optional | Since 2024.02. Toggle that limits the scope of the downloadMissingDataFromArchive boolean to manual tasks. |
loopLocationSetId | idStringType | required | Since 2015.01 FEWS-11030. Location set containing all locations for which the activity must be ran, refer to these locations by using $LOOP_LOCATION_ID$. Not supported in combination with Run in Ensemble loop |
skipNonExistingLoopLocationSet | boolean | optional | Since 2021.01, skip the activity when the location set does not exist |
workflowId | idStringType | required | Workflow file name to run |
defaultFlagSource | string | optional | Flag source that is used for non missing values without flag source |
flagSourceColumnId | idStringType | optional | The flag sources are also written to the specified flag source column |
moduleInstanceId | idStringType | required | Defines the id to the module instance to run for this activity. Each module instance may occur only once in a workflow (including nested workflows). |
moduleConfigFileName | idStringType | optional | Defines the config file that should be used. By default the config file name equals the module instance id. Multiple module instances can share the same config file by using properties. The config file is used as template and the $key$ are replaced by the property values. The xml file should use one of the following xsd-s: amalgamateModule.xsd (obsolete), archiveRun.xsd (Deprecated and obsolete since 2013.02), configUpdateScriptConfig.xsd, correlationSets.xsd, decisionModule.xsd, errorModelSets.xsd, exportArchiveModule.xsd, exportRun.xsd, forecastLengthEstimator.xsd, generalAdapterRun.xsd, hymosTransferDbImportRun.xsd (obsolete), importAmalgamate.xsd, importArchiveModule.xsd, importRun.xsd (obsolete), interpolationSets.xsd (obsolete), lookupSets.xsd, massBalance.xsd, pcrTransformationSets.xsd, performanceIndicatorSets.xsd, rdbmsExport.xsd (obsolete), reportExport.xsd, reports.xsd, scenarios.xsd, secondaryValidation.xsd, supportStationSets.xsd, timeSeriesExportRun.xsd, timeSeriesImportRun.xsd, transformationModule.xsd, transformationSets.xsd (obsolete), workflowLoopRunner.xsd |
predefinedActivity | predefinedActivity | required | Some activities don't require a config file and module instance
One of: threshold event crossing, compact cache files, validate cache files, repair and defrag local data store, time series status snap shot update, import status checker, revalidation module |
moduleInstanceId | idStringType | optional | Use to record the progress of this activity while running. See "updateModuleRunTimesOnCompletion" in the module instance descriptors. |
enable | booleanStringType | required | Since 2024.01. Plain eg $ENABLE_EXPORT$ |
enabled | EnabledComplexType | required | Since 2017.02. If this option is present and the location attribute, specified with attributeId, has value FALSE, then the activity will be excluded from the workflow run |
ParallelComplexType
| Element | Type | Cardinality | Description |
|---|---|---|---|
properties | WorkflowPropertiesComplexType | optional | These properties can be referenced in nested workflow files and module config file with $key$, similar to global properties. These properties are overruling the properties defined at a higher level. The property $MODULE_INSTANCE_ID$ is added automatically and should not be added manually. |
multipleForecastingShells | boolean | optional | Run on multiple forecasting shells |
activity | ActivityComplexType | required | |
sequence | SequenceComplexType | required | Runs activities one by one |
forecastingShellCount | twoOrMoreIntStringType | required | Run on multiple forecasting shells. Only allowed when all sub tasks are ensemble loops or location loops. Since 2024.01 this element can reference a (global) property. This element should not reference a task or what-if property. The encoded partition sequences are only re-generated after a config change. The generation is done on a random forecasting-shell. All forecasting shells should use the same global property value referenced by this element. |
SequenceComplexType
| Element | Type | Cardinality | Description |
|---|---|---|---|
properties | WorkflowPropertiesComplexType | optional | These properties can be referenced in nested workflow files and module config file with $key$, similar to global properties. These properties are overruling the properties defined at a higher level. The property $MODULE_INSTANCE_ID$ is added automatically and should not be added manually. |
activity | ActivityComplexType | required | |
parallel | ParallelComplexType | required | |
completed | CompletedComplexType | required | Mark one or module instances as completed for the running workflow. The module instances become read-only for the rest of the workflow. When auto approve is configured for the workflow the simulated database becomes visible for other workflows and users before the complete workflow completes. The workflow can continue on a different forecasting shell if needed. See deleteTemporary if you want to transfer temporary data to the next partition forecasting shell. |
deleteTemporary | DeleteTemporaryComplexType | required | Explicit deletes temporary series. At the end workflow partition or the end of the workflow temporary series are automatically deleted. Deleting specified module instances earlier prevents the temporary series are flushed to disk for no use when they are still in the memory buffer. Time series that are explicitly deleted in another workflow partition then the partition were they were created are always flushed to the database. This makes it possible to use temporary time series even when the workflows continues on a different forecasting shell. When the workflow terminates or completes all temporary series for the run are deleted from the database |
CompletedComplexType
| Element | Type | Cardinality | Description |
|---|---|---|---|
moduleInstanceId | idStringType | required · repeats | |
moduleInstanceSetId | idStringType | required | |
moduleInstanceIdPattern | nonEmptyStringType | optional · repeats | Since 2015.01. * and ? are allowed in the pattern |
DeleteTemporaryComplexType
| Element | Type | Cardinality | Description |
|---|---|---|---|
moduleInstanceId | idStringType | required · repeats | |
moduleInstanceSetId | idStringType | required | |
moduleInstanceIdPattern | nonEmptyStringType | optional · repeats | Since 2015.01. * and ? are allowed in the pattern |
StringPropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
value | required |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional | Optional description (this is never used in the code). |
IntPropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
value | required |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional | Optional description (this is never used in the code). |
FloatPropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
value | required |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional | Optional description (this is never used in the code). |
DoublePropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
value | required |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional | Optional description (this is never used in the code). |
BoolPropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
value | required |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional | Optional description (this is never used in the code). |
DateTimePropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
date | required | |
time | required |
Elements
| Element | Type | Cardinality | Description |
|---|---|---|---|
description | string | optional |
LocationAttributePropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
locationId | required | |
attributeId | required |
LoopLocationPropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
locationRelationId | optional | |
attributeId | required | |
defaultValue | optional |
QualifierAttributePropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
qualifierId | required | |
attributeId | required |
ParameterAttributePropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
parameterId | required | |
attributeId | required |
ModuleInstanceAttributePropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
moduleInstanceId | required | |
attributeId | required |
ActivityModuleInstancePropertyComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
key | required | |
attributeId | required |
EnsembleComplexType
Defines ensemble
| Element | Type | Cardinality | Description |
|---|---|---|---|
ensembleId | idStringType | required | Id of ensemble. Ensemble id's in a sub workflow will override this ensembleId. A sub workflow without an ensembleId will make use of this ensembleId. |
runInLoop | boolean | required | When 'true' then run each member of the ensemble separately. When 'false' then whole ensemble is run in one go. |
ensembleMemberId | string | required | Since 2018.01 (in older versions use ensembleMemberIdRegularExpression instead). Optional field to only run one particular ensemble member |
ensembleMemberIndex | nonNegativeInteger | required | Optional field to only run one particular ensemble member |
ensembleMemberIndexRange | EnsembleMemberIndexRangeComplexType | required | Optional field to run a particular range of ensemble members |
ensembleMemberIdRegularExpression | nonEmptyStringType | required | Runs all members which id matches the specified expression e.g specify ^Q.* to loop over all members that start with Q |
EnabledComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
locationId | required | Id of the location the workflow looks at to determine whether the activity should be excluded or not. The location should have attribute referenced with attributeId |
attributeId | required | Id of the boolean attribute. If this attribute has value False then the activity will be excluded from the workflow run |
EnsembleMemberIndexRangeComplexType
Attributes
| Attribute | Use | Notes |
|---|---|---|
start | required | |
end | optional |
See also
Section titled “See also”- Task guide: Workflows & scheduling
- Reference: Workflow descriptors file
- Schema:
workflow.xsd