Multiple Assign Fails

Hello All,

I have loaded the data as a queue item (Dispatcher), but in Performer I am not able to assign by using Multiple Assign. In debug you can see that its showing all the values “NULL” to every Queue Item.

What might have gone Wrong?

Check the values of the in_transactionitem.specificcontent dictionary itself in the debug window.

Common mistake I make when developing: getting older transaction items that do not contain the new values yet :slight_smile:

Also make sure your keys match exactly. They are case sensitive.

Hi @Anirudh_Tugawe ,

Thanks for reaching out.

  1. Can you check the data you loaded in the queue are properly in place?
    This means that from the dispatcher all values are added to the queue in the transaction item.
    If there is no specific Data available in Transactionitem then you will not be able to retrieve any data from the queue (transaction item).
  2. make sure you are connected to the right folder where you have created the Queue, please find the screenshot below.

Happy Automation,
@Vinit_Kawle

1 Like

its showing App Exception

it shows app exception

@Anirudh_Tugawe ,

Can you try using the below in the value field of the assign
If(in_TransactionItem.SpecificContent(“your key name”) Is Nothing,String.Empty,in_TransactionItem.SpecificContent(“your key name”).ToString)

Happy Automation,
@Vinit_Kawle

1 Like

Key is the same, I purposely deleted the old key, created a new one and used it in Config but still i am getting issues with the queue item in Performer its not taking the values

Why are you doing this? There is no reason to assign all the transaction item values to variables. Just reference the transaction item wherever you need the values.

Oh, this is something new for me now, but it sounds interesting! I have been struggling since yesterday still stuck with the assign

why it be saying this? All the data is loaded in the queue properly but for performer its throws the error.

please guide me

I watched in couple of videos that in Performer when we have to take values from the queue we need to assign the values and also put the queue name from the orchestrator and put in the Config right?

Are you directly running one of the sub XAMLs instead of the entire project? You can’t do that, because then in_transactionItem is not passed into the sub XAML. Run from Main.

we have to take values from the queue we need to assign the values

No. You don’t have to assign the transaction values to individual variables. You can just reference in_TransactionItem.SpecificContent(“some key name”).ToString anywhere you need it.

and also put the queue name from the orchestrator and put in the Config right?

Yes

Yes I was running from the main itself, I did the first work flow and wanted to see does it carries any value or not. I know its incomplete so added a break point.

Yes I am using this syntax for individual assign mentioning the specific content

What I’m saying is you don’t need the individual assigns. They are unnecessary. Whenever you need the job title value (ie in a Type Into, Log Message, any other activity) just use in_TransactionItem.SpecificContent(“Job title”).ToString

You’re making extra work for yourself by creating all these extra variables.

Don’t do this:

Just do this:

1 Like

I have to disagree. Alright, if the value is required just once, it’s indeed extra work. But, let’s say the same value is needed in multiple workflows. Then every time you want to use the value you need to type the long formula and remember the field name in Orchestrator queue, or copy it (and in that case you need to remember where to find it :slight_smile: ). By creating variables, you have some extra one-time work but will benefit from it in the long run.

@Anirudh_Tugawe: As was suggested above, check in debug mode what your in_TransactionItem dictionary contains. Perhaps you have a typo in the keys.

Okay, i will try this, but here is the variable I have to use it a couple of times so I was creating the variables of it.

How is that any different than typing the variable name every time, having to manage all those variables and their scopes, remember the variable name, etc?

I’ve done dozens of these kind of automations. You’re making unnecessary work and complication for yourself.

If it’s required in multiple workflows, then you’d need to pass it back and forth in an argument anyway, which is exactly where variable types like this come in handy; you can pass in the Transaction Item, Config file, etc as one single argument and from that extract many different values without the need for a separate argument for each.

There’s scenarios where it can be useful to put them into variables, but IMO I much prefer to keep them in their wrap around state like in the TransactionItem variable.