@sap/dwf-ndso-backend
v2.3.6
Published
Service backend of the Native DataStore Object
Downloads
37
Readme
Native DataStore Object (NDSO) Service Backend
This Node.js package contains service implementations (tasks) of the Native DataStore Object. The NDSO backend is part of the SAP HANA Data Warehousing Foundation product.
As such it is used, for example, by the DataStore Manage UI of the Database Explorer or the Data Warehouse Scheduler.
Be aware that as this being a technical reuse package you are not supposed to consume it directly in a custom application. It is used by the aforementioned SAP products/tools though.
NDSO Task Reference
NDSO tasks are exposed as simple asynchronous functions
activate(tracer, client1, client2, schema, ndso, loadIds, [callback]) ⇒ Promise
Moves data from inbound queue(s) to active data and change log.
Writing of active data and change log is done by the HANA core procedure
SYS.DSO_ACTIVATE_CHANGES
.
This operation takes care of
- verifying the provided load IDs
- setting status of earlier, failed activations to 'DELETED'
- compiling procedure options like aggregation behavior and before-image handling
- calling the procedure
- deleting load data from inbound queue(s)
Fulfills: ActivationResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | loadIds | Array.<integer> | load requests to be activated | | [callback] | function | callback function |
addSubscriber(tracer, client1, client2, schema, ndso, subscriberName, [description], [callback]) ⇒ Promise
Adds a new subscriber entry to the subscribers entity
Fulfills: OperationResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | subscriberName | string | name (and key) of the subscriber | | [description] | string | optional description | | [callback] | function | callback function |
checkMetadataConsistency(tracer, client1, client2, schema, ndso, [callback]) ⇒ Promise
Performs consistency checks on the NDSO. The operation fails, if inconsistencies are found
Performed checks ensure:
- Inbound queues consistency
- Change log entries deleted for cleaned up activations
- Inbound queue entries deleted for finished activations
- Affected requests consistency
Fulfills: OperationResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [callback] | function | callback function |
cleanupChangelog(tracer, client1, client2, schema, ndso, requestIds, [callback]) ⇒ Promise
Cleans up change log. The operation verifies, if the provided activation request IDs can be cleaned up and then deletes them from the change log
Fulfills: OperationResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | requestIds | Array.<integer> | activation requests for which change log shall be deleted | | [callback] | function | callback function |
cleanupMetadata(tracer, client1, client2, schema, ndso, [maxRequestId], [maxTimestamp], [callback]) ⇒ Promise
Cleans up metadata up to either the provided maximal activation request ID or corresponding creation timestamp (whichever is higher).
Fulfills: OperationResult
Todo
- [ ] not implemented, i.e., it does not actually delete any data
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [maxRequestId] | integer | request ID up to which to clean up | | [maxTimestamp] | string | ISO 8601 UTC timestamp up to which to clean up | | [callback] | function | callback function |
deleteAll(tracer, client1, client2, schema, ndso, [callback]) ⇒ Promise
Deletes all NDSO data (main and metadata entities). The operation fails, if there are subscribers
Fulfills: OperationResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [callback] | function | callback function |
deleteRequest(tracer, client1, client2, schema, ndso, requestIds, [callback]) ⇒ Promise
Deletes load requests. The operation verifies, if the provided request IDs can be deleted and then deletes them from the inbound queue(s)
Fulfills: OperationResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | requestIds | Array.<integer> | load requests to be deleted | | [callback] | function | callback function |
deleteWithFilter(tracer, client1, client2, schema, ndso, queryOptions, propagateDeletion, [callback]) ⇒ Promise
Deletes active data by the provided query filter. Optionally writes an activation request into the change log which allows rollback
Fulfills: DeleteResult
| Param | Type | Description |
| --- | --- | --- |
| tracer | object | tracer e.g. by @sap/logging |
| client1 | object | DB client by node-hdb or @sap/hana-client |
| client2 | object | DB client by node-hdb or @sap/hana-client |
| schema | string | DB schema |
| ndso | string | full DataStore name with namespace |
| queryOptions | QueryOptions | note that for this task, the 'options' (and more specifically, the filter flt
) are actually mandatory because the context is selective deletion from active data which must not be unrestricted (that would be deleteAll) |
| propagateDeletion | bool | if true, deletions will be added to change log |
| [callback] | function | callback function |
getDataStores(tracer, client, schema, [queryOptions], [callback]) ⇒ Promise
Provides a list of NDSOs in the schema
Fulfills: DataStores
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | [queryOptions] | QueryOptions | | | [callback] | function | callback function |
getDataStoreFeature(tracer, client, schema, [callback]) ⇒ Promise
Provides information if the NDSO metamodel exists in the schema. The metamodel is a prerequisite to model NDSOs
Fulfills: DataStoreFeature
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | [callback] | function | callback function |
getLogForOperation(tracer, client, schema, ndso, operationId, [callback]) ⇒ Promise
Provides the message log for an operation
Fulfills: LogForOperation
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | operationId | integer | ID of the operation logs shall be read for | | [callback] | function | callback function |
getMetadata(tracer, client, schema, ndso, [callback]) ⇒ Promise
Provides NDSO metadata
Fulfills: Metadata
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [callback] | function | callback function |
getMonitoringOverview(tracer, client, schema, [queryOptions], [callback]) ⇒ Promise
Provides monitoring relevant information about all NDSOs in the schema.
Fulfills: MonitoringOverview
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | [queryOptions] | QueryOptions | | | [callback] | function | callback function |
getOperationInfo(tracer, client, schema, ndso, [queryOptions], [callback]) ⇒ Promise
Provides general request information
Fulfills: OperationInfo
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [queryOptions] | QueryOptions | | | [callback] | function | callback function |
getOperationsForRequest(tracer, client, schema, ndso, requestId, [callback]) ⇒ Promise
Provides the list of operations that affected a specific request
Fulfills: OperationsForRequest
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | requestId | integer | request ID which to retrieve operations for | | [callback] | function | callback function |
getRequestInfo(tracer, client, schema, ndso, [queryOptions], [callback]) ⇒ Promise
Provides general request information
Fulfills: RequestInfo
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [queryOptions] | QueryOptions | | | [callback] | function | callback function |
getRequestsForActivation(tracer, client, schema, ndso, [maxRequestId], [callback]) ⇒ Promise
Provides requests that can be activated. Condition:
- finished load requests
- after latest activation
- not subject to a deleteRequest operation
- (optional) load request ID lower than provided maxRequestId
Fulfills: RequestsForOperation
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [maxRequestId] | integer | request ID up to which to retrieve load requests | | [callback] | function | callback function |
getRequestsForCleanup(tracer, client, schema, ndso, [maxRequestId], [maxTimestamp], [callback]) ⇒ Promise
Provides requests that can be cleaned up. Condition:
- finished activation requests
- not subject to rollback/clean-up operation
- extracted by all subscribers
- (optional) activation request ID less than or equal to provided max ID or timestamp
Fulfills: RequestsForOperation
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [maxRequestId] | integer | request ID up to which to fetch requests | | [maxTimestamp] | string | ISO 8601 UTC timestamp up to which to fetch requests | | [callback] | function | callback function |
getRequestsForDeletion(tracer, client, schema, ndso, [callback]) ⇒ Promise
Provides requests that can be deleted. Condition:
- load request failed OR finished and after latest activation
- not subject to a deleteRequest operation
Fulfills: RequestsForOperation
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [callback] | function | callback function |
getRequestsForRollback(tracer, client, schema, ndso, minRequestId, [callback]) ⇒ Promise
Provides requests that can be rolled back. Condition:
- finished activation requests
- after latest rollback/clean-up operation
- not yet extracted by any subscriber (as rollbacks are just deleted from change log, subscribers won't get a corresponding delta corrupting their data)
- (optional) load request ID greater than or equal to provided minRequestId
Fulfills: RequestsForOperation
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | minRequestId | integer | request ID from which to roll back later activations | | [callback] | function | callback function |
getRowcountWithFilter(tracer, client, schema, ndso, queryOptions, [callback]) ⇒ Promise
Provides number of rows in active data filtered by the provided query filter
Fulfills: RowcountWithFilter
| Param | Type | Description |
| --- | --- | --- |
| tracer | object | tracer e.g. by @sap/logging |
| client | object | DB client by node-hdb or @sap/hana-client |
| schema | string | DB schema |
| ndso | string | full DataStore name with namespace |
| queryOptions | QueryOptions | note that for this task, the 'options' (and more specifically, the filter flt
) are actually mandatory because this is a preview task for deleteWithFilter |
| [callback] | function | callback function |
getSubscribers(tracer, client, schema, ndso, [callback]) ⇒ Promise
Provides a list of subscribers
Fulfills: Subscribers
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [callback] | function | callback function |
removeSubscriber(tracer, client1, client2, schema, ndso, subscriberName, [callback]) ⇒ Promise
Removes a subscriber from the subscribers entity
Fulfills: OperationResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | subscriberName | string | name (and key) of the subscriber | | [callback] | function | callback function |
repairRunningOperations(tracer, client1, client2, schema, ndso, [callback]) ⇒ Promise
Repairs running operations that are not really running anymore and sets their status to failed. This is done by attempting to retrieve a lock for the corresponding entry in the operation history
Fulfills: OperationResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [callback] | function | callback function |
resetSubscriber(tracer, client1, client2, schema, ndso, subscriberName, [callback]) ⇒ Promise
Resets maxRequestId
of a subscriber in the subscribers entity back to 0
Fulfills: OperationResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | subscriberName | string | name (and key) of the subscriber | | [callback] | function | callback function |
rollback(tracer, client1, client2, schema, ndso, activationIds, [callback]) ⇒ Promise
Restores data from the change log back to active data.
Writing of active data and change log is done by the HANA core procedure
SYS.DSO_ROLLBACK_CHANGES
.
This operation takes care of
- verifying the provided activation IDs
- compiling procedure options like aggregation behavior and before-image handling
- calling the procedure
Fulfills: OperationResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | activationIds | Array.<integer> | activation requests to roll back | | [callback] | function | callback function |
storeCsv(tracer, client1, client2, schema, ndso, iqName, data, withHeader, [callback]) ⇒ Promise
Loads CSV data into the provided inbound queue.
If the data contain a header row, it is excluded from data but serves as field list for the INSERT statement.
Data is generally loaded by just providing the data unaltered to the prepared statement except for binary data types (VARBINARY, BLOB) where a hexadecimal string is expected instead
Fulfills: LoadResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | iqName | string | inbound queue to load the data into | | data | array | string | CSV data as array or string | | withHeader | bool | load requests to be activated | | [callback] | function | callback function |
storeSql(tracer, client1, client2, schema, ndso, iqName, externalSql, [callback]) ⇒ Promise
Loads data into the provided inbound queue by the FROM clause provided via
externalSql
.
externalSql
needs to provide technicalAttributes.recordMode
and all
semantical column names as the inbound queue (if the source table has
different column names, they must be aliased accordingly).
Fulfills: LoadResult
| Param | Type | Description |
| --- | --- | --- |
| tracer | object | tracer e.g. by @sap/logging |
| client1 | object | DB client by node-hdb or @sap/hana-client |
| client2 | object | DB client by node-hdb or @sap/hana-client |
| schema | string | DB schema |
| ndso | string | full DataStore name with namespace |
| iqName | string | inbound queue to load the data into |
| externalSql | string | SQL by which to load data (used as FROM
clause) |
| [callback] | function | callback function |
Example
SELECT
'' AS "technicalAttributes.recordMode",
CUST AS "CustomerName",
PRICE AS "Amount"
FROM CUST_PRICES
smokeTest(tracer, client1, client2, schema, ndso, [callback]) ⇒ Promise
Performs a smoke test on the provided NDSO, executing all tasks, beginning with operations related to subscribers, then deletes all of them and runs deleteAll to have a defined start-state
:warning: Only use this in test environments!
Fulfills: OperationResult
| Param | Type | Description | | --- | --- | --- | | tracer | object | tracer e.g. by @sap/logging | | client1 | object | DB client by node-hdb or @sap/hana-client | | client2 | object | DB client by node-hdb or @sap/hana-client | | schema | string | DB schema | | ndso | string | full DataStore name with namespace | | [callback] | operationCallback | callback function |
ActivationResult
Properties
| Name | Type | Description | | --- | --- | --- | | operationId | integer | ID of the activate operation | | activationId | integer | ID of the resulting activation request |
DeleteResult
Properties
| Name | Type | Description | | --- | --- | --- | | operationId | integer | ID of the deleteWithFilter operation | | [changeLogId] | integer | ID of the optional activation request |
DataStores
Properties
| Name | Type | Description | | --- | --- | --- | | result | Array.<string> | NDSO names |
DataStoreFeature
Properties
| Name | Type | Description | | --- | --- | --- | | isDataStoreActive | bool | true, if metamodel found | | [version] | string | model version |
LogForOperation
Properties
| Name | Type | Description | | --- | --- | --- | | result | Array.<object> | | | result.posit | integer | defines message order | | result.timestamp | string | ISO 8601 UTC timestamp of message creation | | result.msgType | string | message severity | | result.msgNumber | integer | numeric message ID | | result.msgText | string | message text |
MetadataMetaTable
Properties
| Name | Type | Description | | --- | --- | --- | | name | string | entity name of the meta table | | fullName | string | fully qualified and quoted table name including schema and namespace |
MetadataActiveDataField
Properties
| Name | Type | Description | | --- | --- | --- | | name | string | field name | | isKey | bool | indicates, if field is a semantical key | | aggregation | string | defines before-image behavior (NOP or SUM) | | sqlDataTypename | string | HANA data type | | [typeParam1] | integer | parameter attribute 1 (e.g. length) | | [typeParam2] | integer | parameter attribute 2 (e.g. scale) | | [defaultValue] | string | default value |
MetadataChangeLogField
Properties
| Name | Type | Description | | --- | --- | --- | | name | string | field name | | isKey | bool | indicates, if field is a semantical key | | sqlDataTypename | string | HANA data type |
MetadataInboundQueueField
Properties
| Name | Type | Description | | --- | --- | --- | | name | string | field name | | isKey | bool | indicates, if field is a semantical key | | aggregation | string | defines aggregation behavior (NOP, MOV, MIN, MAX or SUM) | | sqlDataTypename | string | HANA data type | | [typeParam1] | integer | parameter attribute 1 (e.g. length) | | [typeParam2] | integer | parameter attribute 2 (e.g. scale) | | [defaultValue] | string | default value |
MetadataProcedure
Properties
| Name | Type | Description | | --- | --- | --- | | name | string | qualified name of the procedure (with namespace, without schema) | | ifVersion | string | interface version of the procedure in the form X.Y (e.g. 1.0), major version incremented for backwards incompatible changes and minor for backwards compatible changes |
Metadata
Properties
| Name | Type | Description | | --- | --- | --- | | name | string | NDSO name | | snapshotSupport | bool | if true, every activation will overwrite the complete active data table, i.e., inbound queue data is considered to always be complete | | operationHistory | MetadataMetaTable | operation history containing operation ID, timestamp, user, status etc. | | affectedRequests | MetadataMetaTable | mapping table of n:m relation of operations to requests | | aggregationHistory | MetadataMetaTable | stores aggregation behavior on activation. Needed to account for model changes between activation and rollback | | logMessages | MetadataMetaTable | log messages per operation | | idGen | MetadataMetaTable | indicates request type (load, activation, general operation). Without sequence, new IDs are drawn based on the content of this table | | subscribers | MetadataMetaTable | stores subscribers doing delta-extractions from the change log. The latest extracted activation requests are written by each subscriber and affect housekeeping, like cleanupChangelog | | activeData | object | main, reportable data entity | | activeData.name | string | entity name of the data table | | activeData.fullName | string | fully qualified and quoted table name including schema and namespace | | activeData.fields | Array.<MetadataActiveDataField> | | | [changeLog] | object | optional data entity to track changes | | changeLog.name | string | entity name of the data table | | changeLog.fullName | string | fully qualified and quoted table name including schema and namespace | | changeLog.fields | Array.<MetadataChangeLogField> | | | activationQueues | Array.<object> | one or more data entity to queue inbound data for activation | | activationQueues.name | string | entity name of the data table | | activationQueues.fullName | string | fully qualified and quoted table name including schema and namespace | | activationQueues.fields | Array.<MetadataInboundQueueField> | | | procedures | object.<string, MetadataProcedure> | map of supported SQL procedures. Key is the operation identifier, e.g. LOAD | | sequence | string | sequence used to draw new IDs | | metaModel | object | information about current NDSO metamodel | | metaModel.version | string | metamodel version |
MonitoringTableStats
Properties
| Name | Type | Description | | --- | --- | --- | | tableName | string | table name | | [size] | integer | table estimated maximal memory size in bytes (not provided, if user lacks authorization) | | [rows] | integer | table row count (not provided, if user lacks authorization) |
MonitoringOverview
Properties
| Name | Type | Description | | --- | --- | --- | | result | Array.<object> | | | result.name | string | NDSO name | | result.lastOp | string | type of the last operation | | result.lastOpBy | string | user last changing the last operation | | result.lastOpAt | string | ISO 8601 UTC timestamp when the last operation was last changed | | result.lastOpStatus | string | status of the last operation | | result.subscribers | integer | number of subscribers | | result.stats | object | table statistics | | result.stats.activeData | MonitoringTableStats | stats for active data entity | | result.stats.inboundQueues | Array.<MonitoringTableStats> | stats for inbound queue entities | | [result.stats.changeLog] | MonitoringTableStats | optional stats for change log entity | | [result.message] | string | optional warning message derived from authorization errors by HANA; thrown, if user lacks authorization for monitoring synonyms (e.g. M_CS_TABLES) |
OperationInfo
Properties
| Name | Type | Description | | --- | --- | --- | | result | Array.<object> | | | result.operationId | integer | operation ID | | result.operation | string | operation type | | result.status | string | operation status | | result.userName | string | user last changing the operation | | result.lastTimestamp | string | ISO 8601 UTC timestamp when the operation was last changed | | [result.operationDetails] | object | optional operation details |
OperationsForRequest
Properties
| Name | Type | Description | | --- | --- | --- | | result | Array.<object> | | | result.operationId | integer | operation ID | | result.operation | string | operation type | | result.status | string | operation status | | result.userName | string | user last changing the operation | | result.lastTimestamp | string | ISO 8601 UTC timestamp when the operation was last changed | | result.affectedRequests | Array.<integer> | related request IDs |
RequestInfo
Properties
| Name | Type | Description | | --- | --- | --- | | result | Array.<object> | | | result.operationId | integer | ID of the last operation affecting the request | | result.operation | string | type of the last operation affecting the request | | result.status | string | status of the last operation affecting the request | | result.userName | string | user last changing the operation | | result.startTimestamp | string | ISO 8601 UTC timestamp when the operation was started | | result.lastTimestamp | string | ISO 8601 UTC timestamp when the operation was last changed | | result.dependentRequests | Array.<integer> | related request IDs | | result.requestStatus | string | current status of the request (derived from the latest operation affecting it) | | [result.operationDetails] | object | optional operation details |
RowcountWithFilter
Properties
| Name | Type | Description | | --- | --- | --- | | result | Array.<object> | | | result.tableName | string | fully qualified name of active data table | | result.rowCount | integer | total number of rows |
Subscribers
Properties
| Name | Type | Description | | --- | --- | --- | | result | Array.<object> | | | result.subscriberName | string | subscriber name | | result.description | string | additional description | | result.userName | string | user that created the subscriber | | result.creationTimestamp | string | ISO 8601 UTC timestamp of the subscriber creation | | result.maxRequest | integer | last activation request the subscriber extracted from the change log | | result.pushNotification | string | not implemented |
OperationResult
Properties
| Name | Type | Description | | --- | --- | --- | | operationId | integer | ID of the operation |
LoadResult
Properties
| Name | Type | Description | | --- | --- | --- | | operationId | integer | ID of the load operation | | loadId | integer | ID of the resulting load request |
QueryOptions
Some tasks offer a parameter queryOptions
that allow for backend-side
paging, sorting and filtering. The task expects it to be an object like this:
Example
{
lim: 100, // LIMIT in SQL: returns up to 100 rows
off: 200, // OFFSET in SQL: skips first 200 rows
flt: { // builds WHERE in SQL; multiple columns are connected
COLUMN1: 'value1', // by AND
COLUMN2: 123,
COLUMN3: [ // array elements for same column are connected by OR
{
op: 'BT', // BT resolves to 'BETWEEN ? AND ?'
val: [10, 20]
},
{
op: 'EQ', // EQ resolves to 'IN (?,?,?)'
val: [95, 99, 101]
},
{
op: 'LT', // LT ('less than') resolves to '< ?'
val: 50 // there's also LE ('less or equal')
},
{
op: 'GT', // GT ('greater than') resolves to '> ?'
val: 'abc' // there's also GE ('greater or equal')
}
]
},
fltMode: 'PARTIAL', // instead of 'WHERE = ?' this resolves to 'WHERE LIKE ?'
// and wildcards around value (e.g. '%value1%')
// default is 'EXACT'
ord: [ // builds ORDER BY in SQL
{
col: 'COLUMN1' // defaults to 'ASC'
},
{
col: 'COLUMN3',
dir: 'DESC'
}
]
}
RequestsForOperation
Properties
| Name | Type | Description | | --- | --- | --- | | result | Array.<object> | | | result.requestId | integer | request ID | | result.userName | string | user last affecting the request (by operation) | | result.timestamp | string | ISO 8601 UTC timestamp when the operation was last changed |