Qorus Integration Engine® Enterprise Edition 7.0.3_prod
Loading...
Searching...
No Matches
OMQ::UserApi::Workflow::QorusWorkflow Class Reference

Base class for workflow classes. More...

Inheritance diagram for OMQ::UserApi::Workflow::QorusWorkflow:
[legend]
Collaboration diagram for OMQ::UserApi::Workflow::QorusWorkflow:
[legend]

Public Member Methods

final attach ()
 This method is called when Qorus starts working on a workflow order data instance; it in turn calls attachImpl() which can be overridden in subclasses.
 
final detach (string status, *string external_order_instanceid)
 This method is called when the workflow order data instance status is committed to the database; it in turn calls detachImpl() which can be overridden in subclasses.
 
final oneTimeInit ()
 This method is executed once when the workflow execution instance starts or is reset; it in turn calls oneTimeInitImpl() which can be overridden in subclasses.
 
final errorHandler (string errcode, *hash< auto > errinfo, auto opt)
 This method is called when errors are raised; it in turn calls errorHandlerImpl() which can be overridden in subclasses.
 

Private Member Methods

 attachImpl ()
 This method is called when Qorus starts working on a workflow order data instance; this method may be overridden in subclasses.
 
 detachImpl (string status, *string external_order_instanceid)
 This method is called when the workflow order data instance status is committed to the database; this method may be overridden in subclasses.
 
 oneTimeInitImpl ()
 This method is executed once when the workflow execution instance starts or is reset; this method may be overridden in subclasses.
 
 errorHandlerImpl (string errcode, *hash< auto > errinfo, auto opt)
 This method is called when errors are raised and may be overridden in subclasses.
 

Additional Inherited Members

- Static Public Member Methods inherited from OMQ::UserApi::Workflow::WorkflowApi
static string generateUniqueKey ()
 returns a unique async key for the order for use with QorusAsyncStepBase::submitAsyncKey()
 
static stepError (string err, auto info)
 Raises an error against the current step without affecting the flow of processing.
 
static stepError (string err, auto info, date retry_delay)
 Raises an error against the current step without affecting the flow of processing.
 
static stepError (string err, auto info, int retry_delay)
 Raises an error against the current step without affecting the flow of processing.
 
static stepWarning (string err, auto info)
 Raises a warning against the step.
 
static stepWarning (string err, string fmt,...)
 Raises a warning against the step.
 
static setRetryDelay (date delay)
 Sets the value of the retry delay for a step error or an asynchronous step.
 
static setRetryDelay (int secs)
 Sets the value of the retry delay for a step error or an asynchronous step.
 
static *hash< auto > getErrorInfo (string err)
 Returns the hash data associated with the error code passed as an argument.
 
static updateDynamicData (hash< auto > hash)
 Updates the values of one or more keys in the workflow order data instance’s dynamic data hash.
 
static deleteDynamicDataKey (softlist< auto > list)
 Deletes one or more keys from the workflow order data instance’s dynamic data hash.
 
static auto getDynamicData (...)
 Retrieves the values of one or more keys from the workflow order data instance’s dynamic data hash.
 
static auto getDynamicDataArgs (*softlist< auto > keylist)
 Retrieves the values of one or more keys from the workflow order data instance’s dynamic data hash.
 
static auto getStaticData (...)
 Retrieves the values of one or more keys from the workflow order data instance’s static data hash.
 
static auto getStaticDataArgs (*softlist< auto > keylist)
 Retrieves the values of one or more keys from the workflow order data instance’s static data hash.
 
static updateTempData (hash< auto > hash)
 Updates the values of one or more keys in the workflow order data instance’s temporary data hash.
 
static auto getTempData (...)
 Retrieves the values of one or more keys from the workflow order data instance’s temporary data hash.
 
static auto getTempDataArgs (*softlist< auto > keylist)
 Retrieves the values of one or more keys from the workflow order data instance’s temporary data hash.
 
static deleteTempDataKey (softlist< auto > list)
 Deletes one or more keys from the workflow order data instance’s temporary data hash.
 
static updateSensitiveData (string skey, string svalue, hash< auto > hash, *softlist aliases, *hash< auto > meta)
 Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data key and value.
 
static updateSensitiveDataFromAlias (string alias, hash< auto > hash, *hash< auto > meta)
 Updates or creates the values of one or more keys in the workflow order's sensitive data hash for the given sensitive data alias.
 
static auto getSensitiveMetadata (string skey, string svalue)
 Returns the sensitive metadata hash for the given sensitive data key and value if present, otherwise returns an empty hash.
 
static hash getSensitiveMetadataFromAlias (string alias)
 returns a hash with the corresponding sensitive data key and sensitive data value as well as the value of the sensitive metadata hash for the given sensitive data alias corresponding to a sensitive data key and value
 
