I'd like to pick the community's mind on the topic of Automation Reusability. It's clear that the automations we'll be building will have similar requirements: Sending an email, manipulating files, reading from a csv, or an excel file, etc. The capabilities and connectors are there, and the automations that solve specific needs will be rebuilt over and over again.
Therefore my question is: what's the prescriptive way to build automations that can be reused?
Pega has the rulesets, IBM BPM has toolkits, and programming languages have libraries in order to reuse boilerplate code. How can I do this with Pega RPA?
This thread makes me think that is an issue many in the community are facing, but I can't seem to find a definitve answer.
If you are re-using one automation, then this is not really a practical solution, however if you have a library of common things, then this may work for you. A solution can reference multiple projects. One of those projects could easily be a library project where you have some common things. You could reference that project from a central location and then all of your solutions could have access to it. If you have an automation that won't really change, then you could simply import it into any project you want to use it in. You just want to make sure that it contains all of the components or variables or anything inside it to limit the things you need to import.
To use an existing project in your solution, you simply right-click on your solution and select "Add Existing Project". This will not create a copy of the project, but merely a reference to it. To import an automation (or adapter or global container, etc...), right-click on a Project or folder, and select "Add existing project item". This will create a copy of that item and add it to your project.
Thank you @tsasnett. I am thinking of having a library of common things. Say that the company I work in has a team of Pega RPA devs, that work in different projects at different customers. As we deliver more projects we come up with a set of common use cases that we don't want to be building over and over again, it would speed up time dev time if we can pull that library and use it in the project.
I believe that the assets within a project/solution that is meant to be reused can be checked-in into a central repository (Git) and the next developer needing that common functionality can just check it out, and reference it from the actual solution to be delivered. Is my understanding correct?
If you create an automation, then there is nothing preventing you from storing that wherever you like and then re-using it in whatever project you need to. The only consideration you need to make with adding an existing automation (or adapter, global container, etc...), is that it will retain its original ID. You can't have multiple items in a solution with the same ID, but that is easy to change in the os file before you import it.