Chapter - 15 Project Management

31 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€95.03
List Price:  €133.05
You save:  €38.01
£79.15
List Price:  £110.82
You save:  £31.66
CA$139.67
List Price:  CA$195.55
You save:  CA$55.87
A$153.55
List Price:  A$214.98
You save:  A$61.42
S$134.39
List Price:  S$188.16
You save:  S$53.76
HK$778.22
List Price:  HK$1,089.54
You save:  HK$311.32
CHF 88.36
List Price:  CHF 123.71
You save:  CHF 35.34
NOK kr1,105.21
List Price:  NOK kr1,547.34
You save:  NOK kr442.12
DKK kr708.87
List Price:  DKK kr992.45
You save:  DKK kr283.57
NZ$170.45
List Price:  NZ$238.64
You save:  NZ$68.18
د.إ367.26
List Price:  د.إ514.18
You save:  د.إ146.92
৳11,959.01
List Price:  ৳16,743.10
You save:  ৳4,784.08
₹8,452.40
List Price:  ₹11,833.70
You save:  ₹3,381.29
RM446.45
List Price:  RM625.05
You save:  RM178.60
₦168,042.19
List Price:  ₦235,265.79
You save:  ₦67,223.60
₨27,819.88
List Price:  ₨38,948.94
You save:  ₨11,129.06
฿3,466.55
List Price:  ฿4,853.31
You save:  ฿1,386.76
₺3,454.83
List Price:  ₺4,836.90
You save:  ₺1,382.07
B$580.99
List Price:  B$813.41
You save:  B$232.42
R1,812.36
List Price:  R2,537.39
You save:  R725.02
Лв185.85
List Price:  Лв260.20
You save:  Лв74.35
₩140,106.88
List Price:  ₩196,155.24
You save:  ₩56,048.35
₪373.41
List Price:  ₪522.79
You save:  ₪149.38
₱5,905.80
List Price:  ₱8,268.36
You save:  ₱2,362.56
¥15,438.71
List Price:  ¥21,614.81
You save:  ¥6,176.10
MX$2,034.25
List Price:  MX$2,848.03
You save:  MX$813.78
QR364.93
List Price:  QR510.92
You save:  QR145.98
P1,367.12
List Price:  P1,914.02
You save:  P546.90
KSh12,923.70
List Price:  KSh18,093.70
You save:  KSh5,170
E£4,964.56
List Price:  E£6,950.58
You save:  E£1,986.02
ብር12,476.97
List Price:  ብር17,468.25
You save:  ብር4,991.28
Kz91,223.61
List Price:  Kz127,716.70
You save:  Kz36,493.09
CLP$97,372.26
List Price:  CLP$136,325.06
You save:  CLP$38,952.80
CN¥724.09
List Price:  CN¥1,013.76
You save:  CN¥289.66
RD$6,035.83
List Price:  RD$8,450.41
You save:  RD$2,414.57
DA13,357.64
List Price:  DA18,701.23
You save:  DA5,343.59
FJ$226.99
List Price:  FJ$317.80
You save:  FJ$90.80
Q772.55
List Price:  Q1,081.60
You save:  Q309.05
GY$20,937.04
List Price:  GY$29,312.70
You save:  GY$8,375.65
ISK kr13,828.61
List Price:  ISK kr19,360.61
You save:  ISK kr5,532
DH999.72
List Price:  DH1,399.66
You save:  DH399.93
L1,820.82
List Price:  L2,549.22
You save:  L728.40
ден5,848.08
List Price:  ден8,187.54
You save:  ден2,339.46
MOP$802.33
List Price:  MOP$1,123.29
You save:  MOP$320.96
N$1,815.10
List Price:  N$2,541.22
You save:  N$726.11
C$3,682.57
List Price:  C$5,155.75
You save:  C$1,473.17
रु13,507.81
List Price:  रु18,911.48
You save:  रु5,403.66
S/379.77
List Price:  S/531.69
You save:  S/151.92
K402.86
List Price:  K564.02
You save:  K161.16
SAR375.38
List Price:  SAR525.55
You save:  SAR150.16
ZK2,769.51
List Price:  ZK3,877.43
You save:  ZK1,107.91
L472.94
List Price:  L662.13
You save:  L189.19
Kč2,407.85
List Price:  Kč3,371.09
You save:  Kč963.24
Ft39,078.98
List Price:  Ft54,712.13
You save:  Ft15,633.15
SEK kr1,102.90
List Price:  SEK kr1,544.10
You save:  SEK kr441.20
ARS$100,263.16
List Price:  ARS$140,372.43
You save:  ARS$40,109.27
Bs693
List Price:  Bs970.23
You save:  Bs277.22
COP$441,313.30
List Price:  COP$617,856.28
You save:  COP$176,542.97
₡50,820.06
List Price:  ₡71,150.12
You save:  ₡20,330.05
L2,528.86
List Price:  L3,540.51
You save:  L1,011.64
₲783,733.33
List Price:  ₲1,097,258.01
You save:  ₲313,524.68
$U4,278.05
List Price:  $U5,989.44
You save:  $U1,711.39
zł413.19
List Price:  zł578.49
You save:  zł165.29
Already have an account? Log In

