Esri ArcGIS Online (AGOL) Feature Service Reader/Writer
FME can read and write features from a Feature Service hosted on the ArcGIS Online cloud service.
For more information, see Esri GeoServices REST Specification.
Esri ArcGIS Online (AGOL) Product and System Requirements
Format |
Product |
Operating System |
||||
---|---|---|---|---|---|---|
Reader/Writer |
FME Form |
FME Flow |
FME Flow Hosted |
Windows 64-bit |
Linux |
Mac |
Reader |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Writer |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Overview
ArcGIS Online is a platform for sharing and publishing geospatial data to the public, or privately within an organization. Data uploaded to ArcGIS Online can then be visualized on the web.
ArcGIS Online supports many different kinds of data. FME’s ArcGIS Online Feature Service Reader/Writer only exposes Feature Services available under an ArcGIS Online user’s account.
In FME, an ArcGIS Online Feature Service is a required format parameter, and a layer or table within a Feature Service is a feature type.
ArcGIS Online requires HTTPS access. If you are connecting via a proxy server, ensure that it supports HTTPS.
Duplicate Layer Names
ArcGIS Online allows for duplicate layer names within a Feature Service.
The ArcGIS Online Feature Service Reader resolves ambiguity by appending the layer ID to the end of feature types if multiple layers share the same name. If a layer ID is present in the feature type, the ID takes precedence over the name.
Authentication
The ArcGIS Online Feature Service Reader/Writer uses web connections to authenticate access.
Web connections can be created using either an OAuth 2.0 Web Service or a Token Web Service.
When using OAuth 2.0, in order to allow users to quickly log in and start using ArcGIS Online, a sample ArcGIS Online Web Service OAuth 2.0 definition is included with FME. It is recommended that users register their own App with ArcGIS Online and define a Web Service using its App ID and Secret.
To read directly from a Feature Service anonymously, or with other authentication methods, use the Esri ArcGIS Server Feature Service Reader/Writer.
Reader Overview
The ArcGIS Online Feature Service Reader reads features from the layers in a Feature Service. ArcGIS Online returns features in JSON format, which is converted into an FME feature.
Each ArcGIS Online Feature Service layer corresponds to a single FME feature type. Each layer contains features of a single geometry type.
Layers may be defined before they are read. A definition that specifies a subset of attributes will reduce data transfer and processing time. If a definition is not present for a layer (such as when using the FeatureReader transformer), all fields and records will be retrieved.
The ArcGIS Online Feature Service Reader can read Z-values and measures.
For layers with attachment support, the reader can also download the attachments associated with each feature.
Writer Overview
The ArcGIS Online Feature Service Writer uses the ArcGIS REST API to create Feature Services and write features.
In particular, publishing a Feature Service can result in changes to the schema of feature types. See the Troubleshooting section for details.
Insert, Update, Upsert, and Delete operations are all combined into a single request per feature type, issued in batches of requests based on a configurable number of features. If the operation for any single feature fails within a batch, then all other write operations in that batch are automatically rolled back by the server, and the translation aborts. If ArcGIS Online returns an error for any write operation, the ArcGIS Online Feature Service Writer will pass the error messages to the log.
If the destination Feature Service layer supports Z or M values, the ArcGIS Online Feature Service Writer can write them. You can also create Feature Service layers with Z or M support.
Although the reader can read attachments, the writer currently cannot write them. Format attributes related to attachments are ignored.
Feature Service Creation
If the Feature Service directive refers to a Feature Service that does not exist, and the writer mode for all feature types is INSERT, then the ArcGIS Online Feature Service Writer will create the Feature Service.
The mechanics of this operation differ significantly from writing to an existing Feature Service.
After a Feature Service is created, layers on the Feature Service will be created when the first features for the corresponding feature type are uploaded.
Aliases for fields can be defined as part of the layer creation process. Consider the user attribute foo. If the first feature to the feature type contains an unexposed attribute named foo_alias, this attribute value will be set as a field alias on the created layer.
In versions prior to FME 2024.0:
- All features are written to a File Geodatabase.
- The File Geodatabase is compressed into a ZIP file and uploaded as a File Geodatabase Item.
- The Item is published as a Feature Service.
The uploaded File Geodatabase Item is deleted after the Feature Service is published from it.
Object (Feature) IDs
When a Feature Service is created, ArcGIS Online will add to all layers a new field that serves as the primary key. This is called the Object ID field. Typically, ArcGIS Online will name this field FID, but it is possible for layers to have a different name for the Object ID field. Note that the value of this field is always assigned by ArcGIS Online: values provided for this attribute during Inserts are ignored by the server.
Alternatively, a Global ID field may be used as the primary key for write operations, instead of Object ID. This field may be necessary to use some ArcGIS features, such as Feature Service Sync.
When the feature operation is set to Update or Delete, a value must be provided for the attribute that corresponds to the Object ID field. If the attribute is not present, the writer will output an error message that specifies the name of the required attribute.
Layer Creation
Layers can only be created as part of creating a Feature Service. Creating new layers in an existing Feature Service is not supported at this time. Feature types that do not correspond to a layer in an existing Feature Service will result in an error.