QueriableDataSource

Interface

QueriableDataSource extends DataSource and add query capability. A queriable data source must have an URL to execute the query.

The current default query implementation supports pagination. It allows mulitple widgets to apply queries on the same data source, all of which are merged by using the AND logic operator.

When execute a query, in addition to the passed in query parameters, all configured queries and all other widgets applied queries are merged by using the AND logic operator.

When a query is executed against a data view, the query from its main data source is used as well.

Inheritance: QueriableDataSourceDataSource

Properties

Hide inherited properties
PropertyTypeNotes
() => void
addVersion
inherited
() => void
() => boolean

The data source which this data source derives from.

buildRecord
inherited
(dataany) => DataRecord
() => Promise<DataSource[]>
clearRecords
inherited
() => void
() => void
count
inherited
number

The total records count depends on the current query

(dataSourceIdstring) => Promise<DataSource>

The data source manager, which is used to manage the data source, including create/get/destroy the data source instance.

dataViewId
inherited
string

The data view ID configured in Json.

destroy
inherited
() => void
fetchSchema
inherited
() => Promise<IMDataSourceSchema>
() => DataSource[]
() => DataSource[]
() => number
(jimuChildIdstring) => DataSource
() => DataSource[]
(options?GetCurrentQueryParamsOptions) => QueryParams
() => IMDataSourceJson
getIdField
inherited
() => string
getInfo
inherited
() => IMDataSourceInfo
getLabel
inherited
() => string
() => boolean
(localIdstring) => DataSource
() => DataSource[]
() => number
(pageSizenumber, pagenumber) => number[]
(queryQueryParams, flag"query" | "load", options?QueryOptions) => QueryParams
getRecord
inherited
(indexnumber) => DataRecord
getRecordById
inherited
(idstring) => DataRecord
getRecords
inherited
() => DataRecord[]
(pagenumber, pageSizenumber) => DataRecord[]
(pagenumber, pageSizenumber) => DataRecord[]
() => DataRecord[]
(excludeWidgetId?string) => QueryParams
getSchema
inherited
() => string[]
() => number[]
() => DataRecord[]
() => DataRecord[]
() => number
getStatus
inherited
getVersion
inherited
() => number
id
inherited
string

The data source ID.

boolean

Whether a data source contains child data sources. A set data source won't create all its child data sources when ready is resolved. To make sure all child data sources are created, please use childDataSourcesReady .

isDataView
inherited
boolean

True means the data source is a data view. For local data source, this is false even the local data source is created from a data view.

isInAppConfig
inherited
() => boolean
isLocal
inherited
boolean

True means the data source is a local data source.

boolean

Whether the data source is case-sensitive when doing query by SQL clauses.

(queryQueryParams, options?QueryOptions) => Promise<DataRecord[]>
(idstring, refresh?boolean) => Promise<DataRecord>
(queryQueryParams, options?QueryOptions) => Promise<number>
localId
inherited
string

The local ID of the data source.

(queriesQueryParams[]) => QueryParams
order
inherited
number

Order in the parent data source.

The parent data source of this data source, mull means it's a root data source.

(queryQueryParams, options?QueryOptions) => Promise<QueryResult>
(idstring) => Promise<DataRecord>
(queryQueryParams, options?QueryOptions) => Promise<QueryResult>
ready
inherited
() => Promise<any>
(idstring, record?DataRecord, forceCheck?boolean) => void
(idsstring[], records?DataRecord[], forceCheck?boolean) => void
(statusDataSourceStatus) => void
(dsJsonIMDataSourceJson) => void
(listenboolean) => void
setRecords
inherited
(recordsDataRecord[]) => void
(recordsDataRecord[]) => void
setStatus
inherited
(statusDataSourceStatus) => void
type
inherited
string

The type of the data source.

(queryQueryParams, widgetIdstring) => void
(idsstring[], triggerDataSourceDataSource, forceCheck?boolean) => void
string

The data source URL

addSourceVersion

