Qorus Integration Engine®  5.1.2_git
OMQ::UserApi::Workflow::QorusWorkflow Class Reference

Base class for workflow classes. More...

Inheritance diagram for OMQ::UserApi::Workflow::QorusWorkflow:
OMQ::UserApi::Workflow::WorkflowApi OMQ::UserApi::UserApi

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. More...
 
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. More...
 
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. More...
 
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. More...
 

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. More...
 
 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. More...
 
 oneTimeInitImpl ()
 This method is executed once when the workflow execution instance starts or is reset; this method may be overridden in subclasses. More...
 
 errorHandlerImpl (string errcode, *hash< auto > errinfo, auto opt)
 This method is called when errors are raised and may be overridden in subclasses. More...
 

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() More...
 
static stepError (string err, auto info)
 Raises an error against the current step without affecting the flow of processing. More...
 
static stepError (string err, auto info, date retry_delay)
 Raises an error against the current step without affecting the flow of processing. More...
 
static stepError (string err, auto info, int retry_delay)
 Raises an error against the current step without affecting the flow of processing. More...
 
static stepWarning (string err, auto info)
 Raises a warning against the step. More...
 
static stepWarning (string err, string fmt)
 Raises a warning against the step. More...
 
static setRetryDelay (date delay)
 Sets the value of the retry delay for a step error or an asynchronous step. More...
 
static setRetryDelay (int secs)
 Sets the value of the retry delay for a step error or an asynchronous step. More...
 
static *hash< auto > getErrorInfo (string err)
 Returns the hash data associated with the error code passed as an argument. More...
 
static updateDynamicData (hash< auto > hash)
 Updates the values of one or more keys in the workflow order data instance’s dynamic data hash. More...
 
static deleteDynamicDataKey (softlist< auto > list)
 Deletes one or more keys from the workflow order data instance’s dynamic data hash. More...
 
static auto getDynamicData ()
 Retrieves the values of one or more keys from the workflow order data instance’s dynamic data hash. More...
 
static auto getDynamicDataArgs (*softlist< auto > keylist)
 Retrieves the values of one or more keys from the workflow order data instance’s dynamic data hash. More...
 
static auto getStaticData ()
 Retrieves the values of one or more keys from the workflow order data instance’s static data hash. More...
 
static auto getStaticDataArgs (*softlist< auto > keylist)
 Retrieves the values of one or more keys from the workflow order data instance’s static data hash. More...
 
static updateTempData (hash< auto > hash)
 Updates the values of one or more keys in the workflow order data instance’s temporary data hash. More...
 
static auto getTempData ()
 Retrieves the values of one or more keys from the workflow order data instance’s temporary data hash. More...
 
static auto getTempDataArgs (*softlist< auto > keylist)
 Retrieves the values of one or more keys from the workflow order data instance’s temporary data hash. More...
 
static deleteTempDataKey (softlist< auto > list)
 Deletes one or more keys from the workflow order data instance’s temporary data hash. More...
 
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. More...
 
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. More...
 
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. More...
 
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 More...
 
static auto getSensitiveData (string skey, string svalue)
 Returns the sensitive data for the given sensitive data key and value. More...
 
static auto getSensitiveDataArgs (string skey, string svalue, *list< auto > keylist)
 Returns the sensitive data for the given sensitive data key and value. More...
 
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 More...
 
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 More...
 
static hash< auto > getSensitiveDataAliases ()
 returns a hash of all sensitive data aliases for the current order or an empty hash if there are none More...
 
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. More...
 
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. More...
 
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. More...
 
static updateInstanceData (hash< auto > hash)
 Updates the values of one or more keys in the workflow execution instance’s instance data hash. More...
 
static deleteInstanceDataKey (softlist< auto > list)
 Deletes a single key or a list of keys from the workflow execution instance’s instance data hash. More...
 
static auto getInstanceData ()
 Retrieves the values of one or more keys from the workflow execution instance’s instance data hash. More...
 
static auto getInstanceDataArgs (*list< auto > keylist)
 Retrieves the values of one or more keys from the workflow execution instance’s instance data hash. More...
 
static auto getWorkflowInstanceData (string field)
 Retrieves the value of a single key (system-defined property) from the workflow execution instance object itself. More...
 
static hash< auto > getWorkflowInstanceData ()
 Retrieves the values of multiple keys (system-defined properties) from the workflow execution instance object itself. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static auto getOrderKeys ()
 This method retrieves the user-defined order key information saved against the workflow order data instance. More...
 
