CreateFeaturesWorkflow

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

A read-only class containing the logic used when creating features using the Editor widget.

The following stages depict adding new feature(s) with this workflow.

create-feature

Stage Add feature example
1 - The first panel contains the CreateFeaturesWorkflowData.viewModel. create-feature-panel
2 - After a template is selected, the next panel has access to CreateFeaturesWorkflowData.creationInfo and CreateFeaturesWorkflowData.viewModel. stage2
3 - Once a feature geometry is specified, the subsequent attribute panel has access to CreateFeaturesWorkflowData.creationInfo, CreateWorkflowData.viewModel, and number of pending features, and actual pending features. stage3

This workflow is only enabled if the feature service allows this operation.

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
String

Indicates the current feature state during creation.

more details
CreateFeaturesWorkflow
CreateWorkflowData|CreateFeaturesWorkflowData|UpdateWorkflowData

The shared workflow data.

more details
Workflow
String

The name of the class.

more details
Accessor
Boolean

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

more details
Workflow
Boolean

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

more details
Workflow
Number

Returns the number of pending features of an active CreateWorkflow.

more details
CreateFeaturesWorkflow
Collection<Graphic>

Returns a collection of graphics representing features that are currently pending in the active CreateWorkflow.

more details
CreateFeaturesWorkflow
Boolean

Indicates whether the workflow is considered active.

more details
Workflow
String

The name of the current step in the workflow.

more details
Workflow
String

Value indicating the workflow type.

more details
Workflow

Property Details

createFeatureState String

Indicates the current feature state during creation. This state is either 1) while creating a new feature, or 2) updating a pending feature while in the "creating-features" step.

Possible Values:"create-new"|"update-pending"

Default Value:"create-new"

The shared workflow data. This can be either CreateFeaturesWorkflowData (use this in place of the deprecated CreateWorkflowData) or UpdateWorkflowData.

declaredClass Stringreadonly inherited

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

hasNextStep Booleanreadonly inherited

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

hasPreviousStep Booleanreadonly inherited

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

numPendingFeatures Number

Returns the number of pending features of an active CreateWorkflow. Returns 0 (zero) if no workflow is active or the workflow type is not matching.

See also
pendingFeatures Collection<Graphic>

Returns a collection of graphics representing features that are currently pending in the active CreateWorkflow.

See also
started Booleanreadonly inherited

Indicates whether the workflow is considered active.

Default Value:false
stepId Stringreadonly inherited

The name of the current step in the workflow.

type Stringreadonly inherited

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.

more details
Accessor
Promise<void>

Cancels the active workflow.

more details
Workflow
Promise<void>

Call this method when the workflow is considered finished.

more details
Workflow
Boolean

Returns true if a named group of handles exist.

more details
Accessor
Promise<void>

Moves to the next step in the workflow.

more details
Workflow
Promise<void>

Moves to the previous step in the workflow.

more details
Workflow

Removes a group of handles owned by the object.

more details
Accessor
Promise<void>

Resets the workflow.

more details
Workflow
Promise<void>

Starts the workflow.

more details
Workflow
Promise<void>

Moves the pending feature into update mode.

more details
CreateFeaturesWorkflow

Method Details

addHandles(handleOrHandles, groupKey)inherited
Since: ArcGIS API for JavaScript 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 }
);

// Handle gets removed when the object is destroyed.
this.addHandles(handle);
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(){Promise<void>}inherited

Cancels the active workflow.

Returns
Type Description
Promise<void> Resolves when the active workflow is canceled.
commit(){Promise<void>}inherited

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(groupKey){Boolean}inherited
Since: ArcGIS API for JavaScript 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");
}

Moves to the next step in the workflow.

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

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(groupKey)inherited
Since: ArcGIS API for JavaScript 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(){Promise<void>}inherited

Resets the workflow.

Returns
Type Description
Promise<void> Resolves when the active workflow is reset.
start(){Promise<void>}inherited

Starts the workflow.

Returns
Type Description
Promise<void> Resolves when the active workflow starts.
updatePendingFeature(feature){Promise<void>}

Moves the pending feature into update mode.

Parameter
feature Graphic

The pending feature to be updated.

Returns
Type Description
Promise<void> Resolves when successfully moves the pending feature into update mode.

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