inherited
Interface Property
addSourceVersion: () => void
Type declaration
    function(): void

    When current data source is created from an array of records, it will be saved in sourceRecords . Add the version of sourceRecords .setSourceRecords will add the version by default.

    Returns 
    void

addVersion

optionalinherited
Interface Property
addVersion: () => void
Type declaration
    function(): void

    Update data source version.

    Returns 
    void
Inherited from DataSource.addVersion

areChildDataSourcesCreated

optionalinherited
Interface Property
areChildDataSourcesCreated: () => boolean
Type declaration
    function(): boolean

    Return whether all child data sources (including descendant data sources) are created. Data source has this method only if it is data source set ( dataSource.isDataSourceSet is true).

    Returns 
    boolean

belongToDataSource

optionalinherited
Interface Property
belongToDataSource: DataSource

The data source which this data source derives from.

buildRecord

inherited
Interface Property
buildRecord: (dataany) => DataRecord
Type declaration
    function(dataany): DataRecord

    Builds a data record only -- does not add the record into data source.

    Parameters
    ParameterType
    data
    any
    Returns 
    DataRecord
Inherited from DataSource.buildRecord

childDataSourcesReady

optionalinherited
Interface Property
childDataSourcesReady: () => Promise<DataSource[]>
Type declaration
    function(): Promise<DataSource[]>

    All child data sources (including descendant data sources) are ready for use. Data source has this method only if it is data source set ( dataSource.isDataSourceSet is true).

    Returns 
    Promise<DataSource[]>

clearRecords

optionalinherited
Interface Property
clearRecords: () => void
Type declaration
    function(): void

    This function will clear the loaded records and won't clear the sourceRecords. Once the loaded records are cleared, the version in the data source info will be updated.

    Returns 
    void

clearSourceRecords

inherited
Interface Property
clearSourceRecords: () => void
Type declaration
    function(): void

    Clear both sourceRecords and loaded records. Both source version and version in data source info will be updated.

    Returns 
    void

count

optionalinherited
Interface Property
count: number

The total records count depends on the current query

Inherited from DataSource.count

createDataSourceById

optionalinherited
Interface Property
createDataSourceById: (dataSourceIdstring) => Promise<DataSource>
Type declaration
    function(dataSourceIdstring): Promise<DataSource>

    Create a child or a descendant data source by id. Data source has this method only if it is data source set ( dataSource.isDataSourceSet is true).

    Please note will only create the specific data source, won't create descendant data sources of it.

    Parameters
    ParameterType
    dataSourceId
    string
    Returns 
    Promise<DataSource>

dataSourceManager

inherited
Interface Property
dataSourceManager: DataSourceManager

The data source manager, which is used to manage the data source, including create/get/destroy the data source instance.

dataViewId

optionalinherited
Interface Property
dataViewId: string

The data view ID configured in Json.

Inherited from DataSource.dataViewId

destroy

inherited
Interface Property
destroy: () => void
Type declaration
    function(): void

    Destroy the data source.

    Returns 
    void
Inherited from DataSource.destroy

fetchSchema

inherited
Interface Property
fetchSchema: () => Promise<IMDataSourceSchema>
Type declaration
    function(): Promise<IMDataSourceSchema>

    Fetch the data schema from an actual data source. If it's a statistic data source, the schema will not be fetched.

    Returns 
    Promise<IMDataSourceSchema>
Inherited from DataSource.fetchSchema

getAllChildDataSources

optionalinherited
Interface Property
getAllChildDataSources: () => DataSource[]
Type declaration
    function(): DataSource[]

    Return all child data sources of a parent data source, includes the grandchildren

    Returns 
    DataSource[]

getAllDerivedDataSources

inherited
Interface Property
getAllDerivedDataSources: () => DataSource[]
Type declaration

getAutoRefreshInterval

Interface Property
getAutoRefreshInterval: () => number
Type declaration
    function(): number

    If the return value > 0, auto refresh is enabled.

    Returns 
    number

getChildDataSource

