A table of features that typically represent real-world objects created from an ArcGIS feature service or an ArcGIS geodatabase. More...
Header: | #include <ArcGISFeatureTable.h> |
Since: | Esri::ArcGISRuntime 100.0 |
Inherits: | Esri::ArcGISRuntime::FeatureTable |
Inherited By: | Esri::ArcGISRuntime::GeodatabaseFeatureTable and Esri::ArcGISRuntime::ServiceFeatureTable |
Public Functions
virtual | ~ArcGISFeatureTable() override |
QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> | addedFeaturesAsync(QObject *parent = nullptr) |
QFuture<qint64> | addedFeaturesCountAsync() |
Esri::ArcGISRuntime::ContingentValuesResult * | contingentValues(Esri::ArcGISRuntime::ArcGISFeature *feature, const QString &field) const |
Esri::ArcGISRuntime::ContingentValuesDefinition * | contingentValuesDefinition() const |
Esri::ArcGISRuntime::ArcGISFeature * | createFeatureWithSubtype(const Esri::ArcGISRuntime::FeatureSubtype &featureSubtype, QObject *parent = nullptr) const |
Esri::ArcGISRuntime::ArcGISFeature * | createFeatureWithSubtype(const Esri::ArcGISRuntime::FeatureSubtype &featureSubtype, const Esri::ArcGISRuntime::Geometry &geometry, QObject *parent = nullptr) const |
Esri::ArcGISRuntime::ArcGISFeature * | createFeatureWithTemplate(const Esri::ArcGISRuntime::FeatureTemplate &featureTemplate, QObject *parent = nullptr) const |
Esri::ArcGISRuntime::ArcGISFeature * | createFeatureWithTemplate(const Esri::ArcGISRuntime::FeatureTemplate &featureTemplate, const Esri::ArcGISRuntime::Geometry &geometry, QObject *parent = nullptr) const |
Esri::ArcGISRuntime::ArcGISFeature * | createFeatureWithType(const Esri::ArcGISRuntime::FeatureType &featureType, QObject *parent = nullptr) const |
Esri::ArcGISRuntime::ArcGISFeature * | createFeatureWithType(const Esri::ArcGISRuntime::FeatureType &featureType, const Esri::ArcGISRuntime::Geometry &geometry, QObject *parent = nullptr) const |
QVariant | defaultSubtypeCode() const |
QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> | deletedFeaturesAsync(QObject *parent = nullptr) |
QFuture<qint64> | deletedFeaturesCountAsync() |
QList<Esri::ArcGISRuntime::Field> | editableAttributeFields() const |
QList<Esri::ArcGISRuntime::FeatureSubtype> | featureSubtypes() const |
Esri::ArcGISRuntime::FeatureTemplate | featureTemplate(const QString &name) const |
QList<Esri::ArcGISRuntime::FeatureTemplate> | featureTemplates() const |
Esri::ArcGISRuntime::FeatureType | featureType(const QString &name) const |
QList<Esri::ArcGISRuntime::FeatureType> | featureTypes() const |
QString | globalIdField() const |
bool | hasAttachments() const |
bool | hasLocalEdits() const |
bool | isUseAdvancedSymbology() const |
Esri::ArcGISRuntime::ArcGISFeatureLayerInfo | layerInfo() const |
QFuture<Esri::ArcGISRuntime::LocalFeatureEditsResult *> | localEditsAsync(QObject *parent = nullptr) |
QFuture<qint64> | localEditsCountAsync() |
QString | objectIdField() const |
QFuture<quint64> | queryRelatedFeatureCountAsync(Esri::ArcGISRuntime::ArcGISFeature *feature) |
QFuture<quint64> | queryRelatedFeatureCountAsync(Esri::ArcGISRuntime::ArcGISFeature *feature, const Esri::ArcGISRuntime::RelatedQueryParameters ¶meters) |
QFuture<QList<Esri::ArcGISRuntime::RelatedFeatureQueryResult *>> | queryRelatedFeaturesAsync(Esri::ArcGISRuntime::ArcGISFeature *feature, QObject *parent = nullptr) |
QFuture<QList<Esri::ArcGISRuntime::RelatedFeatureQueryResult *>> | queryRelatedFeaturesAsync(Esri::ArcGISRuntime::ArcGISFeature *feature, const Esri::ArcGISRuntime::RelatedQueryParameters ¶meters, QObject *parent = nullptr) |
QList<Esri::ArcGISRuntime::ArcGISFeatureTable *> | relatedTables(const Esri::ArcGISRuntime::RelationshipInfo &relationshipInfo) const |
QList<Esri::ArcGISRuntime::ArcGISFeatureTable *> | relatedTables() const |
qint64 | serviceLayerId() const |
void | setUseAdvancedSymbology(bool advancedSymbology) |
QString | subtypeField() const |
QString | typeIdField() const |
QJsonObject | unknownJson() const |
QJsonObject | unsupportedJson() const |
QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> | updatedFeaturesAsync(QObject *parent = nullptr) |
QFuture<qint64> | updatedFeaturesCountAsync() |
QString | username() const |
QList<Esri::ArcGISRuntime::ContingencyConstraintViolation *> | validateContingencyConstraints(Esri::ArcGISRuntime::ArcGISFeature *feature) const |
QFuture<Esri::ArcGISRuntime::RelationshipConstraintViolationType> | validateRelationshipConstraintsAsync(Esri::ArcGISRuntime::ArcGISFeature *feature) |
Detailed Description
This is the base class for the ArcGIS specific feature tables GeodatabaseFeatureTable and ServiceFeatureTable. You can create instances of these subclasses using their constructors.
If the FeatureTable::hasGeometry is true
, you can display the features in a Map or Scene. To do this create a FeatureLayer from the feature table and add it to the map or scene's collection of operational layers (GeoModel::operationalLayers). The ArcGISFeatureTable can also contain features that do not have a geometry (FeatureTable::hasGeometry is false
).
ArcGISFeatureTable provides methods for querying related features (for example, ArcGISFeatureTable.queryRelatedFeaturesAsync(ArcGISFeature)), and methods to create new features based on a FeatureSubtype or a FeatureTemplate.
Subclasses of this class represent a feature set from a specific type of ArcGIS source such as a feature service or a geodatabase. The features in the set might or might not include geometry. You can query the ArcGISFeatureTable using attribute or spatial criteria. If permitted, you can edit the features. Edits are tracked, so you can later retrieve a list of your edits. If the feature set contains geographic features, you can display them on a map using a FeatureLayer.
An ArcGISFeatureTable may have FeatureTemplates, FeatureTypes, and support edit capabilities. These are defined by the table's service definition. An ArcGISFeatureTable may have editable attribute fields.
Related tables
ArcGISFeatureTables from the same data source can be related to one another. RelationshipInfo defines relationships between tables. A relationship's cardinality may be one-to-one (1:1), one-to-many (1:n), or many-to-many (m:n), depending on the capabilities of the data source. If a table has relationships, you can find related tables, query for related features, and edit them.
To query or edit using related tables, all the tables participating in the relationship must be loaded into the same Map. Otherwise, the query will not return results and the edits cannot be performed.
RelatedQueryParameters defines queries on related tables.
Relevant samples:
- List related features: List features related to a selected feature.
- Show device location using indoor positioning: Show your device's real-time location while inside a building by using signals from indoor positioning beacons.
Member Function Documentation
[override virtual]
ArcGISFeatureTable::~ArcGISFeatureTable ()
Destructor.
[since Esri::ArcGISRuntime 200.2]
QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> ArcGISFeatureTable::addedFeaturesAsync (QObject *parent = nullptr)
Returns the features added since the last sync.
- parent - The optional parent QObject
For mobile geodatabases created by ArcGIS Pro, this method returns no features because there is no concept of syncing.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[since Esri::ArcGISRuntime 200.2]
QFuture<qint64> ArcGISFeatureTable::addedFeaturesCountAsync ()
Returns the number of features added since the last sync.
For mobile geodatabases created by ArcGIS Pro, this method returns 0 because there is no concept of syncing.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[since Esri::ArcGISRuntime 100.13]
Esri::ArcGISRuntime::ContingentValuesResult *ArcGISFeatureTable::contingentValues (Esri::ArcGISRuntime::ArcGISFeature *feature, const QString &field) const
Returns possible values for the specified field, in the context of defined contingencies.
- feature - The feature.
- field - The name of the field for which to get possible values.
This method iterates over all the field groups that the input field participates in. For each, it looks at the input feature's field values for the other fields participating in that field group. Contingencies that are satisfied by the other fields are identified, and their values for the input field are aggregated. These are returned in a ContingentValuesResult, which contains a dictionary of field group names and an associated list of ContingentValue objects. These objects are accessed via ContingentValuesResult::contingentValuesByFieldGroup, by specifying possible values for the input field that will satisfy a contingency in that field group. If the feature participates in multiple field groups and there are values that will satisfy all groups, they will be returned by ContingentValuesResult::contingentValuesAllGroups.
This function was introduced in Esri::ArcGISRuntime 100.13.
[since Esri::ArcGISRuntime 100.13]
Esri::ArcGISRuntime::ContingentValuesDefinition *ArcGISFeatureTable::contingentValuesDefinition () const
Returns the table's contingent values definition.
The contingent values definition must be loaded after the table has loaded. If the list of field groups is empty after loading, then no contingent values are defined for this table.
This function was introduced in Esri::ArcGISRuntime 100.13.
[since Esri::ArcGISRuntime 100.3]
Esri::ArcGISRuntime::ArcGISFeature *ArcGISFeatureTable::createFeatureWithSubtype (const Esri::ArcGISRuntime::FeatureSubtype &featureSubtype , QObject *parent = nullptr) const
Creates and returns a new feature based on the specified featureSubtype, with an optional parent.
Note, the new feature is only available in memory at this point, it is not committed to the dataset and will need to be explicitly added.
This function was introduced in Esri::ArcGISRuntime 100.3.
See also FeatureTable::addFeatureAsync.
[since Esri::ArcGISRuntime 100.3]
Esri::ArcGISRuntime::ArcGISFeature *ArcGISFeatureTable::createFeatureWithSubtype (const Esri::ArcGISRuntime::FeatureSubtype &featureSubtype , const Esri::ArcGISRuntime::Geometry &geometry, QObject *parent = nullptr) const
Creates and returns a new feature based on the specified featureSubtype and geometry with an optional parent.
Note, the new feature is only available in memory at this point, it is not committed to the dataset and will need to be explicitly added.
This function was introduced in Esri::ArcGISRuntime 100.3.
See also FeatureTable::addFeatureAsync.
Esri::ArcGISRuntime::ArcGISFeature *ArcGISFeatureTable::createFeatureWithTemplate (const Esri::ArcGISRuntime::FeatureTemplate &featureTemplate , QObject *parent = nullptr) const
Creates and returns a new feature based on the given featureTemplate, with an optional parent.
The new feature is only available in memory at this point, it is not committed to the dataset and will need to be explicitly added.
See also FeatureTable::addFeatureAsync.
Esri::ArcGISRuntime::ArcGISFeature *ArcGISFeatureTable::createFeatureWithTemplate (const Esri::ArcGISRuntime::FeatureTemplate &featureTemplate , const Esri::ArcGISRuntime::Geometry &geometry, QObject *parent = nullptr) const
Creates and returns a new feature based on the specified featureTemplate and geometry, with an optional parent.
The new feature is only available in memory at this point, it is not committed to the dataset and will need to be explicitly added.
See also FeatureTable::addFeatureAsync.
Esri::ArcGISRuntime::ArcGISFeature *ArcGISFeatureTable::createFeatureWithType (const Esri::ArcGISRuntime::FeatureType &featureType , QObject *parent = nullptr) const
Creates and returns a new feature based on the specified featureType, with an optional parent.
Note, the new feature is only available in memory at this point, it is not committed to the dataset and will need to be explicitly added.
See also FeatureTable::addFeatureAsync.
Esri::ArcGISRuntime::ArcGISFeature *ArcGISFeatureTable::createFeatureWithType (const Esri::ArcGISRuntime::FeatureType &featureType , const Esri::ArcGISRuntime::Geometry &geometry, QObject *parent = nullptr) const
Creates and returns a new feature based on the specified featureType and geometry with an optional parent.
Note, the new feature is only available in memory at this point, it is not committed to the dataset and will need to be explicitly added.
See also FeatureTable::addFeatureAsync.
[since Esri::ArcGISRuntime 100.3]
QVariant ArcGISFeatureTable::defaultSubtypeCode () const
Returns the table's default subtype code.
This function was introduced in Esri::ArcGISRuntime 100.3.
[since Esri::ArcGISRuntime 200.2]
QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> ArcGISFeatureTable::deletedFeaturesAsync (QObject *parent = nullptr)
Returns the features deleted since the last sync.
- parent - The optional parent QObject
For mobile geodatabases created by ArcGIS Pro, this method returns no features because there is no concept of syncing.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[since Esri::ArcGISRuntime 200.2]
QFuture<qint64> ArcGISFeatureTable::deletedFeaturesCountAsync ()
Returns the number of features deleted since the last sync.
For mobile geodatabases created by ArcGIS Pro, this method returns 0 because there is no concept of syncing.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
QList<Esri::ArcGISRuntime::Field > ArcGISFeatureTable::editableAttributeFields () const
Returns a list of Field objects representing the subset of fields (columns) in the dataset that are editable.
[since Esri::ArcGISRuntime 100.3]
QList<Esri::ArcGISRuntime::FeatureSubtype > ArcGISFeatureTable::featureSubtypes () const
Returns a list of FeatureSubtype objects describing the subtypes of the layer.
This list is included for layers that have subtypes. The domains in the types list will match the domains in the subtype list for layers that have a unique value renderer based on the subtype column.
This function was introduced in Esri::ArcGISRuntime 100.3.
Esri::ArcGISRuntime::FeatureTemplate ArcGISFeatureTable::featureTemplate (const QString &name) const
Returns a feature template given its name.
QList<Esri::ArcGISRuntime::FeatureTemplate > ArcGISFeatureTable::featureTemplates () const
Returns a list of feature templates for this ArcGISFeatureTable.
A feature template contains all the information required to create a feature, including the attributes a feature is created with. An ArcGISFeatureTable may have one or more feature templates that correspond to different types of features that you may create in the ArcGISFeatureTable.
You can get feature templates if this ArcGISFeatureTable does not contain feature subtypes.
Esri::ArcGISRuntime::FeatureType ArcGISFeatureTable::featureType (const QString &name) const
Returns a feature type given its name.
QList<Esri::ArcGISRuntime::FeatureType > ArcGISFeatureTable::featureTypes () const
Returns a list of FeatureType objects representing feature subtypes in the layer.
For example, a roads layer may contain two feature subtypes: highways and streets.
QString ArcGISFeatureTable::globalIdField () const
Returns the name of field which contains the GLOBALID
for each feature.
bool ArcGISFeatureTable::hasAttachments () const
Returns true
if the features in this table support attachments, false
otherwise.
[since Esri::ArcGISRuntime 100.9]
bool ArcGISFeatureTable::hasLocalEdits () const
Returns whether the feature table has local edits.
For Esri::ArcGISRuntime::ServiceFeatureTable, local edits are edits that have not yet been applied to the feature service. For Esri::ArcGISRuntime::GeodatabaseFeatureTable, local edits are edits that have been made since the last acknowledged upload.
For mobile geodatabases created by ArcGIS Pro, this method returns false
because there is no concept of uploading or applying edits. For mobile geodatabases, use GeodatabaseFeatureTable::hasLocalEditsSince(const QDateTime&).
When a table is not change tracked, it will emit an Error with an Error::errorType of {Esri::ArcGISRuntime::ErrorType} {ErrorType::GeodatabaseChangeTrackingNotEnabled}. (Geodatabase change tracking not enabled).
This function was introduced in Esri::ArcGISRuntime 100.9.
bool ArcGISFeatureTable::isUseAdvancedSymbology () const
Returns whether the dataset should be visualized using advanced CIM symbology from the service.
See also setUseAdvancedSymbology.
Esri::ArcGISRuntime::ArcGISFeatureLayerInfo ArcGISFeatureTable::layerInfo () const
Returns the service information associated with the feature layer.
Note, feature layer information can only be obtained after the table is loaded.
[since Esri::ArcGISRuntime 200.2]
QFuture<Esri::ArcGISRuntime::LocalFeatureEditsResult *> ArcGISFeatureTable::localEditsAsync (QObject *parent = nullptr)
Returns all the features that were added, updated or deleted since the last sync.
- parent - The optional parent QObject
Returns a result object containing a feature edit iterator. For mobile geodatabase created by ArcGIS Pro, the iterator in the result object is empty because there is no concept of syncing.
Note that edits inside a transaction (between calls to Geodatabase::beginTransaction and either Geodatabase::commitTransaction or Geodatabase::rollbackTransaction) share a common LocalFeatureEdit::editDateTime and may not be returned in a consistent order.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[since Esri::ArcGISRuntime 200.2]
QFuture<qint64> ArcGISFeatureTable::localEditsCountAsync ()
Returns the number of features that were added, updated or deleted since the last sync.
For mobile geodatabases created by ArcGIS Pro, this method returns a count of 0
because there is no concept of syncing.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
QString ArcGISFeatureTable::objectIdField () const
Returns the name of field which contains the object ID for each feature.
[since Esri::ArcGISRuntime 200.2]
QFuture<quint64> ArcGISFeatureTable::queryRelatedFeatureCountAsync (Esri::ArcGISRuntime::ArcGISFeature *feature)
Performs a query that returns the number of related features to the supplied feature.
- feature - The feature which should be queried for the number of related features.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
See also FeatureServiceSessionType.
[since Esri::ArcGISRuntime 200.2]
QFuture<quint64> ArcGISFeatureTable::queryRelatedFeatureCountAsync (Esri::ArcGISRuntime::ArcGISFeature *feature, const Esri::ArcGISRuntime::RelatedQueryParameters ¶meters)
Performs a query that returns the number of related features to supplied feature based on the parameters.
- feature - The feature which should be queried for the number of related features.
- parameters - The parameters to the query.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
See also FeatureServiceSessionType.
[since Esri::ArcGISRuntime 200.2]
QFuture<QList<Esri::ArcGISRuntime::RelatedFeatureQueryResult *>> ArcGISFeatureTable::queryRelatedFeaturesAsync (Esri::ArcGISRuntime::ArcGISFeature *feature, QObject *parent = nullptr)
Queries for related features of a given feature in all relationships.
- feature - The feature for which to query related features.
- parent - The optional parent QObject
The origin and all destination tables must be associated with the same map, either as a feature source for a layer or added to the map via its table collection. Otherwise, the query will return no results.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
See also FeatureServiceSessionType.
[since Esri::ArcGISRuntime 200.2]
QFuture<QList<Esri::ArcGISRuntime::RelatedFeatureQueryResult *>> ArcGISFeatureTable::queryRelatedFeaturesAsync (Esri::ArcGISRuntime::ArcGISFeature *feature, const Esri::ArcGISRuntime::RelatedQueryParameters ¶meters, QObject *parent = nullptr)
Queries for related features of a given feature in a specific relationship.
- feature - The feature for which to query related features.
- parameters - Describes the relationship and the query to perform.
The origin and all destination tables must be associated with the same map, either as a feature source for a layer or added to the map via its table collection. Otherwise, the query will return no results.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
See also FeatureServiceSessionType.
[since Esri::ArcGISRuntime 100.1]
QList<Esri::ArcGISRuntime::ArcGISFeatureTable *> ArcGISFeatureTable::relatedTables (const Esri::ArcGISRuntime::RelationshipInfo &relationshipInfo ) const
Returns a list of tables related by the given relationshipInfo.
Only returns tables that have been added to the same map. If there are multiple instances of the related table on the map, all such instances will be returned.
This function was introduced in Esri::ArcGISRuntime 100.1.
[since Esri::ArcGISRuntime 100.1]
QList<Esri::ArcGISRuntime::ArcGISFeatureTable *> ArcGISFeatureTable::relatedTables () const
Returns a list of all related tables that have been added to the map.
Only returns tables that have been added to the map that this table is associated with.
This function was introduced in Esri::ArcGISRuntime 100.1.
qint64 ArcGISFeatureTable::serviceLayerId () const
Returns the layer ID in the feature service that this table was created from.
Note, service layer ID can only be obtained after the table is loaded, with the error of GeodatabaseFeatureTable which can obtain the service layer ID after instantiation.
void ArcGISFeatureTable::setUseAdvancedSymbology (bool advancedSymbology )
Sets whether the dataset should be visualized using advanced CIM symbology from the service.
- advancedSymbology - Whether to support advanced symbology.
You cannot change this property after the table is successfully loaded.
The default value is true
.
Services that do not support CIM symbols will ignore this property and return regular symbols instead.
See also isUseAdvancedSymbology().
[since Esri::ArcGISRuntime 100.3]
QString ArcGISFeatureTable::subtypeField () const
Return the table's subtype field.
If the table does not have subtypes, an empty string is returned.
This function was introduced in Esri::ArcGISRuntime 100.3.
QString ArcGISFeatureTable::typeIdField () const
Returns the name of the field that contains the subtype information for each feature.
[since Esri::ArcGISRuntime 100.8]
QJsonObject ArcGISFeatureTable::unknownJson () const
Returns the unknown data from the source JSON.
Unknown JSON is a QJsonObject of values not defined in the ArcGIS specification used to create this object but found in the source JSON. If the object is written back to JSON, any unknown JSON data is not persisted. The ArcGIS specification may be for a web map, web scene, REST API, and so on.
This function was introduced in Esri::ArcGISRuntime 100.8.
[since Esri::ArcGISRuntime 100.8]
QJsonObject ArcGISFeatureTable::unsupportedJson () const
Returns the unsupported data from the source JSON.
Unsupported JSON is a QJsonObject of values defined in the ArcGIS specification used to create this object but not currently used in this API. If the object is written back to JSON, any unsupported JSON data is persisted. The ArcGIS specification may be from a web map, web scene, REST API, and so on.
This function was introduced in Esri::ArcGISRuntime 100.8.
[since Esri::ArcGISRuntime 200.2]
QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> ArcGISFeatureTable::updatedFeaturesAsync (QObject *parent = nullptr)
Returns the features updated since the last sync.
- parent - The optional parent QObject
For mobile geodatabases created by ArcGIS Pro, this method returns no features because there is no concept of syncing.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[since Esri::ArcGISRuntime 200.2]
QFuture<qint64> ArcGISFeatureTable::updatedFeaturesCountAsync ()
Returns the number of features updated since the last sync.
For mobile geodatabases created by ArcGIS Pro, this method returns 0 because there is no concept of syncing.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[since Esri::ArcGISRuntime 200.0]
QString ArcGISFeatureTable::username() const
Returns the username of the feature table.
The username is used for ownership-based access control (OBAC) and editor tracking purposes.
This function was introduced in Esri::ArcGISRuntime 200.0.
[since Esri::ArcGISRuntime 100.13]
QList<Esri::ArcGISRuntime::ContingencyConstraintViolation *> ArcGISFeatureTable::validateContingencyConstraints (Esri::ArcGISRuntime::ArcGISFeature *feature) const
Returns a list of contingency constraint violations based on the input feature. An empty list indicates that all contingencies associated with the feature are valid.
- feature - The feature.
This function was introduced in Esri::ArcGISRuntime 100.13.
[since Esri::ArcGISRuntime 200.2]
QFuture<Esri::ArcGISRuntime::RelationshipConstraintViolationType > ArcGISFeatureTable::validateRelationshipConstraintsAsync (Esri::ArcGISRuntime::ArcGISFeature *feature)
Validates constraints for a given feature participating in a relationship.
- feature - The feature.
The following are considered violations:
- In a composite relationship, adding an orphan feature to the destination table without relating it to an origin feature
- Cardinality Violations: - In 1:1 relationships, if an origin feature is already related to a destination feature, relating another feature to either of them - In 1:n relationships, relating a destination feature to more than one origin feature
To recover from an orphaned destination feature violation, simply relate it to a valid origin feature, using ArcGISFeature::relateFeature(Esri::ArcGISRuntime::ArcGISFeature*). You can usually recover from a cardinality violation by removing the relationship between the appropriate features, using ArcGISFeature::unrelateFeature(Esri::ArcGISRuntime::ArcGISFeature*)
Note that edit operations do not error when there are constraint violations. This allows you to recover from violations in a back office operation after applying edits or syncing, if you choose to do so. See ArcGIS Desktop Validate Features process here.
Note: This method makes network calls to query for the related features if they are not present locally. If you have just related the feature you are validating, you need to first call FeatureTable::updateFeatureAsync(Esri::ArcGISRuntime::Feature*) to reflect the modified attribute value in the table. If this is not done, validation results may be incorrect.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.