Skip to content

Workflow file

The schema-companion to the Workflows & scheduling task guide. This page is the generated field list.

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).

Config/WorkflowFiles/ImportObserved 1.00 default.xml
<?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>

Auto-generated from workflow.xsd. Descriptions are the schema's own annotations.

Element <workflow>

Attributes

AttributeUseNotes
version required

Elements

ElementTypeCardinalityDescription
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

ElementTypeCardinalityDescription
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

AttributeUseNotes
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

ElementTypeCardinalityDescription
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

ElementTypeCardinalityDescription
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

ElementTypeCardinalityDescription
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

ElementTypeCardinalityDescription
moduleInstanceId idStringType required · repeats
moduleInstanceSetId idStringType required
moduleInstanceIdPattern nonEmptyStringType optional · repeats Since 2015.01. * and ? are allowed in the pattern

DeleteTemporaryComplexType

ElementTypeCardinalityDescription
moduleInstanceId idStringType required · repeats
moduleInstanceSetId idStringType required
moduleInstanceIdPattern nonEmptyStringType optional · repeats Since 2015.01. * and ? are allowed in the pattern

StringPropertyComplexType

Attributes

AttributeUseNotes
key required
value required

Elements

ElementTypeCardinalityDescription
description string optional Optional description (this is never used in the code).

IntPropertyComplexType

Attributes

AttributeUseNotes
key required
value required

Elements

ElementTypeCardinalityDescription
description string optional Optional description (this is never used in the code).

FloatPropertyComplexType

Attributes

AttributeUseNotes
key required
value required

Elements

ElementTypeCardinalityDescription
description string optional Optional description (this is never used in the code).

DoublePropertyComplexType

Attributes

AttributeUseNotes
key required
value required

Elements

ElementTypeCardinalityDescription
description string optional Optional description (this is never used in the code).

BoolPropertyComplexType

Attributes

AttributeUseNotes
key required
value required

Elements

ElementTypeCardinalityDescription
description string optional Optional description (this is never used in the code).

DateTimePropertyComplexType

Attributes

AttributeUseNotes
key required
date required
time required

Elements

ElementTypeCardinalityDescription
description string optional

LocationAttributePropertyComplexType

Attributes

AttributeUseNotes
key required
locationId required
attributeId required

LoopLocationPropertyComplexType

Attributes

AttributeUseNotes
key required
locationRelationId optional
attributeId required
defaultValue optional

QualifierAttributePropertyComplexType

Attributes

AttributeUseNotes
key required
qualifierId required
attributeId required

ParameterAttributePropertyComplexType

Attributes

AttributeUseNotes
key required
parameterId required
attributeId required

ModuleInstanceAttributePropertyComplexType

Attributes

AttributeUseNotes
key required
moduleInstanceId required
attributeId required

ActivityModuleInstancePropertyComplexType

Attributes

AttributeUseNotes
key required
attributeId required

EnsembleComplexType

Defines ensemble

ElementTypeCardinalityDescription
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

AttributeUseNotes
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

AttributeUseNotes
start required
end optional