This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.

For information on migrating to InterSystems IRIS, see Why Migrate to InterSystems IRIS?


abstract class Ens.BusinessService extends Ens.Host, Ens.Util.IOLogger

Property Inventory

Method Inventory


parameter APPDATAKEY = ProcessInputAsync;
parameter SETTINGS = GenerateSuperSessionID:Additional,AlertGracePeriod:Alerting;
Inherited description: List of properties can be set as settings in the configuration file format is a comma separated list of property names


property %AlertStartTime as %Numeric [ InitialExpression = 0 ];
Property methods: %AlertStartTimeDisplayToLogical(), %AlertStartTimeGet(), %AlertStartTimeIsValid(), %AlertStartTimeLogicalToDisplay(), %AlertStartTimeNormalize(), %AlertStartTimeSet()
property %OutsideCreated as %String;
IO device name if created by CreateBusinessService from a CSP TCP job
Property methods: %OutsideCreatedDisplayToLogical(), %OutsideCreatedGet(), %OutsideCreatedIsValid(), %OutsideCreatedLogicalToDisplay(), %OutsideCreatedLogicalToOdbc(), %OutsideCreatedNormalize(), %OutsideCreatedSet()
property %PreserveSession as %Boolean [ InitialExpression = 0 ];
Put all inputs from this service into a single session
Property methods: %PreserveSessionDisplayToLogical(), %PreserveSessionGet(), %PreserveSessionIsValid(), %PreserveSessionLogicalToDisplay(), %PreserveSessionNormalize(), %PreserveSessionSet()
property %ProcessInputCalled as %Boolean [ Calculated ];
Deprecated - use %WaitForNextCallInterval
Property methods: %ProcessInputCalledDisplayToLogical(), %ProcessInputCalledGet(), %ProcessInputCalledIsValid(), %ProcessInputCalledLogicalToDisplay(), %ProcessInputCalledNormalize(), %ProcessInputCalledSet()
property %RequestHeader as Ens.MessageHeader;
Property methods: %RequestHeaderGet(), %RequestHeaderGetObject(), %RequestHeaderGetObjectId(), %RequestHeaderGetSwizzled(), %RequestHeaderIsValid(), %RequestHeaderNewObject(), %RequestHeaderSet(), %RequestHeaderSetObject(), %RequestHeaderSetObjectId(), %RequestHeaderUnSwizzle()
property %SuperSessionCreatedBeforeSession as %Boolean [ InitialExpression = 0 ];
This is used to indicate if the %SuperSession has been created from the inbound request and ought not to be cleared as part of %PreserveSession actions
Property methods: %SuperSessionCreatedBeforeSessionDisplayToLogical(), %SuperSessionCreatedBeforeSessionGet(), %SuperSessionCreatedBeforeSessionIsValid(), %SuperSessionCreatedBeforeSessionLogicalToDisplay(), %SuperSessionCreatedBeforeSessionNormalize(), %SuperSessionCreatedBeforeSessionSet()
property %WaitForNextCallInterval as %Boolean [ InitialExpression = 1 ];
Used to be named %ProcessInputCalled, with inverse sense
Property methods: %WaitForNextCallIntervalDisplayToLogical(), %WaitForNextCallIntervalGet(), %WaitForNextCallIntervalIsValid(), %WaitForNextCallIntervalLogicalToDisplay(), %WaitForNextCallIntervalNormalize(), %WaitForNextCallIntervalSet()
property AlertGracePeriod as %Numeric (MINVAL = 0) [ InitialExpression = 0 ];
When AlertOnError is True, refrain from alerting if it is not from ProcessInput() and the Service succeeds again within this number of seconds
Property methods: AlertGracePeriodDisplayToLogical(), AlertGracePeriodGet(), AlertGracePeriodIsValid(), AlertGracePeriodLogicalToDisplay(), AlertGracePeriodNormalize(), AlertGracePeriodSet()
property GenerateSuperSessionID as %Boolean [ InitialExpression = 0 ];
If this setting is enabled then generate a Super Session ID.
See method GenerateSuperSession() and user call back method OnGenerateSuperSession()in Ens.Host
Property methods: GenerateSuperSessionIDDisplayToLogical(), GenerateSuperSessionIDGet(), GenerateSuperSessionIDIsValid(), GenerateSuperSessionIDLogicalToDisplay(), GenerateSuperSessionIDNormalize(), GenerateSuperSessionIDSet()


method ForceSessionId() as %Status
Pre-allocate a request header object and an ID for it to represent a fresh session even before we get around to sending our first request. When we do get around to making our first SendRequest... call it will use this pre-allocated header.
method OnError(pStatus As %Status) as %Boolean
Override this method to provide custom error handling. Return 0 means skip standard AlertOnError behavior.
method OnProcessInput(pInput As %RegisteredObject, Output pOutput As %RegisteredObject, ByRef pHint As %String) as %Status
Override this method to process incoming data. Do not call SendRequestSync/Async() from outside this method (e.g. in a SOAP Service or a CSP page).
method OnTearDown() as %Status
This user callback method is called from %OnClose()
method PopulateSuperSession() as %Status
Generate a Super Session ID if it is currently empty and setting to generate enabled.
method SendAlert(pAlertRequest As Ens.AlertRequest) as %Status
Use this method to send an alert message
method SendRequestAsync(pTargetDispatchName As %String, pRequest As %Library.Persistent, pDescription As %String = "") as %Status
Use this method to dispatch an Ensemble business invocation asynchronously
method SendRequestSync(pTargetDispatchName As %String, pRequest As %Library.Persistent, ByRef pResponse As %Library.Persistent, pTimeout As %Numeric = -1, pDescription As %String = "") as %Status
Use this method to dispatch an Ensemble business invocation synchronously

Inherited Members

Inherited Properties

Inherited Methods