static auto getSensitiveData (string skey, string svalue,...)
 Returns the sensitive data for the given sensitive data key and value.
 
static auto getSensitiveDataArgs (string skey, string svalue, *list< auto > keylist)
 Returns the sensitive data for the given sensitive data key and value.
 
static hash< auto > getSensitiveDataFromAlias (string alias,...)
 returns a hash with the corresponding sensitive data key and sensitive data value as well as the value of one or more keys in the workflow sensitive data hash for the given sensitive data alias corresponding to a sensitive data key and value
 
static hash< auto > getSensitiveDataFromAliasArgs (string alias, *list< auto > keylist)
 returns a hash with the corresponding sensitive data key and sensitive data value as well as the value of one or more keys in the workflow sensitive data hash for the given sensitive data alias corresponding to a sensitive data key and value
 
static hash< auto > getSensitiveDataAliases ()
 returns a hash of all sensitive data aliases for the current order or an empty hash if there are none
 
static bool deleteSensitiveData (string skey, string svalue)
 Deletes the sensitive data hash for the given sensitive data key and value; changes have already been committed to the database when this method returns.
 
static bool deleteSensitiveDataKey (string skey, string svalue, softlist< auto > list)
 Deletes one or more keys from the workflow order data instance’s sensitive data hash for the given sensitive data key and value; changes have already been committed to the database when this method returns.
 
static hash getSensitiveDataKeyValues ()
 Returns a hash of sensitive data keys and values saved against the order; the sensitive data hashes themselves are not returned, just the information used to index sensitive data against the order.
 
static updateInstanceData (hash< auto > hash)
 Updates the values of one or more keys in the workflow execution instance’s instance data hash.
 
static deleteInstanceDataKey (softlist< auto > list)
 Deletes a single key or a list of keys from the workflow execution instance’s instance data hash.
 
static auto getInstanceData (...)
 Retrieves the values of one or more keys from the workflow execution instance’s instance data hash.
 
static auto getInstanceDataArgs (*list< auto > keylist)
 Retrieves the values of one or more keys from the workflow execution instance’s instance data hash.
 
static auto getWorkflowInstanceData (string field)
 Retrieves the value of a single key (system-defined property) from the workflow execution instance object itself.
 
static hash< auto > getWorkflowInstanceData (...)
 Retrieves the values of multiple keys (system-defined properties) from the workflow execution instance object itself.
 
static hash< auto > getWorkflowInstanceDataArgs (*list< auto > keylist)
 Retrieves the values of one or more keys (system-defined properties) from the workflow execution instance object itself as a hash.
 
static setOrderKeys (hash< auto > h, bool truncate=False)
 This method sets user-defined order keys against an order, so that the workflow order data instance can be quickly searched and retrieved using the key value.
 
static setOrderKey (string key, softlist< softstring > value, bool truncate=False)
 This method sets the values for a sinle user-defined order key against an order, so that the workflow order data instance can be quickly searched and retrieved using the key value.
 
static appendOrderKeys (hash< auto > h, bool truncate=False)
 This method appends user-defined order key values to a workflow order key, so that the workflow order data instance can be quickly searched and retrieved using the key value.
 
static appendOrderKeys (string key, softlist< softstring > value, bool truncate=False)
 This method appends user-defined order key values to a workflow order key, so that the workflow order data instance can be quickly searched and retrieved using the key value.
 
static auto getOrderKeys (...)
 This method retrieves the user-defined order key information saved against the workflow order data instance.
 
static auto getOrderKeysArgs (*softlist< auto > keylist)
 This method retrieves the user-defined order key information saved against the workflow order data instance.
 
static bool stepExecuted (string stepname)
 This method returns True if the step passed has been executed and has status OMQ::StatComplete ("C")
 
static *string getStepStatus (string stepname)
 Returns the current status of the given step for the current workflow order instance.
 
static *hash< auto > getStepInfo ()
 This method will return a hash of step information for the current step.
 
static hash< auto > getWorkflowMetadata ()
 returns workflow metadata for the currently running workflow as a hash
 
static setBlocked ()
 set the current workflow order status to OMQ::StatBlocked, can only be called from the attach function
 
static list getOrderNotes (*int count)
 Get Order Instance Notes.
 
static addOrderNote (string notestr)
 Add new note as described in Order Instance Notes.
 
static setCustomStatus (string stat)
 Sets a user-defined custom status for the current step.
 
static rescheduleOrder (date scheduled)
 reschedules the current workflow order instance for later processing
 
static reprioritizeOrder (int prio)
 changes the order priority for the current workflow order instance
 
static leaveParentFeedback (string key, auto value)
 leaves feedback for a parent workflow
 
static auto getChildFeedback (string key)
 gets feedback from a child workflow order with the given key
 
