class EnsLib.SQL.InboundAdapter
extends Ens.InboundAdapter, EnsLib.SQL.Common
SQL database polling client adapter. Repeatedly executes a query against a remote database via an ODBC- or JDBC- defined DSN (Data Source Name) and processes each resulting row.
parameter DOMAIN = "ENSEMBLE";
parameter SERVICEINPUTCLASS = "EnsLib.SQL.Snapshot";
parameter SETTINGS = "Query:Data,Parameters:Data,ParamSQLTypes:Data,DeleteQuery:Data,KeyFieldName:Data,MaxVarCharLengthAsString:Data,DoNotInterruptResultSet:Data";
These are the production settings for this object
property DeleteQuery
as %String(MAXLEN="");
If specified, used to delete rows after processing. Must have exactly one parameter for IDKey value
property DoNotInterruptResultSet
as %Boolean [ InitialExpression = 0 ];
When a ResultSet is being processed the framework checks if the service ought to stop
after each Row is processed.
Enabling this setting will mean that all Rows in a ResultSet will be processed
by the service before checking if it ought to stop.
This should only be enabled if each row is processed without synchronous dependence
on another business host.
It is intended to help where the SQL call that generated the ResultSet is such that
all rows returned in the ResultSet are considered immediately processed without a
separate SQL update/delete call and hence none of the rows in the ResultSet will
be returned by a repeat invocation.
property KeyFieldName
as %String [ InitialExpression = "ID" ];
The name of the IDKey field in the query's resultset. Must be unique (non-reused) over time if DeleteQuery is empty.
property ParamSQLTypes
as %String(MAXLEN="");
A comma-separated list of the SQL data types of each parameter used in the query (eg. SQL_CHAR,SQL_INTEGER).
This may be required for the query to execute successfully if the datatypes are not SQL_VARCHAR (the default used when unspecified)
property Parameters
as %String(MAXLEN=1000);
A comma-separated list of parameter value specifiers, if any. These correspond to any replaceable ? parameters in the query string.
% refers to Adapter properties such as %LastKey;
$ refers to Service class properties;
& refers to persistent values saved between invocations.
property Query
as %String(MAXLEN="") [ Required ];
The Base query string that will be repeatedly executed to look for new rows
classmethod GetPersistentValue(pConfigName As %String, pParamName As %String)
as %String
classmethod InitializeLastKeyValue(pConfigName As %String, pNewLastKey As %String = 0)
as %String
classmethod InitializePersistentValue(pConfigName As %String, pParamName As %String = "%LastKey", pNewValue As %String)
as %String
Set persistent value (default name=%LastKey) to new value only if it is currently undefined. Return old value if any.
method OnInit()
as %Status
This user callback method is called just after %OnNew()
method OnTask()
as %Status
default InboundAdapter behavior: always call ProcessInput on CallInterval
method OnTearDown()
as %Status
This user callback method is called just before %OnClose()
classmethod SetPersistentValue(pConfigName As %String, pParamName As %String, pValue As %String)
as %String