Transcript

Chapter 14 project management. In this chapter, we will be discussing what are the benefits of having a management? What are the best practices a developer must follow to make his bot more robust and reliable. We are going to talk about invoke workflow activity. And we're also going to discuss how to provision a robot using UiPath. orchestrator.

Why management along with an insight on technical aspects of a project, it is of utmost importance to have a clear picture in terms of requirements and design structure being in place. set expectations for all stakeholders and users involved in the to be automated business process and the integration of systems to be interacted by the RPA technology. RPA developers tend to resist getting involved in such activities, but even their slight involvement and interest in making initial progress decisions can go a long way. Tons of rework and extraneous effort could be saved if proper planning and quality checks are invested in place before starting off with actual bot implementation. Developing a workflow and making a project out of it are to separate tasks. Often, it is believed that as soon as a workflow is generated, the task is accomplished and signed off.

But that's a far stressed assumption from reality. The workflow must be reliable enough for businesses to depend on them efficient enough to save time, effort, and up and running costs in the long run, maintainable for proper error handling and recovery and scalable to extend functionalities for future enhancements. Best practices, there are a lot of best practices that must be followed to create a competent RPA robot. Some of these are what we're going to discuss in here. First, set the design of your workflow prior prior to building actual bot. We have discussed flowchart and sequence diagram layouts to implement business logic in UiPath.

Each have their pros and cons and both must be thoroughly evaluated. This recommendation is not limited to the main workflow, but also to the sub workflow level and logical implementations within them. decisions on the designing must be made keeping in mind the comprehensibility of other users or developers who will be looking at the program in near future and also a proper naming convention for activities to be used within the workflow. This hugely reduces the effort of debugging a problem by making the workflow readable. Second, break the complex business problem into simpler logical implementations. There are cases when implementing workflows and adding more and more capabilities like Exception Handling recovery mechanisms.

Enhance features, particular use cases etc. Makes a workflow so complex that it becomes hard to grasp and maintain dividing it into smaller parts and connecting these parts into logical sequence strengthens the maintainability and enhances reusability of thoughts. We'll be discussing the major activity in this regard, which is the invoke workflow activity in a few minutes. Third, thorough Exception Handling no matter how hard we try, there are always events when it comes to unexpected errors during workflow execution. A detailed and comprehensive implementation of error cases and corresponding recoveries can make the boss reliable for a company and reduce the effort in non productive work to a great extent for keep the system clean. One of the major reasons why a workflow fails Because of the interference of an already running application with the target application, it's imperative to open applications only when needed, and close them as soon as the operation on them is finished.

Any extra time an application remains active can Hawk system resources, making it less responsive and prone to inefficiency. Fifth, version control and periodic backup. During development, there are always ad hoc thoughts, use cases enhancements and other you know, ad hoc changes that a developer gets tempted to implement. It's certainly a good practice to follow as the final goal is to make the bot as capable and efficient as possible. However, we tend to work directly on a working solution. And sometimes, the logical implementations of these enhancements get too complicated, that it becomes impossible to rollback these changes.

It's a highly recommended practice to periodically have backups for the workflows and save each and every working solution separately. This can avoid huge reworks. And in some cases, development of incapable mediocre products. invoke workflow activity. invoke workflow activity keeps the route layout of the developed workflow neat and tidy by running smaller, independent workflows to extract a sequence and make a separate workflow out of it. It's a pretty easy process.

Let's first take an example. So say we have a notepad document open because it becomes easier for us to you know, work on Notepad. So let's start off with the basic recording. We're gonna type Hello. Empty this space I center Click on format. You don't want to use any anchor font.

Right? Choose Verdana font, choose regular, and two sizes 22. and hit OK. And then back. Save and Exit. So, oops. All right. So let's say we have this workflow ready, right?

And we, oh, we could have write some other stuff as well written, like, world or something, but that's okay. So, what we're gonna do is to see, this is like a decent sized workflow. But there could have been a case when you know, you would have made a very complex workflow with a lot of activities probably put in a sequence or could be flowchart as well. Doesn't matter. But what matters is that you may want to break down This vague workflow into smaller chunks, so that it becomes more easier to you know, maintain and manage. So let's say this is the typing activity, right, the Hello.

And all this is the formatting part. So say we want to keep the formatting parts separate in a separate diagram. So what we can do is we select all those activities that are specific to the font to the formatting options, right? simply right click. Okay, so that didn't work because I should have probably put that in the sequence first. So formatting operations, right, something like that.

And now I got it. Okay, so we've got the formatting options in a separate work sequence. Okay? Now, what we can do is simply right click here, right and choose this options, extractors workflow. Once you do that, it asks you what's going to be the new diagram name, right. So, formatting underscore note that right?

That should be okay. We create it. And you see, automatically a new sequence of workflow is generated in here. And this is the root level workflow, right where we had all the activities initially. And that is, what happened is with that activity with that operation that we just performed, it instead of all the activities listed down here, it gave us an invoke workflow activity. We Which is gonna, you know, redirect our execution from the main workflow to the sub workflow, which is named as the formatting notepad and all the activities that we just had say were added in here, right.

So, this way you can divide your complex program into smaller pieces, which makes it much much much easier to maintain and manage right. Now, other than this, other than this, then this feature, invoke workflow activity also provides a way through which we can pass data from one workflow to another as arguments. So if you remember initially, we talked about the variables using the variables pane we have arguments as well, right? So we can pass on the values as arguments from one workflow to another and vice versa. So let's say let's take a hypothetical example, where we need to enter some login credentials or something like that to the sub workflow, which is accessing the login screen right now, we're just taking a hypothetical example here, right? So something like this.

We don't have any activities. Right? And in here, we can have either import arguments because we haven't added any arguments yet or edit arguments to add ones. Pretty much the same thing as if now and it is mostly you know, if you have to edit some arguments, which are already there. So in the invoke workflow activity, actually, how about this first, let's say we have variables, which are, you know, like, just to make sure that you know, the IDS we have, like, like each and every variable name is Going to denote where this variable is coming from. So I'm leaving this as root ID, which is going to have a value of admin.

It's a string variable, right, and then we also have root underscore password. Okay, and invoke workflow activity, what we're going to do is we're going to import the arguments how, by creating these arguments first is going to be sub underscore ID, which is going to be used in the next and in the sub workflow. And by direction in, we mean that this is going to be an input to this workflow. We are going to provide this value as an input to this workflow to this invoke activity, so that it gets passed on to the next one, right. So the direction could be in out or out, which could be both. So out means like something is coming from the workflow back to the main workflow.

Right? Pretty simple, easy to understand. and the value of this sub is I'm gonna give as root ID, right? Similarly, we will have sub bass, which is gonna have root bass value. That makes sense. Yes.

Pretty, okay. All right. Now, we haven't given those values, we have only given these values these default values in the root workflow itself, we haven't touched on the other side yet. So now in the sub workflow, right, we have to have these arguments. Right, and they are very case sensitive. So if you use small like, in your main workflow if you use the like smile, case letters lowercase letters, then you have to use exactly the same convention naming convention, with the underscore and everything.

So it's gonna be sub underscore ID, right? And sub underscore password. So the directions still remains the same because you all you have to remember is that's how I even recall this, that you know, the direction once it has been set, and that needs to be set from the place where the invoke workflow is taking place. Right? Once that logic is set, that's how the direction the names and everything the die, everything needs to be intact. So it's always gonna be in, in in, in the indirection, this argument, right?

So now we have these arguments in here. And suppose we want to print the ID and the password right? So we can say ID is plus sub underscore ID, something like that. Okay, did I miss something? No, that's all good. And password is.

Okay. You just checking right? And now it's working. It seems to be okay from the compensation standpoint as of now, right. Another thing that we let's say want to is, we want to have another argument. arguments are also called parameters by the way.

So we want to have another argument, that's going to be an out. That's going to be in the out direction, which means we want to you know, after after doing some operations, we want to check whether the login was actually successful or not, and the corresponding value will be passed to the main Route workflow, right? So let's create a, you know, an argument, which is going to be sub underscore check, this is going to be our direction. And we cannot assign a default value in here because the arguments don't support that. So what we're going to do is we're going to use an assign activity in here. Right?

And in here, subject equals. Yes. I mean, you could have given anything in here, right? And I hope you're following up with me on this right. So we got the ID and the password data from the main workflow, and we are sending a subject argument value back to the main workflow, right, we are already printing. So we will get to see whether this worked or not in the when we will be actually executing it.