optionalinherited
Interface Property
getChildDataSource: (jimuChildIdstring) => DataSource
Type declaration
    function(jimuChildIdstring): DataSource

    Get child data source by jimuChildId . You can get jimuChildId by getJimuChildId() .

    Parameters
    ParameterType
    jimuChildId
    string
    Returns 
    DataSource

getChildDataSources

optionalinherited
Interface Property
getChildDataSources: () => DataSource[]
Type declaration

getConfigQueryParams

Interface Property
getConfigQueryParams: () => QueryParams
Type declaration

getCountStatus

inherited
Interface Property
getCountStatus: () => DataSourceStatus
Type declaration

getCurrentQueryParams

Interface Property
getCurrentQueryParams: (options?GetCurrentQueryParamsOptions) => QueryParams
Type declaration
    function(options?GetCurrentQueryParamsOptions): QueryParams

    Get the current query parameters. The current query parameters contain all applied queries.

    Parameters
    ParameterType
    options
    GetCurrentQueryParamsOptions
    Returns 
    QueryParams

getDataSourceJson

inherited
Interface Property
getDataSourceJson: () => IMDataSourceJson
Type declaration
    function(): IMDataSourceJson

    The data source JSON object in app config.

    Returns 
    IMDataSourceJson

getDataViews

Interface Property
getDataViews: () => QueriableDataSource[]
Type declaration

getIdField

inherited
Interface Property
getIdField: () => string
Type declaration
    function(): string

    Return the data source ID field.

    Returns 
    string
Inherited from DataSource.getIdField

getInfo

inherited
Interface Property
getInfo: () => IMDataSourceInfo
Type declaration
    function(): IMDataSourceInfo

    Return the data source info in redux store.

    Returns 
    IMDataSourceInfo
Inherited from DataSource.getInfo

getLabel

inherited
Interface Property
getLabel: () => string
Type declaration
    function(): string

    Return data source label.

    Returns 
    string
Inherited from DataSource.getLabel

getListenSelection

inherited
Interface Property
getListenSelection: () => boolean
Type declaration
    function(): boolean

    Return whether listen selection.

    Returns 
    boolean

getLocalDataSource

inherited
Interface Property
getLocalDataSource: (localIdstring) => DataSource
Type declaration
    function(localIdstring): DataSource

    Get local data source by local ID.

    Parameters
    ParameterType
    localId
    string
    Returns 
    DataSource

getLocalDataSources

inherited
Interface Property
getLocalDataSources: () => DataSource[]
Type declaration
    function(): DataSource[]

    Return all local data sources created from a main data source or data view.

    Returns 
    DataSource[]

getMaxRecordCount

Interface Property
getMaxRecordCount: () => number
Type declaration
    function(): number

    Null means there is no record count limit, and will return all records from the service.

    Returns 
    number

getRealQueryPages

Interface Property
getRealQueryPages: (pageSizenumber, pagenumber) => number[]
Type declaration
    function(pageSizenumber, pagenumber): number[]

    Get real query page depends on the widget's request page.

    Parameters
    ParameterType
    pageSize
    number
    page
    number
    Returns 
    number[]

getRealQueryParams

Interface Property
getRealQueryParams: (queryQueryParams, flag"query" | "load", options?QueryOptions) => QueryParams
Type declaration
    function(queryQueryParams, flag"query" | "load", options?QueryOptions): QueryParams

    When do query/load, we do not fire the query request directly. Instead, we'll consider the data source's config/current query parameter.

    • For load: we'll merge the configured query parameter if it has, and all widget applied queries.
    • For query, we'll merge the current query parameter and the configured query parameter it has.
    Parameters
    ParameterType
    query
    QueryParams
    flag
    "query" | "load"
    options
    QueryOptions
    Returns 
    QueryParams

getRecord

inherited
Interface Property
getRecord: (indexnumber) => DataRecord
Type declaration
    function(indexnumber): DataRecord

    Get record by index

    Parameters
    ParameterType
    index
    number
    Returns 
    DataRecord
