Reading data from orchestrator queue

Hello, I am trying to write data from a data table into my orchestrator queue. My “object” shows up in my queue but I am unable to see the actual values. Instead I only see this “System.Data.DataRow”.

This is my sequence to add items to my queue. Am I doing something wrong?

image

Add the individual row values to the queue as separate SpecificContent entries, rather than loading the entire data row. This will allow you to see the data.

So which actvities would I use in order to do this? Not sure how to accomplish this, thanks

Bulk Add Queue Items is likely the easiest option, since it converts your datarow items into specific content. You could instead use Add Queue Item as well, but you will need to define the collection of items one by one for the activity.

Unfortunatley our orchestrator isn’t up to version 19 so I can’t use Bulk Add Queue activity. I am already using Add queue activity now, so how do I define the collection of items one by one…? Does that go in the properties of “Add Queue Item” under “ItemInformation?”

Yes, that’s the one. The name you give the argument is the name of the SpecificContent you’re setting, so when you have your performer processes fetch the data, you’ll need to use MyQueueItem.SpecificContent("NameOfSpecificContent"), where NameOfSpecificContent is the name of the data you’re entering.

hmm not sure how to do that. So here is my data table image

And here is the argument I’m passing to it now, where row is the current item in the data table we’re iterating through.

What essentially do I have to change to correctly write data to the queue?

First, you’ll need a For Each Row activity. Put your Add Queue Item activity in that.

Now, for each of your columns, set the names to Amount, Number checks, and Date. Make sure the datatype of each is String, Int32, and String respectively. The Value field for the specific content will be row("Amount"), row("Number checks), and row("Date") respectively.

It will look something like this:

2 Likes

altho you cant see the contents using the orchestrator ui, i doesnt mean that your data isnt there to be retrieved by your processes…

Great that worked! So if I want to pull these items down from the queue, do I use “Get Queue Items” activity? Where would I enter “MyQueueItem.SpecificContent(“NameOfSpecificContent”)” at, like which property?

You would use Get Transaction Item to get an individual item from the queue. This will return a QueueItem type. So if your variable of QueueItem type is MyQueueItem, you would access the amount with MyQueueItem.SpecificContent("Amount").

So would that look like this? Nothing outputted

You will not be able to iterate over the data in that way, but you can return the items individually.

This is what I have now and it’s not outputting anything. Do I need to do something different?

image

you must not have any items in your queue therefore no output there :wink:

1 Like

Nope I have two items!

Still, the code inside your message box will output that value or give you an error that the field do not exist, if it shows nothing, then you must have set nothing to it…

1 Like

Make sure the queue name you’ve provided for adding queue items and the queue name from which your getting queue items match.

Just figured out the problem - my sequence was not connected to my flowchart! (oops). All good now - thank you for all the help! If I only want to pull down one item from my queue, how would I do that?

Just use the Get Transaction Item activity, and it will pull the next item in your queue. If there are no items left, your Queue variable will be set to Nothing.