# Project Level Variable

**URL:** <https://forum.uipath.com/t/project-level-variable/12372>\
**Category:** Studio\
**Tags:** considering, studio\
**Created:** [September 25, 2017, 4:20am UTC](https://forum.uipath.com/t/project-level-variable/12372 "2017-09-25T04:20:39Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sajal\_Chakraborty](https://avatars.discourse-cdn.com/v4/letter/s/f475e1/32.png) [@Sajal\_Chakraborty](https://forum.uipath.com/u/Sajal_Chakraborty)\
**Post date:** [September 25, 2017, 4:20am UTC](https://forum.uipath.com/t/project-level-variable/12372/1 "2017-09-25T04:20:39Z")

</div>

Currently, the highest level of variable scope is Sequence within a given Xaml. However, an implementation solution consists of multiple xamls, which constitute a project and then a project forms a package which gets deployed to a robot for execution. So, there should be option to define variables at a Project level, which should be available across all xamls which are part of the project. In the absence of this features, implementation teams are required to resort to a lot of workarounds, which not only make the solution complex but also, less reliable.

---

<div class="post-metadata">

**Author:** ![badita](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/badita/32/6_2.png) [@badita](https://forum.uipath.com/u/badita)\
**Post date:** [September 25, 2017, 4:25am UTC](https://forum.uipath.com/t/project-level-variable/12372/2 "2017-09-25T04:25:19Z")

</div>

Duplicate:

> [@Global Variable](https://forum.uipath.com/t/global-variable/1735):
>
> How to create global variable and use through the multiple workflows?

---

<div class="post-metadata">

**Author:** ![Sajal\_Chakraborty](https://avatars.discourse-cdn.com/v4/letter/s/f475e1/32.png) [@Sajal\_Chakraborty](https://forum.uipath.com/u/Sajal_Chakraborty)\
**Post date:** [September 25, 2017, 4:30am UTC](https://forum.uipath.com/t/project-level-variable/12372/3 "2017-09-25T04:30:47Z")

</div>

I did go through this topic and even though it looks same, but it’s not. I am saying that we need this functionality and we cannot directly circumnavigate this feature otherwise. This is required product feature, as depending upon the kind of data I am working with, passing values via arguments or via assets might not answer all scenarios or even most of the required scenarios where I am working with high volume data.

---

<div class="post-metadata">

**Author:** ![rqu003](https://avatars.discourse-cdn.com/v4/letter/r/50afbb/32.png) [@rqu003](https://forum.uipath.com/u/rqu003)\
**Post date:** [January 10, 2018, 5:15pm UTC](https://forum.uipath.com/t/project-level-variable/12372/4 "2018-01-10T17:15:21Z")

</div>

We use a config file, in txt or excel sheet to store all global variables across xaml

---

<div class="post-metadata">

**Author:** ![Cosin](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/cosin/32/197199_2.png) [@Cosin](https://forum.uipath.com/u/Cosin)\
**Post date:** [January 11, 2018, 8:02pm UTC](https://forum.uipath.com/t/project-level-variable/12372/5 "2018-01-11T20:02:08Z")

</div>

> [@Sajal\_Chakraborty](#):
>
> I did go through this topic and even though it looks same, but it’s not.

We agree with the need, but how is it different?

---

<div class="post-metadata">

**Author:** ![badita](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/badita/32/6_2.png) [@badita](https://forum.uipath.com/u/badita)\
**Post date:** [January 12, 2018, 1:34am UTC](https://forum.uipath.com/t/project-level-variable/12372/6 "2018-01-12T01:34:07Z")

</div>

There are two set of features concerning

1. **Global Variables**

- [Global Variables/Global Assets](https://forum.uipath.com/t/global-variables-global-assets/2157)
- [Global Variable](https://forum.uipath.com/t/global-variable/1735)

and

1. **Complex Data Types**

- [Entity - Efficiently reduce number of arguments](https://forum.uipath.com/t/entity-efficiently-reduce-number-of-arguments/894)
- [Option to create complex datatypes](https://forum.uipath.com/t/option-to-create-complex-datatypes/2904)

I tend to believe that solving **2.** will reduce the need for **1.** as you’ll be able to pass multiple values using only one argument.

Though useful in some cases I won’t go for Global Variables. I think that they will encourage wrong workflow design patterns where unexperienced users will prefer to use global variables instead of passing input arguments, which, in the long run will end up in spaghetti workflows, which are difficult to maintain.

---

<div class="post-metadata">

**Author:** ![harshvchawla](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/harshvchawla/32/365729_2.png) [@harshvchawla](https://forum.uipath.com/u/harshvchawla)\
**Post date:** [March 8, 2019, 6:11am UTC](https://forum.uipath.com/t/project-level-variable/12372/7 "2019-03-08T06:11:15Z")

</div>

[https://forum.uipath.com/t/use-of-global-variable/29815](https://forum.uipath.com/t/use-of-global-variable/29815)

> [@Project Level Variable](https://forum.uipath.com/t/project-level-variable/12372):
>
> Currently, the highest level of variable scope is Sequence within a given Xaml. However, an implementation solution consists of multiple xamls, which constitute a project and then a project forms a package which gets deployed to a robot for execution. So, there should be option to define variables at a Project level, which should be available across all xamls which are part of the project. In the absence of this features, implementation teams are required to resort to a lot of workarounds, which…

> [@Global Variable with access across workflows in project without invoking explicitly](https://forum.uipath.com/t/global-variable-with-access-across-workflows-in-project-without-invoking-explicitly/31996):
>
> Have a global vriable for a project level ( currently only file level). It has to created in Main.xaml but accessible without invoking in each workflow explicitly.

are all same, guys please vote one another (to bump this) as its a good feature

@badita this is different from the “using argument passing for a global variable” because that is just passing around the variable copy which is exactly what this idea wants to avoid

---

<div class="post-metadata">

**Author:** ![keerthivasan1](https://avatars.discourse-cdn.com/v4/letter/k/ac91a4/32.png) [@keerthivasan1](https://forum.uipath.com/u/keerthivasan1)\
**Post date:** [March 29, 2019, 8:13pm UTC](https://forum.uipath.com/t/project-level-variable/12372/8 "2019-03-29T20:13:42Z")

</div>

Hi All,  
Can some one help me on creating a global variable where I can use then across my sequence  
For Eg: In my FlowChart I have two Sequence, I am storing a value in a variable in Seq 1 and want to pass the variable in seq2 how i can achieve this.

 ![image](https://global.discourse-cdn.com/uipath/original/3X/5/3/538e80ff7c66ffa332ea0e16cd329109ca85b8d7.png)

---

<div class="post-metadata">

**Author:** ![upen.bendre](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/upen.bendre/32/75245_2.png) [@upen.bendre](https://forum.uipath.com/u/upen.bendre)\
**Post date:** [January 10, 2018, 1:03pm UTC](https://forum.uipath.com/t/project-level-variable/12372/9 "2018-01-10T13:03:34Z")

</div>

In the RE\_Framework, today, the information from Config has to be passed to the “Process.xaml” through arguments. It would be great if some component was built, in the framework to make Config directly accessible throughout the projects in the form of a ‘singleton’ like object that J2EE frameworks use very often.  
You could also use it to store things like UiBrowser objects, so in cases where the Attach Browser is not working, and the UiBrowser has to be passed on to it, we can directly use the project level object from anywhere in the project, as against passing the UiBrowser.

---

<div class="post-metadata">

**Author:** ![andrzej.kniola](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/andrzej.kniola/32/8835_2.png) [@andrzej.kniola](https://forum.uipath.com/u/andrzej.kniola)\
**Post date:** [January 10, 2018, 1:10pm UTC](https://forum.uipath.com/t/project-level-variable/12372/10 "2018-01-10T13:10:47Z")

</div>

Possible duplicate of topic below (and related):

> [@Global Variable](https://forum.uipath.com/t/global-variable/1735):
>
> How to create global variable and use through the multiple workflows?

Seems to be planned for 2017.2… which probably should now be changed to 2018.1 as there will be no 2017.2 AFAIK.

---

<div class="post-metadata">

**Author:** ![Cosin](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/cosin/32/197199_2.png) [@Cosin](https://forum.uipath.com/u/Cosin)\
**Post date:** [January 10, 2018, 4:19pm UTC](https://forum.uipath.com/t/project-level-variable/12372/11 "2018-01-10T16:19:05Z")

</div>

To me it sounds similar to the Entity feature which is planned for 18.2

> [@Entity - Efficiently reduce number of arguments](https://forum.uipath.com/t/entity-efficiently-reduce-number-of-arguments/894):
>
> Hi All, I’m looking for efficient ways of reducing number of In/Out arguments for some workflows. Especially in data extraction/input type invokes it gets unwieldy really fast (think multiple 20+ arguments of different types in several workflows). First option would be a Dictionary\<string, object\>, but it’s prone to typo’s (string based keys) and casting in [VB.Net](http://VB.Net) is IMHO ugly (at least compared to C#), which gets in the way of quick and efficient design-time experience. Secondly there are DT…

---

<div class="post-metadata">

**Author:** ![andrzej.kniola](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/andrzej.kniola/32/8835_2.png) [@andrzej.kniola](https://forum.uipath.com/u/andrzej.kniola)\
**Post date:** [January 10, 2018, 4:39pm UTC](https://forum.uipath.com/t/project-level-variable/12372/12 "2018-01-10T16:39:18Z")

</div>

Please read all below with “as far as I understand” prefixing 🙂

I’d disagree.

To me Entity is about creating custom objects (basically DTO’s) inside UiStudio. These are not global in scope (as they’re still normal objects that need to be passed as arguments), nor are they Singleton in nature (as that would prohibit using any type of collection of them, greatly limiting use).

This however serves a different need of having a centralized storage for configuration, acting more as the classic app.config (but filled on runtime).

I wouldn’t completely agree with proposed use case for UiBrowser object (singletons always are debatable I guess), hence the “possible” in the “possible duplicate” link in my previous post, albeit that one would fill both this one and the global config needs.

Feel free to disagree of course (especially OP - let’s not hijack completely 😉 ).

---

<div class="post-metadata">

**Author:** ![upen.bendre](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/upen.bendre/32/75245_2.png) [@upen.bendre](https://forum.uipath.com/u/upen.bendre)\
**Post date:** [January 10, 2018, 5:24pm UTC](https://forum.uipath.com/t/project-level-variable/12372/13 "2018-01-10T17:24:32Z")

</div>

So if we had two different things

1. An application correct holding bean like objects
2. app config or app properties location/object/dictionary/map

That would do.

---

<div class="post-metadata">

**Author:** ![upen.bendre](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/upen.bendre/32/75245_2.png) [@upen.bendre](https://forum.uipath.com/u/upen.bendre)\
**Post date:** [January 10, 2018, 5:25pm UTC](https://forum.uipath.com/t/project-level-variable/12372/14 "2018-01-10T17:25:16Z")

</div>

There was a typo. I meant “application context” not ‘application correct’

---

<div class="post-metadata">

**Author:** ![Cosin](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/cosin/32/197199_2.png) [@Cosin](https://forum.uipath.com/u/Cosin)\
**Post date:** [January 10, 2018, 6:13pm UTC](https://forum.uipath.com/t/project-level-variable/12372/15 "2018-01-10T18:13:36Z")

</div>

I see. I’m not very familiar with javabeans but if my understanding is correct, Upen you’d want a combination of Entity and Global vars.

If so, when both of these are implemented you could use them for configuration purposes: store all the config settings in an entity and make that entity global.

---

<div class="post-metadata">

**Author:** ![upen.bendre](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/upen.bendre/32/75245_2.png) [@upen.bendre](https://forum.uipath.com/u/upen.bendre)\
**Post date:** [January 14, 2018, 5:56am UTC](https://forum.uipath.com/t/project-level-variable/12372/16 "2018-01-14T05:56:24Z")

</div>

Yes. thats correct.

---

<div class="post-metadata">

**Author:** ![badita](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/badita/32/6_2.png) [@badita](https://forum.uipath.com/u/badita)\
**Post date:** [March 1, 2018, 2:17pm UTC](https://forum.uipath.com/t/project-level-variable/12372/17 "2018-03-01T14:17:54Z")

</div>

Indeed seems to be related with Global/Project Variable.

For now we’ll go after Entity: [Project Level Variable - #6 by badita](https://forum.uipath.com/t/project-level-variable/12372/6)

I’ll close it as duplicate.

---

<div class="post-metadata">

**Author:** ![Manoj\_Batra](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/manoj_batra/32/524050_2.png) [@Manoj\_Batra](https://forum.uipath.com/u/Manoj_Batra)\
**Post date:** [October 23, 2019, 11:03am UTC](https://forum.uipath.com/t/project-level-variable/12372/18 "2019-10-23T11:03:20Z")

</div>

Hi,

you can use [this](https://marketplace.uipath.com/listings/570) component to set your variables globally. it follows the pattern declare once and use anywhere in the project. This component supports all data types.

Thanks,  
Manoj Batra

---

<div class="post-metadata">

**Author:** ![Abdulrahman\_Hashem](https://avatars.discourse-cdn.com/v4/letter/a/f07891/32.png) [@Abdulrahman\_Hashem](https://forum.uipath.com/u/Abdulrahman_Hashem)\
**Post date:** [July 15, 2020, 11:22am UTC](https://forum.uipath.com/t/project-level-variable/12372/19 "2020-07-15T11:22:26Z")

</div>

Thank you so much.  
This is the best workaround to handle global variables across the same project activities.

---

<div class="post-metadata">

**Author:** ![mwerner](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/mwerner/32/198153_2.png) [@mwerner](https://forum.uipath.com/u/mwerner)\
**Post date:** [January 22, 2021, 3:08pm UTC](https://forum.uipath.com/t/project-level-variable/12372/20 "2021-01-22T15:08:10Z")

</div>

For global variables you can use the **Velocistar Global Variables Activities** now!

> **[Velocistar GlobalVariables Activites - RPA Component | UiPath Marketplace](https://marketplace.uipath.com/listings/velocistar-globalvariables-activites)**
>
> Share globally any type of variable through your Robot's workflows without passing it through arguments. Ideal to use for configuration like Orchestrator-asse...

[Next page](https://forum.uipath.com/t/project-level-variable/12372.md?page=2)
