Workflow

AMD: require(["esri/widgets/Editor/Workflow"], (Workflow) => { /* code goes here */ });
ESM: import Workflow from "@arcgis/core/widgets/Editor/Workflow.js";
Class: esri/widgets/Editor/Workflow
Inheritance: Workflow Accessor
Since: ArcGIS Maps SDK for JavaScript 4.11

The read-only Workflow class helps manage different stages of an editing workflow. A workflow can be thought of as one of two types: CreateFeaturesWorkflow and UpdateWorkflow. If adding an individual or multiple features, the CreateFeaturesWorkflow is used. Whereas if editing an existing feature, the UpdateWorkflow is used. Updating workflows include both editing geometry and attribute data and deleting features.

An instance of either a CreateFeaturesWorkflow or UpdateWorkflow is accessed via the activeWorkflow property in either the Editor or EditorViewModel classes.

These workflows are only enabled if the feature service allows these operations. For example, if a feature service is only enabled to allow updates, it is not possible to override this using the API.

See also

Property Overview

Any properties can be set, retrieved or listened to. See the Working with Properties topic.
Show inherited properties Hide inherited properties
Name Type Summary Class

The shared workflow data.

Workflow

The name of the class.

Accessor

This property indicates whether there is a next step in the workflow.

Workflow

This property indicates if there is a previous step in the workflow.

Workflow

Indicates whether the workflow is considered active.

Workflow

The name of the current step in the workflow.

Workflow

Value indicating the workflow type.

Workflow

Property Details

data

Property
data CreateFeaturesWorkflowData |UpdateWorkflowDatareadonly

The shared workflow data. This can be either CreateFeaturesWorkflowData or UpdateWorkflowData.

declaredClass

Inherited
Property
declaredClass Stringreadonly
Inherited from Accessor

The name of the class. The declared class name is formatted as esri.folder.className.

hasNextStep

Property
hasNextStep Booleanreadonly

This property indicates whether there is a next step in the workflow.

hasPreviousStep

Property
hasPreviousStep Booleanreadonly

This property indicates if there is a previous step in the workflow.

started

Property
started Booleanreadonly

Indicates whether the workflow is considered active.

Default Value:false

stepId

Property
stepId Stringreadonly

The name of the current step in the workflow.

type

Property
type Stringreadonly

Value indicating the workflow type.

Possible Value Description
create This allows the end user to create a new individual feature in the feature service. (deprecated as of 4.23, use create-features as noted below.)
create-features This allows the end user to create either individual or continuous features in the feature service. (Since 4.23)
update This allows the end user to update and/or delete features in the feature service.

These workflows are only enabled if the feature service allows these operations.

Possible Values:"create" |"create-features" |"update"

Method Overview

Show inherited methods Hide inherited methods
Name Return Type Summary Class

Adds one or more handles which are to be tied to the lifecycle of the object.

Accessor
Promise<void>

Cancels the active workflow.

Workflow
Promise<void>

Call this method when the workflow is considered finished.

Workflow

Returns true if a named group of handles exist.

Accessor
Promise<void>

Moves to the next step in the workflow.

Workflow
Promise<void>

Moves to the previous step in the workflow.

Workflow

Removes a group of handles owned by the object.

Accessor
Promise<void>

Resets the workflow.

Workflow
Promise<any>

Starts the workflow.

Workflow

Method Details

addHandles

Inherited
Method
addHandles(handleOrHandles, groupKey)
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, addHandles added at 4.25.

Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.

// Manually manage handles
const handle = reactiveUtils.when(
  () => !view.updating,
  () => {
    wkidSelect.disabled = false;
  },
  { once: true }
);

this.addHandles(handle);

// Destroy the object
this.destroy();
Parameters
handleOrHandles WatchHandle|WatchHandle[]

Handles marked for removal once the object is destroyed.

groupKey *
optional

Key identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.

cancel

Method
cancel(options){Promise<void>}

Cancels the active workflow.

Parameters
Specification
options Object
optional

An object with the following properties.

Specification
error Error
optional

The returned Error object.

force Boolean
optional

Indicates whether to force cancel the active workflow.

notify Boolean
optional

Indicates whether to display a prompt indicating canceling the active workflow.

Returns
Type Description
Promise<void> Resolves when the active workflow is canceled.

commit

Method
commit(){Promise<void>}
Since: ArcGIS Maps SDK for JavaScript 4.15 Workflow since 4.11, commit added at 4.15.

Call this method when the workflow is considered finished. This is used to help process the editing results.

Returns
Type Description
Promise<void> Resolves when the active workflow commits and processes the edited results.

hasHandles

Inherited
Method
hasHandles(groupKey){Boolean}
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, hasHandles added at 4.25.

Returns true if a named group of handles exist.

Parameter
groupKey *
optional

A group key.

Returns
Type Description
Boolean Returns true if a named group of handles exist.
Example
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
  obj.removeHandles("watch-view-updates");
}

next

Method
next(){Promise<void>}

Moves to the next step in the workflow.

Returns
Type Description
Promise<void> Resolves when moved to the next step within the active workflow.

previous

Method
previous(options){Promise<void>}

Moves to the previous step in the workflow.

Parameters
options Object
optional

Options when calling this method.

Specification
cancelCurrentStep Boolean

Cancels the current workflow when calling this method. Default value is false.

Returns
Type Description
Promise<void> Resolves when moved to the previous step within the active workflow.

removeHandles

Inherited
Method
removeHandles(groupKey)
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, removeHandles added at 4.25.

Removes a group of handles owned by the object.

Parameter
groupKey *
optional

A group key or an array or collection of group keys to remove.

Example
obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");

reset

Method
reset(){Promise<void>}

Resets the workflow.

Returns
Type Description
Promise<void> Resolves when the active workflow is reset.

start

Method
start(){Promise<any>}

Starts the workflow.

Returns
Type Description
Promise<any> Resolves when the active workflow starts.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.