Have Questions?  Need Expert Answers?  JOIN LUNCH N' LEARNS!

Get Message

Prev Next
Step Details
Introduced in Version3.0.0
Last Modified in Version7.15.0
LocationIntegration > 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

PropertyDescriptionData Type
Path QueuePath to the message inside of its respective queue.String
Time OutOptional input permitting an amount of time step can run prior to stopping.TimeSpan

Outputs

PropertyDescriptionData Type
OutputThe 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:

MSMQ Module

About Messaging