If there is going to be an issue. We'll see if we can debug it. And then we go back to our unit. invoke workflow activity. We already got the subject as you see. So once you create the arguments, they automatically get added to the workflow as well.

So if you play around and if you are correct, then automatically the synchronization is going to happen between the main workflow and the sub workflow. Okay, let's try Um, well before trying, let's see if we are able to, you know, get How about this, let's put this as root check, because it's always good to have variables in front of us. So, write something like this and in the argument, let's edit the argument. And this is this is our parameter, we want to have the value of root check in here. So whatever the value is regarding the subject, it will be stored in the root check. Okay, and we use the message box activity to see route value, or.

And we can also write this down root check value is and then plus something like this. All right, this looks good. We have the notepad also open. And let's run this and see how it works. Intro down Hello, went to format font, all these all these were pretty straightforward IDs admin. That means in the sub workflow, it is able to get the admin text password is passed again.

So the passing of the argument with the value which is pa SS has been successful. And then route valid route check values. Yes, that means even from the sub workflow back to the main workflow, the data has been passed correctly. Right. So that is how we use arguments to pass values between two different workflows. And this process is really, really important.

Because you, it increases the scalability of the program to a greater extent, right, you can create small modules within your project within a full fledged project and you can, you know, pass on different variable values back and forth. And it also, it's also worth noting that, you know, we get a lot of data integrity through these, you know, through these logical implementations, right? So that's going to be like, if you have a router ID and password and you want to share it with only a few authorized people who have access to certain workflow, then only those people can get that. And vice versa, right. If you want to have some restrictions on some data and values are there are workflows which don't need that data value at all? Right?

Not everybody needs the entire root. Access. Right? That's not always the case. Even in corporates, right. You always have a little Module access.

And from a system standpoint, I'm saying, and that's how, even for the workflows when you're creating it, you should be cautious of the fact you should be meticulously providing, having some provisions in hand to, you know, provide only authorized access to the specific modules of a system or the automation of the business process in hand. That's how it should be. This brings us to the last and the final topic of this lecture. The UiPath orchestrator UiPath orchestrator is the server side application that runs as topmost layer of UiPath. The workflows created by UiPath studio are effectively managed from here. It has the capabilities of scheduling tasks, maintaining logs, queuing of executions, viewing transaction history, etc.

It is generally managed by the business folks after the workflow has been successful. Created and handed off by the developer. The steps to add a completed workflow to UiPath. orchestrator is what we are going to showcase in this demo. So suppose we have this sequence which is going on fine, we already just tested it out, right, the parameters and everything are passing on correctly. Now, we want this to this workflow to be executed by the orchestrator.

So first and foremost, we go to the UiPath orchestrator, which is platform.uipath.com. And if you haven't signed up on that, go there, sign it up and create a tenant. a tenant is actually a terminology which is used pretty often in from systems perspective, perspective, like a server or a dedicated server, where you know, you'd be running your bots to create the tenant and once you log in, you get to this screen and in here, the first and the foremost screen What you get is the robots, right? So you create a robot, right? It's got a key, these are the configuration parameters for the robot. And you have this key and all these names and everything.

So, for this, what you have to do is start the UiPath robot, if you remember that the other application which is provided in the overall UiPath suite of application itself, right, so start the UiPath robot is going to be available in the title bar of your windows and here is the UI. If you go I have some old you know, proxies available here. Doesn't matter, but it's disconnected right now. So go to Settings. Mine is like an extra protective layer from my you know. So we have the machine name in here.

Right, just copy the machine name and put it in the orchestrator, right? Give a very, you know a name that is explanatory enough. So let's say project underscore management, right. And for the domain and user name, because this is the, this is something that is specific to each and every local machine. So to find the domain and the user name, you go to control panel. Right?

Go to user accounts, again, go to user accounts. And on the right, you see like this, US underscore us and then slash and this. This is what the domain name is. So us, last year MBA is mine. Right, and the password of your machine, right? Because it has to access your machine every time locally from the server.

So provide your password in here. And for the trial version development is the time because that's the one that support it. And he just provisioned it right? But before provisioning, just copy the key you copied from here and provision. Now the robot has been just created. Now we go to the UiPath robot as well, we add the robot key, which we just copied.

And for the orchestrator URL, we simply provided as platform.uipath.com. Right here, right? We connect it. It could be anything doesn't matter much. It depends. It tells us like the logging is going to be for the robot for all the executions it's going to do.

It's at which level is it at error level critical levels you want. You don't want any logging to be done, or it's just simple information doesn't matter. Disconnect the robot. And you see it turned green, right? That means it's successfully connected. Right?