static *hash< auto > getChildFeedback ()
 gets all feedback from all child workflow orders as a hash
 
static setOption (hash< auto > hash)
 Changes option values on a workflow.
 
static setOption (string option, auto value)
 Changes a single option value on a workflow.
 
static auto getOption (...)
 Returns the value of the named workflow option(s)
 
static auto getOptionArgs (*softlist< string > args)
 Returns the value of the named workflow option or options.
 
static *softint parentWfiid ()
 Returns the parent workflow order data instance ID from a subworkflow or NOTHING if the current workflow order is not a subworkflow and therefore has no parent.
 
static *softint getWfiid ()
 returns the current workflow_instanceid as an integer; returns NOTHING if not called in a workflow order context (ex: onetimeinit function, etc)
 
static int sleep (softint arg)
 puts the current thread to sleep for a certain number of seconds
 
static int usleep (softint arg)
 puts the current thread to sleep for a certain number of microseconds
 
static int usleep (date arg)
 puts the current thread to sleep for a certain number of microseconds
 
static auto getConfigItemValue (string item, *hash< auto > local_context, bool expand_complex_values=True)
 returns the value of the given step configuration item
 
static hash< auto > getConfigItemHash (*hash< auto > local_context)
 returns a hash of all configuration items for the current step
 
- Static Public Member Methods inherited from OMQ::UserApi::UserApi
static *hash< auto > getUserServiceInfo (string name)
 returns information about the given user service (if it's currently loaded)
 
static SqlUtil::AbstractTable getSqlTable (string datasource, string table_name, bool register_dependency=True)
 get a cached table object (suitable for DML) if present, otherwise it creates one from scratch
 
static SqlUtil::AbstractTable getSqlTable (AbstractDatasource datasource, string table_name, bool register_dependency=True)
 get a cached table object (suitable for DML) if present, otherwise it creates one from scratch
 
static hash< auto > getSqlCacheInfo ()
 get information about cached object
 
static clearSqlTableCache (string datasource, *string table_name)
 clears all objects for given datasource from the cache (for example, if database objects have been updated in the dataserver)
 
static clearSqlTableCache (AbstractDatasource datasource, *string table_name)
 clears cached objects for given datasource (for example, if database objects have been updated in the dataserver)
 
static auto getValueMap (string mapname, string key)
 Gets a lookup value from the value map by a key; the value map must be registered to the current interface.
 
static list< auto > getValueMaps ()
 Gets all value maps valid for the current interface.
 
static bool postSlaEventSuccess (string sla, number value)
 posts a successful SLA event for SLA monitoring and performance tracking
 
static bool postSlaEventError (string sla, number value, string err, string desc)
 posts an unsuccessful SLA event for SLA monitoring and performance tracking
 
static flushSlaEvents ()
 flushes all pending SLA events to disk and returns after the data has been committed
 
static *hash< auto > getSystemServiceInfo (string name)
 returns information about the given system service (if it's currently loaded)
 
static *hash< auto > getServiceInfo (string type, string name)
 returns information about the given service (if it's currently loaded)
 
static list getRunningWorkflowList (*string name, *string ver)
 returns a list of hashes giving information about the currently-running workflow execution instances
 
static hash getRunningWorkflowInfo (softint id)
 returns a hash of the workflow execution instance info if the ID is valid or an empty hash if not
 
static softint createOrder (string name, *string version, hash< auto > params, string status=StatReady)
 creates a workflow order data instance in the database
 
static softint createOrder (int wfid, hash< auto > params, string status=StatReady)
 creates a workflow order data instance in the database
 
static softint createRemoteOrder (string remote, string name, *string version, hash< auto > params, string status=StatReady, bool register_dependency=True)
 creates a workflow order data instance in a remote Qorus instance
 
static softint createRemoteOrder (string remote, int wfid, hash< auto > params, string status=StatReady, bool register_dependency=True)
 creates a workflow order data instance in a remote Qorus instance
 
static hash< auto > execSynchronousWorkflow (string name, *string version, hash< auto > sdata, *hash< auto > opts, *hash< auto > ddata, softint priority=DefaultOrderPriority, *hash< auto > orderkeys, *softstring external_order_instanceid, *softint parent_workflow_instanceid)
 executes a workflow order synchronously and returns the final status and order ID in a hash
 
static hash< auto > execSynchronousWorkflow (int wfid, hash< auto > sdata, *hash< auto > opts, *hash< auto > ddata, softint priority=DefaultOrderPriority, *hash< auto > orderkeys, *softstring external_order_instanceid, *softint parent_workflow_instanceid)
 executes a workflow order synchronously and returns the final status and order ID in a hash
 
static hash< auto > execSynchronousWorkflowAsync (string name, *string version, hash< auto > sdata, *hash< auto > opts, *hash< auto > ddata, softint priority=DefaultOrderPriority, *hash< auto > orderkeys, *softstring external_order_instanceid, *softint parent_workflow_instanceid)
 executes a workflow order synchronously in the background and returns immediately
 
static hash< auto > execSynchronousWorkflowAsync (int wfid, hash< auto > sdata, *hash< auto > opts, *hash< auto > ddata, softint priority=DefaultOrderPriority, *hash< auto > orderkeys, *softstring external_order_instanceid, *softint parent_workflow_instanceid)
 executes a workflow order synchronously in the background and returns immediately
 
static int postUserEvent (string severity, auto info)
 posts an application event of class OMQ::QE_CLASS_USER
 
static hash runtimeProperties ()
 returns Qorus runtime properties as a hash
 
static auto callNetworkApiArgsWithAuthentication (string user, string pass, string call, softlist< auto > args)
 calls a system RPC API with authentication information (username and password)
 
static auto callNetworkApiArgs (string call, *softlist< auto > args)
 calls a system RPC API and returns the respose
 
static auto callNetworkApi (string call,...)
 calls a system RPC API and returns the result; the API is called with system permissions (no restrictions)
 
static auto callRestApi (string method, string path, *hash< auto > body_args)
 calls a system REST API method and returns the result
 
static auto callRestApiWithAuthentication (string user, string pass, string method, string path, *hash< auto > body_args)
 calls a system REST API method with authentication information and returns the result
 
static hash< auto > getSystemInfo ()
 returns a hash of system info
 
static int getSessionId ()
 returns the current Qorus application session ID
 
static startCapturingObjectsFromJava ()
 Starts capturing Qore objects created from Java APIs in the current interface's object cache.
 
static stopCapturingObjectsFromJava ()
 Stops capturing Qore objects created from Java APIs in the current interface's object cache.
 
static startCapturingObjectsFromPython ()
 Starts capturing Qore objects created from Python APIs in the current interface's object cache.
 
static stopCapturingObjectsFromPython ()
 Stops capturing Qore objects created from Python APIs in the current interface's object cache.
 
static saveObjectInObjectCache (object obj)
 Saves the object in the object cache.
 
static bool clearObjectFromObjectCache (object obj)
 Removes the object from the object cache.
 
static *date checkObjectCache (object obj)
 Returns the date/time the object was cached or NOTHING if the object is not in the cache.
 
static int getObjectCacheSize ()
 Returns the number of objects in the cache.
 
static int clearObjectCache ()
 Clears the entire the object cache.
 
static int clearObjectCache (date cutoff)
 Clears the entire the object cache for all objects cached before the given date/time.
 
static list< hash< CallStackInfo > > getThreadCallStack ()
 Allows the current thread's call stack to be retrieved in Qorus.
 
static logFatal (softstring msg,...)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static logError (softstring msg,...)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static logWarn (softstring msg,...)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static logInfo (softstring msg,...)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static logDebug (softstring msg,...)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static logTrace (softstring msg,...)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static logArgsFatal (softstring msg, *softlist< auto > args)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static logWithLevel (Logger::LoggerLevel level, string msg,...)
 Writes to the current interface log file with the given log level.
 
static logWithLevel (int level, string msg,...)
 Writes to the current interface log file with the given log level.
 
static logWithLevelArgs (Logger::LoggerLevel level, string msg, *softlist< auto > args)
 Writes to the current interface log file with the given log level.
 
static logWithLevelArgs (int level, string msg, *softlist< auto > args)
 Writes to the current interface log file with the given log level.
 
static logArgsError (softstring msg, *softlist< auto > args)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static logArgsWarn (softstring msg, *softlist< auto > args)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static logArgsInfo (softstring msg, *softlist< auto > args)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static logArgsDebug (softstring msg, *softlist< auto > args)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static logArgsTrace (softstring msg, *softlist< auto > args)
 Writes the information passed to the workflow, service, job, or system log file depending on the calling context if the interface logger level is equal or lower.
 
static *int auditUserEvent (string user_event, *string info1, *string info2)
 creates a user audit event (with audit code AE_USER_EVENT) against the workflow, service, or job instance
 
static bool auditCheckEventString (string opt)
 checks if the given audit event (given as a string) is enabled
 
static bool auditCheckEvent (softint opt)
 checks if the given audit event (given as an integer code) is enabled
 
static int auditGetMask ()
 returns the audit event mask
 
static bool isKubernetes ()
 returns True when Qorus is running under Kubernetes
 
static int usleep (date arg)
 puts the current thread to sleep for a certain number of microseconds
 
static int sleep (softint arg)
 puts the current thread to sleep for a certain number of seconds
 
static int usleep (softint arg)
 puts the current thread to sleep for a certain number of microseconds
 
static hash< auto > getQorusOptions (...)
 returns the value of the given system option or options
 
static hash< auto > getQorusOptionInfo (...)
 returns a hash giving information about system options
 
static hash< auto > getQorusOptionInfoArgs (*list< auto > args)
 returns a hash giving information about system options
 
static auto getQorusOptionsArgs (softlist< auto > args)
 returns the value of the given system option or options
 
static hash< auto > getActiveJobs ()
 Returns information on all active jobs visible to the calling user.
 
static object getUserConnection (string name, bool connect=True, bool register_dependency=True, *hash< auto > rtopts)
 Returns an object corresponding to a defined user connection.
 
static hash< auto > getUserConnectionTags (string name)
 Returns any tags set on the given user connection.
 
static Qore::SQL::Datasource getDatasourceDedicated (string name, bool register_dependency=True)
 returns a new, dedicated Datasource object, suitable for transaction management for long-running transactions
 
static AbstractDatasource getDatasourcePool (string name, bool register_dependency=True)
 returns a DatasourcePool object for the given datasource name
 
static hash< auto > getDatasourceInfo (string name)
 returns a hash of information for the given datasource, if known, otherwise throws an exception
 
static QorusSystemAPIHelper getRemoteRpcConnection (string name, bool connect=True, bool register_dependency=True)
 Returns a new QorusSystemAPIHelper object corresponding to a defined Qorus remote connection.
 
static QorusSystemRestHelper getRemoteRestConnection (string name, bool connect=True, bool register_dependency=True)
 Returns a new QorusSystemRestHelper object corresponding to a defined Qorus remote connection.
 
static raiseTransientAlert (string alert, string reason, *hash< auto > info)
 raises a transient system alert from a workflow, service, or job
 
static string qorusGetPublicUrl (*hash< auto > cx)
 Returns a string giving the remote / publicly-accessble system URL.
 
static string qorusGetLocalUrl (*string username, *string password)
 returns a string giving the local system URL
 
static setOption (hash< auto > hash)
 Changes option values on a workflow, service, or job.
 
static auto getOption (...)
 Returns the value of the named workflow, service, or job option or options.
 
static auto getOptionArgs (*softlist< string > args)
 Returns the value of the named workflow, service, or job option or options.
 
static hash< auto > blockOrder (softint wfiid)
 block the given workflow order data instance
 
static hash< auto > unblockOrder (softint wfiid, *hash< auto > tempdata, *hash< auto > orderkeys)
 unblocks the given workflow order data instance
 
static hash< auto > cancelOrder (softint wfiid)
 cancel the given workflow order data instance
 
static hash< auto > uncancelOrder (softint wfiid, *hash< auto > tempdata)
 uncancels the given workflow order data instance
 
static updateDynamicOrderData (softint wfiid, hash< auto > new_data)
 updates the given workflow order instance's dynamic data hash atomically
 
static updateDynamicOrderDataPath (softint wfiid, string path, auto value)
 updates the given workflow order instance's dynamic data hash atomically
 
static *hash< auto > getUserContextInfo ()
 returns a hash for the current user context
 
static *string getContextUserName ()
 returns the current username for any external user-initiated call or NOTHING if executing in a system context
 
static auto getConfigItemValue (string cfg_item, *hash< auto > local_context, bool expand_complex_values=True)
 returns config item value in the current user context
 
static auto getInterfaceConfigItemValue (string cfg_item, *hash< auto > local_context, bool expand_complex_values=True)
 returns config item value in the current interface context
 
static hash< auto > getConfigItemHash (*hash< auto > local_context)
 returns a hash of all configuration items for the current interface
 
static hash< auto > getInterfaceConfigItemHash (*hash< auto > local_context)
 Returns a hash of all configuration items for the current context as a combination of local and global configuration items.
 
static auto getGlobalConfigItemValue (string item, *hash< auto > local_context, bool expand_complex_values=True)
 returns the value of the given configuration item on global level; throws an exception if there is no value on global level for the configuration item
 
static auto getGlobalConfigItemValueWithDefault (string item, auto default_value, *hash< auto > local_context, bool expand_complex_values=True)
 returns the value of the given configuration item on global level; throws an exception if there is no value on global level for the configuration item
 
static AbstractDataProvider getDataProvider (hash< auto > h, *hash< auto > ctx)
 Returns a data provider corresponding to the hash description.
 
static AbstractDataProvider getDataProvider (string path)
 returns the data provider given by a path string
 
static AbstractDataProvider getDataProvider (string type, string name, *string path, *hash< auto > opts, *hash< auto > ctxt, *bool handle_template_args)
 returns the data provider given by a path string
 
static AbstractDataProviderType getQorusType (string type_path)
 Returns a data provider type from a direct type path.
 
static AbstractDataProviderType getType (hash< auto > h, *hash< auto > ctx)
 Returns a type corresponding to the hash description.
 
static AbstractDataProviderType getType (string typename, string name, *string path, *string subtype, *string subtypename, *hash< auto > options, *hash< auto > ctx)
 Returns a type corresponding to the arguments.
 
static AbstractDataProviderType getTypeFromPath (string path)
 returns a data provider type identified by a path string
 
static Mapper::Mapper getMapper (string name, *hash< auto > rtopts)
 returns the given mapper if registered for the current interface
 
static Qore::AbstractIterator getMapperIterator (string name, Qore::AbstractIterator input, *hash< auto > rtopts)
 returns an iterator for the named mapper using the iterator argument for input
 
static bool postSyncEvent (string eventtype, string eventkey)
 posts a workflow synchronization event given the event type name and the unique event key
 
static hash< auto > propGet ()
 returns a hash of all system properties in all domains
 
static *hash< auto > propGet (string domain)
 returns a hash of all key-value pairs in the given domain or NOTHING if the system property domain does not exist
 
static auto propGet (string domain, string key)
 returns the value of the given system property key in the given domain or NOTHING if the system property does not exist
 
static string propUpdate (string domain, softstring key, auto value)
 changes (inserts, updates, or deletes) the value of a single system property
 
static hash< auto > propUpdate (hash< auto > h)
 changes (inserts, updates, or deletes) the value of one or more system properties according to a hash argument
 
static softint getNextSequenceValue (AbstractDatasource ds, string name)
 returns the next sequence value for the given datasource and sequence
 
static softint getNextSequenceValue (string ds, string name)
 returns the next sequence value for the given datasource and sequence
 
static string serializeQorusData (auto d)
 returns a string giving the default serialization of the given data structure for storage in Qorus
 
static string serializeQorusDataWithNothing (auto d)
 returns a string giving the default serialization of the given data structure for storage in Qorus
 
static auto deserializeQorusData (string data)
 parses serialized data in either XML-RPC or YAML format and returns the corresponding qore data
 
static auto deserializeQorusData (null data)
 deserializing a NULL value from the DB returns no value
 
static *string restartTransaction (string driver, hash< auto > ex)
 returns a string error message if any exception in the chain passed was caused by a recoverable DB error, otherwise returns NOTHING
 
static bool isInternalSystemDebuggingEnabled ()
 returns True if internal system debugging is enabled
 
static auto getHashDotValue (*hash< auto > var_data, string var_name, *reference< bool > missing_input)
 returns the value of the given key from the given hash, respects dot notation in the key name
 
static auto expandOneVariable (string str, string var_context, auto template_arg, *hash< auto > local_context, *bool brackets, bool expand_complex_values=True, *reference< bool > missing_input)
 expands one variable in a templated string
 
static bool isSingleTemplatedString (auto value)
 checks if the given value is a templated string with only one expandable variable
 
static auto expandTemplatedValue (auto value, *hash< auto > local_context, bool expand_complex_values=True, *reference< bool > missing_input, *string template_context)
 expands all variables in a templated string
 
static softlist< auto > expandComplexValue (list< auto > val, *hash< auto > local_context, *string template_context)
 expands all variables in a list with templated values
 
static hash< auto > expandComplexValue (hash< auto > val, *hash< auto > local_context, *string template_context)
 expands all variables in a hash with templated values
 
static hash< BbVariable > bbParseExactlyOneVariable (string str)
 parses one template variable and returns a hash with its parts
 
static auto getInputData (string field_name, *hash< auto > local_context, *hash< auto > input_data_cfg)
 returns specified input data field's value
 
static hash< auto > getInputData (*hash< auto > input_data_cfg, *hash< auto > local_context)
 returns all input data
 
static *hash< auto > updateHashDotValue (*hash< auto > var_data, string var_name, auto value)
 updates the given hash with a key in dot notation with the given value
 
static *hash< auto > deleteHashDotValue (*hash< auto > var_data, string var_name, *bool recursive)
 Updates the given hash by deleting the value described by a key in dot notation.
 
static updateOutputData (string field_name, auto output_data, *hash< auto > output_data_cfg)
 updates specified output data field's value
 
static updateOutputData (hash< auto > all_output_data, hash< auto > output_data_cfg=UserApi::getConfigItemValue(BB_OUTPUT_DATA_CFG_KEY, NOTHING, False))
 updates all output data
 
static writeOutputData (*hash< auto > output_data)
 Writes output data using a concise format.
 
static string getTextFileFromLocation (string location)
 returns string data for the given file location
 
static binary getBinaryFileFromLocation (string location)
 returns binary data for the given file location
 
static Qore::StreamReader getStreamReaderFromLocation (string location)
 Returns a string stream for the file's data at the given location.
 
static Qore::InputStream getBinaryStreamFromLocation (string location)
 Returns an input stream for file data at the given location.
 
static writeFileToLocation (string location, data contents)
 Writes data to a file at the given location.
 
static FileLocationHandler::OutputStreamWrapper getOutputStreamForLocation (string location)
 Returns an output stream for writing data to the given location.
 
static auto executeFsm (string fsm_name, auto arg)
 Executes the given Finite State Machine and returns the final output.
 
static registerFsmAsObserver (string fsm_name, DataProvider::Observable observable, string event_id)
 Registers the given Finite State Machine with the given object as an Observer.
 
static string generateTokenForUser (string username, timeout expiry=DefaultTokenExpirationPeriod)
 Generates an access token for the given user with the given expiration time.
 
static string generateTokenForUser (string username, int expiry_seconds)
 Generates an access token for the given user with the given expiration time.
 
static bool invalidateToken (string token)
 Invalidates the given token.
 
static refreshToken (string token, *int expiry_seconds)
 Refreshes the given token.
 
static refreshToken (string token, timeout expiry_seconds)
 Refreshes the given token.
 
static *hash< TokenInfogetTokenInfo (string token, *bool refresh_token)
 Returns information for the given token.
 
static *hash< QorusUserInfogetCurrentUserInfo ()
 Returns information for the current user.
 
static hash< QorusUserInfogetUserInfo (*string username)
 Returns information for the given user.
 
hash< auto > bindSubworkflow (hash< auto > wf, hash< auto > order)
 This method binds a workflow to a subworkflow step.
 
hash< auto > skipSubworkflow ()
 This method skips binding a workflow to a subworkflow step.
 
 submitAsyncKey (string key)
 Binds the given key to the asynchronous step.
 
 skipAsyncStep ()
 This method will skip the execution of an asynchronous step.
 
 bindEvent (string eventkey)
 binds a workflow synchronization event based on the event key to a workflow synchronization event step (type OMQ::ExecEvent)
 
 bindEventUnposted (string eventkey)
 binds a workflow synchronization event based on the event key to a workflow synchronization event step (type OMQ::ExecEvent) only if the event has not yet been posted; if the event has already been posted, then an ALREADY-POSTED exception is raised
 
 skipEvent ()
 skips a workflow synchronization event step
 
static leaveParentFeedback (string key, auto value)
 leaves feedback for a parent workflow
 
static auto getChildFeedback (string key)
 gets feedback from a child workflow order with the given key
 
static bool isWorkflowContext ()
 Returns True if the code is executing in an immediate workflow context, False if not.
 
static bool isServiceContext ()
 Returns True if the code is executing in an immediate service context, False if not.
 
static bool isJobContext ()
 Returns True if the code is executing in an immediate job context, False if not.
 
- Static Private Member Methods inherited from OMQ::UserApi::UserApi
static QorusProgram DynamicLogic (False, CommonParseOptions|PO_NO_INHERIT_USER_CLASSES|PO_NO_INHERIT_USER_FUNC_VARIANTS|PO_NO_INHERIT_GLOBAL_VARS|PO_NO_INHERIT_USER_CONSTANTS|PO_NO_INHERIT_USER_HASHDECLS|PO_NEW_STYLE|PO_STRICT_ARGS|PO_REQUIRE_TYPES, QorusServerDefines)
 Program for dynamic logic.
 
- Private Attributes inherited from OMQ::UserApi::UserApi
const DataProviderRootValues
 data provider root path values
 
const DataTypeRootValues
 data type root path values
 
const DataProviderPathTypeValues
 data type path provider type values
 

Detailed Description

Base class for workflow classes.

Since
Qorus 4.0.3

Member Function Documentation

◆ attach()

final OMQ::UserApi::Workflow::QorusWorkflow::attach ( )

This method is called when Qorus starts working on a workflow order data instance; it in turn calls attachImpl() which can be overridden in subclasses.

If any error is raised in the attach method (by calling WorkflowApi::stepError() in Qore code or WorkflowApi.stepError() in Java code) or by throwing an appropriate exception), the workflow order data instance will receive an OMQ::StatError status and the attach operation will fail.

Note
TempData can only be reliably set in the attach method, because a workflow can be restarted from any step after an error. Therefore you cannot ensure that TempData set in other step code will be available when executing the following step, in case an error occurs.

◆ attachImpl()

OMQ::UserApi::Workflow::QorusWorkflow::attachImpl ( )
private

This method is called when Qorus starts working on a workflow order data instance; this method may be overridden in subclasses.

If any error is raised in the attach method (by calling WorkflowApi::stepError() in Qore code or WorkflowApi.stepError() in Java code) or by throwing an appropriate exception), the workflow order data instance will receive an OMQ::StatError status and the attach operation will fail.

Note
TempData can only be reliably set in the attach method, because a workflow can be restarted from any step after an error. Therefore you cannot ensure that TempData set in other step code will be available when executing the following step, in case an error occurs.

◆ detach()

final OMQ::UserApi::Workflow::QorusWorkflow::detach ( string  status,
*string  external_order_instanceid 
)

This method is called when the workflow order data instance status is committed to the database; it in turn calls detachImpl() which can be overridden in subclasses.

Parameters
statusThe status being set for the workflow order data instance, see Workflow, Segment, and Step Status Descriptions
external_order_instanceidThe external key for the workflow data being processed, if any exists, otherwise NOTHING

The first argument passed to the method is the workflow order data instance's status (status descriptions) that will be written to the database. The second argument passed is the external order instance ID, if any exists.

◆ detachImpl()

OMQ::UserApi::Workflow::QorusWorkflow::detachImpl ( string  status,
*string  external_order_instanceid 
)
private

This method is called when the workflow order data instance status is committed to the database; this method may be overridden in subclasses.

Parameters
statusThe status being set for the workflow order data instance, see Workflow, Segment, and Step Status Descriptions
external_order_instanceidThe external key for the workflow data being processed, if any exists, otherwise NOTHING

The first argument passed to the method is the workflow order data instance's status (status descriptions) that will be written to the database. The second argument passed is the external order instance ID, if any exists.

◆ errorHandler()

final OMQ::UserApi::Workflow::QorusWorkflow::errorHandler ( string  errcode,
*hash< auto >  errinfo,
auto  opt 
)

This method is called when errors are raised; it in turn calls errorHandlerImpl() which can be overridden in subclasses.

Parameters
errcodethe error code string (ex: "QORE-EXCEPTION")
errinfothis parameter will only be present if the error has been defined by as a workflow error; if so, the hash should have at least the following keys (key names in square brackets (i.e. [name]) are optional):
  • desc: description of the error
  • severity: Error Severity Codes
  • status: either OMQ::StatRetry (meaning that the step should be retried) or OMQ::StatError
  • [retry-delay]: the delay in seconds before the error should be retried (only valid when status is OMQ::StatRetry)
  • [business]: if True, this error represents a business error (rather than a technical error); usually implying that there is a problem with the consistency of the order data
optan optional parameter that can be supplied by the workflow when an error is raised, normally a string providing additional information about the error

This method allows the workflow to do external logging or to take custom actions when errors are raised.

The default implementation in the base class is empty.

◆ errorHandlerImpl()

OMQ::UserApi::Workflow::QorusWorkflow::errorHandlerImpl ( string  errcode,
*hash< auto >  errinfo,
auto  opt 
)
private

This method is called when errors are raised and may be overridden in subclasses.

Parameters
errcodethe error code string (ex: "QORE-EXCEPTION")
errinfothis parameter will only be present if the error has been defined as a workflow error; if so, the hash should have at least the following keys (key names in square brackets (i.e. [name]) are optional):
  • desc: description of the error
  • severity: Error Severity Codes
  • status: either OMQ::StatRetry (meaning that the step should be retried) or OMQ::StatError
  • [retry-delay]: the delay in seconds before the error should be retried (only valid when status is OMQ::StatRetry)
  • [business]: if True, this error represents a business error (rather than a technical error); usually implying that there is a problem with the consistency of the order data
optan optional parameter that can be supplied by the workflow when an error is raised, normally a string providing additional information about the error

This method allows the workflow to do external logging or to take custom actions when errors are raised.

The default implementation in the base class is empty.

◆ oneTimeInit()

final OMQ::UserApi::Workflow::QorusWorkflow::oneTimeInit ( )

This method is executed once when the workflow execution instance starts or is reset; it in turn calls oneTimeInitImpl() which can be overridden in subclasses.

Note
Persistent objects with a high acquisition cost should be acquired in the oneTimeInit() method. Use the WorkflowApi::updateInstanceData() method (in Qore) or the WorkflowApi.updateInstanceData() method (in Java) to save resources acquired, and WorkflowApi::getInstanceData() (in Qore) or the WorkflowApi.getInstanceData() method (in Java) to retrieve the resources during the workflow's execution.

◆ oneTimeInitImpl()

OMQ::UserApi::Workflow::QorusWorkflow::oneTimeInitImpl ( )
private

This method is executed once when the workflow execution instance starts or is reset; this method may be overridden in subclasses.

Note
Persistent objects with a high acquisition cost should be acquired in the oneTimeInit() method. Use the WorkflowApi::updateInstanceData() method (in Qore) or the WorkflowApi.updateInstanceData() method (in Java) to save resources acquired, and WorkflowApi::getInstanceData() (in Qore) or the WorkflowApi.getInstanceData() method (in Java) to retrieve the resources during the workflow's execution.

The documentation for this class was generated from the following file: