UiPath Advanced REFramework - Everything Explained | Jan Langdeel Pederse And Anders Jensen | Skillshare

Playback Speed

  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

UiPath Advanced REFramework - Everything Explained

teacher avatar Jan Langdeel Pederse And Anders Jensen

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

57 Lessons (3h 8m)
    • 1. Introduction to the Course

    • 2. Case Presentation

    • 3. Connect to Orchestrator

    • 4. Credentials

    • 5. REFramework Overview

    • 6. The Config File

    • 7. Introduction to the Dispatcher/Performer Model

    • 8. Setting up the Dispatcher

    • 9. Coding the Dispatcher

    • 10. Running the Dispatcher and Adding Data to the Queue

    • 11. Introduction to the Performer

    • 12. Overview of the Initialization State

    • 13. Intro to the Initialization Deep Dive

    • 14. The Try/Catch in the Entry Block

    • 15. Initial Settings

    • 16. Collapse Activities for a Better Overview

    • 17. Load the Config File

    • 18. Load the Config File - Part 2

    • 19. Load Orchestrator Assets

    • 20. Get Application Credentials

    • 21. The Catch of the GetAppCredentials Workflow

    • 22. Set The Orchestrator Queue Name

    • 23. Close Down All Applications

    • 24. Add Log Fields

    • 25. Recap

    • 26. Open All Applications

    • 27. Transitions from Initialization

    • 28. Summary

    • 29. Overview

    • 30. Transitions and the Check Stop Signal Activity

    • 31. Get Data from the Queue

    • 32. Summary

    • 33. Introduction to the Process Transaction State

    • 34. Create a Calculation Workflow

    • 35. Overview and Transitions

    • 36. The Process Workflow - Intro

    • 37. The Process Workflow

    • 38. Improvement to the Process Workflow

    • 39. Exceptions

    • 40. Set Transaction Status

    • 41. Set Transaction Status 2 - Retry Current Transaction

    • 42. Set Transaction Status 3 - Close Applications

    • 43. RetryNumber and TransactionNumber

    • 44. Log the Result in the Excel Sheet

    • 45. Invoke Status Workflow

    • 46. Introduction to the End Process State

    • 47. Overview

    • 48. Close Applications

    • 49. Improve the Close Applications Workflow

    • 50. Create the Workflow to Upload the Excel Sheet

    • 51. Invoke the Upload Workflow

    • 52. Run the Dispatcher

    • 53. Run the Performer in Debug Mode

    • 54. Run the Performer in Run Mode

    • 55. Look at the Results

    • 56. Summary and Key Takeaways

    • 57. Join our LinkedIn Group

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels
  • Beg/Int level
  • Int/Adv level

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.





About This Class

Note: This course is for candidates having +6 months of working experience in developing RPA solutions.

Robotics Process Automation (RPA) is the talk of the town in the business world these days – and with a good reason. RPA is revolutionizing the way we work by removing the boring and repetitive work. This gives the employees time to be creative and do more interesting work.

At the front of this revolution is UiPath, which is widely acknowledged as the leading RPA software vendor. People with UiPath skills are in high demand.

In this course you will learn everything about the UiPath REFramework including ALL states, settings, and properties. The course is based on a case, which will be completely solved step-by-step. It will be possible (and recommended) to live code in UiPath alongside the instructor. The entire code is available for download.

By the end of the course you will be able to:

  • Implement all your business processes in the UiPath REFramework

  • Master all settings and properties in the UiPath REFramework

  • Set up Orchestrator

  • Make robots ready for enterprise

  • Work with all states in the UiPath REFramework in the optimal way

  • Fully understand the purpose of the transitions between the states

  • Handle credentials in a secure way

  • Do extensive logging

  • Handle errors with Try/Catch

  • Explain and use the Dispatcher/Performer Model

  • Scale your robots to multiple machines

  • Take advantage of the additional tips and tricks of the course

  • Get access to our LinkedIn Group for UiPath Professionals, where we will answer all questions regarding the course

Why should you take this course: This is the most extensive and advanced UiPath course on the market and it will dramatically improve your UiPath job chances in Europe.

Join our LinkedIn group: Search for UiPath RPA Developers on LinkedIn.

Meet Your Teacher

Hello, I'm Jan Langdeel.

See full profile

Class Ratings

Expectations Met?
  • Exceeded!
  • Yes
  • Somewhat
  • Not really
Reviews Archive

In October 2018, we updated our review system to improve the way we collect feedback. Below are the reviews written before that update.

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.


