17-12-20 02:54 PM
Is there a way in which we can store and update the Data Items present in BP across sessions? its more like an environment variable but to which we can make updates too.
This will help us in storing variables across sessions like flags, data which requires the value from the other session run that currently has to be stored in externally like in excel, notepads, etc.
------------------------------
Manish Rawat
Project Manager
Mercer
New Delhi
------------------------------
19-12-20 01:11 PM
Hello Manish,
I'm not very technical, so the two things I can think of are:
19-12-20 08:41 PM
Hi Manish,
In order to make changes to the variables across different sessions, you need to define those variables as "Session Variables". The session variables can be updated during the runtime of the processes for different sessions. You can view the option of making the variables as "Session variables" by setting the exposure of the variable as "Session".
Hope it answers your query !!
21-12-20 01:57 PM
Hi Ritansh,
"Session variables" will work only till the session is active and is mainly used for controllers to make updates on the fly. For example if we define end time as session variable it can be changed by the controller while the process is running, Also they cannot be shared across sessions but are specific to each session run per BOT.
Here the Idea is to have a variable that stores its value even after the session of first BOT got over. Just as a simple example, steps below:
1. Flag variable Login required was set as "true", now BOT1 checks the status is "true" during its run and then, does the login task and then other tasks and then sets this value to "false".
2. BOT2 checks the status is now "false, so it skips the login task and does the other task only.
And the application could be many more. Its more like of creating a variable in BluePrism database which is shared(both read and write) by all the BOTs running the process in scope.
21-12-20 02:10 PM
Hi Mitsuko,
You are correct about the two approaches, they are infact the ones that we follow as of now but they have their implications:
1. Storing in excel file, text file etc - Its not implicit to blue prism and needs to be stored at a shared drive location which will be accessible to bot, so the chances of failure increases and environmental locking needs to be applied explicitly.
2. Storing in work queue - Unique item key needs to be created, and every time a BOT has to access that even if that's for reading purpose they have to get next item for the details, which will have their delays in case of Multi-BOT scenarios.
The data item exposure I am talking about gives us the advantage of the two exposure already present:
1. Environment - Read access to all BOTs but no write access, value persistent in BP after run
2. Statistic - Write access to all BOTs but no read access, value persistent in BP after run.
So if we can have a exposure mode which has the below capabilities:
Read and Write access to all BOTs and value present in BP after BOT run.
Another thing to notice is that we need to have an explicit action in order if anyone/any BOT wants to delete that variable when it is not needed so that it won't be using the BP database space.
29-12-20 03:23 PM
Hi Manish,
Your thread makes for an interesting read, thanks for posting it! A few things from me:
Finally I had a question for you about this as a potential feature.
Imagining a world where this new feature/capability existed, could this not introduce complexity in troubleshooting if the behaviour of a given process is altered by other processes that may be running simultaneously? If several robots can alter a "shared variable" at any time couldn't it become quite difficult to track down which robot had set a shared value incorrectly and why? Obviously a good audit would help mitigate this, but I wondered if you had any thoughts on what impact this could have on troubleshooting in general.
Hope the additional information helps!
Regards,
Rob
04-01-21 07:41 PM
05-01-21 09:48 AM
05-01-21 11:30 AM
07-01-21 08:26 AM
Hi Robert,
Thanks for the response. Please find my comments below:
Actually, It is more about the feature of having sharing variables across sessions and BOTs even after the session has been stopped.
The scenario mentioned earlier was more or less about setting a flag, but the same can be easily extended to reading and storing other type of data Items according to scenarios, just a few as I can thought of:
We can also think it as a output of one BOT which will become input to other BOTs running in sequential manner or in concurrent manner with the proper usage of environment locking.
I agree to the point that if we have a "shared variable" then there could be challenges in troubleshooting if proper coding standards are not followed as per its functionality.
But that is applicable to any type of "shared data".
Consider the current situation where in case we want to store some data that should accessible across sessions or can become output of another process, we have to store it on the shared drive in an excel, notepad, SharePoint etc. There also we have to apply proper environment locking before making updates.
We have to apply the same concept while making updates to the "shared variable", but the advantage here will be that the data will be stored in Blue Prism only, which can be accessed directly by BOTs without the overhead/failure/latency of using a shared drive and other applications like excel, notepad.
More importantly we have to have a feature to delete such kind of variable/empty memory explicitly through BP action in process or by controller once we know that it is no longer needed to make sure BP database optimization.
Hope this would be helpful.
I had submitted the idea regarding the same too:
https://community.blueprism.com//viewidea/?IdeationKey=c1f9b554-73c0-4091-a18e-fe0b2c28afad