Esri Geodatabase (ArcSDE Geodb) Writer Parameters
Database Connection
Connection File
This parameter identifies the pathname of a connection file to be used to connect to an Enterprise Geodatabase.
A connection file provides the necessary information to connect to the SDE server, such as the server name or the username.
The connection file must be a *.sde file and have the proper format for a connection file as defined by Esri. Connection files can be created in ArcCatalog.
Check this option to override the User and Password from the connection file. Overriding credentials is required for Connection Files that do not have saved credentials.
Note: This parameter is ignored if the Connection File is using OS Authentication.
Username and Password
Enter the username and password to access the service.
Select this parameter to override the version provided in the connection file.
Transactional Version: The name of the SDE version to which the FME connects. This field is only applicable when dealing with versioned tables or layers.
General Parameters
This option specifies what to import from the Esri XML Workspace Document into the destination Geodatabase:
- Schema Only – Import the schema without any data from the feature classes and tables.
- Data and Schema – Import both the schema and the data from the feature classes and tables.
The import occurs after opening the Geodatabase for writing, but before any tables are created or features are written. Any error that occurs during import will cause the translation to fail.
Indicates which transaction mechanism the Geodatabase writer should use. Within ArcGIS, there are currently two transaction mechanisms: edit sessions, and (regular) transactions. An edit session corresponds to a long transaction. During an edit session, edits made by other users do not become visible until the edit session is ended. If a translation does not complete successfully and the Geodatabase writer is using an edit session, then all the edits will be discarded.
Values:
- Versioned Edit Session: Starts an edit session and then ends it when the translation is finished. This value should be used when writing to a versioned table in an Enterprise Geodatabase.
Note: Versioned Edit Sessions should not be used on non-versioned tables because Edit Session features such as discarding edits after failure will not work.
- Non-versioned Edit Session: Starts an edit session on a non-versioned table and then ends it when the translation is finished. This can be used on non-versioned tables that have custom behavior. Custom behavior can include feature classes with added extensions (for example, ArcFM).
- Transactions: Starts the (regular) transaction mechanism. This can be used only when writing to non-versioned tables that do not have custom behavior (for example, feature classes that have added extensions, like ArcFM, cannot use Transactions mode).
- None: No transaction mechanism is used. This can be used only when writing to non-versioned tables that do not have custom behavior. None differs from Transactions with a transaction interval of zero in that if the write fails, all successful features are committed for None, but are discarded for Transactions.
Table Parameters
ArcGIS geometry has to satisfy certain constraints to be considered valid. For example, polygons must have more than 2 vertices. This parameter allows you to specify whether geometry that breaks those constraints will be simplified to ensure only valid geometry is written.
Note that simplifying geometries can be resource-intensive.
For details on the conditions for invalid geometry and how it is simplified, please refer to ArcGIS documentation: Simplifying a Geometry and Calling the Simplify Method.
The coordinates of the X false origins for all feature classes and all feature datasets. This is used as an offset so that coordinate data is stored as positive integers, which allows a range from 0 to 2147483647 (so if the X origin is set below 0, then the maximum value will also drop, and vice versa). By default, the values for the false origins are set to 0. This is only used when creating new feature classes.
The coordinates of the Y false origins for all feature classes and all feature datasets. This is used as an offset so that coordinate data is stored as positive integers, which allows a range from 0 to 2147483647 (so if the Y origin is set below 0, then the maximum value will also drop, and vice versa). By default, the values for the false origins are set to 0. This is only used when creating new feature classes.
This parameter is only used when creating new feature classes. It is not used by the File-based Geodatabase writer, as default values are used for the domain and resolution.
A scaling conversion factor from world units to integer system units for all feature classes and all feature datasets. This is used to specify the level of precision to keep when storing XY coordinates, since all coordinates are stored as integers.
The x,y scale is the inverse of the spatial reference's XY Resolution. The resolution is defined as the minimum unit in map units that separate unique x values and unique y values for feature coordinates.
Examples
- If the XY scale is defined to be 100, which corresponds to the XY resolution of .01 units, then an x value of 3.03 is considered different than 3.04, but the same as 3.033.
- If you have the coordinate (5.354, 566.35) and you set the XY scale to be 100, then the coordinate stored will be (5.35, 566.35).
For more information, see Esri's documentation on the properties of a Spatial Reference.
The default value is 100 when writing to an Enterprise Geodatabase and 0 when writing to a Personal Geodatabase.
Determines whether or not the dataset contains z coordinates. Valid values are Yes, No, or Auto Detect. The default is Auto Detect.
Because Geodatabase does not allow mixed 2D and 3D features in the same feature class, it is best to select YES if you have mixed dimensions. The 2D features will be forced to 3D.
When set to Auto Detect, the writer determines the dimension of the feature class by checking the dimension of the first feature headed for that feature class.
The coordinates of the Z false origins for all feature classes and all feature datasets. This is used as an offset so that coordinate data is stored as positive integers, which allows a range from 0 to 2147483647 (so if the Z origin is set below 0, then the maximum value will also drop, and vice versa). By default, the values for the false origins are set to 0. This is only used when creating new feature classes.
A scaling conversion factor from world units to integer system units for all feature classes and all feature datasets. This is used to specify the level of precision to keep when storing Z coordinates, since all coordinates are stored as integers.
Depending on the scale, it changes the precision of the coordinates stored. For example, if you have the coordinate (5.354, 566.35) and you set the Z_SCALE to be 100, then the coordinate stored will be (5.35, 566.35). The default value is 100. This is only used when creating new feature classes.
This sets the global grid 1 size for the whole translation. For the Enterprise Geodatabase writer, the default is 1000. This directive is only used when creating new feature classes.
Advanced
The value to use for the Z coordinate(s) when writing a 2D feature to a 3D feature class. If this parameter is not specified, a default value of 0 is used.
Transactions do not get used unless the Transaction Type parameter is set to Transactions. This parameter instructs the Geodatabase writer when to begin to write features to the Geodatabase.
The writer does not write any features to the Geodatabase until a feature is reached that belongs to <last successful transaction> + 1. Specifying a value of 0 causes the Geodatabase writer to use transactions and to write every feature to the Geodatabase. Usually, the value specified is 0 – a positive non-zero value is only specified when a data load operation is being rerun.
If this parameter is not specified and transactions are being used (that is, the Transaction Type parameter is set to Transactions), then a default value of 0 is used.
The number of features that FME places in each transaction before a transaction is committed to the database.
Default: 1000
When Transaction Type is set toVersioned Edit Session, this value is used to determine how many features to place in each edit operation within the edit session.
Note: The current transaction is committed and a new transaction is started whenever a new table is created or opened, even if the transaction interval was not reached.
This parameter tells the writer whether it should ignore features that would usually cause the translation to fail. This includes features that are topologically incorrect, are not supported by the writer, or conflict with the definition of the table to which it is to be inserted (that is, they are outside of the geometry envelope specified by the feature class). Additionally, the writer will also ignore polygons, donuts, or aggregates of polygons/donuts that cannot be reoriented.
The default setting is No, which means that failed features are not ignored and will cause the translation to fail when encountered.
This parameter sets the number of features to ignore before causing a translation to fail due to a problematic feature. (However, the translation may still fail for other reasons.)
Values: To ignore all failed features: -1; otherwise 0 or a positive integer.
This parameter allows you to store the failed features to an FFS file for later viewing.
This parameter allows you to specify an FME Feature Store (FFS) file to store any failed features.
This file will be created automatically, but will only be created if there is a failed feature.
Note: If the writer encounters a failed feature and writes to this file, and if a file with the same name already exists, the existing file will be overwritten.
This parameter is required when Dump Failed Features to File is set to Yes.
Values: path and filename
If either the path or the filename contains a space, the value must be enclosed in double quotation marks. The filename must end in the extension .ffs.
Specifies which map units should be used when creating a new annotation feature class. Its value will be applied to all annotation feature classes created by the writer identified by the writer keyword.
A Multi-Writer should be used when annotation feature classes with different map units need to be created. This parameter is not used when opening an existing annotation feature class. If the writer creates an annotation feature class, and this parameter is set to Unknown Units (the default value), then the writer tries to determine which type of unit the spatial reference uses and sets Annotation Units to the closest unit that is greater than or equal to it (with respect to its meters per unit value). If a local/unknown coordinate system is used, the units are set to meters.
Determines whether or not the dataset contains measures. The value of this parameter will be overridden by the Feature Type parameter Contains Measures if a value is specified for it.
Default: No
Note: This parameter is used only when creating new feature classes.
The minimum measures value possible. This is used as an offset because measure data is stored as positive integers (0 to 2147483647) relative to the measures origin.
This value is applied to all feature classes and feature datasets, although individual feature classes can override this value using the feature type parameter Measures Origin.
This parameter is used only when creating new feature classes.
Values: real number
Default Value: 0
A scaling conversion factor from world units to integer system units for all feature classes. Individual feature classes can override this value using the This value is applied to all feature classes and feature datasets, although individual feature classes can override this value using the feature type parameter Measures Scale. This is used to specify the level of precision to keep when storing measures, since all measures are stored as integers.
Depending on the scale, it changes the precision of the measures stored. For example, if you have the measure 566.354 and you set the Measures Scale to be 100, then the measures stored will be 566.35. The value is only used when creating a new feature class.
Values: real number greater than 0
Default Value: 100
This optional parameter reconciles all the changes between the version specified by the writer parameter VERSION and its parent version, even those edits made outside of the current translation, and then posts the version to its parent.
The reconcile and posting is done at the end of the translation when the writer is being shut down. As a result, if an error occurs during the reconcile or post, then only the reconcile and post changes are undone; all the features that were inserted/updated/deleted prior are still saved. The reconcile and post will only be successful if no conflicts are found. Conflicts must be resolved manually using Esri’s ArcGIS. Upon a successful post, the child version will be deleted or left intact depending on the value of the Delete child state following reconcile and post parameter.
This parameter determines whether to delete the child version following a reconcile and post, including when the child and parent version are identical. Yes (the default) will delete the child version, and No will leave it intact.
Enables fast deletes when feature operation is set to Delete.
- Yes – Combines WHERE clause predicates up to a limit of 32K characters at a time. If the limit is exceeded, a new query to the table is created.
- No – Slower deletes by creating a query to the table for each feature.
Enables Load Only mode when feature operation is set to Insert.
Load only mode disables the updating of the spatial index while data is loading on a feature class or table, and then rebuilds the indexes.
Note: On Enterprise Geodatabase, this mode only works if writing to a feature class (not table), and the feature class has no extensions.
- Yes – Load Only mode used for inserts when possible.
- No – Load only mode used only when creating a new feature class or table.
This parameter determines whether to copy the GlobalIDs from the source table to the destination table or generate new ones for the destination table. The destination must be an unversioned ArcSDE geodatabase to support preservation of GlobalIDs.
- Yes: GlobalIDs are preserved when creating a replica or inserting into existing tables with a GlobalID column.
- No (default): New GlobalIDs will be generated if a table has a GlobalID field.
Note: If the destination table has a GlobalID column and Preserve GlobalID is set to Yes, the Geodatabase writer will write the GlobalIDs from the incoming feature, even if the feature itself does not have a GlobalID. If the incoming feature does not have a GlobalID, the resulting GlobalID will be written as {00000000-0000-0000-0000-000000000000}. Writing two or more features without GlobalID will result in a “duplicate keys found” error; therefore, it is vital that every incoming feature has a valid GlobalID when the Preserve GlobalID parameter is set to Yes.
Determines whether to perform validation on features being written to the geodatabase.
- Yes – Validation is performed on the subtype, attribute rules, relationship rules, network connectivity rules and any custom rules present on the feature class. Failed features will be logged with an extended error message describing the reason for the failure.
- No – Validation is not performed.
Determines whether to perform simplification on network features being written to the geodatabase.
Specifies whether to create a connection to SDE that persists and can be shared by other SDE readers, writers, and transformers.
When set to Yes, the connection will remain open until FME shuts down, even if this reader is finished using it. Otherwise, the connection will be closed when the reader is shut down (unless another reader, writer, or transformer is still using the connection).
Creating a new connection is a resource-expensive operation. Depending on how FME is being used (for example, if there are multiple instances of the reader/writer being used), performance may improve by setting this parameter to Yes.
This parameter specifies whether to commit transactions at the end of each write operation.
- Yes: Transactions will be committed as soon as they are complete.
- No (default): Transactions will be committed at the start of the subsequent transaction. This option has no effect on translations taking place within an edit session.
This parameter allows for the execution of SQL statements before writing to a table. For example, it may be necessary to clean up a table before attempting to write to it. The statements will be executed only when the first feature arrives at the writer.
For detailed information about SQL functions, click the corresponding menu item in the
.Available menu options depend on the format.
Multiple SQL commands can be delimited by a character specified using the FME_SQL_DELIMITER
directive, embedded at the beginning of the SQL block. The single character following this directive will be used to split the SQL block into SQL statements, which will then be sent to the database for execution. Note: Include a space before the character.
For example:
FME_SQL_DELIMITER ; DELETE FROM instructors ; DELETE FROM people WHERE LastName='Doe' AND FirstName='John'
Multiple delimiters are not allowed and the delimiter character will be stripped before being sent to the database.
Any errors occurring during the execution of these SQL statements will normally terminate the reader or writer (depending on where the SQL statement is executed) with an error. If the specified statement is preceded by a hyphen (“-”), such errors are ignored.
This parameter allows for the execution of SQL statements after a set of tables has been written. For example, it may be necessary to clean up a temporary view after creating it.
For detailed information about SQL functions, click the corresponding menu item in the
.Available menu options depend on the format.
Multiple SQL commands can be delimited by a character specified using the FME_SQL_DELIMITER
directive, embedded at the beginning of the SQL block. The single character following this directive will be used to split the SQL block into SQL statements, which will then be sent to the database for execution. Note: Include a space before the character.
For example:
FME_SQL_DELIMITER ; DELETE FROM instructors ; DELETE FROM people WHERE LastName='Doe' AND FirstName='John'
Multiple delimiters are not allowed and the delimiter character will be stripped before being sent to the database.
Any errors occurring during the execution of these SQL statements will normally terminate the reader or writer (depending on where the SQL statement is executed) with an error. If the specified statement is preceded by a hyphen (“-”), such errors are ignored.