static auto getOrderKeysArgs (*softlist< auto > keylist)
 This method retrieves the user-defined order key information saved against the workflow order data instance. More...
 
static bool stepExecuted (string stepname)
 This method returns True if the step passed has been executed and has status OMQ::StatComplete ("C") More...
 
static *string getStepStatus (string stepname)
 Returns the current status of the given step for the current workflow order instance. More...
 
static *hash< auto > getStepInfo ()
 This method will return a hash of step information for the current step. More...
 
static hash< auto > getWorkflowMetadata ()
 returns workflow metadata for the currently running workflow as a hash More...
 
static setBlocked ()
 set the current workflow order status to OMQ::StatBlocked, can only be called from the attach function More...
 
static list getOrderNotes (*int count)
 Get Order Instance Notes. More...
 
static addOrderNote (string notestr)
 Add new note as described in Order Instance Notes. More...
 
static setCustomStatus (string stat)
 Sets a user-defined custom status for the current step. More...
 
static rescheduleOrder (date scheduled)
 reschedules the current workflow order instance for later processing More...
 
static reprioritizeOrder (int prio)
 changes the order priority for the current workflow order instance More...
 
static leaveParentFeedback (string key, auto value)
 leaves feedback for a parent workflow More...
 
static auto getChildFeedback (string key)
 gets feedback from a child workflow order with the given key More...
 
static *hash< auto > getChildFeedback ()
 gets all feedback from all child workflow orders as a hash More...
 
static setOption (hash< auto > hash)
 Changes option values on a workflow. More...
 
static setOption (string option, auto value)
 Changes a single option value on a workflow. More...
 
static auto getOption ()
 Returns the value of the named workflow option(s) More...
 
static auto getOptionArgs (*softlist< string > args)
 Returns the value of the named workflow option or options. More...
 
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. More...
 
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) More...
 
static int sleep (softint arg)
 puts the current thread to sleep for a certain number of seconds More...
 
static int usleep (softint arg)
 puts the current thread to sleep for a certain number of microseconds More...
 
static int usleep (date arg)
 puts the current thread to sleep for a certain number of microseconds More...
 
static auto getConfigItemValue (string item, *hash< auto > local_context, bool expand_complex_values=True)
 returns the value of the given step configuration item More...
 
static hash< auto > getConfigItemHash (*hash< auto > local_context)
 returns a hash of all configuration items for the current step More...
 
- 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) More...
 
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 More...
 
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 More...
 
static hash< auto > getSqlCacheInfo ()
 get information about cached object More...
 
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) More...
 
static clearSqlTableCache (AbstractDatasource datasource, *string table_name)
 clears cached objects for given datasource (for example, if database objects have been updated in the dataserver) More...
 
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. More...
 
static list< auto > getValueMaps ()
 Gets all value maps valid for the current interface. More...
 
static bool postSlaEventSuccess (string sla, number value)
 posts a successful SLA event for SLA monitoring and performance tracking More...
 
static bool postSlaEventError (string sla, number value, string err, string desc)
 posts an unsuccessful SLA event for SLA monitoring and performance tracking More...
 
static flushSlaEvents ()
 flushes all pending SLA events to disk and returns after the data has been committed More...
 
static *hash< auto > getSystemServiceInfo (string name)
 returns information about the given system service (if it's currently loaded) More...
 
static *hash< auto > getServiceInfo (string type, string name)
 returns information about the given service (if it's currently loaded) More...
 
static list getRunningWorkflowList (*string name, *string ver)
 returns a list of hashes giving information about the currently-running workflow execution instances More...
 
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 More...
 
static softint createOrder (string name, *string version, hash< auto > params, string status=StatReady)
 creates a workflow order data instance in the database More...
 
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 More...
 
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 More...
 
static int postUserEvent (string severity, auto info)
 posts an application event of class QE_CLASS_USER More...
 
static hash runtimeProperties ()
 returns Qorus runtime properties as a hash More...
 
static auto callNetworkApiArgsWithAuthentication (string user, string pass, string call, softlist< auto > args)
 calls a system RPC API with authentication information (username and password) More...
 
static auto callNetworkApiArgs (string call, *softlist< auto > args)
 calls a system RPC API with the argument list to the API method as a top-level argument to this method; the API is called with system permissions (no restrictions) More...
 
static auto callNetworkApi (string call)
 calls a system RPC API and returns the result; the API is called with system permissions (no restrictions) More...
 
static auto callRestApi (string method, string path, *hash< auto > body_args)
 calls a system REST API method and returns the result; the API is called with system permissions (no restrictions) More...
 
static auto callRestApiWithAuthentication (string user, string pass, string method, string path, *hash< auto > body_args)
 calls a system REST API method with authentication information (username and password) and returns the result More...
 
static hash< auto > getSystemInfo ()
 returns a hash of system info More...
 
static int getSessionId ()
 returns the current Qorus application session ID More...
 
static startCapturingObjectsFromJava ()
 Starts capturing Qore objects created from Java APIs in the current interface's object cache. More...
 
static stopCapturingObjectsFromJava ()
 Stops capturing Qore objects created from Java APIs in the current interface's object cache. More...
 
static startCapturingObjectsFromPython ()
 Starts capturing Qore objects created from Python APIs in the current interface's object cache. More...
 
static stopCapturingObjectsFromPython ()
 Stops capturing Qore objects created from Python APIs in the current interface's object cache. More...
 
static saveObjectInObjectCache (object obj)
 Saves the object in the object cache. More...
 
static bool clearObjectFromObjectCache (object obj)
 Removes the object from the object cache. More...
 
static *date checkObjectCache (object obj)
 Returns the date/time the object was cached or NOTHING if the object is not in the cache. More...
 
static int getObjectCacheSize ()
 Returns the number of objects in the cache. More...
 
static int clearObjectCache ()
 Clears the entire the object cache. More...
 
static int clearObjectCache (date cutoff)
 Clears the entire the object cache for all objects cached before the given date/time. More...
 
static list< hash< CallStackInfo > > getThreadCallStack ()
 Allows the current thread's call stack to be retrieved in Qorus. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static logWithLevel (int level, string msg)
 Writes to the current interface log file with the given log level. More...
 
static logWithLevelArgs (int level, string msg, *softlist< auto > args)
 Writes to the current interface log file with the given log level. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static *int auditUserEvent (string user_event, *string info1, *string info2)
 creates a user audit event (with audit event code AE_USER_EVENT) against the workflow, service, or job instance More...
 
static bool auditCheckEventString (string opt)
 checks if the given audit event (given as a string) is enabled More...
 
static bool auditCheckEvent (softint opt)
 checks if the given audit event (given as an integer code) is enabled More...
 
static int auditGetMask ()
 returns the audit event mask More...
 
static bool isKubernetes ()
 returns True when Qorus is running under Kubernetes More...
 
static int sleep (softint arg)
 puts the current thread to sleep for a certain number of seconds More...
 
static int usleep (softint arg)
 puts the current thread to sleep for a certain number of microseconds More...
 
static 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. More...
 
static object getUserConnection (string name, bool connect=True, bool register_dependency=True, *hash< auto > rtopts)
 Returns an object corresponding to a defined user connection. More...
 
static hash< auto > getUserConnectionTags (string name)
 Returns any tags set on the given user connection. More...
 
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 More...
 
static AbstractDatasource getDatasourcePool (string name, bool register_dependency=True)
 returns a DatasourcePool object for the given datasource name More...
 
static hash< auto > getDatasourceInfo (string name)
 returns a hash of information for the given datasource, if known, otherwise throws an exception More...
 
static QorusSystemAPIHelper getRemoteRpcConnection (string name, bool connect=True, bool register_dependency=True)
 Returns a new QorusSystemAPIHelper object corresponding to a defined Qorus remote connection. More...
 
static QorusSystemRestHelper getRemoteRestConnection (string name, bool connect=True, bool register_dependency=True)
 Returns a new QorusSystemRestHelper object corresponding to a defined Qorus remote connection. More...
 
static raiseTransientAlert (string alert, string reason, *hash< auto > info)
 raises a transient system alert from a workflow, service, or job More...
 
static string qorusGetLocalUrl (*string username, *string password)
 returns a string giving the local system URL More...
 
static setOption (hash< auto > hash)
 Changes option values on a workflow, service, or job. More...
 
static auto getOption ()
 Returns the value of the named workflow, service, or job option or options. More...
 
static auto getOptionArgs (*softlist< string > args)
 Returns the value of the named workflow, service, or job option or options. More...
 
static hash< auto > blockOrder (softint wfiid)
 block the given workflow order data instance More...
 
static hash< auto > unblockOrder (softint wfiid, *hash< auto > tempdata, *hash< auto > orderkeys)
 unblocks the given workflow order data instance More...
 
static hash< auto > cancelOrder (softint wfiid)
 cancel the given workflow order data instance More...
 
static hash< auto > uncancelOrder (softint wfiid, *hash< auto > tempdata)
 uncancels the given workflow order data instance More...
 
static *hash< auto > getUserContextInfo ()
 returns a hash for the current user context More...
 
static *string getContextUserName ()
 returns the current username for any external user-initiated call or NOTHING if executing in a system context More...
 
static auto getConfigItemValue (string cfg_item, *hash< auto > local_context, bool expand_complex_values=True)
 returns config item value in the current user context More...
 
static auto getInterfaceConfigItemValue (string cfg_item, *hash< auto > local_context, bool expand_complex_values=True)
 returns config item value in the current interface context More...
 
static hash< auto > getConfigItemHash (*hash< auto > local_context)
 returns a hash of all configuration items for the current interface More...
 
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. More...
 
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 More...
 
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 More...
 
static AbstractDataProvider getDataProvider (string path)
 returns the data provider given by a path string More...
 
static AbstractDataProviderType getQorusType (string type_path)
 Returns a data provider type from a direct type path. More...
 
static AbstractDataProviderType getTypeFromPath (string path)
 returns a data provider type identified by a path string More...
 
static Mapper::Mapper getMapper (string name, *hash< auto > rtopts)
 returns the given mapper if registered for the current interface More...
 
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 More...
 
static bool postSyncEvent (string eventtype, string eventkey)
 posts a workflow synchronization event given the event type name and the unique event key More...
 
static hash< auto > propGet ()
 returns a hash of all system properties in all domains More...
 
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 More...
 
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 More...
 
static string propUpdate (string domain, softstring key, auto value)
 changes (inserts, updates, or deletes) the value of a single system property More...
 
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 More...
 
static softint getNextSequenceValue (AbstractDatasource ds, string name)
 returns the next sequence value for the given datasource and sequence More...
 
static softint getNextSequenceValue (string ds, string name)
 returns the next sequence value for the given datasource and sequence More...
 
static string serializeQorusData (auto d)
 returns a string giving the default serialization of the given data structure for storage in Qorus More...
 
static string serializeQorusDataWithNothing (auto d)
 returns a string giving the default serialization of the given data structure for storage in Qorus More...
 
static auto deserializeQorusData (string data)
 parses serialized data in either XML-RPC or YAML format and returns the corresponding qore data More...
 
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 More...
 
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 More...
 
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 More...
 
static bool isSingleTemplatedString (auto value)
 checks if the given value is a templated string with only one expandable variable More...
 
static auto expandTemplatedValue (auto value, *hash< auto > local_context, bool expand_complex_values=True, *reference< bool > missing_input)
 expands all variables in a templated string More...
 
static softlist< auto > expandComplexValue (list< auto > val, *hash< auto > local_context)
 expands all variables in a list with templated values More...
 
static hash< auto > expandComplexValue (hash< auto > val, *hash< auto > local_context)
 expands all variables in a hash with templated values More...
 
static hash< BbVariable > bbParseExactlyOneVariable (string str)
 parses one template variable and returns a hash with its parts More...
 
static auto getInputData (string field_name, *hash< auto > local_context, *hash< auto > input_data_cfg)
 returns specified input data field's value More...
 
static hash< auto > getInputData (*hash< auto > input_data_cfg, *hash< auto > local_context)
 returns all input data More...
 
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 More...
 
static updateOutputData (string field_name, auto output_data, *hash< auto > output_data_cfg)
 updates specified output data field's value More...
 
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 More...
 
static string getTextFileFromLocation (string location)
 returns string data for the given file location More...
 
static binary getBinaryFileFromLocation (string location)
 returns binary data for the given file location More...
 
static auto executeFsm (string fsm_name, auto arg)
 Executes the given Finite State Machine and returns the final output. More...
 
static registerFsmAsObserver (string fsm_name, Observable observable, string event_id)
 Registers the given FSM with the given object as an Observer. More...
 
static string generateTokenForUser (string username, timeout expiry=DefaultTokenExpirationPeriod)
 Generates an access token for the given user with the given expiration time. More...
 
static string generateTokenForUser (string username, int expiry_seconds)
 Generates an access token for the given user with the given expiration time. More...
 
static bool invalidateToken (string token)
 Invalidates the given token. More...
 
static refreshToken (string token, *int expiry_seconds)
 Refreshes the given token. More...
 
static refreshToken (string token, timeout expiry_seconds)
 Refreshes the given token. More...
 
static *hash< TokenInfo > getTokenInfo (string token)
 Returns information for the given token. More...
 
- 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: