DynamicArgumentDialog - Accept Dynamic Arguments


I am creating a custom activity in which I need to leverage the DynamicArgumentDialog class. This is the one one that lets you specify arguments and their types in a table.

Image of DynamicArgumentDialog

I’ve found a few articles on doing this, but none of them seem to have any answers in them:

To compound this issue, many of the support articles linked in these threads are either dead links (wayback machine helps a bit here) or referencing code that is no longer available.

I have tried the following. Assume the [RequiredArgument] attribute for all of these, as well as a category of “Input”.

public Dictionary<string, Argument> Arguments { get; set; }: No field visible, same behavior with and without a category.
public InArgument<Dictionary<string, Argument>> Arguments { get; set; }: Field visible. Button opens a code view rather than a table.
public Collection<Variable> Arguments { get; set; }: Closest so far. Shows (Collection) in property view in UiPath, but no edit button is visible/available.

The StackOverflow article suggests using the following code:

ModelItem modelItem = this.ModelItem.Properties["Arguments"].Dictionary;
using (ModelEditingScope change = modelItem.BeginEdit("ArgumentsEditing"))
    if (DynamicArgumentDialog.ShowDialog(this.ModelItem, modelItem, Context, this.ModelItem.View, options))

However, I am unsure of where to put this. Some pages seem to imply launching this as though it were a child activity, but this suggestion doesn’t appear to be actionable. According to this MSDN article, I can schedule the execution of a child activity or function, however this seems to only be enacted at runtime.

What am I missing here?

Hello @Foxtrek_64!

It seems that you have trouble getting an answer to your question in the first 24 hours.
Let us give you a few hints and helpful links.

First, make sure you browsed through our Forum FAQ Beginner’s Guide. It will teach you what should be included in your topic.

You can check out some of our resources directly, see below:

  1. Always search first. It is the best way to quickly find your answer. Check out the image icon for that.
    Clicking the options button will let you set more specific topic search filters, i.e. only the ones with a solution.

  2. Topic that contains most common solutions with example project files can be found here.

  3. Read our official documentation where you can find a lot of information and instructions about each of our products:

  4. Watch the videos on our official YouTube channel for more visual tutorials.

  5. Meet us and our users on our Community Slack and ask your question there.

Hopefully this will let you easily find the solution/information you need. Once you have it, we would be happy if you could share your findings here and mark it as a solution. This will help other users find it in the future.

Thank you for helping us build our UiPath Community!

Cheers from your friendly

Hello friend, did you find the solution?

Hi Henrique,

Unfortunately I did not. As a temporary work-around, I have been accepting a Dictionary<string, object>, adding everything to it, then casting to the appropriate type on the other side.

It’s rather ungainly but it works for now.