Step Details | |
Introduced in Version | 3.0.0 |
Last Modified in Version | 7.15.0 |
Location | Integration > MSMQ |
The Get Message step is used to retrieve a message as designated by it's path queue.
Prerequisites
- This step requires the MSMQ module to be installed before it will be available in the toolbox.
- A dependency must be created after installing the module in order for the the steps to be properly used.
Properties
Inputs
Property | Description | Data Type |
---|---|---|
Path Queue | Path to the message inside of its respective queue. | String |
Time Out | Optional input permitting an amount of time step can run prior to stopping. | TimeSpan |
Outputs
Property | Description | Data Type |
---|---|---|
Output | The part of the string that was extracted. | String |
Common Errors
Length ('-1') must be a non-negative value.
If the queue path provided does not exist and the MSMQ library cannot resolve the issue, the step will cause an error.
To correct this, change the queue path in the step to be valid and appropriately formatted.
Exception Message:
DecisionsFramework.Design.Flow.ErrorRunningFlowStep: Error running step Get Message 1[GetMessage] in flow [Step Library Flow]: Exception invoking method GetMessage on class MSMQSteps
---> DecisionsFramework.LoggedException: Exception invoking method GetMessage on class MSMQSteps
---> DecisionsFramework.LoggedException: Failed to get message by path: localhost/local
---> System.ArgumentOutOfRangeException: length ('-1') must be a non-negative value. (Parameter 'length') Actual value was -1. at System.ArgumentOutOfRangeException.ThrowNegative[T](T value, String paramName)
at System.ArgumentOutOfRangeException.ThrowIfNegative[T](T value, String paramName)
at System.String.ThrowSubstringArgumentOutOfRange(Int32 startIndex, Int32 length)
at System.String.Substring(Int32 startIndex, Int32 length)
at Experimental.System.Messaging.MessageQueue.ResolveFormatNameFromQueuePath(String queuePath, Boolean throwException)
at Experimental.System.Messaging.MessageQueue.get_FormatName()
at Experimental.System.Messaging.MessageQueue.get_QueueInfoKey()
at Experimental.System.Messaging.MessageQueue.get_MQInfo()
at Experimental.System.Messaging.MessageQueue.StaleSafeReceiveMessage(UInt32 timeout, Int32 action, MQPROPS properties, NativeOverlapped* overlapped, ReceiveCallback receiveCallback, CursorHandle cursorHandle, IntPtr transaction)
at Experimental.System.Messaging.MessageQueue.ReceiveCurrent(TimeSpan timeout, Int32 action, CursorHandle cursor, MessagePropertyFilter filter, MessageQueueTransaction internalTransaction, MessageQueueTransactionType transactionType)
at Experimental.System.Messaging.MessageQueue.Receive(TimeSpan timeout)
at Decisions.Messaging.MSMQ.MSMQSteps.GetMessage(String pathQueue, Nullable`1 timeOut)
--- End of inner exception stack trace --- at Decisions.Messaging.MSMQ.MSMQSteps.GetMessage(String pathQueue, Nullable`1 timeOut)
at InvokeStub_MSMQSteps.GetMessage(Object, Span`1)
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
--- End of inner exception stack trace --- at DecisionsFramework.Design.Flow.StepImplementations.InvokeMethodStep.Run(StepStartData data)
at DecisionsFramework.Design.Flow.FlowStep.RunStepInternal(String flowTrackingID, String stepTrackingID, KeyValuePairDataStructure[] stepRunDataValues, AbstractFlowTrackingData trackingData)
at DecisionsFramework.Design.Flow.FlowStep.Start(String flowTrackingID, String stepTrackingID, FlowStateData data, AbstractFlowTrackingData trackingData, RunningStepData currentStepData)
--- End of inner exception stack trace ---
Related Information
Related Articles: