#FeatureBlog - 18.3 - Library (Reusable components)

Is it possible to add custom icons to the activities created this way?
Also: is it possible to add a description to the input and output properties? I tried setting annotations in the arguments, thinking that would be a neat way for it to translate to a property description, but that didn’t work.
Would also be nice if a boolean input would appear as a checkbox property, right now it’s a text field.


good job


There are two options; publish your library to Orchestrator or publish to a local folder (preferably a share network drive I assume).

Which option is the way to go? We are trying to figure out the best practices here.



I would go with the Orchestrator… as it provides a view of the libraries with it’s version history and release notes. Only downside is that the Orchestrator doesn’t seperate libraries by Org Units/Tenants.

We usually use the custom location for development purpose so that the developers won’t step on each other’s toes…with their changes in the library code.


Also my 2 cents on libraries are as below…

What I found is that there is a significant performance deterioration with the usage of libraries especially when you have to toss large objects such as dictionaries around… Loading the xamls containing the activities from library takes forever to load it…You might want to use a shared drive when you have to pass along large objects…

Also libraries doesn’t allow dynamic invokes…for example if you want to use an expression in the Invoke XAML within a workflow, library isn’t compiled…so we might want to use a shared drive for the xamls OR create a factory which will call the corresponding XAMLs based on the variable.

The other option for re-usable components is storing them in a shared drive…Downside of Re-usable components in a Shared Drive is that if there is a change and you donot want all calling processes to get impacted, you will end up maintaining versioning in shared drive for various processes which will become cumbersome along the way… So if you believe all processes can change based on the changes in shared drive, go for it.

So we need to measure the trade-offs and chose the right usage of re-usable components…


Hi @sivatejag

Could you explain each point in more detail (preferably with some screenshots)?

We value all user feedback and will definitely look into the performance issues you experienced, as long as we can recreate your situation. Some sample file would help here as well.

Moreover, after consulting our team, I can deliver some positive news :slight_smile::

  1. “Loading the xamls containing the activities from library takes forever to load it” - this is due to the high number of dependencies that are passed in by studio for a project and are loaded by activity initialization and is a known issue that will be addressed
  2. “Also libraries don’t allow dynamic invokes…for example if you want to use an expression in the Invoke XAML within a workflow” - in this case compiler identifies the case and reports it as unsupported. This is a feature that was already requested and we are looking into it.

Thank you for your feedback. I hope this is helpful for you to know the current situation :slight_smile:


Thank you for updating about the current situation… that helps… any word on the ETA for resolution??

Now we moved from shared drive reusable components to libraries and landed into the performance issues… any info on the ETA would help us decide whether we rollback or live with the libraries until the resolution…

Also where can we find the known issues list for the release…??


In terms of screenshots, the error isn’t visible in screenshots but rather in the logs…

We had encapsulated all actions on a mainframe into a library for use by various processes. We had created a process template which calls a series of common activites in a XAML which is then invoked by REFramework Main.

The time taken between the invoke to this template XAML and the actual XAML execution is observed to be 2 min.

  1. When it will be possible in library to invoke dynamically workflow based on value of variable?
  2. When it will be possible in library to call workflow that does not exists? I would like to have engine type of implementation in library and add some plugins that are called based on input arguments but those plugins workflows are not included in library itself.

Why are you saying that this is not possible?

When invoking an activity (library) that library must exist but otherwise the invoked workflow name can be a variable. You can use Invoke workflow dynamically and even write code for this.


If I try to publish, I receive following error message;

Workflow file ‘C:\ … \Test.xaml’ contains an InvokeWorkflowFile activity with an dynamic expression ‘[message]’. Expressions are currently not supported.

I have Invoke Workflow file with WorkflowFileName message (string type of input argument)


My bad. For 2 I skipped the “in library” part.

I guess the thinking is that the libraries are “highly” redistributable pieces that should not have pointers to folder paths but probably there may be needed. I was curios if this can’t be done inside an Invoke Code activity.


What do You mean by inside an Invoke Code activity? Is it possible to invoke workflow from code activity?

My original goal was to call Library from Project X so that based on input parameter Library would then call xaml file from Project content. But it might not be possible if Project and Library are executed in different contents? I assume I can provide absolute path to Library so that actual workflow from Project content could be executed but the environment would be different so that relative paths and Package manager content would not be same -. or is that correct assumption?


Invoke Workflow isn’t possible from Invoke Code.

Library can itself be located in your choice of folder location and your dependencies file should be modified to point to that location for the library if you chose not to use Orchestrator.

However it is not possible to give dynamic expressions as argument when invoking a workflow file in a library.

In .Net words, UIPath library is a compiled dll and can not contain code that will need to resolve invoking workflows through reflection. If you want to load dynamic workflows based on input arguments, you will have to build a factory model where in you will have to write IF/ Switch Case.

If (arg1 == “A”) { Invoke Workflow A}
If (arg1 == “B”) { Invoke Workflow B}



I am quite naïve in this technology. So could someone please help me with below doubts on this topic?

  1. Can I publish the library to the Orchestrator? If yes, then where will it be visible?
    The problem is that currently when I try to publish a library, the Orchestrator Option is deactivated, (I am using the community version) so I assume libraries cannot be published to Orchestrator.

  2. Can someone else use the library published by me? If yes, then how?
    Do we need to maintain a common location for the access?

Thanks for your time!


how to add icon to my library in uipath 2018.3.2


Hi @venkat4u

It is considered for the following releases. Stay tuned :slight_smile:



thats awesome…

may i check another one, is there any way i can add checkbox/drop down
in Library input arguments?


Hi @venkat4u

Could you clarify whether you mean a set of default values that would be available for particular fields in you Library activity properties?


i mean, in the Write Range acitivity, we have property called, AddHeaders…which is check box.