Inherited from DataSource.getRecord

getRecordById

inherited
Interface Property
getRecordById: (idstring) => DataRecord
Type declaration

getRecords

inherited
Interface Property
getRecords: () => DataRecord[]
Type declaration
Inherited from DataSource.getRecords

getRecordsByPage

Interface Property
getRecordsByPage: (pagenumber, pageSizenumber) => DataRecord[]
Type declaration
    function(pagenumber, pageSizenumber): DataRecord[]

    The page size here defines the records this method returns, which are not the actual query pageSize. Will use a fixed pageSize to query and cache data.

    Parameters
    ParameterType
    page
    number
    pageSize
    number
    Returns 
    DataRecord[]

getRecordsByPageWithSelection

Interface Property
getRecordsByPageWithSelection: (pagenumber, pageSizenumber) => DataRecord[]
Type declaration
    function(pagenumber, pageSizenumber): DataRecord[]

    If selected records are not loaded in the current data source, will concat them to the end of records array. See getRecordsWithSelection for details.

    Parameters
    ParameterType
    page
    number
    pageSize
    number
    Returns 
    DataRecord[]

getRecordsWithSelection

inherited
Interface Property
getRecordsWithSelection: () => DataRecord[]
Type declaration
    function(): DataRecord[]

    If selected records are not loaded in the current data source, they will be concatenated to the end of records array. For example, record 1 is selected in data view 1 and it is not loaded in data view 2 (record 1 actually matches query params of data view 2), dataView2.getRecordsWithSelection() will return all loaded records in data view 2 and record 1.

    Returns 
    DataRecord[]

getRemoteQueryParams

Interface Property
getRemoteQueryParams: () => QueryParams
Type declaration

getRootDataSource

inherited
Interface Property
getRootDataSource: () => DataSource
Type declaration

getRuntimeQueryParams

Interface Property
getRuntimeQueryParams: (excludeWidgetId?string) => QueryParams
Type declaration
    function(excludeWidgetId?string): QueryParams

    Get the queries applied in runtime. If the excludeWidgetId is passed in, the queries of this widget will be excluded.

    Parameters
    ParameterType
    excludeWidgetId
    string
    Returns 
    QueryParams

getSchema

inherited
Interface Property
getSchema: () => IMDataSourceSchema
Type declaration
    function(): IMDataSourceSchema

    The schema returned here is the merged result of the configured schema and the fetched schema. The configured schema is the user's changes, such as a new data source name. The fetched schema is the original schema from AGOL/portal item or a remote database, such as the service name, the fields and the filters.

    Returns 
    IMDataSourceSchema
Inherited from DataSource.getSchema

getSelectedRecordIds

inherited
Interface Property
getSelectedRecordIds: () => string[]
Type declaration
    function(): string[]

    Get selected record IDs

    Returns 
    string[]

getSelectedRecordIndexes

inherited
Interface Property
getSelectedRecordIndexes: () => number[]
Type declaration
    function(): number[]

    Get selected record indexes

    Returns 
    number[]

getSelectedRecords

inherited
Interface Property
getSelectedRecords: () => DataRecord[]
Type declaration

getSourceRecords

inherited
Interface Property
getSourceRecords: () => DataRecord[]
Type declaration

getSourceVersion

inherited
Interface Property
getSourceVersion: () => number
Type declaration
    function(): number

    When current data source is created from an array of records, it will be saved in sourceRecords . Return the version of sourceRecords .

    Returns 
    number

getStatus

inherited
Interface Property
getStatus: () => DataSourceStatus
Type declaration
Inherited from DataSource.getStatus

getVersion

inherited
Interface Property
getVersion: () => number
Type declaration
    function(): number

    Return data source version.

    Returns 
    number
Inherited from DataSource.getVersion

id

inherited
Interface Property
id: string

The data source ID.

Inherited from DataSource.id

isDataSourceSet

inherited
Interface Property
isDataSourceSet: boolean

Whether a data source contains child data sources. A set data source won't create all its child data sources when ready is resolved. To make sure all child data sources are created, please use childDataSourcesReady .

isDataView

inherited
Interface Property
isDataView: boolean

True means the data source is a data view. For local data source, this is false even the local data source is created from a data view.

Inherited from DataSource.isDataView

isInAppConfig

inherited
Interface Property
isInAppConfig: () => boolean
Type declaration
    function(): boolean

    Return whether the data source is added in builder and is saved in app config.

    Returns 
    boolean

isLocal

inherited
Interface Property
isLocal: boolean

True means the data source is a local data source.

Inherited from DataSource.isLocal

isSqlCaseSensitive

Interface Property
isSqlCaseSensitive: boolean

Whether the data source is case-sensitive when doing query by SQL clauses.

load

Interface Property
load: (queryQueryParams, options?QueryOptions) => Promise<DataRecord[]>
Type declaration
    function(queryQueryParams, options?QueryOptions): Promise<DataRecord[]>

    Execute the query against the service and update the internal data records, pagination is supported. When call this method, the real query is returnd by getRealQueryParams .

    Pagination: The pagination properties in the passed in query parameter may be not the same as the real query pagination that is sent to the service. The real query pagination is defined in the data source setting.

    Parameters
    ParameterType
    query
    QueryParams
    options
    QueryOptions
    Returns 
    Promise<DataRecord[]>

loadById

Interface Property
loadById: (idstring, refresh?boolean) => Promise<DataRecord>
Type declaration
    function(idstring, refresh?boolean): Promise<DataRecord>

    Load record by ID, do not consider other queries.

    Parameters
    ParameterType
    id
    string
    refresh
    boolean
    Returns 
    Promise<DataRecord>

loadCount

Interface Property
loadCount: (queryQueryParams, options?QueryOptions) => Promise<number>
Type declaration

localId

optionalinherited
Interface Property
localId: string

The local ID of the data source.

Inherited from DataSource.localId

mergeQueryParams

Interface Property
mergeQueryParams: (queriesQueryParams[]) => QueryParams
Type declaration

order

optionalinherited
Interface Property
order: number

Order in the parent data source.

Inherited from DataSource.order

parentDataSource

inherited
Interface Property
parentDataSource: DataSource

The parent data source of this data source, mull means it's a root data source.

query

Interface Property
query: (queryQueryParams, options?QueryOptions) => Promise<QueryResult>
Type declaration
    function(queryQueryParams, options?QueryOptions): Promise<QueryResult>

    Execute query against the service only, do NOT update the internal data records. The actural query parameters are generated by getRealQueryParams .

    To query count, please use queryCount .

    Parameters
    ParameterType
    query
    QueryParams
    options
    QueryOptions
    Returns 
    Promise<QueryResult>

queryById

Interface Property
queryById: (idstring) => Promise<DataRecord>
Type declaration
    function(idstring): Promise<DataRecord>

    Query record by ID

    Parameters
    ParameterType
    id
    string
    Returns 
    Promise<DataRecord>

queryCount

Interface Property
queryCount: (queryQueryParams, options?QueryOptions) => Promise<QueryResult>
Type declaration

ready

inherited
Interface Property
ready: () => Promise<any>
Type declaration
    function(): Promise<any>

    Ready is resolved means the data source instance is ready for use. Please note that can not make sure all child data sources are created if a set data source is ready. To make sure all child data sources are created, please use childDataSourcesReady .

    Returns 
    Promise<any>
Inherited from DataSource.ready

selectRecordById

inherited
Interface Property
selectRecordById: (idstring, record?DataRecord, forceCheck?boolean) => void
Type declaration
    function(idstring, record?DataRecord, forceCheck?boolean): void

    Select a record by ID. When select record by ID, we can pass in the record. So when the selected record is not loaded, we can add it in. If forceCheck is true, will check whether the record match filters of the data source or not. Will select the record only if the check is passed.

    Parameters
    ParameterTypeNotes
    id
    string

    The ID to be selected. The selection will be cleared if the ID is null.

    record
    DataRecord
    forceCheck
    boolean
    Returns 
    void

selectRecordsByIds

inherited
Interface Property
selectRecordsByIds: (idsstring[], records?DataRecord[], forceCheck?boolean) => void
Type declaration
    function(idsstring[], records?DataRecord[], forceCheck?boolean): void

    Select records by IDs. When select records by IDs, we can pass in the records. So when the selected records are not loaded, we can add them in. If forceCheck is true, will check whether these records match filters of the data source or not. Will select the records which check is passed.

    Parameters
    ParameterTypeNotes
    ids
    string[]

    The IDs to be selected. The selection will be cleared if the IDs are null.

    records
    DataRecord[]
    forceCheck
    boolean
    Returns 
    void

setCountStatus

optionalinherited
Interface Property
setCountStatus: (statusDataSourceStatus) => void
Type declaration

setDataSourceJson

inherited
Interface Property
setDataSourceJson: (dsJsonIMDataSourceJson) => void
Type declaration
    function(dsJsonIMDataSourceJson): void

    Update data source JSON in data source instance

    Parameters
    ParameterType
    dsJson
    IMDataSourceJson
    Returns 
    void

setListenSelection

inherited
Interface Property
setListenSelection: (listenboolean) => void
Type declaration
    function(listenboolean): void

    Whether listen selected records from other data sources which are derived from the same main data source. If true, will update selected record IDs of current data source info when selecting records via other derived data sources. Will also update selected record IDs when selecting records via current data source itself. If false, won't change selected record IDs when selecting records via other derived data sources. Will update selected record IDs only when selecting records via current data source itself.

    Main data source and its data views will listen selected records by default, local data source does not listen selected records by default.

    Parameters
    ParameterType
    listen
    boolean
    Returns 
    void

setRecords

inherited
Interface Property
setRecords: (recordsDataRecord[]) => void
Type declaration
    function(recordsDataRecord[]): void

    Update the records in the data source object only, does not update the source data.

    Parameters
    ParameterType
    records
    DataRecord[]
    Returns 
    void
Inherited from DataSource.setRecords

setSourceRecords

inherited
Interface Property
setSourceRecords: (recordsDataRecord[]) => void
Type declaration
    function(recordsDataRecord[]): void

    When current data source is created from an array of records, will save it in sourceRecords . These two methods are used to update or get the source data.

    Parameters
    ParameterType
    records
    DataRecord[]
    Returns 
    void

setStatus

optionalinherited
Interface Property
setStatus: (statusDataSourceStatus) => void
Type declaration
Inherited from DataSource.setStatus

type

inherited
Interface Property
type: string

The type of the data source.

Inherited from DataSource.type

updateQueryParams

Interface Property
updateQueryParams: (queryQueryParams, widgetIdstring) => void
Type declaration
    function(queryQueryParams, widgetIdstring): void

    Update the data source query without executing the actual query.

    Parameters
    ParameterType
    query
    QueryParams
    widgetId
    string
    Returns 
    void

updateSelectionInfo

inherited
Interface Property
updateSelectionInfo: (idsstring[], triggerDataSourceDataSource, forceCheck?boolean) => void
Type declaration
    function(idsstring[], triggerDataSourceDataSource, forceCheck?boolean): void

    Update selected record IDs in data source info if the current data source listens selection change (see setListenSelection ) or the current data source is the trigger data source (that is to say, select via it).

    Before update info, will check whether these selected records match filters of the current data source firstly, and then only set the matched selected records to info. Will skip the check in some cases to improve performance if the forceCheck is not passed in or is false. For example, if the curren data source is main data source (we suppose that main data source contains all records, no need to check). But if the forceCheck is true, won't skip the check.

    Parameters
    ParameterType
    ids
    string[]
    triggerDataSource
    DataSource
    forceCheck
    boolean
    Returns 
    void

url

optional
Interface Property
url: string

The data source URL

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