ArcGISFeatureTable Class

  • ArcGISFeatureTable
  • class Esri::ArcGISRuntime::ArcGISFeatureTable

    A table of features that typically represents 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
    Esri::ArcGISRuntime::TaskWatcher addedFeatures()
    QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> addedFeaturesAsync(QObject *parent = nullptr)
    Esri::ArcGISRuntime::TaskWatcher addedFeaturesCount()
    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
    Esri::ArcGISRuntime::TaskWatcher deletedFeatures()
    QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> deletedFeaturesAsync(QObject *parent = nullptr)
    Esri::ArcGISRuntime::TaskWatcher deletedFeaturesCount()
    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
    Esri::ArcGISRuntime::TaskWatcher localEdits()
    QFuture<Esri::ArcGISRuntime::LocalFeatureEditsResult *> localEditsAsync(QObject *parent = nullptr)
    Esri::ArcGISRuntime::TaskWatcher localEditsCount()
    QFuture<qint64> localEditsCountAsync()
    QString objectIdField() const
    Esri::ArcGISRuntime::TaskWatcher queryRelatedFeatureCount(Esri::ArcGISRuntime::ArcGISFeature *feature)
    Esri::ArcGISRuntime::TaskWatcher queryRelatedFeatureCount(Esri::ArcGISRuntime::ArcGISFeature *feature, const Esri::ArcGISRuntime::RelatedQueryParameters &relatedQueryParameters)
    QFuture<quint64> queryRelatedFeatureCountAsync(Esri::ArcGISRuntime::ArcGISFeature *feature)
    QFuture<quint64> queryRelatedFeatureCountAsync(Esri::ArcGISRuntime::ArcGISFeature *feature, const Esri::ArcGISRuntime::RelatedQueryParameters &parameters)
    Esri::ArcGISRuntime::TaskWatcher queryRelatedFeatures(Esri::ArcGISRuntime::ArcGISFeature *feature)
    Esri::ArcGISRuntime::TaskWatcher queryRelatedFeatures(Esri::ArcGISRuntime::ArcGISFeature *feature, const Esri::ArcGISRuntime::RelatedQueryParameters &relatedQueryParameters)
    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 &parameters, 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
    Esri::ArcGISRuntime::TaskWatcher updatedFeatures()
    QFuture<Esri::ArcGISRuntime::FeatureQueryResult *> updatedFeaturesAsync(QObject *parent = nullptr)
    Esri::ArcGISRuntime::TaskWatcher updatedFeaturesCount()
    QFuture<qint64> updatedFeaturesCountAsync()
    QString username() const
    QList<Esri::ArcGISRuntime::ContingencyConstraintViolation *> validateContingencyConstraints(Esri::ArcGISRuntime::ArcGISFeature *feature) const
    Esri::ArcGISRuntime::TaskWatcher validateRelationshipConstraints(Esri::ArcGISRuntime::ArcGISFeature *feature)
    QFuture<Esri::ArcGISRuntime::RelationshipConstraintViolationType> validateRelationshipConstraintsAsync(Esri::ArcGISRuntime::ArcGISFeature *feature)

    Signals

    void addedFeaturesCompleted(const QUuid &taskId, Esri::ArcGISRuntime::FeatureQueryResult *featureQueryResult)
    void addedFeaturesCountCompleted(const QUuid &taskId, qint64 count)
    void deletedFeaturesCompleted(const QUuid &taskId, Esri::ArcGISRuntime::FeatureQueryResult *featureQueryResult)
    void deletedFeaturesCountCompleted(const QUuid &taskId, qint64 count)
    void localEditsCompleted(const QUuid &taskId, Esri::ArcGISRuntime::LocalFeatureEditsResult *localEditsResult)
    void localEditsCountCompleted(const QUuid &taskId, qint64 localEditsCount)
    void queryRelatedFeatureCountCompleted(const QUuid &taskId, quint64 count)
    void queryRelatedFeaturesCompleted(const QUuid &taskId, QList<Esri::ArcGISRuntime::RelatedFeatureQueryResult *> relatedFeatureQueryResults)
    void updatedFeaturesCompleted(const QUuid &taskId, Esri::ArcGISRuntime::FeatureQueryResult *featureQueryResult)
    void updatedFeaturesCountCompleted(const QUuid &taskId, qint64 count)
    void validateRelationshipConstraintsCompleted(const QUuid &taskId, Esri::ArcGISRuntime::RelationshipConstraintViolationType relationshipConstraintViolationType)

    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.

    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.

    Member Function Documentation

    [override virtual] ArcGISFeatureTable::~ArcGISFeatureTable()

    Destructor.

    Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::addedFeatures()

    Returns the features added since the last sync.

    For mobile geodatabases created by ArcGIS Pro, this method returns no features because there is no concept of syncing.

    This method returns a TaskWatcher for the asynchronous operation.

    [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.

    [signal] void ArcGISFeatureTable::addedFeaturesCompleted(const QUuid &taskId, Esri::ArcGISRuntime::FeatureQueryResult *featureQueryResult)

    Signal emitted after a task started by addedFeatures has completed.

    • taskId - The task ID for the asynchronous operation.
    • featureQueryResult - The features that have been added to the table.

    The returned FeatureQueryResult object has the ArcGISFeatureTable as its parent.

    See also Returned QObjects Parenting.

    Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::addedFeaturesCount()

    Requests a count of features added to the local dataset but not yet added to the original source dataset.

    For mobile geodatabases created by ArcGIS Pro, this method returns 0 because there is no concept of syncing.

    Returns a TaskWatcher object representing the asynchronous retrieval of features added since last sync. The value of the task result is qint64.

    [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.

    [signal] void ArcGISFeatureTable::addedFeaturesCountCompleted(const QUuid &taskId, qint64 count)

    Signal emitted after a task started by addedFeaturesCount has completed.

    • taskId - The task ID for the asynchronous operation.
    • count - The count of features that have been added to the table.

    [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::addFeature.

    [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::addFeature.

    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::addFeature.

    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::addFeature.

    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::addFeature.

    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::addFeature.

    [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.

    Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::deletedFeatures()

    Returns the features deleted since the last sync.

    For mobile geodatabases created by ArcGIS Pro, this method returns 0 because there is no concept of syncing.

    Returns a TaskWatcher object representing the asynchronous retrieval of features deleted since last sync. The value of the task result is a FeatureQueryResult object.

    [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.

    [signal] void ArcGISFeatureTable::deletedFeaturesCompleted(const QUuid &taskId, Esri::ArcGISRuntime::FeatureQueryResult *featureQueryResult)

    Signal emitted after a task started by deletedFeatures has completed.

    • taskId - The task ID for the asynchronous operation.
    • featureQueryResult - The result of features that have been deleted from the table.

    The returned FeatureQueryResult objects have the ArcGISFeatureTable as their parent.

    See also Returned QObjects Parenting.

    Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::deletedFeaturesCount()

    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.

    Returns a TaskWatcher object representing the asynchronous retrieval of features deleted since last sync. The value of the task result is qint64.

    [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.

    [signal] void ArcGISFeatureTable::deletedFeaturesCountCompleted(const QUuid &taskId, qint64 count)

    Signal emitted after a task started by deletedFeaturesCount has completed.

    • taskId - The task ID for the asynchronous operation.
    • count - The count of features that have been deleted from the table.

    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 features may have attachments.

    [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(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 100.12] Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::localEdits()

    Returns all the features that were added, updated or deleted since the last sync.

    Returns a LocalFeatureEditsResult containing an LocalFeatureEditIterator of LocalFeatureEdit objects. For mobile geodatabases 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 TaskWatcher for the asynchronous operation.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    [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.

    [signal, since Esri::ArcGISRuntime 100.12] void ArcGISFeatureTable::localEditsCompleted(const QUuid &taskId, Esri::ArcGISRuntime::LocalFeatureEditsResult *localEditsResult)

    Signal emitted when the localEdits operation completes.

    • taskId - The task ID of the asynchronous operation.
    • localEditsResult - The result of the localEdits operation.

    The returned LocalFeatureEditsResult object has the ArcGISFeatureTable as its parent.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    See also Returned QObjects Parenting.

    [since Esri::ArcGISRuntime 100.12] Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::localEditsCount()

    Returns the number of features that were added, updated or deleted since the last sync.

    For a mobile geodatabase created by ArcGIS Pro, this method returns a count of 0 because there is no concept of syncing.

    This method returns a TaskWatcher for the asynchronous operation.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    [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.

    [signal, since Esri::ArcGISRuntime 100.12] void ArcGISFeatureTable::localEditsCountCompleted(const QUuid &taskId, qint64 localEditsCount)

    Signal emitted when the localEditsCount operation completes.

    • taskId - The task ID of the asynchronous operation.
    • localEditsCount - The result of the localEditsCount operation.

    This function was introduced in Esri::ArcGISRuntime 100.12.

    QString ArcGISFeatureTable::objectIdField() const

    Returns the name of field which contains the object ID for each feature.

    [since Esri::ArcGISRuntime 100.3] Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::queryRelatedFeatureCount(Esri::ArcGISRuntime::ArcGISFeature *feature)

    Requests a count of features related to the supplied feature.

    Returns a TaskWatcher that represents the asynchronous query of related feature count. The value of the task result contains a qint64.

    This function was introduced in Esri::ArcGISRuntime 100.3.

    [since Esri::ArcGISRuntime 100.3] Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::queryRelatedFeatureCount(Esri::ArcGISRuntime::ArcGISFeature *feature, const Esri::ArcGISRuntime::RelatedQueryParameters &relatedQueryParameters)

    Requests a count of features related to the supplied feature based on the relatedQueryParameters.

    A task that represents the asynchronous query of related feature count. The value of the task result contains a qint64.

    This function was introduced in Esri::ArcGISRuntime 100.3.

    [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 &parameters)

    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.

    [signal, since Esri::ArcGISRuntime 100.3] void ArcGISFeatureTable::queryRelatedFeatureCountCompleted(const QUuid &taskId, quint64 count)

    Signal emitted after a task started by queryRelatedFeatureCount has completed.

    • taskId - The task ID for the asynchronous operation.
    • count - The count of related features.

    This function was introduced in Esri::ArcGISRuntime 100.3.

    [since Esri::ArcGISRuntime 100.1] Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::queryRelatedFeatures(Esri::ArcGISRuntime::ArcGISFeature *feature)

    Queries for related features of a given feature in all relationships.

    This table and all related tables must be associated with the same Map, either as a feature source for a layer or added to the Map via Map::tables(). Otherwise, the query will return no results.

    This method returns a TaskWatcher for the asynchronous operation.

    This function was introduced in Esri::ArcGISRuntime 100.1.

    [since Esri::ArcGISRuntime 100.1] Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::queryRelatedFeatures(Esri::ArcGISRuntime::ArcGISFeature *feature, const Esri::ArcGISRuntime::RelatedQueryParameters &relatedQueryParameters)

    Queries for features related to the given feature in a specific relationship.

    • feature - The feature.
    • relatedQueryParameters - Description of the relationship and the query to perform.

    This table and related tables must be associated with the same Map, either as a feature source for a layer or added to the Map via Map::tables(). Otherwise, the query will return no results.

    This method returns a TaskWatcher for the asynchronous operation.

    This function was introduced in Esri::ArcGISRuntime 100.1.

    [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 &parameters, 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.

    [signal, since Esri::ArcGISRuntime 100.1] void ArcGISFeatureTable::queryRelatedFeaturesCompleted(const QUuid &taskId, QList<Esri::ArcGISRuntime::RelatedFeatureQueryResult *> relatedFeatureQueryResults)

    Signal emitted after a task started by queryRelatedFeatures has completed.

    • taskId - The task ID for the asynchronous operation.
    • relatedFeatureQueryResults - The list ofRelatedFeatureQueryResult, one per related table containing features related to the queried feature.

    The returned RelatedFeatureQueryResult objects have the ArcGISFeatureTable as their parent.

    This function was introduced in Esri::ArcGISRuntime 100.1.

    See also Returned QObjects Parenting.

    [since Esri::ArcGISRuntime 100.1] QList<Esri::ArcGISRuntime::ArcGISFeatureTable *> ArcGISFeatureTable::relatedTables(const Esri::ArcGISRuntime::RelationshipInfo &relationshipInfo) const

    Returns 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 exception 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.

    Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::updatedFeatures()

    Requests a collection of features updated in the local dataset but not yet updated in the original source dataset.

    For mobile geodatabases created by ArcGIS Pro, this method returns 0 because there is no concept of syncing.

    Returns a TaskWatcher for the asynchronous operation.

    [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.

    [signal] void ArcGISFeatureTable::updatedFeaturesCompleted(const QUuid &taskId, Esri::ArcGISRuntime::FeatureQueryResult *featureQueryResult)

    Signal emitted after a task started by updatedFeatures has completed.

    • taskId - The task ID for the asynchronous operation.
    • featureQueryResult - A result of features that have been updated in the table.

    The returned FeatureQueryResult objects have the ArcGISFeatureTable as their parent.

    See also Returned QObjects Parenting.

    Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::updatedFeaturesCount()

    Requests a count of features updated in the local dataset but not yet updated in the original source dataset.

    For mobile geodatabases created by ArcGIS Pro, this method returns 0 because there is no concept of syncing.

    Returns a TaskWatcher object representing the asynchronous retrieval of features updated since last sync. The value of the task result is qint64.

    [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.

    [signal] void ArcGISFeatureTable::updatedFeaturesCountCompleted(const QUuid &taskId, qint64 count)

    Signal emitted after a task started by updatedFeaturesCount has completed.

    • taskId - The task ID for the asynchronous operation.
    • count - The count of features that have been updated in the table.

    [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 100.1] Esri::ArcGISRuntime::TaskWatcher ArcGISFeatureTable::validateRelationshipConstraints(Esri::ArcGISRuntime::ArcGISFeature *feature)

    Validates constraints for a given feature participating in a relationship.

    Returns a TaskWatcher that represents the asynchronous validation of relationship constraints operation. The value of the task result contains a RelationshipConstraintViolationType enum.

    The following are considered violations:

    To recover from an orphaned destination feature violation, relate it to a valid origin feature. You can usually recover from a cardinality violation by un-relating the appropriate features. See ArcGISFeature::unrelateFeature.

    Edit operations do not cause an 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 topic Validating features and relationships in ArcMap for a description of that process.

    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, first you must call FeatureTable::updateFeature to reflect the modified attribute value in the table. If this is not done, validation results may be incorrect.

    This function was introduced in Esri::ArcGISRuntime 100.1.

    [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. You can usually recover from a cardinality violation by removing the relationship between the appropriate features. see ArcGISFeature::unrelateFeature.

    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::updateFeature 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.

    [signal] void ArcGISFeatureTable::validateRelationshipConstraintsCompleted(const QUuid &taskId, Esri::ArcGISRuntime::RelationshipConstraintViolationType relationshipConstraintViolationType)

    Signal emitted after a task started by validateRelationshipConstraints has completed.

    • taskId - The task ID for the asynchronous operation.
    • relationshipConstraintViolationType - The type of violation, such as cardinality.

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