1. Introduction to the Course: Hai Yen Langdon here you're welcome to the your path re framework. Everything explained course. The point of this course is not for you to remember everything but to make you think like a true your path developer. By the end of this course, you will be an expert in the Europe path, robotics and surprise framework. You will have explored fun, interactive and highly effective lessons from two Best selling your Apart and Stratus and you will be able to design and implement the same framework as used by professional RP eight developers. Their foundation off the course is a simple business use case which will take us around all aspects off the Europol three framework step by step. 2. Case Presentation: And now let me introduce the case that will be working with for the rest of this course A. So you can see it's ah, really simple case, but a on the other hand, it's wide enough so that we will go through all the assets off the reef framework. Let me get out into the case. The objectives are read data from to several columns containing integrates in the associate in the data input. Full summarizing values from the two columns and write the result in the result called Not the Stairs Off Vegetation in the States come look into one drive and upload the excessive with the updated data. There are also some requirements that we need to save into account. When doing this case, you must use an extra que credentials must be stored in your path. Orchestrator assets. You must use the calculator to perform calculations, and you have to use the bottles. Finally, make some good exception handling 3. Connect to Orchestrator: in this lesson, I would show you how to connect your your path studio to the your path, Austria, and give you an introduction to the concept off machines, robots and environments. As you can see here, I haven't open instance off the European studio. But if I go down here and open the your past assistant, I can see down here that I have a staves off as offline. Meaning that I'm not connected to the orchestra can therefore not use any off the functionality off the orchestrator to collect. I open browser and I go to platform, don't you? About Darko here. You looking using your credentials have in mind start in credentials military air and then you choose the default sues or whatever service you you want to use. And then I'm taking to the front page off the your path. Austria to connect. I started by creating my computer as a machine in Australia. Goes with that and use the machines. Agreed. And I give it a name off left up. My machine is now created. I didn't go to robots press ahead and usually filling Groper and give it a name. I just call it but one. I had the studio type Children and for the domain and user name. It is very important that I used the correct Totally. So to be sure, I have the right one. You openly come in front, impressed Who am I? And as you can see, the domain is quite complicated. So I copied it to you an incident and press great. I didn't go to environments. Environments are a concept in orchestrator where you can pool your robot together so that you can easily scale up and down on your processes if needed. I present give it a name off of course, environment that press great. And then you can choose which robots should be in this environment and we will have one such a sad one. Press up did. Now I have everything set up in the orchestra and now I need to do some things in the your path assistants. So go to orchestrated settings and I need to fill out the machine name or short of oil and machine key. The orchestra euro l is a little difficult to find, but it is part off this you're ill. It's this part, including the default I copy that and interview the machine key can be found on the machines and by President, This cover mission key to people I come in and I inserted here and then the press connect. And the status has not changed from offering to connected and licensed, meaning that we now have a connection between our studio and our extra. In this little you have learned how to connect you your past, studio to Europe, ice all across Australia. And you've been given a short introduction off the concepts off machines, robots in advance. 4. Credentials: In this lesson, you will learn how to create a robotic enterprise framework and how to prepare and set up the project for handling pretensions. Insecure way to create every robotic enterprise framework. It's important that you use this template. You then have to give it a name. I choose the name. Of course. I just used the D fortification and the default description. You can your feel free to give it a more suiting description if you want to. The framework is now created to be able to have your credentials in a secure way. Your path as actually made a component to do justice. But it's not a part of the framework template. So find it. We go to Google DACA and such for your path framework. Get up. We take the 1st 1st felt I've rescuing dollar right click to the galaxy and saving s and then a savior to the system. I then open it up because and extracted to this I didn't open it up. Go to the framework folder and find they get after potentials Component. That's a copy of this. Go to the your path forward. Go into my project folder and in framework. Anti Sit in here. I didn't go to your path and open the framework where you can see it's still live here. But if I press refresh, then it appears here and I open it up and I can see a lot of varathan good and this is costing dropped way. Don't have the right page to handle pretentious. So I go to many Spader's Oh, thank you just and search for credentials. Oh, there is President Star answer not ready to be used in our presence In this lesson, you have learned how to create everybody's enterprise framework and how to prepare and set up the project. Find Lings provincials in a secure way. 5. REFramework Overview: in this lesson, I will give you a quick overview off the framework, including all the states, off the framework and a short explanation off the force structure and the components in different. I will stop with the 40 structure. As you can see, there are some for us here. The 1st 1 is the data folder, which contains an input for DNA and that's temporary folder and a conflict sheet. We'll get back to the conference shoot later. The infra fola is for putting your data files that are needed for the process to what the temporary folder is for saving files that you use in the process. It's important to into this temporary folder after each transaction. In the documentation for that, you can find a PdF explaining more about the framework and the exception. Screenshots Fulla is where you safe screenshots off exceptions occurring during the process . The framework fuller is probably the most important one and the one who will be using the North yet that awesome pre prepared components that are used in the framework, for instance, how to take a screenshot killer processes. Finally, there's a test fola, which is used to run automated tests off your components in the framework didn't just go ahead and collapse all these and open up the main file off the project. This is the actual framework. A. So you can see it's build us a state machine with states for every part off the project. There's an initialization state in process get transaction and one for processing the actual data. These states are simple. Act with the taxes. But as you can see, there also some lines and arrows between the boxes. These are the transitions you're too taking the process from one state to another. Based on the outcome off the previous day. Let me just go through the entire process here. When you start executing the code, it starts here in the with the stop note, of course, directly to the initialization load. In this state, the configuration files read the settings being set up everything with credentials and you are else. Everything off that nature is is defined here. After that, the applications are opened up, meaning yeah, the applications that should be used in the process opened up here. If there's an arrow, a system exception if that across here we go to the in process state where all the applications are close down again on the process are terminated. An example offensive off a system exception Could be that the education that we're trying to open his current of not responding and is therefore not possible to open up if everything is successfully set and opened up here in the United States. Mistake. We go. We follow this transition, this successful transition and go to the K transaction state. This is where did you find all the data that should be used to process the new, uh, the next transaction? This could be Social Security numbers for numbers, addresses, etcetera. If there is no more data, we will follow them no data transition and go to the process again. All the processes know all the evocations used actress down. If there is some Mutale, we follow the new transaction transition and go to the process Transaction state. This is the state where the robot does most of it work. It's work. This is where you use the applications that waas that were opened up in the civilization state and move around the data do your calculations or whatever is needed in this specific process. The result of this process can be a success, and that is the case. We go back to the ghetto section state and find the next data to be processed. Let me just expand these transitions so you can get a cure a picture of what is going on here. So as you can see, this is the success transition moving back here. Sometimes, though, on advocation Chris down here and in this framework there is a distinct distinction between two kinds. Two types off exceptions. The 1st 1 is the system exception that I described earlier. This could be system eras, um, where the system is not responding s expected. The other ones is called a business exception, And this is and these exceptions occurs because of invalid data that could be an invalid Social Security number. Or if the actress was empty and we needed that down here than a business conception is being thrown. Haven't we moved back to the kitchen section Data state? If assistant exceptions occur, On the other hand, we go back to initialization, where all the indications are close down and open up again. This is because system might have crashed and is no longer working. So we try to restart the system and hope that that will help. If it's a business exception, then the systems are still working. So we just go back to Kitchen section data. This means that if everything goes well, we have created a loop between the kitchen section, Tater State and the process transaction there where just goes round around until there's no more data and then the process is to it. In this lesson, you have learned what components the framework is made off, and I've given you an overview off the states and transitions off the free world. 6. The Config File: in this lesson, you will learn everything there is to know about the convict file and learn how to create as its credentials and choose an orchestrated for this lesson. Never get to your instance off orchestrator. But before we use this, I will never get to the conflict. So find your project followed and open it up. Then opened up the data for and here conceive the country file. I will open that now. The conflict file is a file where you store all your configurations. There are three sheets and we will start in the sitting sheet. When you open it up. There are already two sittings. The 1st 1 is the orchestra queuing. This has a default value off process ABC each you And this is of course not the name we're gonna use. So I will stop by creating our own que in Overstreet So I will never get toe. Oh shit! Yet you go to choose. There are two cues, but the ones you want is the single one under our automation. Then go toe and inter queuing. Just call this one numbers. You cannot give it an optional description if you want to. He took You has a reference you can specify here if you want to enforce it to be unique. We just know. Here, um, you have the auditor ought to retry Sitting right. Retry means at a nuclear que atom with the same data will be added to the Q. If it fails, this can cost some problems with reporting and timing into certain applications. So be very cautious if you just Yes, we choose here. Then I press at antique. You're straight on our cover, his name of the cube and go back to the conflict where I into the value here. Then we have the luck f business process name. This is used for knocking purposes. If you have multiple robots or you have a robot that works in different temperaments, we just name it the same Assad project riff goes. The setting sheet is also where you store your names off a potential assets and as we want to use one drive in our case, we will also need to store our credentials to one drive in Australia. So we go back to extra and never get so essence and shoes us it. I'll give this a name one Dr Talking And I would choose the asset type potential. Yes, I usually I will. Why you singing? There you go. Have a couple of live and press straight. Go back to the country file and enter the you here. Remember, this is the value off the credential in Australia and the name refers to the name in the framework. The best practice is to just use the same value in both instances. Part of the best practices also always to give a description off you are configuration so that other people can see what they mean if they want to work with it. At some point 100 they go. We now move over to the constants sheet. There are some default values here, for instance Max retry number and it has a value of zero. And as you can see in the description, it must be zero. If we're working with orchestra, choose So we just leave it like this. The ex screenshots for the path refers to the path off they full it where screenshots off exceptions. Afterwards, it could be either a relative or absolute path, and in this case, it's a relative path. And as you might remember from before in a course project. We have our exception Screenshots Fuller right here. So again we just leave it like this. The rest of the configurations, I just for locking purpose is to make the locking consistent. And there's really no need to change anything here. We will not go to the assets. Shit. There are no exits here, but we would like to add one. So we will go to the office shredder and we're already on the right pitch. So we're president. What we want now is the path to the associate with the numbers that we need. So I caught a number to find the path. I go back to the project photo, never get a data input, and I placed the excess you'd here. I press shift, right click and can now choose copies pan and in over Traitor! I just pasted it right, Andruw, These Ethan opera straight again our as it is created and I covered the name and go back to the configuration file. And again, this is the name in orchestrator. And as with contents, I would just use the same name in our framework. And again, we're going to give it that description, they will go. And now we have talked about everything in the country file. In this lesson, you have learned everything there to know about their country file, and you have learned how to create as its credentials and choose in Austria. 7. Introduction to the Dispatcher/Performer Model: In this lesson, you will learn how to act data to acute by using a so called dispatcher and household handles, settings and assets from the conflict file. Often it's a good idea to spit your robot into two, especially when you're working with a que. Then you will have one robot called it this patter that REITs all your data and added to the Q. And then you have another robot. You're performer, in this case, our re framework. That process is each data 0.1 by one. The advantage is off. Doing this is that you will get a better separation off the processes, which really reduces complexity compared to having everything in the same project. It also gives you a pretty cool possibility to run processes across several machines. Imagine that you are running your dispatcher first, fills up your cue with data, and then you deploy your robot or your performer on multiple machines. At the same time, each of them getting theater from peculiar prostitute says thing them, which will really speed up your process time 8. Setting up the Dispatcher: we will our create our dispatcher, which is an entire new project for this new project, will just use the simple process. I would call it brief course this picture and I will put it in the same location and just give it a blank process description. So when is created, I'll go to project and just opened them main file. There is nothing here. So at first I will go to activities and search for sequence. You can find it here, drag it in and a rename it. I mean, I will then take another sequence and name it. Kids has its. And in this sequence we will get our assets from the country file. To do that, we will go to our rift course and go to friendlier and then cover the in it all sitting files. I will cover that and then go to the dispatcher project and paste it in here. Then go to projects and I opted Yellen, invoke it into my case asset and then important the arguments. As you can see here, some off the values are already filled out, and the in conflict file, which is the part of the path to the country file is filled out, but it's this is a relative path. And as we're now in a new project, this relative path doesn't exist. So we need the effort. Path to the country file are therefore go back into the framework project into data and then conflict. I right click it and copy his path. I go back again, we'll just close it down. I import the arguments and then replaced the value already there with this new path from this, innit? All settings workflow. It outputs a dictionary, off strings and opiates. A dictionary A is just a key value pair where the key is a string and the value is some kind of object. In this case, it will most likely the strings. So we need to up with this into a value. So I go to variables in a crate and you terrible cold coffee as the variable type got dropped down in bras for types I tap in dictionary and a choose the key value pair. The key is a string, and the value is not. I press OK. As to the scope of this verbal, I extend it a bit, so it covers the main secrets. Narcan import. I come in second and answer the coffee. How this is done will be covered in the lesson about the initialization state off the reef framework. 9. Coding the Dispatcher: before we move on, if you just go ahead and close this apoquindo, which is really just filling up space at the moment. So now we have our configurations. So let's go back to a kid activities and search for and excel application scope. We need them whenever we were working with Excel and and now we need to input our path to our numbers file. And as you might remember from a previous video, what footpath is part of our conflict file? It is now also found in our conflict variable which we can access. The fact that this arrived country, the name of our stationary and then all right, the key, as you can see here on the name of the key, I would just go and check that in the file. Karthik s it's and it was the numbers path. So they just cover that Uncle Ben and into that here And because the value is an object I have to use to string sophisticated s history, I would also in options here remove the outer safe and the create new file, which makes no sense in this case, and the visibility can be removed for better performance, and then I will put a enable the read only property. We will now use the rearrange activity travel put in here. And as you can see, you know, numbers file. The seat is called shed one. So this is okay, and this property is also okay. It means that we will read the entire sheet in options received. This is also correct. There are some hit us in a sheet and we just need to have an up available. So I press control K and call it DT lovers and enter. Now we need to run through this new data table we created and at every line to the Q. So I go back to activities and such for that for each room. And I frank that in right here and the table. We're using this again. GT numbers. So each row in the DT numbers corresponds to a row in our excel sheet. So for s each rope should be added to the Q. We will put in at activity and this fleet rule, and this is immediately created some areas. And this is because off that the curiam is not fill out, and as you might remember from the conviction in the settings sheet, we have to find the extra kun it right here. So I covered that and I go to the Kulim input and then I get to exactly like before I take the conflict into the key. And again, this needs to be in the strength for that. So now there are no errors, but we need to add a bit more information to the killer. For instance, in the reference field, we would like to have our the our I D. Number off the rule A so you can see it here. So to do that, it's a room and I think the item And then I write I did. And again this your friend strength for that the i d, however, is not enough. We also meet Theis your values that we need to multiply No, sorry at together they are the A and P call and they convey at it by going to the item informations and then create an argument. Here we just call this a I will have a second world. Could be Then we'll two before se rule item. Hey, history, Repeat that down here to drink, you go and press OK 10. Running the Dispatcher and Adding Data to the Queue: and now our dispatcher robot is actually done. So Weaken. Go ahead and try to run this by before it's just close our excess utes, so that we assure that won't be in issues. And then we go to appear and I run the file and it's done. And as you can see, the output, it was a success. But let's go to the austral now and see what happened to our cue. So I go to cues and the first Lance. It looks like nothing has been added to like you. But the orchestrator can be a bit slow toe update acu out here when you're adding a lot off items. So let's just right, just click here on more actions and go to future infections. And not something is that you can see all of our items I'll just show worth of at the same time. First of all, here's the reference, and this is what this is our idea. No, but you can see here and a little right. If you present three deaths and say you details, you could see you. There s a more data here, and this is our A and B call. So it looks like everything has been at it. A sworn into in this lesson, you have learned how to add data to the Q using a dispatcher, Robert, and how to handle settings and assets in the configuration file. 11. Introduction to the Performer: Now that we have made our dispatcher robot, it's time to make our performer. That is the framework that will actually perform the work and do the calculations. 12. Overview of the Initialization State: in this lesson, you will get an overview off the sensation state off the framework. We have our main filed. So let's never get to initialization. The units realization State is a state for reading are configuration file and open up our applications that we need in the process. I just collapse this trackage. So now we have a clear image of the state. The state has an entry section, and this contains the activities that would be performed when entering the state. There's also an exit section that will perform three activities inside it when exiting the state. We also have to transitions one for a successful execution and one we will follow. If a system exception focus, let's just go back and have a look at them. As you can see here, the successful transition will take it to the get from section state and the system exception. Precision will take it to the process state. If one ever occurs in this video you have gotten and no view off the relaxation state 13. Intro to the Initialization Deep Dive: in this lesson, we will make a T type off the initialization state and go through all of the activities it's contains. We'll also start working on our case as an example off how to implement the initialization state. 14. The Try/Catch in the Entry Block: in the entry section off the initialization state. We have a trackage Ah, track. It is an activity Where you in the tri section off the catch Put all the activities you want to be performed if something goes wrong with gonna want these activities in your path . Terminology, We say that an exception has been through when an exceptional throat. We immediately stopped executing with the rest of the activities and moved down to the cash and start executing the activities in the catch section. We say that the exception has been caught by the catch. After the try and catches section, we have a finally section where no matter what happens with the tribe in the catch, we execute the activities in this finally block. 15. Initial Settings: So let's go ahead and see what's inside our try section. First of all, we have a sequence that contains all off our activities. Let's explained that first thing in the sequence is this a sign. It takes the variable system exception and says it to nothing. If you go down to the variables tap here, we can see the system exception here that it's a variable of type exception. This has a very important part in the transitions that we will see later. So it's very crucial that we set this to nothing in the beginning off the execution within haven't if statement let me just go ahead and collapse. This the if statement has a condition and and if this condition is true, we execute the code in the then section. If this is not true, removed to the Els, the condition is that the conflict is nothing. Conflict is a variable off type, stationary off string and objects. Oh, as you can see you. The conflict contains all of our information from the conflict file and as we haven't read that in the first run, and this conflict will be nothing, that we will move down here and execute the activities in the second 16. Collapse Activities for a Better Overview: So let's go ahead and expand the first sequence. There are a lot of activities in here, so I just go ahead and collapse these to get a better overview, how they go through each of the attentive one by one. 17. Load the Config File: the first activity is an involved workflow. Invoked workflow is a way to get data from all of smaller work clothes and put it into your main files. A. So you can see this one is found in the framework folder, lets you hear, and it's right here. You can just take it and drag it. And if you want to never go ahead until it is again, you can also create new world health. I go to the new Tech and, for instance, making new secrets. Let's go ahead and open this work. Feel the point of the in it or settings. Retro is, too. Breathe the conflict file and read all the settings, constants and assets into our conflict dictionary. The first thing we do, it's with this sign activity. We have our out conflict, and we assign a value off new dictionary off strength and a bit the our confidence. Actually, not a variable bottom documents. As you can see down here, it has the duration off out, meaning that we can use this value in another weapon that invokes this work. Then we go back to a minute. You compress the import documents and here a CVR conflict with the direction of out. And with the given time in the value of column, you can see our conflict variable, which means that you know, I mean work. So the conflict variable will have the value found in out country. 18. Load the Config File - Part 2: So let's look at the next activity. This is F for each and it loops through everything in the in conflict sheet variable. You go down to arguments. We can see this in conflict sheets. Here is an argument with the direction of him, and it's a string off a race with a different value off settings and Constance. You can also see these if you go to Maine and in 40 documents these settings and Constance corresponds to this sheets in our conflict sheet. Let's go ahead and see. See that I go to the ref course open data and over the conference sheet. As you can see here, we have our settings in Constance. We also efforts, but they are. They're handled in a different way. It's Chelsea. Second, go to you need all settings inside this For each. We have a sequence and the first activity in the sequence is the re French activity. This can read information from Excel sheets. You used the in conflict file since she this is again a document corresponding to the path off our conviction. We will read this sheet in the sheet variable A so you can see it here in the first iteration. This corresponds to our civics. The next activity is for each room. So this is a nested loop. We have now this activity reiterate over every row in the settings and constant state table that we have created in the reef range activity, I'm sure. And you can see here in the opera line we have a date of table called Central Constance. The only activity inside the foot row isn't if, and this has a condition. It looks quite complicated, but let's break it down. One thing at a time, starting at the kind of cool off their condition. So let me like this. This is the core of the condition and this row corresponds to the current room that we're in right now. The name is the name off the column off the road. And again we will make it a string and usually true method. The trim removes any white space at the end off the street. Then we have this expression which ex the question If the if the string is no a white space and in front of this you haven't not. So this whole condition means is the road is that any data in this room or not? If there is, we were good to go to that, then. If not, we'll just skip this role in the then section. We have one assigned activity that adds the value off the road to the conflict file. If you open this up, this expression, that's the name off the ro ast, the key in this country stationary and the value of the road will be the value of particular. 19. Load Orchestrator Assets: if we go ahead and collapse this one and then let's look at on next activity in the internal settings. This is a try catch that will try to initialize all of our assets from becoming filed and atom to our conflict dictionary. Let me explain this. At first we have a sequence containing two activities. They have, ah, read range activity again reading from the in conflict file Excel sheet before and reading from a shed called assets. The data is out quoted to the assets data table and as before we have for each room and this loops through all the rows in the assets stating and inside of this for his room, we have a another package and this is why we will actually do the I said, retrieving from what? The orchestrator again. There's a secrets and then we have the get orchestra acid activity this needs and input and this should be the name from orchestrated. Then go ahead and open the associate again and moved to edits. This is the name of the effort in orchestrator as we just defined before. So this is what we want to use. This is in the column and as you can see here, we're using the robe with the S a condom and making this room The value is I put it in the asset value and down here we have our assigned activity that on as an new key value packed to the conflict variable. The key is the name of the room and the value is the value. You If something goes wrong, appear an exception is thrown on and we will move to the exception. The exception is just consists off one if activity with this condition again. This looks like something we have seen before. And this is Ah, this is true. If the road is not blank Yes, we can see appear If something was wrong here, this would be true because there are no blank lines. If the line is not blank, we will execute. This activity is just a knock message warning us that the s it probably not existent Orchestra In the final black, there are no titties. So let me just collapse this if something goes wrong in the tri section we moved to the exception block. And again here is just a lack message with the lot level off trace, just saying that there are no assets defined for this process in the finally there again nor titties. 20. Get Application Credentials: Okay, so this was everything. When you just do in the unit, All settings. So let's go ahead and closest we want to do now is to get our potentials for the one Dr. So let me go ahead and create some variable. So let we need as usually and this is of type string and discovers mutualization. That's fine. They will need a passport. And this is also type spring. But that's not so good. We need to handle them in a secure way. So I'm a process types in such for chill string variables. There we go. This is a very smart variable type, so that you cannot see what the value of the terrible is when you are running. This is also in the initialization school, so that's fine. Good. So let me just go to the orchestrator and show you what a very what potential We want to fight you go to the S it hands have the one crime log in 10. Let me show you here the user name you can see, but the password is blank. And you cannot see that this means that whenever you have inserted in here, you cannot find out again. So in this way we will handle our potentials in a secure way to get the essence from the orchestrator. Let's go ahead and dragon they get potentials withdrew. How? Just ring Ring renamed that too. Look, one crying potentials and no. And you could go ahead and over that this one from contains the try catch and the try is reversible. It only contains the get potentials activity. It's very several. Absolutely. Get SS activity in that you have acid name here, but instead of just one value as output, you have the password and using him the in potential and up password. And I usually all documents. Yes, you can see don't here. The potential is the name of the potential and its strength and its has direction in the two other ones are going out and know that the path of peace of type suggesting Let me close that again, Then import documents. It's heavily in argument. First assume. I remember we had the name off our potential in our conflict. Good. And let's see what I was called. We'll just never get it, will you? It was called in one drive looking, so I'll come there, will you? I don't And interview. And again, we need to make this a strength. The house she wasn't even our effort should be leapt to our spring one drive. It was just called one drive and the password Waas. Oh, something from this should be the one tribe. Useless, of course. Don't know. And we have no no era system because, okay, we're in our met our arguments, so we can now get our potentials from the Austria. 21. The Catch of the GetAppCredentials Workflow: Let's try to open up the get at potentials again and look what what's inside the catch? So the try catch was the guest potentials and let's go to the catch down here. Is that what if on the condition is that the user name is nothing? Other password is nothing. So that case, we know that we haven't found any contentions yet. Note that this property off privatise set, meaning that you can't lock any information that might hold information about the conventions. In this sequence, there's a get a cure potential activity, and this is very similar to the get contentious we used in the try block. But this activity instead tries to retrieve the potentials for Windows potential manager. After that, this is the life stating that it's extensions are not found. We go to the then statement and used the request potentials. Activity from toe requested things is fun. The user after that, this another. If saying that if the contentious are still have found with give up and throw an exception his expenses, I found we attic attention to the potential manager. If the user has provided the potentials, they have entered them as a normal string. And that's of course, not as secure way to do it. So if that's the case, we will in this pot and convert the string to a secure string format. We will not go too much into detail with this. That's as you relish. It should just put your potentials in the orchestrator as that's what it's designed for. You don't really They using this part? If you just check out the finally block, you see that there's nothing there, so let's close this again. 22. Set The Orchestrator Queue Name: the next activity in our unit. Yes, this one just expanded. This is a very simple if statement and ah, and it's states that if the in Oxford acute him, it's not blink. Then we execute this assigned the in order accusing is actually an argument to the framework that said here. So this states that if you put him put a value in the argument, then we'll all right, what's already in the country file. As you can see over here, this is to provide some backwards compatibility with corporations off your path. So if you're using a new vision than you shouldn't worry too much about this. 23. Close Down All Applications: But it's now time to take a look at the next activity, which is invoke kill all processes you killed all processes. Workflow is a workflow that is very important because it close down all the medications that we use in the framework. Very important to do, because if we don't do this, there's a chance we might have multiple instances off the applications open at the same time. In our case, it could be an issue if we have to calculate us, Opens and we enter the values in one of the applications. But the robot reads from the other one. I could give some bad results, so it's very important to make this killer processes work from I will. That's really nothing in here in the beginning, so we need to implement what we want to do. We want to kill three processes, is the next for Excel and the calculator, but these are the applications that we use. In this case, I will update the conflict files with the names of the applications. As this is, the's applications might change at some point, so it's easier to change it in the comfort Cute. I will open it up who use it, used the settings she and call it. APS took him. And as I mentioned, we will kill Expo you calculator and itself and, as always, through to give it a description and safe, they will. So we I need an argument in to this retro. This document should be the string with all of the applications in it recorded in on this girl took him, duration is in and a string insisting so that's fine. We then want to split up this string we just made in the country file. As you can see here, I spit up the value with calmness so that we can easily spin it up into an array of strings That's very handed to do because then we've been closing down one by one. So I won't create, have terrible and call it helps to kill him. Very type should be and the rate and it should be strength inside. Then I will take the sign. Take it in and I would start here with our in absolute kill. No, wait a minute. I was fitted, so I think in after killing the night to control space and then the outer complete will help me for the rest. Then we also need to right down at the limiter. And this should be the cover. And as you can see this trip, then return. Um, and the race thing which I saved in the ethical available. Before I go any further, let me just go back to the main. And now you can see in the invoke activity that lesson some orange color here, and that's because the occupants have changed. So I will important actions, and then you can see not change down here. So one, because that's one argument for the value we need to that we need to let River like any use to the country club. And the key is the one we just made. And this is the name. So call me that in close down myself and basted and then make it interesting. So now we have met the argument. So now that we have a rave strings, we can just look through it and kill each process. So I go to search type, which I tracked that in here and the first thing to do when you use that for each to specify what the top type accurate this in this case, the strings, and then answer the correction and this is a difficult within it. The activity killed process. So drink that in to the forum and we need Teoh in a process name. In this case, it's the item. So we just write that here and now we're actually time, but I would like to try to test this, but without running our entire robot to do that, we can go to arguments and then just hakoah value in default. So I would just cover the value from the excess You? No and then entered you, of course like this to see that it works. We need to actually open these applications over the calculator. There we go and political way also have a sellable. So just trying wrong. Listen to what happens. Start executing and justice expected. The processes have been shut out. Now it's very important that we remove this default value again. A lot of people forget this and this can really get into some bad situations, especially if you don't map the documents correctly. And it will just use whatever value you have here in the T falls and it can be very tricky to find out where the era has good 24. Add Log Fields: The next activity is the deadlock Fields Activity, which adds a new field to all the dark entries that will make it easier to do some process report processing and visualization based. If you can fill the based on this law field with the in the Fields collection, that it will get the name off Lock F on the school business, brother's name and the actual value comes from the country file. So let's open up the country. Cheat again. Have it in. As you can see here, we gave it a value off ref course, which means that all the lot fields or the luck interests that we make will have air, not field with the value off, of course. 25. Recap: well now work our way through all the activities in the first run sequence. So let me just give you a quick recap of what we did. We invoked the in it all settings. Let's just open that up. And this one, it takes all the information from the conflict file and put them into the conflict dictionary. Then we invoked the get at potentials which gets our pretensions from one drive by using the get contentions activity. Then we specifies what orchestrate a few name we wanted to use and indeed kill our processes. Workflow. We just closed down all the eps that we're using in this education. Finally, we added a lot field to the law countries. They would just go ahead and click collapse all of this. 26. Open All Applications: So now let's take a look at the end. It all applications workflow that we invoke. The point off this or show is to open up all the applications that we need into the process and lock onto them. In this case, we want to open up the calculator and open one drive and look into a drive. So let's over the water. As you can see, there's nothing really here in the beginning. But what we need is first of all to arguments we want on argument with the user name off, one drive account and one with the password off All one drive. So let's create them. You called it in school one Dr Usually, and that's just strength. And then we have in one Dr Possible. And remember, this has to be a secure string. We're not on the list here. There you go. Let's see that I didn't go back to Maine, and again we can see this has turned orange so that new arguments that were important previously we define the user name in the variable one drive, so that's made it. Thank goes for our password that go, then let's go back to in it all applications. First of all, we want to open up the calculator and to do that, I would set for the activity called open application. Track that in. And to use that, we need to indicate a window on the screen. So let's open up the calculator so we can indicate it. Think go back to your path. Precedent blue and your head. Remember to always change the name off this because this application frame host that X is not really a good name for for an activity places heart for new people to see what's going on. So I want to rename this open education captain. Either they're much better. And I caught up this for the one time applications. We need some more activities, so I would like to collect them all in one sequence taking sequence, drug it in and remit opened one drive there You one tribe, a say in a browser. So I was such for open process. I drank it in and then I instead, the oil here one dr dot com You could choose to put this Azan asset in orchestrator as part of the country file. But this this should be pretty aesthetic because, you know, one driving for a drive. If you go to the properties over here, you can justly proud time. You have Internet five crew, manage. I'm just using into next powerful our because this is always installed on the service and eso we always sure that that we have this to work with. Now let's never get to one drive so we can do the logging. And I Was they with English? They will. I want to press the sun important so that I can sign it. So that's usually click activity to the left, You know, again, I can indicate here impressed signing. And again, it's part of the best practice to always change the name of these activities. So all right, they were signing island present. And now I want to enter the user name for my one drive account. So I searched for type into hand, right? Let it and then I indicate and I find the element on the screen before I do anything else. Limit Iranian. There you go. The text of all to insert is the you sitting have right here. So let's move one step ahead in the brother and do that fine. Mentally typing my, Did you feel new? And then way awfully to click. Next you go. I rename this next and press next to Mary to access the Prophet. And then I need to type in the password. And but I can't just do like it did before with the time into, because as you remember, the path is secure string variable. So I need to, um, used the activity. Tragic critics, they indicated quick rename. And as you can see, there is no field for entering the password here, and it's actually hidden off here for some reason. So I was just signing the in one drive pocket. There we go. And then the final action is to President's son your button, so I'll just take the click hands on it with another quick renaming, then the work. First time 27. Transitions from Initialization: Now that we have talked about everything in the tries dry block, let's just go ahead and look at the rest of the trackage, so I will open up the exception, and it just has one excuse. It's an assign that's gives the system exception a value off exception in the Finally, there's nothing before we face this video. I would like to just talk a little bit about the transitions. You can see them in the bottom of the civilization, but I'll just go to Maine to give a better overview off what they do. Here we have. The two are put states, the to upper transitions. Successful, consistent exception. If we double take one of them, we can see both of them. Here. You can see it both transitions first, these successful, which has a condition. It says that system exception is nothing, meaning that we will follow this transition if the system exception bearable is nothing, meaning that no errors have occurred and Iran initialize could be if the system don't take no doubt, open up or if we forgot to defined and as it in the orchestra. There's also the system exception transition, and this is just the opposite off the successful one, meaning that if the system exception variable is not nothing. Then an error has occurred. And then we moved to the in process and just make a lot message with the lock level off fable. 28. Summary: in this lesson, you have learned everything there is to know about the initialization state, including a deep dive off all the different setting Siri's. This would be a great help for you when you are working with your future projects. 29. Overview: in this lesson, we will talk about the get transaction terror state and make a T type off all of the settings and activities in the state. 30. Transitions and the Check Stop Signal Activity: Let me go ahead and open the gates Protection data state. As you can see, there's just a single sequence in the intra bloc. So let's figure closer. Look to that. The first activity in this sequence is the check Stop signal activity. When the job is running an orchestrator, it's possible to stop it. And this activity checks Orchestrator for this stuff. Single If a user has pressed the stock bottle in orchestrator, this bullion right here called should stop. Get a milieu of true If not, it will be false. Next we have an if and the only condition in this if is this should stop Variable. If this is true, we caught through there. Then else we go over here if you want to stop the process, we just have a lot message here that with a message off stop process requested and then a sign activity where the transaction item variable is set to nothing. And for the section isom variable as you can see down here, it has a variable off variable type of Q item on. This means that the transaction Isom corresponds to an item from the queue. You go down to the transitions. You can see that if there are no more data than we move to in process. And this no more data transition is actually checking. If the transaction item is nothing or not, let me just never get to the general business process to show you this. As you can see here, these are two transitions I was talking about in the open enough. And here we have the no data precision down here that is checking for if the transaction atom is nothing and if it is then removed to in process. If it's not nothing, they would go to the process protection. 31. Get Data from the Queue: So if there is no stop signal, we want to carry on with the process and we go over to the L C. Over here there is a try catching here and in the try block we haven't invoke When we invoke the veteran section data work just over all of the arguments so you can see what happened to you. The most important argument struggled this one the in country which were left to the confrontation. Eri and we also have this out sensation item with adoration of out. It's a cure item with the value of transition item It's corresponds to the one we talked about before Yeah, once we will cover in a minute Just open it up. The first activity in here is the get tress action items activity and this gets the next Que Eisen in line from the cue from Australia, you can see here in input that we need toe give it a cure him And we found that in our conflict variable it outputs protectionism And this is the heart protection item talked about core. Remember that you can actually get data from any kind of sources. You could be made boxes AP eyes, spreadsheets, databases. It said. We just choose to use the orchestra que here as this is the best practice and it's very December is a very smart feature. Next, we have an if condition. This is all about adding some more information to your to your locking fields. I've never personally Eustis. Neither do I know if anybody else have used this, so I really wouldn't worry too much about it and just ignore it and leave it as it is. As you can see in the invitation, your path also think that this is an optional step. So we will have no changes to this work show who just crashed down. This is everything. This about the try block. Next, we will open up the catch and here we have ah, lock message that says that something has gone wrong. And then we haven't assigned that scientists protection item to nothing again, exactly like we did over here. That means that we will move to the in process after this date. Finally, we have our final block and once again, no activities in here. As you can see, we didn't make any changes to anything in this state. This is possible because we make the dispatch of Robot earlier. If we didn't do that, we would have to build something up here. Teoh get data from our associate, but because art it's pressure, we don't have any need for that. 32. Summary: in this lesson, you learned about the kitchen. Section three state and we have got all the settings, including the transition to the other states. 33. Introduction to the Process Transaction State: in this lesson, I would give you a quick overview off the process Transaction state and tell you about what it means in regards to our case, the president's action state. As you can see right here, it's the state that comes after the get reception data state. This means that you have now found the data that you want to work with and you are ready to actually do the work with data. This means that in the process procession state, you will get the data from the protection item and inserted into your systems. Make some calculations, writing me emails or whatever might be the case in our case, we want to get the values and be from our protection item and tap them into our calculator and then get the result and printed through our report. 34. Create a Calculation Workflow: before we dive into the process protection and starts to configure it to our case. I would like to build air helping workflow that will help us calculate our values in the calculator. I never go to the Project Tip. All right, click. Let's add and Fota and enable the folder work for five and then right click the workbook profiles cooler and at a sequence I call this sequence capital values. This work will needs to know the values that we want to act together. So I start by making some occurance. I get the 1st 1 the name off in school, eh? In the 2nd 1 in the letter B, they have the direction off, and our common type is string. It might be a little funny that I've chosen to give them the time off string, but you will see that it's handy when we're working with the selectors. When we have calculated the values we want to up with the result off their calculations. Therefore, making your argument which I called out. Let's go result. I changed the direction to our and I leave the argument type s history. We now have arguments, so we're ready to below were filled. First thing we should do to comply with our best price is just to make a lock message. I find it penetrating here I get him it The lock level off trace as this is just for tracing where we are in the works. The message is calculating. Tell yours and as we have already in initialized, open up Our calculator are also just open it up manually now and we will not do that Indeed . Quick When there is ah loop in this here in May. It means that after we have calculated the values in the calculator, there will be a result up here and I don't want this result to interfere with the next calculation. I would start out by clearing the values. I will take a trigger Tuesday and clear days. The entry it's a good new. Next thing I want to do is to click the bottom off. The first value is this is demand from their case. I don't take another clear, I indicate and I just pressed in the eight. Now this selector is can only press the eight value off the calculator. This is of course not. What gold, therefore above the selector and I will have manipulated a little bit to make it more generic down here. We can see that they're awesome values that indicate that issue. Click the number eight this property I would just remove as we already have an indication off the number eight right here. If I presume edited, you can see that it's the selector is still valid, and you can find it on the screen. The eight. However, we should make it a generic. We want this to be our value in underscore A They felt mark the aid in a right click when I just marked and a little menu pops up and I can choose an argument to insert here and there . We have it in just a I just don't think that and it will now inside the value of in a instead of the eight. If impressive ready now it won't work because this in school is not in its last. But this should be fine. So I just press OK I was in a chance to new because now it's not that he but it is just you . He how then take on electric activity because now we want to press the at sign. Here we go, Woody. And then I want to click the number B. So I just tell you copy after they will meet before I came to them. And our problems, Victor? Yeah. I just change the value to in scope. Next, we need to take yet another click indicated screen and get the result. There you go. The result will now be present in this field. Now we just need to get the results and save it all variable. So I will try you classically get 60. Tried to break that. I indicated screen. It's just the result. Feels it was here. It gets the text off display is zero. So check this letter, and here you can see that it has a name saying display Ciro. And this means you can only find this element if the result is zero. Of course, we don't want that. Megan s rescue and kick did it. And you can see in the selector still village on the element confounding because, okay, chances to result. And that's the opera value. Choose are out of school results. And I just want to presented the result for us. So she was a message so that here and off result they go. So I would like to try subsistence out. So I got your eye currents and to find some default values for in a get any of two. Didn't B. This is three that's trying to run it and see what happens. Oh, so something has happened here we get a blank results. So something is not working as we expect. And that is because this text results this get text can't find you. But But fortunately, there's another way. If the obvious justice still work, so I will leave the context. It goes like eighties. Yeah, I will actually get a tribute activity, in fact, that in again, I will indicate on screen and find the result. Hence I go to the selector and hear and see that the name actually can find the value of that we're looking for. So if I did this one, the selector still valid working and it can find the calculator results, so that's fine. I didn't go to the dispute field and in the name, which was the name of the S report containing the value we saw before I just rename this one to name and again Well, I put it to after salt. The only thing about this is that we saw the name there. Would the value of the name attribute waas display value off that displaying value is five . So we don't want that. We only want the number. So I go to activities again, getting time and replace the value just found Do a split, You know, you're so hot result, you know, spit it on Every time there's a space I don't go Fillion, take the last value that was in indexed to There you go. Let's see if this is bad and there we have it all five, which is the right results. So this is a trick with the get experience, Joe Shoe that it's not always that the most obvious purchase work, but there will always be aware grounds to get the results you want. And then I just did you get my message across? And of course, the most important thing. As always, remember to hear people values of your arguments that I could save. And now we have our help her work through having built our card values. We can now close it down and collect the workflow fans for 35. Overview and Transitions: Now let's Oklahoma main file up again and take a closer look at the process. Transaction state. I will collapse the excesses first, and here you can see we again. We have a state in the entry block. We have our activities. And again, there's nothing in the exit. Brock from the state. We have three transitions. That's the success, the business exception and this system exceptional. Let's go out to the general business process and take a closer everything. I've just explained these arrows again so we can see what actually happens. Let's start by diving into the success tradition. It was here that it has a condition that the system exception must be nothing, and the business exception was for nothing, meaning that no exceptions have occurred. So we will just move to get your second date again. The business exceptional precision has a condition here. It says that the business is the exception is not nothing, meaning that a business exception has been thrown again. This moves was back to get some section data because a business exception is not really something to worry about, because this is just because of errors in the user data, so we can, even with good conscience, never get back to get transaction data and work on the the next item. The final one is the assistant system exception transition. You see, the condition here is that the system exception is not nothing. This transition does not leave to get your section data, but to the initialization, where we will close down and overall power systems again. This is to be sure that the systems are working, probably because assistant exception is often occurring because off a slow response time in the systems. 36. The Process Workflow - Intro: Now let's go back to our process. Conception State. It didn't just collapse This one in the inter block have a trackage again. We have our activities we want to perform in to try. And for the first time, we can all see that two different catches one for the specific business. One exception I want for the classic system exception that we have talked about before. We'll see them in action Olympic later to be or not the secrets here. At first, we haven't assigned assigning the business exception to nothing previously in the framework . We have also put the system exceptions to nothing. So now we have no exceptions. After that, we have our process quick feel This has been involved inside of this work. So we should have all of our business logic, all of our interrogation with systems and everything related to processing the transaction . Isa, As you can see here, it takes two arguments. So let us look at those. It takes the transaction item in the conflict just to summarize how transaction eyes him is Are you want some variable that holds all the information from the queue? The conflict is our dictionary off string An architect that contains all the information from our country file how close it again 37. The Process Workflow: So let's go ahead and open up our process. But feel it doesn't really contain anything. So let's start as we always to with making your darkness is again. We choose Trace. That's a he started. I am going. The first thing we want to do is now get our data from our protection eyes unbearable here and put them into their own variables. So I'm gonna take three times here and make some valuables to put the data in the first before we want the i d. Number recorded I d And then we won't Our a I want our feet and then we put them here. Hey, I d a And be As you might remember, our ideal number was found on our horizon in the reference So we can take our what was going on. Let's go text item and then usually property reference. There we go. This concerns the value off the i d. Let's go to a This is a bit more complicated. We choose our section again and then we take the property specific content. And as you can see over here, specific content is actually just a dictionary of stringing architect. Just as we no word from our country file. So what you said the key is a string hint. You know, previous living, we called it a So we just hey, and they get to ST I would just copy this. Don't be. It had to be here. Okay. So stated that we should do some proper era hailing. And because of that, we I would like to check if A and B are actually integrates before we tap them into our calculator. Because if this was actually maybe a letter or some other sign, then we would be in some trouble when we're trying to add an A to B or something like that . So let me get it. If statement out to check if these are integrates, I will use the integrate class and use the try pass. What this does is that it checks if it's possible to past the input string to well into your it doesn't do it. But it just checks if it's possible and inverters pulling. So maybe take our a variable. And as you can see, it also takes and out in vigor a za new boat. So I was just making you integrate here because we don't really have. We don't have any need for it after this. So this checks if a is an integral Well, I want to test be ever. Just do this in the same condition. Do you see him to go? No. Hey, we go you into her. So And this should not be in or it should be. And because we want both of them to be integrates. So if they're both integrates, we go to that, then black. If not, we go over here and now we'll see new activity. We'll take the throw activity. This means we re force is an exception. We throw an exception here, and we do it by saying new. And then it's a business rule exception because this is invalid, include data. So we make it and then it needs a message. Rules. Call it invalid. Input Don't go. Now that we have this chicken place, let's just observe our data one more time. It was with data input and number. They haven't that's inspect the in vehicle. As you can see, some of the values Artim and you know, take a letter. You don't have any 10 button just a swell as you don't have a button for minus numbers. Therefore, need to check that our data it's not 10 or above and that it's greater than or equal to zero or that forecourt activities, says front. If contract that our A and the rebels have the verbal type of strength definite to possum as interest to be able to make this change, they will say integral that path. Take a This needs to be greater than or equal to zero. It also into go that path be must be less than 10. There we go. If that's not the case, we will throw an exception Justice before this will be a business exception. You business rule exception. Then we can write. The values were not in the expected range. So this way we can makes us a little It more refines exception message. So we have a difference depending on what the issues. We also need to make this check for the value be Oh, this should be any We'll take B Just cover this one and drag it up here Just chance of values. So there we go. Let me go ahead and collapse district. If we pass this. If we able to move forward, we can now enter our data into our calculator. And we can do that with the helping with throw that we made earlier. So go to project. We're crew fights and I think our cab values I bought the arguments. And for A and B, we just use our battles like this for our results. We need to make it available to hold this one as we want this there you to go with us out to the main again because we need to work with it a bit more. This should actually be an argument, so I will make it out. Migrants caught out results change situations out. This is import again and right on opposite here they would know the only thing we need is now too have a little change because the i d. It's actually not needed inside the process. But we needed it all mean, So we can just right click this variable and converted to Lykins. There we go at the same time, I'll just rename it so it follows our best practice. There we go. Now our process workflow is actually done. I just want o shortly recap start looking that we started the process and then we get our information from the cue with the reference and that specific content. Then we have a life. Well, we have a throw that throws a new business rule exception just to recap. What this does is that it stops executing the rest off the activities and instead continues when it hits the nearest catch. After the If we have our cat values work from ever made earlier, just go ahead and say this. Thank you is the process Okay? Now we can see this orange here. So let's important documents from the main. And this big off course because of our new arguments, have agreed to need to make some variables in the main to contain these. So let's make our I d variable and our There you go. No, that's important Documents and map them to all. You hear rebels, you go 38. Improvement to the Process Workflow: we actually need to address us. More problem here. Let's open up the process. Work for again. The out on the school i. D. Is signed here. It's a sign of value off in other school transaction item reference. Well, this is an out argument, as you can see down here, your head. The issue with out arguments is that if an exception is thrown before the workflow is completed, then the out documents are not set. This means that we will have an issue with the things we're doing down here, because we might be throwing exceptions. We assigned this. Then we throw an exception. Then we never get out here and down to business reception. But in the meantime, the value I t is not set with the problem I d. So this would just be playing. And this would give some problems later when we're writing to the exit. Therefore, that's collapse, this one. And then let's go to documents into lead our party from here. And then let's paste this a sign, save the props crew and paste it in here. Then, instead of out on this quality, we right I did. And instead of intrasection item. We just use our transaction. In this case, the I. D is set no matter what. And no matter what, exceptions are thrown, so we will not run into any problems here. Everything we left to do is important documents. So the out disco 80 is set. You might think that the same might be a problem without scope assault, but we do not need a results if one of the values are invalid. So that's fine. If the out document is not said Okay, I saved. 39. Exceptions: So let's go down and talk about our two catches. But before we do that, I just like to opens a process. Both feel once again just to remind you of that. In here we had overthrew activity, throws a business one exception. And as I said, this business rule exception will be caught by the news catch. And this is exactly what we have here. So when I throw this exception, it's caught by this business or exception. So the work show continues from here, and all it does is just to a sign the business exception to with a value off exception. And if you might remember this from the transitions, this means that it will go down with this business exception transition in the same way. This for less. I can't hear for all other types of exceptions. So this will set the system description to the value off exception. And again, this means that we will use this transition and thereby go to utilization. If an exception is gone, 40. Set Transaction Status: So let's never get down to the finally plus, yes, we can see here. It only consists off one trackage. Let's open that up in the tri. We have a workflow called section section status. So let's go ahead and open up. There we have it. There's an annotation here, a two part off the workflow that describes in detail. What is the difference between a business rule exception and a system exception? But down here is what really mess. We start here and then we have a decision. We can open up the conditions over here. So this one states that if the in businesses exception, there's nothing and the system exception is nothing. Then the condition is true. The in system exception and in business exception comes here. These are off type exception and business rule Exception. As you might remember, if assistant exception or business exception has occurred, these will be set. If not, then there will be nothing. So this one is actually asking has an exceptional current or not if they have not, we followed the true and go down to this success secrets that's over Now. In the beginning of this, we haven't if There's Ah condition here this. Open that up here for more clarity. It's This is if the intrasection item it's not nothing, meaning that we are working with protection izing. And also this in transition. Eyes him. It's a type of this is eagle two, the shoe item type. Then the condition is true and as you can see it down in documents as the default of the intrasection, Ivan has the common type of Cubism. So this should be this would be true if where you think the orchestra que and that means, then we will go down here to the then and use the settlers X and state of activity. You can see in the input properties over here that we set it to successful instead of field . After that is another sequence with some looking. We're using the at love field again. And let's open up the collection of feels. As you can see, there's quite a lot here. The 1st 1 is the transaction status, which of course, is success. You might remember these variables from our kitchen, second data and here we we talked a bit about them and we noted that they were optional didn't do anything about them. This is because we already have all of this information in a queue, so there's no really no need to do more work to have the loving in two places instead of just one. Furthermore, I don't really know anybody who uses this part of the framework for anything, so you can just leave this be. Then we have a lot message when you sell off country file and used the duck message, but also success. So give us the message we want when we have a success. After that, we would remove the same law fields again. You can see that here. So let's never came back. So if this is not a facist, it means that there has been an exception. Is a business or system, and if we followed, lift the false Here we have a new decision, and this obviously checks. If the business exception is not nothing, if this is not nothing, well, there were no an exception has been thrown off the type business exception, and then we go this way. So let's open up the business exception sequence. This looks very similar to the success sequence, and it's pretty much the same that happens here. The condition here is this it? The only difference is here in the central section status. Let's have a look at the inputs in the state of field. You can see it's now set to failed. And in the every time we have Children, business had not education. And you can see in the reason we also have an input. And this is the message off the business exception. This will give you an an explanation off what actually happens, why the business exception was thrown in this looking sequence. We have the same mess in success. We have our collection off fields on. The only difference here is that it has the value off business exception in the section status name. Furthermore, in the luck message, this difference here where you think the block level off error instead of just information and where you think, of course, the Mrs you know, a country file that represents our business. One exception, So let's go back. And so now I know that if a business deception has been throw, we go this way and this is not nothing, then it must mean that the system exception. It's not nothing so and a system exception has been thrown. Then you go this way. Let's open up this sequence. This as you can see, he has a bit more to it. So let's just start from the beginning. We haven't assigned at first and this has the condition very similar to the ones with so before in the if statements, let's just open it up. We have again if the sensation item is not nothing and the type off type two items, so it's actually the same. But we don't just use it in our condition. We save it to a shell retry variable. If you see down here, it has a type off bullion. Why don't do this? It's because we will use it for something else a little bit later. But we will also use it as a condition. You know, if justice before again we have our sexual section status and with status offense in the input and now we have the area type off vacation. And again the reason is the insects insistent exception that message. Here we have another side where the Iot retry number is set to the entrance s and Isom Dart . Retry number. So this is an information in our Q item. Variable, Wet says at what's what number of retry were at. We'll get back to this. I'll retry number. Let it later. Then we have again our at luxury. It's and once again the same information andan education exception value in the section status name. And now things are looking a bit different than the other sequences. Here we have our retry current transaction workflow that is involved. Let's try to open that up. 41. Set Transaction Status 2 - Retry Current Transaction: So this looks like this. We start up by a decision. This see the condition? This takes the Mex retry number from the country file and converted to an integral and asks if this integral is greater than Syria or not meaning that Do we want to retry the transaction on it? If not, we go this way and have a lot message has the luxury era and the message. We just don't out here. It looks like this again. We take our application exception message from our country file to a strength. They protect the message from the system exception. So we get the exact message off what has happened and why The exception is thrown. And then we have ah little string here. That's this at source and then we use the in system exception that source. And this is very clever because this actually gives us the exact activity at which this system description has occurred. This is also the reason that it's a best practice to name all of your activities custom. It will be much easier to find out where this has occurred. You met him for what, For example, that you have 10 assigns in the road and one of them fails. But they all called a sign then this will not give you that much information. But if you have, if you have named them all, then you will very could be able to find out where the exception has. Okay, so let's go back in after the doc message. We have an increment off our transaction number. So just say it states that the Iowa transaction number is increased by one. We'll get back to the sense I o transaction number a little bit later. If we want to retry the transaction, we go this way and right down to another decision that's open to condition up. And this says if the retry number is greater than our or equal to our mastery, try number, then the condition is true. In other words, this means that we have reached our maximum number three tries, so we don't want to retry anymore. There we go this way. We have a message, and it is exactly similar to the one with wonderful one before, except that we also have a little Mrs here and saying that maximum of re tries has been released. If it has been reached. Then we reset. This retry counter in this case is the island of Capri. Try number, and that's set to zero. We're good spec to the retry number as well. A little bit later. And then after that, the transaction number is implemented just us before. So we have, ah, sex number and we at I want to it. If the return over is less than the metal, return over, then we follow this past. We have our luck message. As before, this is just a warning, this time in deductible. It's very similar to before. Except here. We have little sequence that says what number of retry we had. But again, here we have the same information. This the other ones. After the luck message, we use the condition in Allah scope you retry and this is an argument that come from down here. It's a Boolean. Let's just go back for a second. Any important documents here and you can see this is the cue retry variable that we assigns in the beginning. So it comes from a pier and has been the same condition as if so in other words, it's stating that We're using an orchestra if you and if we are using an orchestra. Q. We shouldn't using the I retry number because it could be all handled by the orchestrated you. So if it doesn't orchestrate, you go this way. Just increment the transaction number. If it's not there, we go over here and increment the return of by one. Yeah, so this was everything about the retract credit protection. Well, let's close that After that one, we have again our remove feels and all of the lock fields that just added I removed again. After that, we have a track ish where we try to take a screenshot. This is another very handy feature that makes it much easier to do some deep parking. If Marissa and you will have image off what happened and you can see if the system is down or it's just a new situation for the robot that you need to grow them in the tri, we have our invoke off take screenshot work from, so let's put that up. The first we used to take Screenshots, I came to you and I put this to the screenshots variable. Let's go down to miracles and then you can see it has the variable type off image. So this is just an image then you have. If signals insists that if the i 05 part it's no coincidence, meaning that the arguments I five path is not provided, then we go down to the then let's open up this a sign that's down here. And then it says that we will initialize the screen shirt s. That's this he usually in folder and give it, ah, value off exception screenshots and then make it unique by using our. Now this is a date time, but this is the current time we're using here and then turns it into a string off this format way have both year, month, date, hours, minutes and seconds to make this unique. And then we use on a sign And this a sign we make a new file info bearable with the input off Idol five path. Remember the five path this you should left here? Oh, it comes directly hasn't unison document and then we make a check If this creature folder exists or not, this is what 70 we usually director class and the exists method to see if the directory or really exists. If it doesn't exist, we usually trait directory activity and create the directory. When all of this is done, then we continue. Use the safe screenshot and save our just taking screenshots to the five path we won't. Finally, we have a lot message just stating that this screenshot has been saved. Let's close this time. If an error or cruise wouldn't taking the screenshot. The exception is caught by the catch, and we just make a warning that we failed to take a screenshot. Finally block. That's nothing. So let's close down this. The final thing in the Central Texas status is another package, and as the name states here, we will try to close our educations. It's open up this book, so there's nothing really here. So in here you will have to program that you, uh, closing your applications. We love to that. No, 42. Set Transaction Status 3 - Close Applications: the final activity in our section section status. Workflow. It's another try fish in the try block. We haven't invoked where we invoke thee close or education sweat feel it's open A so I can see nothing really haven't here, except we have a lot message activity with the level of trace explaining that we're closing the medications. Let's implement this for our case. In our case, we're using the calculator into extra and a little bit off itself. So let's open them them up so we can try to close it. The techno just a lever. Here they go. So to close them, we just also close amusing the close button we will usually created. Let me correct that three times. Okay, it's Let's take the 1st 1 on Indicate on screen. Okay here and we just give it a problem. Internet Explorer, Cause then let's bring itself to the forefront indicated screen, because again, let's give it a problem, except for us. Let's bring our speculated to the foreground and need to get on screen. As you see, we can't really hit the trump on here, but it's just try newest because there are some tricks to hit lists when you can't find an exact sector. In this case, I would just use the position and change that to the top. Right? To be sure, I hit the middle of the right button. I will just use offset off minus 15 on the X axis 15 on the Y axis thing. We should be right on the just give this a problem. It calculator. Let's try to run it. There you go. All the applications anarchists So we can close down this again. This was the tripe lock in the exception back. We have a live oak and this is in case our try fails. Then we will try to kill the processes with our kill processes where from We have implemented this for our case once before. And as you see, there's this orange color explaining that not all arguments are met. So that square an important documents and then we need our string off eps to kill. Let's try to go to our country file in data and coffee, and then let me show you what we did earlier. We have and name off after kill and the value is its moral common capital, Common Excel so we will use this name off effort killed. Just cut that. Just don't come pick. We need to pass them in as arguments so we can have the value here. But before that, we needed inside the central section status. So this awfully surpassed to be passed in an argument. Let's create in, Let's go f And it is a string. Now we can then saying quote argument again and MEPs met in. Okay, there you go. In the exception, we just have a warning that the kill or processes fails and therefore the exception. The medications weren't after us properly. So its collapse, this one collapse this one and then we just have to finally and nothing isn't here so we can collapse our try closing provisions. And this was just everything about the central section status. Let's go ahead and close that about. As you can see here, we now have some orange color, so import the documents and this is of course, the office after kill just created that needs to be kept to a value. It's this could be found in the conflict file. One of the value I covered that was extra kill, and it's just been that interest rate. There we go, and then it's preferably 43. RetryNumber and TransactionNumber: So before we move on, I promised to talk about more about the return number and transaction of her. If I am, put the arguments, expenses and you can see them here. The IOA retry number and the Iot transaction number and they back to the retry number. Entrance session, number levels in the main They're living. Try and cover this to retry number. That's okay. I didn't go up to search and universal search and face it in here Unless we can see I only get one hit. And if I I don't think on this, I can see it here. The only hit is actually the definition off the variable. So this means that the return number is not used in the framework at all. And again, this means that if you want to use it, you have to implement is yourself. It's not part of the framework. And the retry number is only relevant again. When you're not using the orchestrator restrike functionality, so then you will have to implement it yourself. I've also probably transaction number from here. Ankle to such and universal fish just removed the return number and paste this in here, and we get trees this time. 1st 1 you can see by the V here. This is just a definition off the very people. And then we have to lock messages dunking this and this one takes us to get you a section data. And as you can see in this lock message happening up here, then it is used right here to look where we are in the process. And this is similar to the final one down here. This is also part of the transaction data, and it opens up here and you can see it here. This is part of the transaction gets in second day. That's well, so the transaction number variable is just for locking purposes and to show you how far along you are in the process. 44. Log the Result in the Excel Sheet: there is one more thing we're missing in our process. Protection. Let us to set the status and resolved to our excel file with the numbers. This will make a very good sense to do in the finally blood because in a finally, that will be executed. No matter what, we can have successes. We can have business room exceptions and we can have system exceptions. But no matter what happens, the finally will always be executed. And that is success exactly what we want so that we will get our status in our Excel report . Also, if an exceptional cars so in the finally at this point, we have actually done our calculations and we want to set the status and the result. Now I selfies it was Just open up our itself again and recap out that looks I go to the input fuller and open up our numbers file. So in the first problem, we have a lot I d Then we have our numbers. The first number we want to add and the second number want it. They will need to fill out the result off this calculation. This rotation and then the status is this okay or has been an exception. So that's a minimize this. So to do this, that's great, and you workflow. But new secrets and call it said, Exhale status. As always, What we want to do first is to have a message. I'll go to Texas such language. I expect that it It's used a lot level of trace and give it a message sitting so state. The first thing we want to do now is to read the actual report. So this happen. Cell applications go to work with the Excel file to open it. We need to provide the path to the actual workbook, and we need to pass this in this an argument. So I would go to Athens and name it in. Let's go. It's still it already has the direction in, So that's fine. This Type it in here. There you go before we move on and let's go to the properties and heaven over those. Let's go to options and first we have the auto safe option. That could be quite Andy, because we also want to do some updates in the Excel file. So this make sure that it's safe off Maggie. Great new file doesn't really make sense here because we want to use the five we already have, and we want an exception to be thrown if the she does not exist. So let's remember this one. Macro saving doesn't really matter for this purpose because there are no Metro's in our file. Then we have read only a so we want to write something into the file. It doesn't make sense to have this one enables invisibility. We can remove that just for a little bit extra performance. So, first of all, to read what's inside the excess it this use a read range activity. I'll track that in here. There are two options way have here. The 1st 1 is the name of the sheet sheet. One is the default name, and if we go to our sheet, we can see it has the name off sheet one. So we will leave that as it is, the range. It's what you type here, and if you just used to double quotes, it means it will read whatever is inside that means all of it. And that's exactly what what in options you can see here we will leave this check. Mark? Yes, There are hit us in Awful. And in upper. We want air their table that we can work with. So I was pressed Control K, you call it Excel report. So what we want to do now is to look through this new data table and find out in what row Find out what room were actually working with at the moment. Unfortunately, we can identify this by our I d. So let's go up to activities and sexual for each through. And Frank that in here we want to look through our newly created table. So we will talk that in here. Oh, I can see I have made it over here. It's just she quickly there. So now we want to find out what rule we actually want to ride our results and status in. So I go back to the sheet and here we have our i d calm and this is the one we will. You looked through all the rows and then we will find out if this I didn't come corresponds to the i d. On the transaction Isil were actually working with is this is the case. Then we will print. All result here and all status here. To do that, we need a condition. So I will take an if statement in to find the i t off the road. We will use our rule marital that either and then five i d. And this making interest. Now we want to compare this to the i d off the transaction where if you work with to get this, I d we need another argument. So I will name this well in school and this is again. So compared to let's say this is equal to in Hawaii. So if the i d of the road equals the a d off the current protection, they will go to the then. If not, we'll go to the else. We will not put anything in the else for this time. Let me just green in this one. If correct grow found. So if this is cigarettes row, we need to assign the results. So I will search for a sign. Drag that in to assign it look and use the rope apple. I think you will remember this was called results and then we want the result off the calculation off this transaction. We don't have this here. So this calls for another argument and we call this one in Underscore. There you go. And then assign it here. There we go. Now we need to assign this status. And to do that we need to know what waas the outcome off this transaction. So I'll go up here and find another If and first of all, we want to check if a business expense perception has cracked. So let's make to an elegance. It's called it in on the school business rule exception. This is off direction in enough type. It doesn't have to be a string. It has to be, uh, really, this has to be a business for exceptions. And so we want to check if this is nothing on it. So if in all the school business rule exception is not nothing, then it means business exception has occurred. So Griffin also just renamed if to get a better overview off what's going on? So if a business were exception, has a credit reports, is that then and then we want to assign a value to our state is called that Is this one right here? So we're Zara rule Variable item, use a status and then we want to give it this status so we would use Lee business. One exception variable and say that message and it will give us a clear message into the stairs. No, well, the status called. So if this is not a business rule exception, then we go to the else and now we want to check if it's it is a system exception. So we'll dragon in the life and justice before we needed in the document. And this used should be our in system exception and for the type a prince for exception and take this system. There you go. The condition is pretty similar to perform it should be in the system exception. That is not nothing. Then we'll go this way. If it is nothing, then we go this way. So just rename this one. No, we don't want Teoh assign value to the stairs. Come. So we're taking a sign and just like before, we will find the states coming here now It could be an obvious choice to do it before and say in the school system exception message. But at this point you have to think about. Who are the readers off the report? If you are a development like you and me, then it will makes perfect sense to do like this in the school system. Exception, but message. Because then we will get information about first and is it a selector era or is it some invalid value or whatever it could be? But if your user off the report it says, is actually a business user, then they don't really know. They don't care about what s electorates, so they will probably need a much clearer information or a message in their language, you might say. And in this case we will assume exactly that. So I will make a custom exception, misses you and just right and, uh, pressure cooker. There you go. This will make more sense to a business user than some selective that is not present. So final step is this else, and we'll go this way. If the business rule exception is nothing, and this system exception is nothing, that means everything has worked as planned. So we'll assign this one again. We will find our status, and this will We can just give it a message off. Okay, there we go. Now we have a result in our result column, and we have one in our state government. And what we need is to actually write a pectoral Excel. So go to activities again. Search for right rich and dr about it again. We want to write it in our shed one and we want to write it in the A one and the date table we want to write. It's the DT itself. After that, when we have found our I d updated the status and results and written it back to our associate, there's really no need to keep on looping through our except report because we already know what we have done and just to finalize this right range. Just forgotten option here. We did, of course, to add Harris. Yeah, now that we have identify our row, we have assigned the resultant status and written it back to the associate. That's really no need to. I looked through all of the rest of the rose off the report s. We now have already done what we want to do. So let's go through activities just sexual the break activity and inside that right here when I entered this. It means that the loop is it stopped. So this is actually what we want so to, um And then we're actually done with our sets Excel status with you. So let me go ahead and close that time and go to projects. And as you can see, we have it down here. But let me just follow the for the structure. Hands drag it up to all work profiles, folder Nereo. 45. Invoke Status Workflow: only thing left to do is now to invoke this newly traded weapon. So I will expend all worker fans and wreck this set X still status were filling. As always, there's a little warning that we need to do something that is to report our reference. So we have a lot five documents from that effect. One is the path to the exit. Let's just go down to the country file and open that up. There we have it. And as you might remember then we previously to find the path to our coverage to our numbers path file. That's an asset in orchestrating. So this is part of our country file. So I will just cover this name of the asset. It was a delegate. Go to your path, have been right about our country and number path and then district for our i d. I will search for our i d. But as you can see you, it's not really there. So I will cancel this one and go up to ah, try block in our process. Tradition include here, go down to a variables because I know that the variable is defined in this space and then I have our i d variable here and in the scope and see, it's only defined in the process current transaction izing secrets. So I will expand that a little bit. There we go. I would do the same with the result, went up here and then closes down and go back to finally import documents and expenses of it. And then right, I d and their habit. You saw it should also be here. Out there we go for our business reception and system exceptions. Oh, just right. All business exceptions variable in here and system exception here. There we go, all mapped, and we're ready to go. The only thing missing in positive infection is just the final catch here. This is if something goes wrong with setting our transaction stages off getting our associate, we have the lock level of fatal here that says that the central section stages AML failed. This is actually not necessarily true. It could also be our said Excel status file. So I'll just shave, message him or sit pixel stays fit. There you go. And then we have finally block. But nothing is in here. So let me just go ahead and collapse everything they go get back toe, try 46. Introduction to the End Process State: in this little will make a deep dive into the final state in process and go through all the settings off the state. We will also make their finishes finishing touches to our case. 47. Overview: our in process stayed is found here. It is executed. If a system exception occurs from initialization or if there's no more data to process, it's opening up in our and process. Everything we have is a trackage. Inside the try. We have our with airflow, close old invitations. Then we have a catch. If that fails and then we have a finally that doesn't contain anything. Let's go back to the tribe. 48. Close Applications: Let's go through all the activities one by one, you know, try block. We have our invoke where we invoke thee close. All applications were killed. Let's open that up. As you can see, this is the one we make previously where we first close our Internet law, then close except and then close our calculator. Nothing has changed to this one, so let's just close that again. In the exception, we have locked message with the block level off warning and it has a message saying evocations failed to close gracefully and then a description off the exception message and sauce. After that, we have another well known were from that is that you kill or processes. Let's open up That left one. You have a knock message and then we split three. The in Moscow abso kill, find common the in Let's go after kill. It's just a string. Then we looked through all of the items in this newly created array after kill. If you can see here and then it just kills it. Process again. Nothing has changed to this withdrew. The only thing we need to do is to import the arguments and the value off the strength with the after kill is found in our country under the key? Yes, I think we just tend that interesting. You finally is sober, for nothing happens. 49. Improve the Close Applications Workflow: Actually, we need to make a small change to our clothes. All applications work feel So let's open that up first. If you go to the cliff intern extra close bun and open up the selector, we see that the title is set to blank page dash into No tomorrow. We, of course don't want that because we actually want to close one down, one drive. So let's put a estrus care so it will close down into next. Laura, no matter what. Euro Philomel when closing down one Dr. Open it here, this pub off. Okay, so we want to be able to close all steps. If this public place now therefore go through activities, antivenin exists and write about it and then indicate the public and give it a new name. No. Then go to output. Impress control OK, and give the variable name off excess back in activities. One. If put that in. And that's a condition we used. The problem exists unbearable. It's over. Given a new name, it is. And if it exists, we want to click the clothes old test. So that's taking a clear and indicate the close all test one there we go much better. Furthermore, down in the kick itself, we are not necessarily having excel open. So let's make a check that Excel is actually open before we try to close it down. How then take the and it exists in again and indicate oppressive to I never get sick. So So if the Excel close bodily isn't here, then we will present so we'll make a new variable control. OK, it's called Excel Open. I don't take my, if again, and it's a condition you see excel open, variable and put the click exact clothes in the car finally and your name if accepts over because it down the calculator should be fine. Number one, I save it and actually dominant. 50. Create the Workflow to Upload the Excel Sheet: as part of the case, we also need to upload our excel sheet with the result and the state is off all the calculations to one drive. We will therefore make a new work profile to do this. So I say new sequence and call it upload to Hannaford Center. And as always, when we prayed a new work profile, we start out by a lot. Crepin you lot of trace and right. Uploading to what Right? We are now working in a browser. So we will stop attaching the brother. We could use the test cross activity full it Franken in and I indicate on screen here we have ah, one drive. So I will just rename this one. Dr. There you go. So it just to minimize this one What we want to do is to upload using this upload button and just uploaded to the root. To do that, we've got to activities and search for all clicking duty. Track that in and then you see indicated elements press the upper body at him. First thing to do, it's really name it up. I'll just go back manually and press the upper body so we can configure the next steps. First thing is to type in the path off our is over. So dragging the top into activity syndicate right where I I'm going to insert if I name. First thing to do is rename, and then we need the path to this file. We don't know this in the workflow, so we'll pass it in as an argument. I'll call this in the report, find it? Yeah, into that year. Funny thing to do is just press the open bottom. So we're just dragging in the likely Tinti and years. Oh, they will go. And this is, uh, simple were from to upload to address. It concludes that 51. Invoke the Upload Workflow: Now we want to implement our newly created workflow into our in process. But one thing we have to think about is that we only uploaded if we know that all Rose have been processed. Let me show you what I mean. I'll go back to Maine, then take a look at these transitions. The in process can be executed in two ways. Either if a system exceptional curse or is there is no more data. And of course, we don't want to uploaded to one drive. It's as if a system exception has occurred, because then we have not necessarily processed all the rows. So we only want to do it if we're coming from this transition. So let me just open that up. So down here we have no more data, and in this case, we want to upload this sheet so I'll make a new variable to take care of this. I'll call this all road, so 15 and it needs to be a 1,000,000,000. They would go in. His scope is right on, get from section data, but wanted to be wider. We will expand that to general business buses so we can access it in the in process. Now it's just a sign of a majority. If there is no more data, then we're down here and then we can set the upload to one drive to true. We don't need to take care off the other scenarios as the bullion as a Boolean value defaults to force. So it's it will always be force. Unless we go down here, then we can never get back to in process. You can also do that by using the destination. Come here. There we go. 30 minutes. We will start up as the best practice with a trackage strike that in And remember, we need to do this before we close all the applications so dragged in Here they go and then just rename it. Try to offload. Report to what? Right there. No. As you can see, there are some flu virus indicating something is wrong. And this is because we haven't defined a catch it Let's just do that. We just make it a system exception. Never go. Ah, now that we're down here, this just take care off the catch. The only thing we want to do is look that something went wrong down here, so I will sexual luck message, track it in and said The lucky level off era. And then we need to make a message saying something went live with uploading. Then we can make it in space and weaken. Put the exception, but message. Then we'll get an exact error message. So let's go back to try in here. We want to have our workflow. That's uploads our report to one drive. So let's go to Project and a blow to one drivers here. But to comply with our best practice, it moved to work for all of us. And open that up. Then we contracted in here. We just need to import the high currents. Now what we need is the revolt. Follow him and before we can find that in our country file. So that's right traffic. And the key is number path. Then we say to throw Okay, and there we have it. Oh, and pluses is now confident 52. Run the Dispatcher: So now our robot is actually done. So let's give this a test run. But before we do that, let's just go to our numbers file in. I'm going to data it. Could another there have it? As you can see, we have some values that are 10 and we made a check for that. But we also made a check before values if values were in America and we also made a check, if the values were negative a lot. So let's try to see if these checks work by adding some invalid data. So we're gonna let this year and they get the number here. Some special characters, stuff like that. There you go. Maybe another negative number here. Let's save it before we run the framework. We should remember that we used the dispatcher and performer model, so we should actually run the dispatcher first to add value to the Q. It's just open up orchestrator that we have here. Let's go to juice and we have a reset of Allah numbers. Q. As you can see that, no, I sent for meaning. So let's try to run our dispatcher. Come into and let's run the file that this better is not done. Let's go to all this later. I see. Now it says that six remaining. But as I told you earlier, Officer, I compared it a bit slower updating this on this page. So they try to your transactions there could see it would have all of our 25 fighters. If you're going to one of them, you see the values off two and minus four this close that I can go back to the cues. We're not ready to run off framework. 53. Run the Performer in Debug Mode: So now that we have data on cue, were ready to run our performer framework. This is the first time we run this. And as with all big projects, when you run something for the first time, some errors might occur. But let's see what happened and take the errors as they might come. I will be back to file if we try to open up your path, we can see that And ERA has actually occurred. Is here in the type into usually where Europe cannot find the selectively created earlier. Let's go ahead from Stop this. There we go. Let's go to target and selector and open you probable curse because this is a passion selective. We're using the oil one dr dot com But if we compare this to what we actually took now this is called one drive that life had come and no longer this page that has changed. When we pressed the Senate button with that from need to make a change to this or press okay here and select all four cities contract them out of this scope, you have it and then we let's recreate the directors the user name in the next button before the password and sign it button. I just need to put in the email. You do? Course that outlook. I took up the road. Then choose possible structure and they sign it. That should be much better. So let's closes down and tried to run it again. 54. Run the Performer in Run Mode: now that that is fixed, let's try to run it one more time, are usually run file action this time. - So the robot has finished executing and, as you saw it added all all the numbers, and I upload the result into one drive. So let's go into one drive and see if it looks like expected. So this goes one dr dot com Inside and there we have our number five. So here we have our results. Let's go through some of it. The results. So the 1st 1 to plus nine he was 11 and status. It's OK, That looks good. May the next one. We have a STD in the a calm six and become you have no result because these numbers are not possible to add up. And we have a status off invented in potato that looks right for the next one Down here, two on minus four. Well, one of the values were not in the expected range, so it looks like everything is working every morning, too. Just go to your path and show you he as well you can see that's the vengeance were not in the expected range that we have a business were exception for this transaction. And we also have a similar one here. And then we have one with invented in potato. So it looks like things in the exciting. It corresponds to what we see in your path. 55. Look at the Results: Now let's try to go to orchestrator to see how things look. There looks like we have 25 remaining, but now we can refresh and then it's a serial Remain. In this overview, you can see the average time was a few seconds. We have 13 successful protections and 12 business exceptions on zero application exceptions and this open up and viewed consistence. And here we have an overview. So let's try to open up a business exception. Is he here? We have a failure of 10 gives the exception that the values were not in the expect range. It's over up another one. And here we have value of ASD and an exception saying invalid input data. So things look exactly like we wanted them to. Let's close this one. No interesting one could be the lucking pedal. Here we have the luck for everything that your profits Justin, If you Yes, you might remember at one point we added a lot off, not feels to one certain lock message, and this is the one the transaction is successful or the business exception one. Let's hear the details and even see these extra look feels that you could choose to fill up with more data If you want to. Again, this is the optional step that's your path, puts it on. If you just take the one below it and open that up, you can see it doesn't have these not feels, has some other ones instead. 56. Summary and Key Takeaways: in this course, you learned everything there is to know about the your path. Robotics in surprise framework. We went through all the states properties aesthetics and implemented a use case, which took us around all corners off the reef framework. The three key takeaways off this course are one exception handling. You have to think about what happens when your robot fails, both in terms of reporting and how you restart your systems. Furthermore, remember to think about business world exceptions and make some checks for invented data to the dispatcher performer model. This was the model where we and outdated to the Cube with the dispatcher and use our performer toe actually perform the actions on the data. This is a very clever model that makes it possible for us to scale our robots three reusability. Split your components into smaller components and avoid toe at business logic to your components. Then it will be possible to use your components and other projects so that you don't have to code it on again. 57. Join our LinkedIn Group: now you finished the course and we will ask you for once more favor. Please rate the course whether you found it gotta back so that we can improve as instructors. If you want to learn more about your path and engage in discussions with like minded developers, there's a link in the description to Arlington Group here on this, and I will answer all the questions that you might have about this cause we will post book bones material here, so be sure to join, and I will see you in there.