So now we can close this. And we go to the environment. So we need to have an environment for a robot to be working. Right? So let's go to the environment and we don't have any environment yet. Right?

So we go and create one moment. And we named this as, let's say, project management underscore dev environment. Right. Could have been anything. It's a dev environment description, we don't need created. Right?

It's saying that this is the one that has been created and there is a robot that is available project underscore management, which is under development, do you want to connect that yes, we want to connect that right. So we update this with the robot that we created. So now, if you go back to your robot, you see that it has been allocated and environment right and it is right it is like green. That means it is successfully connected to the UiPath robot as well, which is downloaded locally in our system. Now We go through processes, right? We don't have any processes as of now, right, and we go to the packages as well, there are a few old projects that I have.

Actually, I may have this as well. What we're gonna do is, I didn't know that we had project management as well. But to make sure that we have the correct package, we always publish this, which is under the setup ribbon of our workflow. We published this and you will get this, you know, a note saying that unit has been successfully published. And we have a package version as well. Right?

You don't need to copy it, it says you can copy but you don't need it. And then what you got to do is you can simply refresh this. And you see a few seconds ago, the project management package is available, which means again, that confirms that we have successfully connected the server with our local machine right now. The packages here we go to the process and we create a new process. Right, the first process is going to need the package name, which is going to be the project management, it's got the package version automatically populated, it's got the environment also, if there were like a few environments like prod environment dev environment or multiple different measurements could have been the case as well, then we would have selected whichever environment we want to run this on. And if you want to provide a description, you can, it's not mandatory and you create the process as well.

So, now you see the process has been created. And once the process is created, pretty much everything is done, right your robot is all ready to be executed. So now, you see that it has been allocated in the environment and the robot is also there, which looks all good status is available to run the your robot ad hoc right just now. You simply go to the jobs right, and you play this or start the Start button and you choose your passion. Right, it's got the robot allocated to it. So it showed it here, you can select this robot and you can start the process.

And the command has been sent. If there could be, there could be a possible issue that you know if the password is not matching or something like that, it might error out as well. But right now it's running. And it's working on the notepad document as well. It's working with the font and doing everything by itself. And IDs admin because of the arguments that we were passing.

And the robot check file is also working fine and successful. You see. So what happened is, we were able to successfully you know, connect the UiPath studio with the orchestrator. We were able to assign an environment and a process and UiPath robot as well, and we were able to dry out the job to see if it works fine or not. Now do schedule this like, you know, say you want to run this process, run this robot on a daily, weekly, monthly basis. And you don't want to do it ad hoc every time.

Right You can simply schedule it from the option in here. You add a schedule, you can name anything to your schedule, right. Project. MGMT underscores Can you write the process name you can select this project management, you can select it whichever time you want, you know, it could have been PST PST or ISD Indian standard time could have been anything. And what's the frequency at which you want to run this you want to run it on a daily basis every day at what particular time and at what particular minute, let's say 11 hour 30 minute, something like that. Every day at 1130 it will run something you know our our weekly basis if you want to do it on a minute basis.

You can run it every minute or choose any value you want. Right. You can create the schedule and automatically that will be available in the What whenever it is executed, it will be available in the jobs option under this panel. Right. So if multiple bots are running in parallel, they are maintained in a queue, which is right here, right in which can be accessed through the system resource which can access the system resources one by one, right. This helps in distributing the workload and parameters such as number of retries, before marking the execution as an error, and that those things can also be set here.

Right, we can add the exceptions, we can make sure that exceptions are captured. And just by looking at it, we can see if this one was exceptionally handy or if there was some exceptional programs successfully like the job we just went through right assets or shared resources across multiple executing paths. They act like central repository to make sure that critical information like logging credentials could be kept safe. For transmission of this data between orchestrator and UiPath studio, we have activities Like get acid. So you can put the assets right here with some information, you know, which is which will be stored at the server side. And in the UiPath studio, you have activities like get asset, right, you can use this activity to get that data and use it in your workflow.

And that's a very secure way of passing data between the orchestrator and the UiPath. Studio. Right. orchestrator also maintains logs, which a user can go and check any time to evaluate system performance throughout the day. It is capable of generating and providing alerts to the concerned users. In case there is any unusual activity, or the workload on a system reaches its threshold.

Furthermore, we may create roles within UiPath orchestrator to provide access privileges and permissions only to relevant users for their direct information cubes. RPA in itself is a huge domain and the capabilities of it needs keeps growing with advancements in technology and needs from the market. The best strategy to stay ahead of game is by staying posted on new features. Get thorough on existing capabilities and practice. Happy automating

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.