Blue Prism Bootcamp | Andrew Seeley | Skillshare

Playback Speed

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

Blue Prism Bootcamp

teacher avatar Andrew Seeley

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

56 Lessons (4h 12m)
    • 1. Introduction

    • 2. Blue Prism Tour

    • 3. Blue Prism Portal

    • 4. Project Roles

    • 5. Process Lifecycle

    • 6. Introduction to Process, Object and Application Model

    • 7. Blue Prism free download

    • 8. Blue Prism Installation Guide

    • 9. Process tour and hello world bassic

    • 10. Calculations

    • 11. The best way to layout a process!

    • 12. Data Items

    • 13. Decisions

    • 14. Advanced Control (Step by step, breakpoints, step over, debugging)

    • 15. Circular Paths

    • 16. Collections and Loops

    • 17. Layers of logic with pages

    • 18. Inputs and Outputs

    • 19. Local and Global Data Items

    • 20. Publishing

    • 21. Scheduler

    • 22. Process Wrapup

    • 23. Three layer review

    • 24. Object Studio tour

    • 25. Application Modeller tour

    • 26. Writing to notepad

    • 27. Reading from notepad

    • 28. Launch and terminate

    • 29. Object setup to connect to a process

    • 30. Using the object from a process

    • 31. Object wrapup

    • 32. Foundational App Introduction

    • 33. Ordering system download

    • 34. The ordering system app overview

    • 35. Setup

    • 36. Login - Application Model

    • 37. Login - Object

    • 38. Retrieve an order - Application Model

    • 39. Retrieve an order - Navigating

    • 40. Order view - Application Model

    • 41. Order View - Object

    • 42. Retrieve an order - connect to process

    • 43. Adding an order - Overview and Application Model

    • 44. Adding an order - Object

    • 45. Adding an order - connect to process

    • 46. Adding an order - continue screen

    • 47. Adding multiple orders from a CSV/Excel file!

    • 48. Adding an order - add CSV object to process

    • 49. What happens when things to wrong?

    • 50. Wrapup

    • 51. Best Practice Overview

    • 52. Secure your passwords with credential manager

    • 53. Developer standards

    • 54. Queue loader and processer

    • 55. Code stages

    • 56. How to recover a lost password

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

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

Ever wish the mundane daily tasks could be automated?

Learn from an instructor who delivers enterprise Blue Prism projects and has been actively involved in engagements that has won awards from Blue Prism itself.

Intelligent Automation is at the forefront of disruption, also known as the "digital workforce". It is transforming the efficiency of every organization function from finance, tax, HR and IT. This saves hundreds of hours of peoples time to focus on more higher value tasks.

What does this mean for you?

There are HUGE opportunist in this space right now, RPA grew by 63.1% in 2018 to $846 million. It is currently the fasted-growing segment of the global enterprise software market. This course will enable you to get a first mover opportunity in this market, and also prepare yourself if your role is at risk!

What will this course do for you?

This course will give you a clear overview of the different types of roles and an overview of the robotic process life-cycle. Then we go into detail on the three layers of Blue Prism using this to develop our very own bot to automate a manual process!

Further to this we also take a look at the best practices when it comes to implementing your bots in enterprise grade environments, along the way you will also encounter common issues working through to resolve them. Hint - without help this takes up a tremendous amount of time otherwise! All this is taught in a manner that is akin to hands on experience.

Key learning on this course:

  • The various roles on a intelligent automation project

  • The three layers of Blue Prism

  • Process life-cycle

  • How to security manage your credentials

  • Developer standards

  • Queue loader and processor enterprise pattern

  • Why code stages are your friend!

All my courses include: 

  • Unlimited lifetime access to the course

  • Future bonus lecture's and materials to this course are always free

Meet Your Teacher

Hi I am Andrew.

I created Seemu Apps to create and share knowledge I have gained on my journey in learning iOS app development. Too often would I look up on how to solve a problem to only find an explanation that seemed to be written in an alien language. As my skills have developed I can understand these solutions, however I remember what it was like to be a novice!

I have been programming since I was in high school and have been developing for iOS for 2 years. I currently have 12 apps on the iOS app store - one of which reached the Top charts in the Lifestyle category for most countries.

My aim is to share my knowledge by creating the courses I wish I had access to when I was learning development.

I also run a youtube channel and website which has quick tut... See full profile

Class Ratings

Expectations Met?
  • 0%
  • Yes
  • 0%
  • Somewhat
  • 0%
  • Not really
  • 0%
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: Welcome to the blue prison. He Zen master class. I will be your instructor and your ceiling. I am currently a manager and I worked on many automation engagements. One of them who have just recently won an international blue prison Rookie of the Year award. By the end of this course, you will build an end-to-end bot that can navigate, retrieve, and place an order in an ordering system. This will be done using industry leading pests development practices, which will save you a significant amount of time in the future when you build your own bots. Along the way, we will cover how you can get a copy of blue prison for free, that free layers of blue prism bleep prison enterprise best practices, how to schedule, set up and deploy and bought. This course was designed for those Avalon into break-in or upskill in the automation industry. The surprising fact is you don't need to be an IT guru to build and deploy your first bought. So you come along with me on that journey and let's deploy your variant. But by hitting the enroll button, I'll see you soon. 2. Blue Prism Tour: Okay, let's take a look at the Blue Prism application. When you open it up, you notice you got six tabs across the top and a bunch of icons on the left hand side. These both do the same thing. The icons are the home tab to studio tab control, analytics releases and system, just like they are at the top. You start off on the home tab, and this gives your body off the analytics on the system, and you can customize their slider own if you wish true, in the analytics top in a default view, we can see how many resources we have available to run automation. The total amount of objects and processes we have automated in a database what we're processing now, which is nothing and the largest tables in a database. And as you work of Blue Prism. Typically, this is the order events. Table grows over time, and you sometimes want to clean that up. Next level, we're going over to the studio tap. Now this is a bread and butter off what you'll be doing. A blue prism. This is where you actually automate processes and objects, so the process is automate orders tedious manual tasks for you and the objects. Responsibility is to actually interact. We have applications on the protesters Bihar. So applications such as word at look intel, explore any corporate applications and so on so you could see it got a list of order protesters and objects you've created here. Next up is the control room. This is essentially a God view off all your bots, where you can see what bots are running when they're on the status, if they were successful or not, and so on. It's also where your schedule your bots to run so some, but you might want to run once a week. Other ones you might want to run twice a day once during the day, once in the evening, you can also see a timetable and historical lock off any of the scheduling you've done off your bought so far, So typically you'll have a single person or a little over. Typically on an automation project. You have a person, or you might be split between developing but and managing the bottom, scheduling them in this control room function here. Next up we have the analytics tap. It's just like the home page, however, you can drill down into more their dashboards. Here, you can see on the left you have your or in custom dashboards. A tall library. Wait can actually customize your death sports, so you might want to add further dashboards in the system here later on, you might have a developer, dashboard and operations dashboard and a business focused dashboard, for example. Then you've got your releases. Area. So this is where you migrate your processes from a development environment to a production environment. You can package up a single process or object or many at one time here, and it also includes a version control and committing history here so you can go back to see who's created, what project, what packages, what the changes are, and so on. Finally, we have the system tap. This is where you control all the settings for blue prison, and there's also some advanced features in here, some of them which will touch on in this course, which include use of management and security audit logs. Web AP I services credential manager and so on 3. Blue Prism Portal: before we get further into the Blue Prism application, let's tackle the portal. Get to work. I go to portal dot blue prism dot com, and if you don't have an account, I highly highly recommend you get one, and you probably will want to get one body and in this video, So let's take a look at the route. First of all, under product, you can get the latest release under current release, so I recommend you use the most up to date version of manual developing, especially when you're learning. So you've got all the latest features. The core functionality off the apple itself doesn't really change too often. Typically, it's bug features and adding new features. The next really cool area. It's a digital X state, so it's gonna go to that now and what this is is. It has tons and tons off useful utilities from the community, either community members or other companies. Some of these utilities suffering others aren't free. There are some cools on here, such as OCR, so converting handwriting to text other ones which are currency convergent soaking, convert, us dollars, toe, Australian dollars and so on. So Maura Maura getting added to here by the day. So if you're stuck on a problem, I really recommend checking out if it's actually being done before on the Blue Prism Digital X State Going back to the portal with the robotic operating more, you probably were really to touch on this too much. It's more to do with the organization and business. So how do you deliver an R P A implementation? How it's governed, what controls you need in place? How do you deliver upon and what is the development life cycle of a boat? What technology do you need and what change management measures do you need toe have in place to ensure a successful delivery finally will go the documents. So under here you've got tons and tons off useful content. It's gonna jump to that now. It can be a bit often overloading at first. You don't know where to start, what to use, but it's really great if you're looking for detailed information about a specific topic such as visual basic objects, advanced data items, processes and so on. You can also feel toe by a category and buy release version, and this is always updated with each new release of Blue Prism by the documents are updated or new documents are added for new features. So if you get stuck on the nuts and bolts of a problem, definitely check out the documents here. Next stop is a learning tap. This is we can learn all about R p a. The main one. You want to look at easy certification and this actually leased. Or the blue Prism developer exams, the technical exams, the architect exams and so on. It outlines the puff on your developer certification path for the technical certification, profits on how to sit an exam and what exams are up. I really recommend looking at sitting an exam after 23 months experience because it wanted got that certification. It really opens up a lot of opportunities for you as signals to people that hey, you're qualified. You know how to use blue prison? The final area is community. So if we take a look at the community forms, we can say Here we have the blue prism community. You can see conversations, upcoming events and so on. So we consider upcoming events here on how this University of Sydney stays on top of class with up to an AI. That was a really cool project. I was involved with some really cool peoples. They can find out what's happening in the world and industry leading practices. Finally, if you're stuck on the problems such as you have a problem with outlook with automation, have a look it up on the phone to here. I can guarantee you will find out information on their Do not try and Google it because giggle does not actually indexer forms, so you'll get some other, much, much small community forms. It took me a while to figure this out. And trust me, you find much better information here on the actual blue prism portal. So make sure you've got an account. I use it all the time. Why not developing processes? 4. Project Roles: okay. Before we get into actual blue person development, we have a few short lectures on the type of roles in an R P. A project and how processes born all the way to be put into production. So feel free to skip these. If you want to the process object application. One of tutorial. Otherwise, if you're interested in finding out more about at a high level, how the whole project works and time, let's continue on. So within an R P. A project, you typically have a few rolls. These being the project managers. Grandmaster, the developer he bought controller. And sometimes you want have a dedicated business analyst and dedicated test up looking at the project manager or scrum master. What they do is they lead the project. They hold the daily stand ups, they organizer meetings. They resolve any Baucus to your project. They're engaging with the project sponsors and the key stakeholders whilst developing the tape skills and the managing the Tom on different deliverables for all the processes that way, as well as the operations off the process. Next up, we've got the developer. The developer, which is what will be covering, is actually building robots assist with the design document as actually defining what it looks like. Taking a manual process toe in order. Made a process. Now estimate the development timeline, and there lies with stakeholders that impacted by their pots. Next up, they have the book controller. He bought controller schedules, the bots in production. They might do some minor pot maintenance and for any major updates that work of developers to get those down to the but delays. We have the I T department for any system upgrades, system adages and so on to make sure any impacts to the bots are considered, you might having a bought being run tow us today, but a system might be operated, so they need to make sure all the stakeholders that impacted by this are aware of what will be down while the system is operated. Typically, though, when each around 20 to 30 bucks maximum typically, not anymore it gets too quiet a big limit. And this is where it's very important for the developers toe, have standards and have a consistent carding practice to make the block controls life. What a zero Next up we have the business analyst, they will gather requirements for any butts to create a design document or solution document mapping the menu business processes, toe an automated one and that work of transitioning the process to development. Enron Any workshops and follow ups if they need to seek any further information on the manual process and also finding more opportunities for automation. Finally, we have the test up. They test spots, twists, or they meet the requirements they create around the test cases and now run what's known as Happy and Unhappy Puffs. Happy Path Bay. A perfect scenario. The boat runs with no issues at all. The unhappy bay The application wanted crashed. How does about handle it? The book couldn't find an email you specified. How does it handle that? So all the bad scenarios, making sure the Balkan gracefully from an exception exit and notify the stakeholders and also run with user acceptance testing for the users. So that's all out walls. For a typical API a project, you might have one person doing two or three of those roles. It really depends on how big the teammates for a given project 5. Process Lifecycle: all right. Now it's time to take a look at the process development cycle, from how it processes birth all the way to getting a place into production at a high level . So let's take a look at it. It follows the three days discover, develop and deploy. Discover is whereby you documents the current process. The manual steps what's involved. Then you'll document the proper solution. You might automate all the manure process, or there might be a few things that can only be automated in it. Once that's done, if you decide to go ahead with automating it, you get sign off from the key stakeholders that are responsible the process. So that way they're aware of the impacts of automation in regards tohave to their workload and also any additional work and they still around that next up we have deploy. This is where the developer builds the process. They will test the process. They'll get access to a test environment and production environments. Typically, when the building now only developing a test environment and you get access to production environments typically your only built on a test environment. Only production will be locked down because you don't want to have everyone accessing sensitive data and system say shouldn't have access to and when they're finished about your process, typically wanted appears. Still quit coterie of that process to actually check it out. Make sure it's following any standards. Spot anything that might have been missed or could have been done about finally deployed. This is where you have your user acceptance testing, so you run the automated process by your stakeholders. Make sure they're okay and happy with it if they're good to go ahead. But I will sign off for that to go into production. Then you migrate the process into the production environment. It will be scheduled to run by that. What controller? Some processes might run quite off them once every half an hour. Others, and might early need to be run once a week for a massive batch job. So there you go. That's the overall process development cycle at a high level. Just remember the three days 6. Introduction to Process, Object and Application Model: all right. Before we get into building a process, we're gonna take a quick look at a very high level. How the process layer the object layer and the application will all work together, toe actually build out a process and 20 So it looks like this. We go toe start off looking at the process layer in this course that's the object layer than the application model. But let's see how all times look ever at a high level. And just keep this in the back of your mind as you're taking a course, and I recommend just revisiting this at the end because it will make a lot more sense later on. So what is H layer? First of all, the process layer is contains all your business logic. You don't start any application logic about the system your interacting with. So it might be word it might be at look in might be salesforce and what the service now so one. It only has business logic in the process layer. Next up we have the object layer. This managers the application. It connects a process to the application through the Slayer and what it will do. It will manage launching, operating and closing the application for you on behalf of the process. And finally, we have the application with the look and just imagine a map. And let's us say Outlook, for example, On that map, you have instructions on how to get to your inbox instructions on how to get to your sent items, instructions on how to create a new email, instructions on how to get to your calendar and schedule appointments. And so one that's all stored in the application would a lot. So it's essentially a map on how to actually send import and get out. Put back from the application, and it will send and receive data to the application on behalf off the object layoff. So not about me topping and text and actually sending back text or the way up pretty object layer to the process layer, which will run all the business logic on it. So let's take a look at the process layer in the next series of lectures and how we competed out our very first process 7. Blue Prism free download: 8. Blue Prism Installation Guide: All right, so let's take a look at how we could install Blue prison For this. You need to pistol Software Microsoft Sequel Server. We're going to use the express additional, which is free, and a Blue Prism application, which can be downloaded from a Blue Prism portal. And you also need your last far to activate that. So I've already went ahead and downloaded the software you can define the links for in this course. Otherwise simply Google Microsoft Sequel Server Express, download the free one. Finally Go to the Blue Prism portal, got a product Good, a cholera release and dabbling the latest Blue prism. So, first of all, you need to install sequel server, So let's install that now. Use a basic installation. Go except and install. All right, we've installed sequel Server Express edition. Simply heat connect. Now on this will just make sure you could connect to your database. Once that's wrong. Simply accept that, and then you can close the installation window and here exit Next up is Blue Prism. So let's run that installation the next except next hit next, and still all the features for it Hit next, Hidden stole, All right, Now we've got sequel Server Express and Blue Prism in store. Open up the blue prism at you can find that in the start menu when you let it, you might have an error saying it could not connect to the default connection database. Blue prison does not exist. That's fine. If you see that. Otherwise you might see the first time configuration or you need to do is go to configure. We need to go to create database, gonna make sure drop any existing database because I had a previous installation of Blue Prism hit. Okay, Could see here. Got database created. Don't go to test connection. We consume book database ality so successfully connected to our local sequel server and got Blue Prism set up. So we'll leave that as a default connection connection type this sequel server Windows authentication database over is our local computer slash Sequel Express on a database name is Blue Prison, which we just created. So here, okay. And finally to Logan, the defoe using I'm a possible will be admin and admin. You'll need entered a new password. So put that in hit finish, Then you successfully transit possible. Now, Finally, you can see everything's right out. That's because we need to head over to the system tab. We need to load our last fall. So go install new licence in the bottom, right? We're gonna never get to our wash info the store that and now you can see everything lights up like a Christmas tree. And we have our life sentence court with that is told One final tip. If you head on over to users, go to your admin user. Double click on it. You can go to expiry dates and you can change a possible expiry date. I'm gonna set mind really far in the future because this is a test environment and I don't care if anyone else can access it. So I'm just gonna say t 2030 and here, okay. And now possible. It won't expire for 10 years, so that's perfect. Otherwise, later on in the course, I've got a trick on how to reset your admin password. If you ever forget that, so you can get back into your blue prism database 9. Process tour and hello world bassic: All right. So let's take a look at creating our first process. Hello, world. So, in the process, in default, right click select. Create process. Give an aircraft process. So we're going to his Hello world it next on hit finish. Finally, this will create your process here and to open up simply double click on it. We will have our process opened up so you could see here we have our made interface and this is actually automated process. You can see it will start in the stop block here, and I'm finishing and blocks down here. You've got a bunch of controls in the upper screen. You can start the process with the great bottom. If you do that, you can see it fails because it always needs to finish at an end state on the main page, you've got a serious of the bulk options here. You've got the reset process, shows your errors and some various other options which you won't need to look at immediately. Next up is a panel on the left hand side. These or the items you can place into your process. So I got your point up, which is where you can click drag things around your link, which will actually connect eight. State off the process up. So if you connect, start to win. Make sure you reset your process for the reset button hit run can see our process goes from the start toe end, and it will always highlight the current state on its in yellow. Right next to the start button. You can run your process at different speeds, so I recommend running at normal so you can actually see what's going on if you run it at fast rule race. That that it happens is detained so you can't actually see the stage highlighting the current staging yellow jumping around easily. So when you're actually running about in production, it will always run on the faster spirit can. So make sure before you actually deploy anything you tested out or fast, because some bugs only happen on the fast money. But wait developing have it set to normal is a good measure. So let's reset that and look at the options after link we've got block. If you click on that, you can actually drag a block on the screen, and this is used to group similar stages together to make it visually easy to see in your process what is going on and too many exceptions, which is what happens when something goes wrong. Next up is a process block you dragged out on. You can link your process upto a sub process so you might have a sub process. That is a tax calculator and several processes rely on that to calculate tax information about an employee's salary. The business salary on DSO on. Then you've got the paid stage, and this is where you want to lake twice different page in your stage. So what? This man is up the top here, you can see we have main page. You have many stages pages in your process, and this helps to divide your process into small and manageable chunks. So cancel that and look at that later. Finally, you got the access state and recall the process object. An application model layers. The action is collecting up your process to the object, so that might be. Send an email in your object and your corn sent an email from your process. Next up is a decision stage, and you can use this to make a decision based on yes, no or true or false on what your process is going to do. So going back to the employee's salary example, you might decide if someone only over six figures they need to be placed into the executive group. Most of someone's earning less and six figures. They don't need to be placed into the executive group. Then you got the toy State, which is like a decision, states what? You could have multiple options. So if we open it up, you can add many choices. So if you want it to set a different tax bracket for every $10,000 you earn up to $100,000 . You do that in a choice stage, then you have calculation. You dragged out on this convey used to Catholic items such as adding number security. Want last one. So in yours at one plus one, we're going to do one plus one for the name store. Result. In Just to store here, click on that eraser bottom and what that's going to do. It's going to take that one plus one and store it in this store data out of here. So if we never next start upto one plus one, then to the end. Now let's run that all the way through. We considered the number two is in store, so that's used for adding numbers, building out text and doing very sorts of other manipulation for business logic in your process. Layup Next up, we have the multi calculation stage, and this can be used to run several calculations at once. So if you had 20 calculations, that was similar. Instead of having 20 calculations stages, you could use one multi calculates estate with 20 expressions in here on. I'm just going to clean up. See, at any time you can select your items and delayed them to get rid of them. Next up, we have that data item, and this is what our stories. So this is actually for storing data you want to use later or input into another process, or page will actually send out the results to the user. Then you've got your collection, which essentially is an Excel table for data items. So if you need to store some complicated data in a table format, the collection think it's like excel. Next up, you have a loop. So if you drag a leap on, you get a loop, start and leap end. And what this made is if you have a application that is looking at someone's emails, and it needs to go over there 10 most recent emails you can create a loop and between this loop, start and leap, and it will go through whatever's in between here 10 times in that example. If it's going through their 10 most recent emails, if they have five emails, it will only go through five emails so it will finish what it's finished processing everything in that loop. Next stop. You have a note state, and this is useful document in your process. So if you have something that's really complicated, you can do it. Super simple explanation here to make it a lot easier for anyone managing and updating your process to be able to actually understand what's going on Next up you have is your anchor stage, and this is used just to make your process nice entirely so you can connect to start up to an anchor stage toe one plus one to this anchor and the other one that looks really messy at the moment, but now, if we run it, it's going to go for all the excess stages, and they're just used to visually make your process a lot easier to understand. If you need to connect something toe way out somewhere else, you can use it to make the lines look a lot pretty up. Then you've got the end stage. You have multiple and stages in your process. So if you have different conditions to force the application to close or process to end, you can use a different and state for that. Then you've got the alert. This will actually visually display a pop up a left on the screen to the user. Haven't really seen it so much. Most robots, I say around unattended, meaning there's no human intervention required for most of processes in Blue Prism. Next stop is the acceptance stage, and this is what happens when things go wrong. You want to actually log what happened? Some acceptance might be controlled, meaning you meant to say something in a process went wrong. So, for example, if one plus one didn't give us a result off to, we could check if that number isn't too, then manually for an exception. The second type of exception is one that happened when something unexpected happens in Blue Prism and what that will do. It will go straight to a system exception unless you have a recover stage, in which case your process will jump straight to recover stage. Then, in your cover stage, you might do something like retried running this process three times, which will be indicated by resume. So recover any errors, resume and go back to try running your process. But what you might do in here is you might want to add, say, a retry count up. So that would be a decision you'll do if process has retried mawr than three times. And if the process has really tried more than three times, you might want to actually throw to a manual exception. So we'll switch this logic around, so that would mean if there's any errors in our process around here, it will go straight to recover stage. If they are. Logic here indicates, if we had something to be out of, to tell their protest has been run three or more times, it would jumped an exception. Otherwise, it keeps on trying. So this is super helpful, with some applications that can be quite intermittent, especially legacy applications. So you always want to show around your process a few times, and then, if that fails, simply gracefully, quit the process. So that's definitely a lot to take in around the process studio for Hello world. I suggest having a play around it. We're going to go over all these items in detail as we go through the set of lectures for protests. This is just to give you a very high level over you. So you have all the information in the back. You mind as to when you're building at the processes and in the next lectures, we're going to see how they actually used. So let's take a break. 10. Calculations: All right. So let's take a look at the various calculation stages we can use and what they can be useful. So we're going to do we get to drag and drop a calculation stage. 1st 1 we're going to add a numbers. If you double click on that, you condemn it. Adding numbers and in the expression we're going to do 10 plus five and we're just gonna hit. Okay, straight up. And let's see what happens if we link start adding numbers toe end. We're going to set start to the next stage. If you're on the main page, you'll automatically run from that start to end. Otherwise, if you've created this sub page, you'll need to manually set to start to test at that page. So I recommend you go to your main page and then do the calculations activity on here. I'm just a young each page, So you about to download them At the end of the section, you'll get a Blue Prism release file, which will contain what we've done to date a lthough avarice lectures. So we go start, we gotta run, we go through the end, we can see we get an error here could not store calculation results And what that means if we open up that calculation stage, whatever happens in the expression which is adding 10 and five year, we need to stall a result somewhere. So we're going to store the result in something called numbers. If you top it in, click OK. And run that again. You know, unless we get on that arrow. This is because although we've told it, the story numbers, the numbers data item doesn't actually exist. So easiest way to do that is you'll see this little box I can hear. If you click on that, it will automatically create a numbers data. Adam here. Okay, right next to it. Now, if we start out, process again. Here. Run. We can see here. We've got 15 stored in our data items. So how easy is that next calculation stage. We're going to join some text together, so we're gonna join text and Miss Textile Joint is hello. Thank And to join text, you'll need to surround your text in quotation marks. Since you've ever used Excel formulas, Blue Prism is very similar in X expression. So imagine the expression. He's an excel formula, then after hello door space than AmBisome then. Whoa! Okay. And close that off with the comments apostrophes again and then in the store. Result in. We're going to store message. Stop that in Hit that You okay? Now we need to use it late to make sure that joint tax is connected up in our page process and 20. So let's run that all again from start to end. Numbers 15. We can see our message. Hello. World is stored here nice and simple. All right, Next up, let's extract apart off text from a text string. So in a new calculation stage, we're going to name extract text. And what, you're notices down here, we have various functions, so these are hopeful function. So if you expand number, we can to got add divide and so on. And if you click on them, you get this nice function detail panel here. So what you can do if we go to the text functions, we want to extract some text. So we've got this middle function here. Just might need to resize your window a bit. We can see we've got text you. So if we can tap in Hello World without quotation marks in the text. The start point will do us too. And number of characters we want to return is for on what the really cool thing is is this is like a formula buildup. If you hit paste, you can see in this expression it pays the whole function for us, automatically formatted with hello world everything in the right spot. So what I expect here from this function detail is from hello world. We go to extract some text in the middle, starting at the second character, which is the and going for four characters in length, which will take us upto hello and what you can do before you even store this in the results or run the whole process if you just click outside hit validate. Got a little fella. If you just click outside and he evaluate expression, he concede the results straight away in the calculation stage, which is yellow so you can even test out what's going to happen if you calculation without storing it in a data item stage and running your whole process every time. Simply uses, evaluate expression too quickly. See what's going on with the calculation stage what the output result is, and then you can see if that is what you would actually expect from your expression. So we're going to store that in the stage Court substrate Data items should stay, create once again, connect that up. And finally, we're gonna do one more calculation stage which is going to call, get name, length and using the functions again. Fine. The text, the Elian function, which is life. And this is going to give us how long a string is. So we'll do my name, which is Andrew Sealy will store the results in name length. Here are five. Make sure you create that data. Items have got name length off to the side of it trying that'll up and then let's start at the beginning and he run adding numbers, joining a text. Hello, world extracting the text. Hello and finally getting the name length, which doesn't actually seem to be doing anything so we can see here. Our expression didn't save. So the reason for that is in our text we went to our function detail for length we put in Andrew Sealy, but we forgot to hit that pace final. So it didn't put in anything into expression toe hit paste here. Okay, let's go back to the start. Run it Start to win, but can see we've got Andrew Sealy is third ale characters in length. One final thing is, all these calculations stages could be consolidated into a multi calculation stage. So if we add that in here and we call it do stuff in the expression, we can have a click on a calculator symbol to get out. Fool. Expressing Editor Similarly, one plus one here. Okay. Storing will do one plus one. Hit that nice little button to create our data item again and all store two plus two in the store that in two plus two, creating that data island once again. Hit. Okay, now we considered got one plus one here and two plus two. Now, if we connect up, do stuff what that's going to do it is if you go back to the start stage, you started beginning to end that do stuff actually execute multiple calculation stage at the one time so we could see we've got number two here on number four stored here 11. The best way to layout a process!: all right. Before I move on to the next lecture, I just want to take a look, get the right way to lay out a process. Probably notice. We've only added a few calculations on the screen, but our screen real estate is getting taken up quite quickly. And trust me, I've seen someone process, and it takes a while to scroll through them. So the best practice I have found is to Iran jewel processes left to right, the left being the stop and the right being the end. So if we re arranged this simple process now left to right on, then all our data items will put it under each state. So, under adding numbers, what numbers joining text have the message strapped in text for the sub string? Did the name length will have the name, length and do stuff to do more than what calculations will have those data items under it. So let's rearrange that. Then you contract a whole back walks over everything, move it up to the top near our hello world calculations, and you can see here left to right, we have a whole lot of more a real estate on escalate to actually play with. So it's a lot easier to see number one at a high level. What's going on and number two. Typically to differentiate between a process and object. A process is always left to right and later on in object is always top to bottom, and an object is never too long. It's always the processes that get quite long, so it makes it easily at a glance to see if something's a process. The object. And also, if everyone follows the same standards, you can easily pick up a process, object and, at a glance, see what's going on super quickly and not have to figure out someone's development standards for Blue Prism. So I really recommend following standard we're going to follow for the rest off the course , and with your data items, you cannot put them above or below Any calculations. Um, that really depends on the process and will work with that throughout the course. The best way to actually lay out all the little other details. But just remember, left to right for process at a high level 12. Data Items: all right in this lecture, we're going to look at the data item stage, so go ahead, drag it on to your process, and then with your data item, let's double click on it and let's let it up. The first item we're going to look at is due date. It's hot in the data type if you drop it down. Communities have got several sorts of different data types here, and this is the actual type of data, that historian, that the first type is a date, which is simply just a date. Next stop is a date time, and that's a date with a nurse, a teacher at a time, such as one PM two PM, three PM and so on. Then we have a flag, which is a bullion, which is true or false. Next up, a number which stores just numbers. They could be whole numbers or numbers with decimal places. Then we've got password and passwords used to store sensitive data, and you'll notice on the right hand side. It describes what that their island tears for but with password. You should not use e password data type toe, actually store sensitive information. You should use a credential. Many drop because a hacker, well, someone who's on over ice can actually potentially access your password. And I'll show you that kind of tricky exploits soon. Next up is text, which is just storing a text item. Then you've got tired, which is simply a time time spent, which is the length of time, either in days, months, hours, minutes and seconds. Then you've got image which is used to store images and finally, binary, which is used to store files such as a pdf file, a word document, Excel file, and so on. To start off with, I'm going to select password. I'm gonna put in a super secret parcel right here, and we'll be able to read this data later on and figure out what it is. Next stop is exposure on the three options you have in here is statistic, and this is where the actual data item will get stored in the database when you run a process and that could be used for reporting purposes such as the Blue Prism dashboard or any other sort of custom dashboard or system you have. Then you have the environment, which means you can have different settings for this value. Depending on the Blue prism environment, you're so you might have a test environment and production environment and 40 test environment. My test Webster might be steam elapse dot com for slash test near production. It will be seem elapse dot com forward slash production. Next up, we've got session, which means when the actual blue prism processes running in the control room, you can actually see what the data item is currently storing and actually change it in there. You weren't used too much, but there are some times where you might want to say limit prices to run 100 times, and then it might be raining. And you might say, Hey, you know what? I really wanted to run 20 times around a loop because I need to use a computer later on for something else going to leave. That is known. Next stop is current value, and that stores the current value of the Data Island, then visibility by default. It's going toe heart this data item from other pages in your process, so main page data items and so on. If you don't eat that, this means board pages can access estate item. So for most cases, you won't want order. Different pages in your process about access to data item. You really want to be able the single paged about access it editor and so on. And finally, by default whenever these pages run. So in this case we have a data on was fate is going to reset value to the initial value. Unless you want to actually keep it set to something. Leave that by default, then here. Okay, we're going to name this data item sick. You are password next up drag calculation stage. And then in that, that we're going to grab our secure password and join it with an an percent. That's when empty street and then the store results in. We're going to store in hat password called this calculation State hack a password. Finally hit. Okay. And make sure you get that icons to create that new data item. No, we're going to connect this up from start to when. Now, if we run the process from the start stage hit run, it could see Boom. We figured out what I secure. Pass. What is? It's hello. So what? This means is any data item, which is I passed where if you have access to edit the process, you can actually use a calculation stage to join the password with an empty string. Store it in their data item that anyone can see what stored in there. So just be aware of that. And be careful of it. Should always use crayon toe manager for story, actual user names, passwords and so on. Finally, let's take a look at some of the fun of data items. So dragon, other data item onto the page. I go to name a number. They data type is going to be number. Initial value will do eight. All right, so let's drink a new data. I'm to our page and let's have some fun with it. So we're going to name a data item text. I'm going to name it initial age for the initial value, give a number eight, then create a calculation state. And in that calculation, ST on the right hand side with NCR data items here and in Texas, we can see we have initial age, so if you drag onto the expression, we can actually use whatever stored in there or a calculation stage, we're going to add the number 10. Do it so do plus 10 and call the calculation at San to initial age and store the result in age plus 10. We sort of click on the I consecrate that data item, drag that down and connect our process from start to win and reset our process, Then go to the start stage and hit wrong. All right, we can see we've gotten era. He failed to evaluate expression Initial age plus 10 can't at the text and you may have already guessed that the reason for that this air is happening is this initial age is a text data item, so you can actually add two pieces of text together like a number. You can join it with an air prism, but the actual text eight plus and number 10 just doesn't work because what this is doing, it's actually doing eight plus 10 in the background because initial age is actually stores text. So in the expression builder, any items and blue are a number purple are a data item and grain is test. So what we need to do is we need this to actually be the number eight. So let's go to cancel. Go to our initial age data item. The easy way would be to change that form the data type text to the data type number. But let's actually look at how we can actually convert is from the text. Eight Tow an actual number eight. Enough calculation stage with enough functions you can see we have this conversion drop down here, and this is used to convert one data island to another type of data arm so we can see you've got to number. So select that. Then in the right hand pain, grab out. Initial eight dragged out into their then in Knox restroom. You're creating a new line, it paste and you'll see to convert that to a number we used to number brackets are initial age. Our data item close brackets. So let's cut that pay set over the initial age. Here, take one. Final setting we need to do is in age plus 10. We want to actually store a number, so taint that data touched a number. Now recent out process on. Let's run that from the start run that we don't we can see we actually have number 10 being added to eight, which is a text data item. It's less actually how you convert text or a number. And now it. Let's say we want to convert the age plus 10 backed to text. It's super easy. Create a new calculation stage will call it convert number two text. We're going to grab age plus 10. It's converted to text. Simply add an empath m and join it to empty text spring. Now we're just going to add hello at the end of it and store the results you converted text hit the are consecrate the data item on. Whenever you hit that icon, you'll notice it comes up in the right hand side and it will automatically detect what sort of data item it should be based on the expression so it can see here it's actually being stored is text so hit. Okay, connect that calculation. Stay job. And let's run that from start to win. All right, we can see our converted Texas being stored as 18. Hello. Remember enough calculation. We're taking the age plus 10 and adding a string or text hello into it. So if we delete Hello. And just at an empty string hit. Okay. And a quick little trick and blue prison is you don't need to run the whole process every time. If you go right, click select set to next stage. You can run your process from any stage at all. So if you have a really big process and you're building or testing a small section over, remember to use rack lit set to next stage, and that will make it a lot easier. Toe actually hit. Run. Start the process from that stage and we can see here are converted. Text is 18. We double click on the data item. It's stored as text. 13. Decisions: All right, We're going to look at the decision state which can make your blue person process take different actions depending on the value, all the comparison of something. So let's trick it out. So what we're going to do is for the 1st 1 we're going to check a person's age that over 18 we're going to allow them to vote if they're under 18 were not going to allow them to vote . So let's send up the template for our process. We've got the decision, would name aloud votes. Then we're going to drive a data item at a calculation name that data item eight of the data type number Capitalist will be set AIDS. We're going to set the ace to 22 store the results in the age data item than in the elapse of wood. Wait, are going to do a check on the aid and now what we'll do for the age will check if that is greater than or equal to 18. That means Sarah, latter vote. So we select that it evaluate what you're notices. If you're using the evaluate expression in any sort of stage, I will be a decision with calculation, and you're using the data item variable. What you can actually do is set that to a temporary value to test that the results of your expression. It's reset that that 21 see that returns true, 15 returns, False said in or latter vote 18 returns. True, which is they're allowed to vote perfect. So okay, then, if they're allowed to vote what we're going to do, we're going to add a comment stage and we'll do the notes aloud. Votes otherwise will copy that note on will set the text really not allowed foot to light. And the cool thing with the notes stage is you can actually connect it up. So that way, if you're building out something and it's not fully implemented yet, you can actually connected up to your sons. And what you'll notice is when you drank a link out of the dissidents decision state toe Another stage. That will be the yes results. Then the 2nd 1 will be the no to connect up to the end. Let's run that now. To see how it goes. See goes through the allowed to vote stage when we set the ages 22. If we set their age to 16 Let's say let's see what happens. There we go. We can see they're not allowed to vote natural. Be not allowed to vote. No note. And with that, this isn't stage. If you want to swap the yes and no around you simply write. Please use a switch command, and that will swap the yes and no for the stages, eh? Connect up to so swap it back because what you'll notice is if you try and connect it up to something else, it's simply going toe. Always connect up the no stage and not be yes again to the easiest way is to switch them around. If you want to catch up to different results or delete them, remembering the first leak will always be a yes result, and the second will always be the no result. All right now, let's do another actively let's trip for a Spain email. So at the end off the first this is stage, we're going to drink it Daily Island. We're going to call it email contents. We're going to make it of a type text. It will set the initial value Tau Bay, Please send me your bank accounts, details, you know? Okay, then uses this season stage. Connect up the latter Vote on moral. That's a vote to that. That decision is no to a check spam e mail. And what we want to do is if the text, the bank, this is in an email, we want to mark it as spam because what we've noticed is that with emails, we always see bank in the content. If it to Spain me about 19 up to that time if we want to. Actually market is this game email, and we want to actually store that somewhere in a data. Items to drag a day on the island will call it Spam email and we'll sit the data top to flag. And that's going to start true. If this email content is a span false, if it's not so in check spam email. We can go down to the text function, and one of the items is to actually check the body of the text. So we need in string and we put in the text. We want to search, which is a email content there. I'll we want to sit for the key what bank it's put down. Now paste it in there and what This will do it always return zero when the match is found. If there is a match, it will return the actual start starting point off that match, which we can't do that in the Decision state. And this is state must be Iowa. True or false, it can't results in 01234 and so on. So what we want to do with do not equal to zero. And now what this is doing is it will return zero when no matches bound. So if we get evaluate selection with typing, give me your bank, we hit test. It's true because what this is doing is if this returns zero bank isn't in the email content. Otherwise, it means it's true. We've got bank somewhere in that, a mark content data item. So if we go Hello, how are you? It test that's going to returns. False. So now we've got a check for Spain emails, So Okay, then we're going toe. Add a calculation state call. The 1st 1 sets email as spin and any expressing simply do true in the data items drank you stand a mile from the flag. Copy that. Set email is spam pasted in and we'll do set email as not spam. In your expression, do false. And that's super good to store. False in this spam email data item here. Okay, that remember, the first link is always true or yes, so this will return True if it's spam email. So if it's true, we want to market email spam. Otherwise we mark it in. I was not spare connected up to the end stage. It's restart out process. Let's honor Antolin. So email content we can see here if we resize it, we've got to please send me your bank account details. So here, Ron, check for Spain me around. Now we found the word paint in the email. So we mark the spam emails. Truth. Try changing this to be something different without bank. And just make sure it doesn't get marked as spare as an activity and have it play around with checking for other words, such as transfer money and so on to get used to it. 14. Advanced Control (Step by step, breakpoints, step over, debugging): all right. Before we proceed further, we're gonna look at the various the bugging options that you can use to figure out what's going on when you're process isn't behaving in a way you would expected. Versatile. Remember, you can right click on any staging a protest and go set to next stage, then hit the run button and run the process from there. So it's super handy if you have a big process. Next stop. If I go to set AIDS, right, click on it and go set the next stage. There's these three buttons up here which allow a two step step over and step out. You know, process all these diverse for things, but the only one we're going to look at first for is step and we'll look at the other ones as we got for this course. The making to their full step is if you click on it, it will move on to the next stage and stop there so we could see set out, got age 10 to 16 can see allowed to vote if we hover over it checks. If the age is great in the 19 we hit step. They're not all that's a vote hit. Step again and approval to the next date so you can run your process one step at a time as you click on the bottom, and it really helps you do a deep dive right into the nuts and bolts. If something isn't going properly, you might have some really strength behavior, but you need to kind of take a snapshot of your process at eight. Step at a point in time, check out all your data items and find out what's exactly happening. So that's a super useful future. Blue Prism. Next start. We're going to reset this, and if you right click on check spam email, we have this thing called a Brightpoint, and that's going to put a red box around the stage. And what this does is when the process is running, assumes that hits a break point. It will immediately stop and freeze on that states. If we start the process from the beginning, it runs through. You learned us at break points, his reach come up and the process will stop writing and see the green run bottom again, and it will run through the rest up process and just the note. Break points are always there, highlighting in red. You have many on one process. So if we also do one on allowed to vote and run it, the process will stop there. Then we hit. Run keeps on going to the next break point and so on. See correctly do Brightpoint. This, along with sentiment to next stage, is super helpful. If you want to run a whole six or process and stop it somewhere and figure out if it's working or not working, it's super handy to do. Or just that, even just a test, an individual section off a process. Next up, let's restart the process. Run it from start to win and down the bottom in the bottom, right. We have this little icon here called Log Viewer, and when we click on that, what it actually shows you is every time you run through a state of a process, it will look exactly what's happening. So, for example, we've got the stage name. This one highlighted is set eight. It's a calculation date. The result of that is sick stain, so you can see exactly what's happening at every step in your process. in a fine grained log file. This comes in useful. If you're running a presence in production, something goes wrong or something that's a behave as you expected. You can actually see it. A look file as all the processes you're running super helpful for debugging. Just an important note on the longing is if you double click on any stage, you can see the state logging by default. It's enable you can disable the logging so it doesn't actually look any output, all local on errors only So two things to note Logging does actually take up a lot of data base stories, so I leave it enabled by default. But if you're running in a loop, say 100,000 times, you might want to say what for most steps in the loop on this, you absolutely need it next of all, sometimes you have sensitive information, credit card information, passport numbers, drive this last night's numbers of someone, and you do not really want to look for those at all because you don't want to be stored them cause it could violate a lot of government regulations, your own company's privacy policy and so on. So just be careful of that. And finally, in the edit menu, you can go toe all stages, and you should enable disable or lock earth only on all the stages at once. You can change the setting, so if you don't have logging on a process and you needto unable or two feet or something up that super here we go at it all stages and they were logging. It will enable longing for or stages in the process. Remember if there's any sensitive information to turn the logging back off for that? 15. Circular Paths: in this lesson, we're going to look at circular paths, which is a part off your stage, looping back on itself and repeating the same steps over and over until it meets a condition to accident loop. So to start off with, we're going to add to data islands toe our process, the 1st 1 more name, talents, and this is gonna keep a council off the current loop were on. So make that number of initial value of one, then data to call limits. Make the data type off that number with initial value off 10. So what we're going to do then is at a decision stage and wait there to call it at limit. And then we're going to grab numbers. We're going to grab our current counts if that's greater than or equal to limit. So make sure you got limits here. We are going to exit out loop. So drag, I lied to that. If it's at limit, yes, we'll finish our process. Otherwise, put in a cup at the top. I wanted to start and we're going to then loop around. All right. Perfect. So let's check out our process writing. So let's just start up, we can see we aren't at the limit. Those top left bottom right, and it's going to Capel looping around. So that's because out parents number one is not greater than what we could do. A limit. So what we need to do on every loop we need to increase account by one. Otherwise, this process is going to run forever. So if you're making your own loops or circular parts of blue prism, make sure the condition to exit it. In this case at limit. He's actually executed at some point. So let's pulls a process. Reset it and above the absolute mint, where go to add a calculation stage and call it increments count in our expression that helps to account, plus one delete that connect off with the ankle, then connected all back up. And now what? Start out process from the beginning and on income account will need to store the results in count. Forgot to add that. Okay, then run out process so we can see he now cant is number two go to bump up to three and it's going to keep on going up every Tom Mick over there. Luke and once we reach, the at limit out count will be greater than or equal to 10 and it's going to finish in the end. So I recommend, if you do your own custom, loop always is greater than or equal to for your condition. Don't just use the ankle, too, because if we want to see if counts was equal to limit on, let's just say we increase that can't buy 10th or 12 at a time. For example, you could go over the limit, and this will be looping around forever so we can see where at 10 now, though at Lima. There we go. Our process is finished. So what? This is useful for easy and a lot of applications. You might have a database with a bunch of rows in a table or ex L. C. And let's just say you have 150 rose. Your process will count the number of rows, which is 150. Store that as a limit and to process each one, you'll process that that increment the count by one. Like we've done in this example, process here with a look or circular path 16. Collections and Loops: arriving this lecture. We're going toe. Look at Loops in Blue Prism. So what we're going to do is drag the loop stage onto your process and you'll notice you get a loops thought and live band. So the way it works is anything connected up between your loop start on Loop End will constantly execute over and over again. So what determines what is his start of a loop and what finishes a slew? Well, if you double click on it, you'll notice we have this collection. The way these loops works is that loop over a collection data item until it's finished processing everything. So let's drag on a collection Data Island. We're going to open it up. We're going to give the name names on your notice. Have got some fields. So remember this is kind of like next cell table, so we're clean the ad to two hours. The 1st 1 is going to be first for a first name. The second feel be last for last name. We're going to give above the top texts, and if you go to initial values, you'll notice this is blank. So in order to add items you need to hit. Add row in the bottom right, and you can add as many first names and last embassy wants the drawn done Smith. Then we'll name the 2nd 1 Joe. Duh. At another a cola, Sally Lost name Brown. So this collection for each road, the loops go to go over it and then you can access any other data items or fields in that road connects us a first name or last name in this particular case for our collection. All names. So since we have three names were go to make a loop, looped over names and it's going to lose play for it three times Hit. Okay, go into your loop. Start selected collection names here. Okay, then connect your process up from start to win and I lose Not gonna do anything, but so we hit run and our loops going to run. Now nothing's gonna happen. But you notice names goes to row to then write three. It's going for each item in the collection and then for the current road off the collection , it's executing any of the code in between loot. Start on loop. So let's go ahead. Out of calculation stage we're going to call that set greedy. We're going to stole the result in greeting and any expression. We're going to do the texts. Hello. Then join it up. But go to expand our collections and you can see we have our names collection here. Expand it out. We got the first name or last name, so drag their names start first. And what's that? Solar. Do it ampersand the space and the sand, the names that lust and what This is, the way the way collections works to access the islands. You do the collection name in this case names. Then whatever the names off the field you want to access. So dot first is access that field. So with anything within a collection, you start and in the field name to access that. So first name dot last name would go to store the results in greeting. So click on that button to correct the text island. And now let's connect upset grading into our process. Let's take a look at what happens so don't just change is based around a bit more slower on the debug speed. Let's see it run. He set grading Hello, John Sleeve because that's a first row in our collection. Then Joe and fund lost one is Sally Brown. So this is going over each item in our collection and then with inside this loop, if you access that collection and dot first not last or anything in it, it will access the current item that the loop is on or the current road. The loop is on. So we dropped back into our collection. When we go through the loop, start accessing this collection. Give us a first road, which is John Smith. On the second round of the loop, we get Jodo in the final round, we get Sally Brown. So that's all well and good for us to set out reading. But greeting gets over with and each time. So let's take a look how it can store the greetings in a not a collection. So when they leave ends, we have a grading for everyone. So what I need you to do is so what I need you to do is to drag a collection stage. We're going to call the collection Greetings. Just add one fields The work called greeting all the time. Text. Make sure that's actually greeting initial values. We're gonna leave empty. We're going to store some values in here later on. So we're going to actually look how we can add euros to disk readings collection at the very end. So what we'll do to do that Dragon Action stage on and this is to connect up to business objects. So you may remember the process object and application more layers way, actually using this action stage to access the object layer and do something. So what? Blue prison comes with the comfort of a collections internal business object. So select that and then dropped that action, and it has a whole bunch of utilities to manipulate collections. So for our greatest collection, when you want to add an island, so what? You need to make sure there's a road to store in, so by default, it's empty. So if we go add road, then we need to give it a collection name, so we give it the name. Greetings in a string. This is going to add a new road to disagreements collection, and that will be the current road if we add or get any data from this collection, so name the action called On the Road and then finally to actually store something in there . We go to put on another calculation stage courts, store greeting any expression. We want to grab this greeting here, so that's a text grating. So whatever stored in that grading in our collections, we have our greetings collection and we have out grading so dragged out to still result in Remember the syntax of a collection is a collection name, then followed by thought, then the field manual. So I have a store or access a very from and then connect that a lot. Okay, so we can see we set out grading John Smith, get a right added to greeting. I'm not a right added to it. On the last loop, we get 1/3 and final road added to it and then it actually ends. So let's go into greetings. Take a look at the current value stab and we can see we have stored all that ratings here. So we have Hello, John Smith. Hello, Joe. Go. Hello, Sally Brown. So remember, for any collections, if you want to add a roto it you need to use the action with the internal collections. Once you add a road, it will be the current wrote off the collection. So any calculation stage storing values or getting values will operate on that current road . Then, if you add another road, will operate on the next row and so on. So at the very end, we'll have free rose. The last ad row will be this one here, so that means any storing of any greetings will be done here. So I assure you with an example, if we copy in a store grading stage said outside the loop, and we go to put in their own grading will be hello. A lot will name its by for now. Store it in great and start grading. Connect that up outside of our loop than to the end stage and let's see what actually happens. You might have guessed that Banel So let's test that theory. So we're going through setting the greeting here, adding over to the collection, storing the grading. We're on Sally Brown, which is the last one. Then we store grading at the end, which is by for now. Now, if we access our grievance collection card values, you probably expected this. The last one is by for now. So that actually overrode Hello, Sally Brown grading with rifle now. So collections remember, two key things is within a loop that will operate on the current row. Within that loop, referencing that collection will operate on that. And if you're also adding a row toe a separate collection, the collection will then actually operate on that road. Now collections are super useful. You can actually wrap anything from an Excel file and stored in the collection. So that's super useful to loop over everything in Excel File. And it's much more cleaner than the previous circular loop. We could done so one final hand with loops. If you select a loop up the top here, you can actually set the color of the states. If we said it's a blue on blue pants of a blue, we can assist in Texas. Be bold. It makes it stand out a lot more where the loop starts on where the loop ends, because if you have a big process, it all kind of blurs together. So by making blue Mexico immediately obvious where you'll be starting on where you live presenting and you can actually send the fonds type the color and so on for any stage, it also super useful 17. Layers of logic with pages: in this lecture, we're going to look at Blue Prism pages. So on your stages items what I need you to do is find the page triggered onto here. Once he dragged it on, it will create a pop up of a cradle reference in existing page at a new page in crane reference would or at a new page without bringing reference to it. So what these options mean is might record that's had up the top here, and then in each page you have a start and end. So what you can do, you can create sub pages. So your process on your main page it's getting too big or you need pay just to do certain functions. You can actually create a sub page that will do it for you. So for the 1st 1 we go to add a new page and create a reference took. We're going to call the page ad numbers it finished. Once that's done, connect the startup to add numbers and connect that up to the end. All right, and I have this AG numbers page here I've already formatted up from left to right and what we're going to do We're going to create a cattle, a state, and it's going toe to numbers to add numbers in the expression was simply had two plus two for now and will store the result in a data item called Results. Create that here. Okay, once that's done, connect startup toe add numbers. They're not to the end Now what you can do back on the main page if we wrong this process from the start, well, said it to run a bit more slower, good at numbers. You'll notice where on the ad numbers page we add our numbers. Results is four. Then it goes back to the main page. So, like what you can do also on the main page. If we copy add numbers added in a few times, let's connect it up and see what happens, so we'll start the prices again. We can see it's adding numbers. Results is four. Look at that. We can call add numbers over and over again, so sometimes the processing a lot of records, and you need to do similar action for the same record. It can be advisable to break those actors up into the pages you need, and you can run them over and over again. If you need to do that, I'm not a way to make pages up the top. If you right click going. You were gonna do a multiplier page. So multiply numbers. You okay? If you right click, go to manage pages, you can reorder them, you can delete them and you can copy them. Just a note. You can't actually delete the main page. Every process must have them a page, any cigarettes, thoughts. And so now, going to multiply numbers. We're going to do the same thing. We're going to create a calculation states called multiply committed to times five for this one store. The result in results. Great. That Taylor item. Connect that up. And now what we can do if we want to add this, multiply numbers to the main page. Simply drag another patron about process and we can see create a reference to an existing page. It's it's no. Next you can select a page who wants the process to go into. So in this case, multiply numbers hit finish, and then we'll connect that off. So we have a add numbers and multiply numbers, you know, process now, if we run that from start the Wind, our process is first going to go to the ad numbers page. Add two numbers together. Then it's going to go to the Multiply Numbers page, and it's gonna multiply two numbers together so super useful. So make sure you save this a little. Make sure you say this protest because in the next lecture up, we're going to get inputs and outputs, which is how you can send data to pages and get out, Put off it, which can be really cool if you need a page to a certain pace of functionality and return you some sort of results, so stay tuned. 18. Inputs and Outputs: All right. Now we've got Outpost to set up with pages which will add multiply numbers. What we're going to do, we're going to add to data items called number one. We're going to set that as a data type number. Set that five on and we'll add another data. Autumn, This one will be number two. They're the type is number, and we're going to set that to to. So what we want to do is with number one and number two, which is 5.2. We want this page to add the numbers this page to multiply the numbers. So what we can uses something called inputs and outputs. Imports will send the data items to this page to be used, and outputs will actually get them out. So if we double click on add numbers, we can see we have its inputs. Stop here. This outputs tap here and finally conditions. So with the tabs, you can actually add the important apple tear to set it up. We need to go into the page. So So in the end numbers page, if we double click on the start, we can add to imports were going to name the 1st 1 Number one, the 2nd 1 Number two. Then you can give it a description, which is handy. So if anyone else is also working on same process that can figure out what's going on so we can do the first number, toe and phenomena two or the second number. So at set the data type which will do number finally, you need to actually start in the data item. If you click on the little creation icon, hear it will automatically take whatever you put in the name for the import and actually create a data on for us. If we go OK on our prices now we can see we have number one and number two here and what we want to do. Once we added, we want to actually send the results back to the main page. So if we go toe end, you can also create an output. So let's create an output, were going to name results and we do scripts and results off adding to numbers the data type as number and finally would to get value one find the result number dragged into that and kill okay. And finally, in the ad numbers page in the ad. No miscalculation. State. We need to get rid off. Two plus two. Drag your number one on their plus with the number two data item here. Okay. And now let's actually check that out running. So head back to the main page. Go to the start tab. We're going to use the step command to run it step by step. So we're own at numbers number one and number two. It's going to be import into this page, so if we hit step, it's step up to start. We can see we have number one is five. Number to us, too. Then add numbers. We're going to add number one and number two, So step over. The result is seven. Remember the end? We're out putting that result. So if we go back, we've stepped to the main page. The addition result is number seven. So that's taken used inputs and outputs on each page, which is super useful. If you have a page that needs to say at numbers, but you don't know what the numbers are going to bay and to your retrieval from a system with double click on it remember, the name is just a human friendly name. Grant what, two years? The value is actually where the values being stored in a data item. Or we could hard code a number two, for example, if we wanted to. Let's stage up back to number one, and the same goes for output. The name result is a human friendly name story in addition, results is where it's actually getting stored. And remember, in the ad numbers page, you actually need to set up the inputs on the start stage. And finally, the end stage is way actually set up the output autumns. So on multiply numbers go to the start stage on Let's set up the same for this, the second input of number one and number two. And finally, at the end, let's had an output folder results. And finally, in the Multiply States, we need to delete out calculation. Do you? Number one multiplied by number two. Okay, now let's get run and see what happens so we can see 215 get added to make a result of seven. We multiply it so two times five equals 10 with quite a result simply by importing the number one and number two items into these pages. So let's sense number 1 to 5. Then he reset on your process and run up again from scratch. Five plus five equals 10. Then we multiply five times five, which equals 25. So pages are super useful when you have a bunch of records and you need to do a certain action, such as calculating someone's tax, it's going to be different for every person. So it can simply use a page to calculate tax in that example and put in the data, such as a salary, that tax rate and so one and you could have it output how much I need to pay in tax. 19. Local and Global Data Items: in this lecture, we're going to look at global data items. So in the previous elections, we saw how it can add and multiply numbers by passing and data imports. But let's take a look at how it could create a data item on a page and got access from any of the pages and out process. So start by dragging a data item onto your process, we're going to call it global number one, make it a data type number, initial value as 20. And in this visibility on tick hide from other pages in the process. And that will allow for global number one to be out of the access by any page in the process. You okay? What's that set up? Copy that pace that we're gonna call another one Global number two. Make that 10. Visibility will be haunted by default. So Okay, cause we copy that. Copy another one. Call it global results on set the niece of I to be blank here. Okay, So what we're going to do, we're going to create a page which at global number one on global number two together, and store them in global result. So drink up page onto our process, we're going to add a new page and create a reference to it. Global. That hit finish. Connect that upto out process from the previous lecture then in Global at we're going to first lay out the process from left to right. Then drag the calculation stage onto it. Double click on it, and what you'll notice now is in numbers. We can actually drive Global Noble one onto it. Do plus at global number two, then drag global results into the store, resulting to actually store in there. The name, the calculation, global calculation and now this is going to add global number one. It's a global number two and store it in global result. So here. Okay, then connect up your stages. Now we'll go back to the main page and let's run out process from the global ad stage. So we've selected run. There we go can see it with fruit of global calculation and it was able to access global noble one to which is 20 and 10 which them added together equals 30 which is that labour result. So just be careful when using global data arms because it might be tempting to use it because it's easy to access. But for maintenance it could make you project quite messy for that and also debugging trying actually find out where they are, what pages are interacting with them and so on. I'm gonna show you a super useful for technique for organizing them because it will be cases way need to use them and what that is. If you create a new political global's, then for these page, we're going to make it go from start to bottom, which is different to out of pages on. You'll see why soon? Because this is quite a unique paid what this is going to do. So go back to our main page. We can cut and then paste these data items onto another page for heat reset, weaken, See, Got 20 and 10. They released values and what we're going to do Well, drag them down. The wonderful Now we're going toe to new data items onto this page one record reset. We'll set that data talk to number off the value 10 unchecked visibility so it could be accessed from anywhere. You okay Next we're going to copy and paste that on this one, we're going to name no reset. And this is going to be exactly the same. Except for initialization. We go toe antic, reset to a new suit value whenever dissipate run. And what that means is, now that we hit Okay, whenever we run through this page, this reset will be reset to the number 10. If we've changed this, no reset, it won't be reset at all. So let me show you how that works, because it's easier to see what's actually happening with it. So in our main page on a new multi calculation step and also in group, if you take this page box, you can see here we group out data islands by page. We expand global's, we can see numbers. Then we can see all that global data items here. So that's another super handy reason as to why you support or your global data. I'm on a single page because if you grouped by page, it can find out where they are. So 1st 1 for the first expression, we're going to drink, reset and do plus one, and then still that in reset, we're going to repeat that for Nouri set So this is just adding one toe. Whatever the current is, which is 10. We're going to call this ad to reset values, okay? And finally make a page create a reference to existing page called Global's Hit Finish. Once you've done that, connect this up to your process and then set the next stage Toby add to reset values. Snaffle go to out Global's page. We can see Reset his tan. No Resendiz. 10. Go back to the main page. Hit the step bottom. Go back to Global's Weaken. See, Reset is 11. No, reset is 11. Go back to your main page, hit the step, but in a game and now what she is We're at the start hit step What just happened? Reset got set to the number 10 which was the initial value for this page. But no recent is still 11. So that means by utilizing this technique, if you have a global data item that you need to resect it initial value, you can run through disc labels page to reset it. And if you have global data arms don't want to reset to their initial values, you simply uncheck that box. We'd step we finished the and other process now, finally on the global page to actually organize this, I recommend creating two blocks once. Don't be called no reset. The next one is going to be called reset, reset and that way for our global numbers. If we open one of those, these get reset every time is paid runs so we could drag days into the reset box. It's needed it up a bit, so this is handy. So that way you can quickly identify at a glance what or your global data items are. And if you do run through this page, everything this reset box would get recent to the release of value or is a no reset. We'll never get reset. So whatever they release Waas, it's little process runs completely again from start to win. 20. Publishing: all right, We're almost at the end off looking up processes, and we're going to move on objects to actually interact with applications soon. But before we actually do that, let's look at how a process will get published to production briefly and have to set that up, which wouldn't take too long. So what happens is we remember this control room is in this available process of section here that list all the available processes that are running in your production or live environment. And on the right side, this is all the systems you can actually run it on because remember, your processes might take a long time to run. Or you might need to run it a lot of them at once, so you can have a lot of different resources, which are a lot of different systems. You can actually run them on. So actually publics out process to the control room, head back to studio, open up the playground for your pages process, and it's really easy, but it's really hidden. So on the main page, if you double click on this default box here, you see in the bottom left publishes process to control room. It's that simple here. Okay, you'll see a green tick, which indicates it has been published in the control room, and now you just need to save your process and will save the note as published. It saved changes. Close that down and now free goods to control room. We have out process here, and if you want to run that to test that that it works simply dragons onto the race else you want to run it on down the bottom on the environment, it will add it here as pending to run. If you want to start it simply right, click, it starts. We can see that process run super quick. So remember processes run in the control room at the maximum speed they can. So before you publish your presses to control room, I'd recommend doing a run where you said it to run at maximum speed because sometimes defects and bugs only show up when your process is running at full speed and to verify it's wrong. If we double click on that, we can actually view the logs of the process. Sorry member logging lecture can see we have here with added number, said calculations is 10 multiply. The result is 25 global calculation, the results of 30 and so on. With the logs, you can also export the current page or the entire log. Teoh Excel Textile Heat Team L to view outside Blue Prism. Remember, you don't want to look any confidential information such as possible and so on, and one more hint in the logs. We can say we have add numbers up here. We click on view parameters. We can see the imports were number 15 Number 25 Output result is 10. So that's for our page ad numbers. You can see the states too hot here, So substrate is another page. We have this thought, calculation stages and so on. So in the time it's run on the resource start So Super Eastern verified at your processes run and when you are running processes and production if something goes wrong, this is what you need to look at the logs, and you can also search him, say, For the number 10 we go find all and say number 10 is highlighted whenever it appears in red. So super useful 21. Scheduler: the final island is we don't look at how you can actually schedule a process to run on a regular basis. On what you do is in the control room under the schedule. Step you right Click. You go in you schedule. We're going to call a schedule. My first schedule. You can give it a description. An initial task it will run and how often this schedule run. So this particular schedule we're going to run weekly we're going to start on Thursday will start at 9:15 p.m. You can run it every one week on Thursdays or on a certain working, they say the first working day off the working week. Making sure there's no holidays were just simply going to run out on Thursday, and we're going to run out every week. Now what we do with good schedule set up. So whatever tasks are under the schedule will run once a week every Thursday. So if we go to the new task, you can see we have this available processes tab and available Resource is so what you need to do is drag your process on to a resource which is at computer and down the bottom. Now we see we have are scheduled sessions we have seen with playground pages, and it will run on the resource desktop. You can also set up the setting, so on complete stop. Once it's complete, you can have a delay. Say, if you need to wait for anything, you can wait for 10 minutes, etcetera and on any exceptions, will abort the process. So named its task run cap he Leight's process and to set up that scheduled you rightly Connick hit Save and now schedules actually set up. And if you need to actually test your skipped Iowa and to actually see what their calendar is, if you hit schedules, you'll see this blue prism schedule a page. If we go to the next page can see here, we've got my first schedule, which runs at 9 54 Go to the next week on the arrow. I got my first scheduled. You'll notice the dates off the top of changed and so on, and we've your schedule. If you want to test it, you can right click and go run now. You could retire it if you no longer using up, but you want to keep it around. You can delete it well. Some schedules you might want to retire, then bring back into production once every six months, for example, during peak periods off a process that is usually manual. And if you go to the timetables tab, click on today and tomorrow you can see it. What's happening in the next two days, all in the one of you, so super easy to use super easy to set up. 22. Process Wrapup: congratulations. We have just covered the presence later recalled that all the business logic allies in listen no application logic lies in here. We'll be covering that in next of lectures, which will come but the object model of the application model. Then after that, we will tie it all together into one example at quick ritual, create out own order, mated set off processes for 23. Three layer review: Okay, so just finished looking at the process layout, which contains, or the business logic where no application logic distorted here for the app you're actually automated. Now we're going to take a look at the object and application Modelo layers. The application modeler sits within an object which will see soon, and the object will manage the application. Connect the process you made to the application manages launching operating in closing application. Where is the application? Mortal lock? Or actually map the imports and how it all ties together. So let's take a brief look at the object. Then we'll look at the application model and will be on a quick hello world up toe order. Make note pad. 24. Object Studio tour: all right when they are going to look at the Object Studio in Blue Prism. So in the studio, tap on objects right click, create a new object Indeed. Boat. We're going to put Object Playground for our 1st 1 hit next hit, Venice. Then we've created our first object here, so let's double click on that. Open it up, move everything to the top left, and we're going to take a look at it, so the object will be slightly different to the process. Your modus verse of up the initialization pages different. What happens is with an object whenever it loads. This initialization paid automatically runs at the start in case you need to set up anything, say you've got an application you need to always navigate to the search page. You might set it up here. Other than that, the next difference is the stages. You'll see. Most of them are the same as a process. However, there are a few different ones. The 1st 1 is a read state, and I'll go to open up note pad to explain what each of these will do. So we'll type in Hello world. Let's resize out windows so what happens with the read stage. It is actually used to read text out off application in night part. You could read the Hello well, text out of here, for example, the next differences the right stage. And that's actually to put inputs Where program, so in a right state, is to write Hello world or by world No, pat you. That's what a writer does. Is it right? Input to an application? The next differences navigate, and this is used to navigate around an application so pretty sick self it spent So it's used to click home bottoms. Click on menu options on so on. Next up you have your code state, so this can be custom code. It could be in visual basic seize up or F, and sometimes you might have an object that actually doesn't do anything in application. But you might have a custom code state do something that you couldn't otherwise doing Blue Prison or makes some steps super for you. The final difference is three White State. What the White State does, you see Well, wait a predetermined amount of time to moving on to the next step. So if you have an application that takes a while to load. You can wait for 10 seconds and then you can check if it's loaded. If it hasn't loaded, you can then time out phone exception saying, Hey, the application didn't loaded time. You might want to try, gain or send an email message to due process owner, notifying them for them to investigate. Why the applications going slow so that the main differences at a high level and in the next lecture will look at the application water Lola. And then we'll create our first object in no pad to control it to type input and get out put out of it. 25. Application Modeller tour: Okay. The final layer is the application model, which is included within an object. So it's up the top on the toolbar here, so select application model to come out. And when you first clicking, you get this manual. You can define a new application model. You can share the application model often that object, or you don't need to use an application. Mortal. This object on what the application water doing is it's connecting these read, write and navigate stages toe on actual program on your computer, so go ahead and just leave it as defined. The application model hit next. Then you'll see a message indicating what type of application you're using. In this example, we're going to use no pad. But if you're using different application, you're typically I have selected with this application. If Java was used to create application selected Java paste application. Otherwise, if the application is in a website, select a browser based application for Chrome and Firefox or Internet Explorer and May frank application, you will rarely use so hit nets. Then you need to indicate what type of application you zoom always select. My application is launched from execute, will file because this will be used. Tow launch on automate your application hit. Next, We're going to go browse. We're going to find that path so that's in in the C drive Windows System 32 and find nope. Abdali XY Select Open that will include the full path to application hit next. If you have any command line parameters, put them in here but hit next to you what usually want hit next and leave it to non in basic automation techniques and hit next. An application manager mode. Just always livers default it next that hit vanish. So now we'll have that application more dollar here and it might be a bit confusing, but just hit this launch button on. We'll see no paddle waters. So what? The application model it is doing is we're going to map this note pad interface toe actual elements which can be used by our object to write and get input from that pad. So in order to do that, you'll notice we have this application explorer. Here we have Object playground. If we click on that, that has all the settings were out. Application wants path to note pad. If you want to change a command line, parameters and so on. Then, under this tree, you'll have all your elements in the application. Teoh actually set up a element with the application wants. You'll notice you have this. Identify bottom now. So if you use identify, this window will hide. You could see the top left or top, right? We have this using identification toe. So what this means is when we hover over, no pad will see this red border. And that's actually selecting this element toe associate. With that, I'm gonna go through the different identification tools and then actually select one super heat control. So if we hear cults, you'll see you've got your eye automation mode. You won't really need to use this that much unless your application can be used with other spying modes. And these are spying modes off the top, left on top, right here. Hit altar switch, spy modes, accessibility mode usually use if none of the other spy moto work. It gives you a lot more greater detail, but it's a lot more difficult to set up and make sure it works correctly. He hit also, you have Rachel mode and you will pretty much never want to use this. This is essentially saying at Position X and Y on a coordinate click down on the mouse. But that means the application has to be opened up in the same window size as you use, despite every time. And trust me, that super fiddly with the other spying modes, you don't need to open up your application in a certain window size in the Senate resolution and so on. So he had all to go back to win 32 mode and hover over the actual note pad interface. With that highlighted in red, he control and click on it. And then the application model will now pop back up, out. Element one will have elements hyper edit. That data type is text and a whole bunch of attributes under here. So we're going to name that note pad area to start off with and essentially element type. Add it and data top Texas saying This is a note pad area. We want to be out at it. If you want to find out what element actually is, let's move the window around. Then, if you click on an element in the left side here. So no had area that we've already identified with Spy mode. So, like Pilot, that's going to highlight for you right now. So that gives you a preview or what this actual element is used for and back in your object . You remember, read, write and navigate. If used right with this element here, it's going to write to that area on the program. If use read, it's going to read from that area in the program and so on. Next up you have your attributes, and these are a bunch of attributes associated with that spy. If you're highlight, only sometimes works. You might need to play around these attributes in this case, we worked right now, but we'll go through some. So, for example, ancestors text me. It's it's parents text. So in this case, that's untitled. No pad unknown up here. If you click that you change out to Andrew, well, you remain hit. Highlight. It can't actually match any windows of the creators because what it's doing is it's trying to find the application, text up the top here and match that. So if we don't think that click highlight again, it now works So these are essentially the attributes. Its using toe actually find where the element is in the application. So leave those or selected by default will run over them in a bit more detail later on. We're going to actually look at automating this note. Pat file to write out some text and read some texts in the next lectures. So I hit. Apply hit. Okay, Close that down, then make sure you save your object with set up application modeler because you don't want to lose your work. It's safe now. If we close down night pad, we hit this launch bottom up here, it's going to actually launch the application model or file for us or execute herbal, which in our case, is not bad. 26. Writing to notepad: Okay, so we're still going out Objects studio player from a large selection with my pat set up. If we hit Launch Element, pet application will launch. So let's actually set it up so we can write some text to admit that file. So to do that, you'll see an actual one page. So what we're going to do is right. Click and rename that page to write text to note Back then, I'm going to drag it up to the top left so you can see it easier. And remember, for objects were going from top to bottom. It's left to rightful protesters, and what we need is a right state or drag that on to our object. Double click on it and we go to name it right, so you know it's bad. So remember earlier in the application model, are you connected up No pat with the red border and you created a new element cornered era . This is the area our automation software blue present is going to write the text to. So if we want to write hello world to work first of all in actions value, we can put in any expression. So where it is going to do text. Hello world. You could do a calculation here and so on. Just like you used to added a process. All the steps who went over in expressions on a process is the same in objects. Next stop these elements. So it's going to write in the value to an element. Soto put a note pad area dragged up and drop that in element and then it will write to the element. Note that area he can. Positive parameters were not going to worry about that right now and leave the type is default. Would that set up here? Okay, then connect right to know pet from start to end and now to actually test it out. First of all, we need toe Lawrence. So Lantau application with that watch bottom. Just a note. You will need to get that watch bottom cause blue prison will attach to the snowpack, for instance, in the background, if you launch it manually, it won't actually attach. So you need to make sure blue prison waters of that launch button. And later on, I'll show you how to launch it via the object itself automatically. So we have no pad launched. Now let's check it out. So what we're going to do is right. Click start set to next age Now hit, run and see Right to know Pad can see on the right path has reading the text. Hello, well, toe. So if we change this to hello world, this is Blue Prism. Let's see what happens. We've not had still open Still the text tell a wall they're start against its next stage hit Run and we know this We get a nera now I suspect, because when we spied, the element had no texting, no pets. If we delete that text, let's read on it now and see what happens. Okay. Could see a text gets a ribbon tonight. Pat. Hello world. This is Blue Prism. So that's how we can write to know pad And before I move on to the next lecture, let's take a look at that era when we try to write to know pad when there's something in there. So if we go toe application model off, we have an iPad area on all the attributes. Click on that match bottom, and this is what it's actually checking to try and figure out what area in the pet that elements in from all the various options. There's one that stands out to me, and this is just experience. It is window text, so or through a lava. Although you might think window Texas a top level item window Texas. A current item ancestor text is the actual application text or anything about that in the hierarchy. So if we antique window text hit, apply heat highlight to test Look, it matches now. So here. Okay, start this process again and it's going toe work. So you didn't see no pack change because we write the same text. But let's writes in the value Bye bye for now. Here. Okay, now let's run that. So set the next stage run, we can see No, Pat has bye bye for now. Reason, toe 27. Reading from notepad: So now we can write text to note pad. Let's look at how we can actually read text one that pet. So let's create a new page on object playground. Go read text from No And now it's going to be a pretty over. Yes, but what we need to do is drag this time a read stage onto our objet and then we're going to name it. Read text from notes. What you notice this time for a read stage, the application explorers on the left inside. So you start by dragging elements in. We're reading note pad area for the data, there'll be various options pretty much all the time. You'll be getting text, so select get text and that will actually grab this textural note pad. The data type is off text and then you need to store it in their data item. So just like a process, we can name it whatever we want. Subject, Name it. No pad content. And we can click on this little your razor icon here toe actually credit, which is a bit weird. They use an icon that looks like a raise up. So you see your data Explorer on the right hand side. So we've created a new data item called No to Content. So here. Okay. Could see we have that note content data item will connect the start to the raid state and connected up to the end. Going to note content. We continue to text data type. And if you don't have no had launched hit launch from Blue Prism, then go set to next stage on the re text from note pad, page hit. Run. There we go. We can see this note content has a bye bye for now, which is a Texas. We have a note pad. If we change a text saying try and read this. Let's run that from start to end. And c, we've got it here. Try and read this. So now we know how to write and read data from note pad 28. Launch and terminate: Okay, so now we have objects. Playground here for no pad, and now we're getting closer and closer to being able to connect it up to a process and actually use up. So before I do, that would be launching from this launch button here and closing up from the actual application itself. So what we need to do, we need a way for the process, that barrel water. It's sort of manually wanting it and also close it. So let's look at that. So to do that, we go to create a new page called Launch. And for this page to launch the nopal application, you simply dragon navigate stage on, we're going to name it want, and then what you do in your application, explore, right. You'll have the top most level object you need to drag that own into your element actions. Then if you drop that action to have a serious off actions and the one we want to do to launch the application is a launch, so you launch. You've got all the same import options as you would have set up at the start, but you can use it here. Here. Okay, then connect this up. Now, if we go to start right click set to next stage hit run, we can see note pad automatically launches so that it was got open. How do we close it? Well, to do that will create a new page called Terminate Hit. Okay. And unlike launched drag another gate stage on call, it's close. Then we're going to drag object playground back onto the element and the action this time will be called Terminate. He okay, connect this up. And now let's run it. So we've gotten a head open here, so set to next stage hit run we could see on a pet application has finished running. So this is how you want to terminate a process? Usually I will put these pages at the start because for every object, the process will always need to launch and terminate it typically. So I always had that at the start, and you can have your application launch in close whenever you wanted to do without you manually setting it up. So we're going to soon look at how it can actually connect this all up to an actual process 29. Object setup to connect to a process: okay. Before we couldn't connect this object playground, which right? And reads text from that had up to our process. There's a few steps we need to take. First of all, our right text note pad. Well, early Writebol bye for now. So the process can't actually chance, Rod. It wants the right. So, in order to resolve that, we're going to add a data item. But it going to name that text to write set that date of top is text You Okay, then. In the start on this page, we're going Toe added import called text to write. Also description will be the text we want to write to note pad data type text, and we're gonna store in that text to write data item finally opened up the right to note pad right stage and you notice in the terrorists war here we have this sex. Right? So drag that on there. He okay. And now this way, when our processes connected up and runs this page, we can pass a text which wants to write tonight. Pad next up is reading text on the pad. This also will read text from note pad. Put it in the content, but we can't actually send it back to our process at the moment. Look next up is this re textural notes had page, so it's going to read text from the note pad window. Store it in their night content data item, but the process can't actually access this so much like right. Text a note pad were going toe. Add an output instead of an import and the name will be called. No, it's content description will be the content of note part. They're the type as text and get the value from note content. Will Dragon took that mean that I hit? OK, so we can now actually specify the text. You want to write a note pad and read it out from the bad and pass it to the process you may have record in the process Lectures. When we created sub pages, we had data input, islands and output items. This is the exact same thing for an object which allows out prices to access it. The final step before we connected up is to publish our pages. You might notice up the top row here. The 1st 2 pages have these little icons next to them, and that means they're published. And what that means is when you connect your process up to this object, it can really use of pages that are published, anything that aren't published hidden from the process. So right click on launch Get published will get the icon there hit, publish on terminate, right text to note Pad brie, textile note, pad it save and we're going to do set up oh jet to work with a process. As that summary, it's so changes. And now this is set up to connect up to our process, which will export in the next lecture, and somebody steps will make a bit more sense once we go over it. 30. Using the object from a process: all right. Now it's finally over, all right, We're finally going to connect everything together now. So we have that objects played around here, which is our note pad object, which includes application model Inside is and now we're going to use a process to open and right to note pad. Before we do that, we're going to rename Object Playground because although it's no pad object, playground is on the good name for in Blue Prism. You'll notice if you right click, you can't easily rename an object. So, unfortunately, the only way to rename and object or processes open it up the file, save us. Call it and unites Will call last night pad hit next hit Finish. Agnew essentially going to duplicate it in 20 Object court. No, pat. Okay, now we have both. How objects here? And if you try and delayed object playground well, as it is a duplicate on that path soul market as stupid. Go to delete. You'll notice an error, and if the objects being on before you can't believe it because it's required for order. So blue prison is very good at keeping an all log off everything that's happened so what we need. So instead, let's go to system, go to objects, go to management. No active objects were going to try Object Playground into retired, so we're not using it anymore. Went into retirement. It stunts Jews, and now we go back to studio. It's no longer there. So that's how you rename an object in blue prison. Currently, hook without proper renaming function. Now leave sometime. OK, now it's time so you can actually connect compound that had object process. So create a new protest. We're going to call it right letter hit next hit finish. Then we go to open up that process. And then on the main page, a Lambert processes go left to right in order to use that night that object, we use what's called an action. Then you'll notice you have these business object options, and now we see no pattern there. So that's how we actually use it. You'll notice you'll have your actors in there. So remember, we had to publish a page by publishing a page that actually gets that page to appear in this action list. Otherwise, you can't use that accent. So, first of all, remember, we need to launch no pack. So well, the first actual launch. Okay, then will copy and Paste wants. Then we're going to write text to note pad. We can write the text. Hello. Remembering that page had an input for a data island to write that note. Well, one then that writes. Hello, then what we're going to do? We're going to read what we write to know pad. So go No pad. Rude text. One hurt will call this read. You know, it's bad content. Outputs will story and make that content If we click on that bottom to create a new data item And then finally we're going to copy that and terminate. Not bad. So close down the pats. Little close states close. Not that with that down now you can connect everything up from starts went Let's set the speed to run a bit more slower. And now let's quick run to start out process. Snipe at launches rights. Hello. At rates the night content into Hello. Then it closes. No pattern, it finishes. So congratulations. You now created your first antoine blue prison process that interacts with the object which uses an application water. So remember the process Layup irritates order, business logic. So in this case, the business logic is the text we want to write to know pack which is hello what we want to read out of it which is reading attacks into this note content the object Is this a bad business object? And that's all the actions you can take on the objects, such as launching it, terminating at navigating around right into that object and reading from it. I remember the application Water lot is actually mapping how your object itself interact. So one of the text fields, remember you need to spy them and set them up and then you're objects can read or write from that process. 31. Object wrapup: Now we have. Call it the full enter and process object and application one. You see how to set up aged one with the best practices in how you set them up. Now we're going to connect all these together within a single order made by 32. Foundational App Introduction: Now it's time to connect it all up with or delays we have covered. We're going to use a training system to place and retrieve orders. You can download the application in this lecture or in this course what you downloaded it. Remember to keep it somewhere where you know you put it on your computer because we will need actually. So before we jump into the next lecture, let's take a quick break and then I'm going to show you the training water system, take you, want a quick to of it and have to use it up and then we'll get into automating. 33. Ordering system download: 34. The ordering system app overview: all right. For the next set of exercises, you will need to down. It is trailing order system from the resource is for this course. This is a problem I'm going to use to look at automatic to sign in. The stuff number will be be paid on a possible it will be possible. Once you do that hit sign in, then you'll see the application has a Sears options. Can I add a new order you an existing order or quit the application? So what I'm gonna take you through its have to automate, adding and viewing and existing order come with quitting the application and also getting an excelled document, which has a bunch of orders in it. And nobody will loop over all those orders in the process and interact with application via an object. So let's take a quick tour off this actual app. So he didn't option one. It go, you'll notice. It's a very retro night Is that and it opens a new window so you could put in a product codes will be BMW. Number of quiet would do to, you know, price 20 call center as hello. You could see the total process calculates automatically. Woman hit, submit, order. It takes a second, and then we get a new pop up without order reference number, which is 1054 So he continue next up in the options screen, hit Option two and go, and we go to look at an existing order. So if we put in order number 10 it retrieve order, it's going to take a few seconds to load, and you can see some order details come up here. So that's saying view orders in the system and you could hit Option Three to put the application. 35. Setup: Okay, So once you've downloaded the training order system, place it you'll see dry in a new folder called Blue Prison. And then what we're going to do is we're going to create a new object. Well, you're going to call it training order. He next hit finish. Once that's done, let's open it up. And we're going to set up the application modeler at first, so we'll define a new application model. It is a Windows based application. The applications lost from executed will fall on. Next up, browse and finally applications. So see blue prison training all the system hit next hit next, next, next, embedded and finally finished. We're not gonna add any elements yet. We're just simply going to set up the route application to launch and terminate. So make our window full screen. And then in the actual one page, what I need you to do is to drag a navigate stage onto it. I go to name at Lord's, dragging the element training order and for the action use lords connected. That'll up rain, a maximum one launch they're finally create. And you, Paige Phillips, Herman eight. And this is going to close down the application. Then once again, Drake and never get stage training order into element action as Terminate. And we're going to call the name of the navigate Stage clothes. You okay? Connect that up. And then on both fortune, terminate. Right. Click on, publish your pages and then to test it actually works from the launch page. Set the start to the next stage hit. Run. You can see that application is lost here and now with terminate way of going to close it down. Okay. And now we're only terminate page. So right, click and set the next date on a start. So it runs from here. Hit play. You can see that closes down the application. Pretty much for all automation in APS. You'll have to set up a launch. Determinate always. I know I rushed through it, but you went through this in previous lectures. They create dessert if you want to review it again. I just wanted to show you how quick and easy it is. Once you know what you're doing to set up an object with the basic march and terminate and set up the initial application Mortal off for it 36. Login - Application Model: Now that we have watch and terminate set up start to go into our application model, launch the application, and we're going to set up the different screens. So the way I recommended is you will recall that you can add an order, retrieve in order and so on. So we're going to group these under different elements under the Application Explorer here , so the 1st 1 will focus on is actually signing into the application. So use identify. And what will do you notice that construct different options? We're going to slept the whole window. He's control and right click, and that will spy the actual sign in screen. We're go to name this one sign in screen, then expand that out and you notice, Have you have various options in here? So the best way to figure out which one toe actually being used is hit this match on. Then you can see the various options that this sign in screen is using to actually identify that scrape so the window text has to be equal to sign in at the top. So that's true screen that must be visible. Screen must be enabled, and that's a windows 10 phones window. Okay, now we have our sign in screen set up with that selected in the Applications Explorer hit at Child. Then we're going to identify these staff number, so select that one. The control bottom When it's on red outline, Name that element staff number equal. Select harlot, and you'll notice that it selects possible it. So why is this? Well, what you notice is if we clear the staff number so, like highlight, it actually highlights both inputs at the same time. And it says warning highlights and results more than one when I found. So that's because the window taxes, actually what's in the textbooks and remember any of these arms that are matching I used toe identify that field so it's looking for something. Where the window, Texas. Nothing. It's visible, and that's the windows for 10 at it component class. So both of these share them in common, so it's actually selecting both of the fields. So what we want to do is antic window text, so, like highlight, you'll know this up I've selected. But when we talked something into stop number now and hit highlight that both still highlight it rather than only being able to spy a single include field. Okay, So because highlighting to field, how can we actually use these attributes to figure out which one is his stuff number? The two most best once I find if we sought by name is I have a parent or journal as a second resort and the first resort is orginal, so let's find that we'll see orginal was equal to three tick that select highlight and we can see stuff. Number highlights. So what order helmets is it? C Third Island in these serious off windows 10 form islands that it finds. So with that, what we're going to do is select silent screen at child. We're going to call this one password select, identify control, click on password thought by match on sick window text and then find orginal. And what you're nervous is orginal value is number two for this one. So if we select pilot highlights a possible we were to change that back to three, which is what staff number import is. So let harlot. It actually highlights stuff number. So by using spying, it doesn't use all the properties it actually finds. However, it will populate the value in this list. So that's why it's always good to highlight the specific element you want, then a play around with these matches to actually select it. So we're just going to change up Naval. That's to password input and finally, understanding screen at another child he identified over over the signing bottom. And be careful to hold in the control key. Right click to actually spy that. Then you can name that element sign in bottom. Select highlight to make sure it finds it. We can see here it finds it first time. So we'd only to play around the order or attributes in here so we can see here in the Application Explorer, the training order system. We have a silent screen, and under that sign in screen, we at all the child elements such a staff number, import password in port and signing button that's actually used in a sign. It's great here, and it's good practice just to name anything that's an input, as in port and anything that's a bottle as button. It's just a lot easier at a glance for anyone to see how your application would not lose structure and what all the items are actually used for when they actually use it in the object Explorer here. So with that now, set up hit, apply, hit. Okay. And we've now got out Application model are set up so it can actually create a page to sign in to our training order application. So remember to always hit save, and we're going to set summary as spying for sign in page set up and hit save changes. 37. Login - Object: All right now let's send out at application modeler. Let's actually make a page too long into the order training system, so create a new page quarter. Logan. So now we have the logon page set up. We need to have to write stages to write the user name and password to the system. So remember, we have the staff number input so tracked that into to the element the value is going to be a string. Remember in quotation marks BP for Blue Prism and we'll call that writer writes user name, then copy that the next one. We don't striking possible it. Remember, the password is possible it So call it right possible and I will show you later on how to should cure your possible. It's for now. We'll just get the looking working. And finally, we need a navigate stage to hit the Logan body. So let's call it Logan tryingto element signing button, and you want to use global mass click Santa on what that's go to do? Is this signing bottom? It will click the middle off that bottom. So OK, then from the starts, link up all the SAGES to the end, make sure to publish your page. Now we'll want your application and run that page. So with the application launched, go to the start. Hit Run. We can see on the right. Puts in BP. Impossible word that logs into our training order application. With that done, don't forget to save and update your summary With sets off Logan bottom, it saved. And now we're ready to log into application. 38. Retrieve an order - Application Model: all right, so make sure you got your application open. What we're going to do is open up the application more law, and we're actually going to spy the option screen here. So we need to be able to navigate toe in, order you it and retrieve its details. So we'll focus just on this option screens to start up with to not get to the order. So under training or add child going to call that tart options screen and you notice your trade here on the left, the options screen is now on the same level as a sign in screen you're going to identify. Identify the whole off the screen it controlled. Click to select that to use highlight to make sure we can still find it. So that works fine. Then in options screen had to child's toe the 1st 1 identify. It's going to be the option on but so high like that in the wind due to mod hit control. So why match a remember window text for input will be whatever content that is so unseat that equal to make sure there's nothing in there. Then we go to call that element option number, input, use highlight, and we can see it still finds it perfectly fine. Then on element to use. Aspire to identify the go button. Call it Dr Watson. You can see it's sort of by match by default and use. Highlight always to make sure that the spying work. Because remember, like the signing screen, you can sometimes have problems where will highlight the wrong element or highlights several. And that's where you need to refine the selection using attributes. So hit. Apply here, okay, and you always need to say after you up there in your application model of so called update up model to make sure that your object contains this application, Waterloo changes. 39. Retrieve an order - Navigating: So now we have that option screen spied. Let's look at how we can actually navigate to view an existing order. What I wanted to do include President is created the new page and call, and that's options menu. What N stands for is navigate typically with each page that isn't a launch Terminate log in use end to indicate the pages used to never get around the application. The start, which is rating stuff W. Which is riding stuff to the input. So we're going to call this navigate Oxford menu because the intention is to navigate to one of these options. Okay, and then what we need to do it is we need to take in an import, which will be the option number right that in and then click Go. So we'll drag a data item to the screen. We're going to call this option number. It's going to be off the type text because we're just riding text into here and we'll see set the initial value to number two just so we contest that out. Then, in start, we need to add a new Input Island Court option number. The data type is going to be text on Dragon option number two. Store in there and what we need to do now you strike a right stage onto here to write in the option number two that import. So we'll call it type option number. The value is going to be from that text option number on. Then we are going to store in the auction number. Input, then hit. Okay, Once we talked that in that we need to use the navigate stage to actually click on the globe. Autumn said click. Good. I tried them. The go button on this navigate stage action Global mass Click center here. Okay. And connect that all up now test it from the start. Hit Ron Conceit tops in option number two, Click song Go. And then we've got this new screen which is viewing our orders. So now that we've tested it, verified its working, make sure you publish your page and save 40. Order view - Application Model: Now that we can navigate the options menu on this view or the screen, we need to spy the screen. But before we do that, we can see we can't see any order details such as the product code, units ordered and song. So let's put in order number off to hit Retrieve Board up just to bring up someone that details. So we can actually look at how we conspired that. So go to your application model and then we're going to add a new child up training order once against going to breathe, screen will call, view, order, screen used, identify, toe, identify just that screen only he's highlight. We can still find it. Then we're going to add a field. The first field will be order non bar inputs. Identify that you put for order number remembering to sort Why my match? An antique window text Select highlight and you'll notice that it actually highlights to text fields the one on this order number here and the one on this options screen. So that's a problem. So for this one, we could use the same method, such as orginal, to find this one only. But the problem with that is this window may or may not be open. Order knows only useful if all the inputs are on the same screen at the same time. Otherwise, if we have, say, add a new order window open, we could have several tents. Imports and the orginal order might not necessarily be the same across different windows because one window could be closed, which messes it up completely. So what's a super useful item in the attributes is this apparent window text. If we select apparent window text now, that means the parents off this input field, which is this view or the window text must match you order. So that's it. Use harlot. We can see here. It will only highlight the View order order number input element now, So that's all sorted out. Next stop interview or the screen at another child. We are going to toward us for trade water bottomed use identify To spy that bottom. He's highlight. We can still find it. And now onto the tough stuff. We want to get the product code, the units order and someone all spied. But these going to be different. That panel in your order number so to start off with, let's just add it out on the view on the screen analysis, identify product code and the club brought up, uh, dash text. Actually get rid of the dash. It's up to you if you want to use a dash to separate the body in a text. We weren't in this example, I thought, by match. Use a lot with conceit select. But that's only because of when the text is a call to save 54. If we don't take that like Holland, we can see we get all sorts of fields coming up. So this is a perfect example off where the orginal comes into play. Make sure you take that, so I call it, and we can see in this highlight the product. You might be wondering what actually sets the order. New value off 13 Well typically foremost cases. It starts in the bottom right of the screen. This PP will be one order. It will be, too the state with three than 456789 10 11 12 13 which is see if before, So if we change it to, for example, it's like highlight. That's order we changed that to free select holla today ordered. So make sure we put in 13. So, like Holland, and you just need to be careful, because if we go back and put in a number three, that will highlight the option number above here. That's because both those text fields match all these attributes in these particular examples make So it always select that parent with their Texas View Order, they call it. We concede that issue is fixed, then changed that audible to be 13. Select highlight, and we've got that part of the code. So now that we've got that actually set up simply added not a child and repeat these steps for all the field here for units ordered unit price and so on. So I just do one more, which is units order it sets. Make sure we antique window text and then we see the orginal, and then we take the parent with the text. So, like Allah, we can see what the units ordered and repeat the steps of old recipes Fields. Okay, we have set up all these text fields now, So with a move on, so actually using them in our object, and hopefully this application Explorer is all making sense now as to why we structured in this way. We used to see the hierarchy off screens. So you have your training order this sign in screen, your options screen. Your few order screens on typically are only nest items, if that only within that particular section off on application. 41. Order View - Object: Okay, so now that we can actually navigate a viewing and existing order, I will spider the objects here where goto actually code it so it can actually retrieve in order and rate the details. So in order to do that, create a new page called Our Dash gets order details, Okay. And then what we're going to do, we're going to read some of the details here into a collection. So first of all, what we need to do is actually put in the order number hit, retrieve order, then read the details. So let's start. We're going to pretend that this window is open live, nothing in order number. So first of all, we need a right stage, and we're going to take in an import at the start, which will be the order number. So at a new import court order number. Well, the day that's high text a little off the data type text. A good story in order number. Typically, I didn't use the data type number unless I need to, because you might have a system which actually takes in letters for order numbers such as ABC. So it's always good to keep you bought more flexible where you can otherwise. If you use number and ends up orders, can have letters and other characters in it. You need to modify it later. Now that we've got the order number in Writer one, we're going to take the value or the number we're going to put it in that order. Number. Import inspired. Call it right for the number for the name off this stage hit. Okay, then we need to click her trade border. So strike a never gate state all and call its retrieve order dragged the retrieve order, but also element And for the action used. Press user Kate and we're going to read the product coat and in units ordered in toy collection. So dragged a collection on. We're going to call it or their details at two fields. One for product curve of a type text, the other 14 units ordered once again off a type text. It's just good to get consistent just in case units ordered might have a desolate place in it. For some reason, it's good just to use text in initial values at a new at zero. Otherwise, you need to manually add a Reuters collection. Once you set that up here, okay? And then drag on a raid stage and we're going to call this rate or the details. Leave your elements were going to get the product code to start off with. So a drag product co text in data use Get text historian with their collection Dragon. The order details stopped product code to store it in there, then add a new action to actually get in the units. Order text. Once again, data is get texts and stored at in the order Details thought units ordered so dragged out into the story in and you can see here. If we make the size of the window bigger, you can see we're actually story in order. Details. Collection dot product code dot units ordered. With that, Don't let's connect that all up. Set the order number two Bay An initial value off 20 just for testing. Hit Reset. Now let's close down the order window. Reopen it so it's a blank slate. Sets start to next stage and hit Run and let's see what happens. Okay, if we open up order details, let's go to current values with and see we have our order number 20 cdy 66 and units ordered 9 to 5. Just note with this test application. These are always random values. They're not actually hard coded, and they weren't always been the same. So this is just an application for a training exercise. One thing to do know is that if we put in a nuttall order number and hear a trade border, you notice it actually takes about a second to come up. We're lucky this one actually read out details improperly, sometimes of applications that they're loading. And you have to wait so you might actually have to add await stage on between healing retreat water. Double click on that. You can say two seconds here, Okay, Connected up and actually reading in order details. So this is where a lot of pain with automation allies is actually, applications being slow to load and usually this is a fix is to make a weight state and wait for a bit of time for it to actually light up properly. Unfortunately, so just keep that in mind when building bots. This is a common way for an exception to happen or it but to not work properly. So use time at stages. They are your friend 42. Retrieve an order - connect to process: all right. Now it's time to connect up our training or the system to a process. Two things you need to do if you haven't already this read, Get order details that makes all your right click hit. Publish on that page. Finally, the order details. You need to make sure you open up the end. You create a new output called order details. Get away from water. Details, dates. Heart should be collection. We didn't add that at the end of last video, so make sure you do that that way. Your process layer is able to retrieve these order details. Once you've done that, make sure you save your business object and then that's a blue prison. Under steelier, right click. Go create process and name that all a system. Then open it up with the main page. Make sure we're going left to right. Remember, process is left to right. Object is top to bottom. That's actually connect up that older system. Remember, we need to track actions. Double click on that action. You'll notice we have our training order business object under visual business objects. Then we have all their pages here for the actors. The old system, so we need to launch it. Look in. We need to navigate the options menu to order details, read the order details, and then we're going to close it up. So first of all, he's won't. Then easiest way is to copy and paste that stage. That way, you don't have to select Trent training order every time we need to log in. Okay. Make sure you rename this to Logan. Okay? After Logan, we need to never get on the options menu. Remember, Number two will go to the ordering system. Okay? And really, in that navigates it's too old, are window. Then the next step is to actually read in order details. Put in whatever order number your life, I'm going to put in 21 in outputs. Remember, we need to store it. So click on this icon to create a new collection. Court order details rename. The state gets border 21. In my case. Could be whatever order number you're getting. If only copy that stage and make sure we terminate application to close it down and call it close before the stage name, then connect this up from left to right. Make sure we hit Save. It's a good idea to say often just in case Blue Prism crashes. And sometimes when you already maybe applications and testing it out can make your whole system were on slow because our APS to crash. So make sure we always saving anything that let's hear, run could see it launches logs in, puts in order number 21. Read its details in tow. Order details. So if we open that up now, viewed a carton layers we can see Order 21. The product code was a B 24 150 year little ordered. If you want to get all the other vase from the screen, you can simply repeat the steps for all the other data points, such as the value off the order for an individual units. 43. Adding an order - Overview and Application Model: all right, we're going to look at the adding a new order scrambler as to actually adding in order details manually and their next, we are actually going to look at how we can automate excel to grab this order, start CSP flour, and actually, for each line, we're going to add a new order for each of these items. So close that down, not going to save it. But first of all, let's actually look at spying this great for new water. So close down the application. If you have an open open up your training order object Hit wants. Go to Sinan. Remember, staff number is BP. Password is password. Open up the screen to add an order, then open up the application model. Uh, on the training order, I need to add a trial hit. Identify. Remember, this is going to be the overall screen. Make sure you have like, the screen with Windows said it to mode control. We go to call this new water screen, then at a trial, identify first of all the product code. Just note. Sometimes by doesn't always work, so you might need to use the old ski to cycle for screens until you can actually see highlighted select product code. Name this one product for inputs that use holot. It's highlighting or the items. So remember, what we want to do is select the orginal index. So orginal highlight would concede early one highlights and sought by a match and antic this window tax because if the Texan here is anything else, it won't matter. Then you need to repeat that for all the elements inputs on the screen. So I'm gonna fast what release you can run through this yourself. Remember to tick orginal for each one and then on take the window text. Okay, I have all my inputs now. And finally, one more child, which is this Submit order. So let's buy that and we'll name it. Submits. Make sure you take highlight and you can still highlight that. And it's not finding anybody into any on any of the other screens with that down Hit, apply. Hit. Okay. Make sure we save our object to at the new order spying screens add new order spying screen in the application model. It saved changes. And now we're ready to use the screen 44. Adding an order - Object: Okay, so now we have spied on you. Order screen. Let's actually set up a page to add in order. So in your training order object, create a new page. We're going to call it w for write and will do order details. Okay. And what we need. We need four imports, a product code number required, unit price and cost centre. So in the start stage at four blank imports and start a product older would be data type text. Quit the bottom to create the data. I have to store it in the number required. And so on a two. You have all your items. Okay? I've skipped the head, and I've added or he imports for product code number acquired. Unit price and cost centre, which are all the details for a single order. Once you have that on hit, okay, to create your data items. And then what we need to do is create a right stage for all of these items. So 1st 1 will do right product code, dragon product current into the value, and then the element remember, we have the new order screens will be a product import. Okay. And then repeat the same steps for the number acquired the unit price a call center. Easiest way is to copy and paste. Um, open them up and then dragon number required its value than a number required important element and then changed the title off the stage or name to write the number required. And I'm going to fast forward and do it for, you know, price and Cost Centre. I came up too far. One call center and just a quick in. If you drag and drop it into value, you notice it actually has the previous item. So make sure you clear that value before you add the text call center or or your other text inputs your olive so we'll drag. Constantine. What? It? Okay, now we're got all that inputs. So finally, what we need to do is really to use a never get stage. To click the submit order bottle, God's click submits order, So drag the element. Click submit, order. Cool it. Action press. Okay, then connect up all of these stages on this page with a link and finally for oil. Later, imports will create initial value, which will be overrated from our process. But This is just handy for testing off number two, then set to next stage. And let's run that and see what happens. Okay, we've got a problem here. Internal failed to perform Step one right stage right course Center on page, right? What details? More than one. We don't match the query terms with this era mates. If you ever see more than one window electric query terms, if we open up application model, it was a constant to airport. Select that entries holot, and you'll notice the other screen actually match the query terms. So what's happening is this item is spying, a input on birth of screens, and it's getting confused that doesn't know where Terata. So if we sought, why match you remember orginal fixed most of our problems. However, it won't always fix him. So what you need to do is find parent when their text make sure it's equal to new order. Hit. Apply so like pilot and will notice it. Only hearts, too cost centre. So what this is doing is this import? Whatever the parent window is, which is this window here? It's checking. The text is equal to new order, so this if put here the parent window Texas options so it doesn't match. So without that, the spying is actually picking up to text fields. So go for you or your imports on number or the screen. And make sure you select parent when their text as a new order. Once you've done that hit, apply. Okay, we're going to manually delete or the number twos already imported. Okay, to go back to the start, hit, run and let's see if it works now. So you notice all that water details, get at it in, but assume this would click anywhere in the application. The order confirmation comes up, but that should happen when we click on that submit or the bottom. So if we manually added in click, submit order, that will come up. So in there click, submit, order. Let's change that from press to global mass. Click sent up. Okay, let's go to add a new order page again manually, and let's run this patron start to win. So you notice here the window comes up now, so just a small hit when automating is sometimes the press doesn't work correctly. In that case, tried global mass click center. And what that means is whatever this element is, which is submit should be named submit. We've got a type of calling it something it's or the bottom equal, quite a center off, that it will physically move your mouse to the screen and click on the center off that old excuse fired. So now we can say, here we have our order confirmation, so we're going to take a break and we'll figure out how to handle this window in the object layer than in our process. 45. Adding an order - connect to process: Okay, so now set up. Out. Training order. Object To added order. Let's open up the order system process and actually add in order. So now we will open. We already have the retrieve in order details. So what we're going to do, we're going to create a new page we go to call, retrieve in order. We're going to cut and paste all these steps onto the retrieving an order page. Just so we have a backup copy of it in case we need it again and connect up to start to the end. And we'll need the launch. Love, Ian, navigate and close. So copy that. Go back to the main page or paste it then. Or navigate or the window. Remember, Not the option number one is to add in order. Then copy that and create a new stage. And we're going to call it right. What? It details put in any values you want. I'm just gonna put 23 for product code number required. You know, price, call symptoms and so on. And then connect that all up so you can see here once. You already have an object copping a pasting the existing stages and changing them. Remember to change the name. It's easy toe leave that makes super quick to set up your process and we're gonna cornice add an order. So get okay, then go to the start stage. Makes always say that bullet ad in order. Let's run that process. Start the wind to see how it goes. Slogan Add in all the details, waits to continue, comes up. Then we close the app so super simple, so you can see you get faster and faster. And once you already have an object, it becomes quicker and quicker to add or modify it and modify your existing prices to use it because you already have some the template code, such as launching a, logging into an application, navigating around it, closing it and so on. So we're going to take a quick break and next up we're going to add an order using an Excel shape. So stated 46. Adding an order - continue screen: Okay, so now we have the new order Automated. When we submit an order who notice it takes a second, comes up with please take note of your order reference, and then if you hit continued, it goes back to the main applications. So what we need to do is go to add a new order 40 in any information you want. Hit, submit, order. And we need to spy this order confirmation screen so we can click the continue button, and I'll leave it up to you as a challenge. If you want to be able to get the order reference number, it will just be spineless text remembering to make short, you need to change the actual spying settings sometimes for this application, usually to select audible to actually get a text. So in training order, we're going to add a new trial to application model. Identify Finally, sorted confirmation Window. Select that, and we'll do order for cremation screen, then in that screen at a child he had identified and then select the bottom in Windows 32 mode. So why match his harlot and you'll notice that's the early bottom that comes up. So despite looks OK, we have no conflicting elements and we're going to name that. Continue bottom hit. Apply here. Okay. And now let's actually set it up to close that window. And it continued when we write our order details. So first of all, trade a weight stage here, and what you can do is instead of just, say, waited for five seconds or so. You can wait to this actual order confirmation screen comes up and to do that, open up a weight state, dragging this order confirmation screen and set the condition to check exist and set the time out to five seconds by default and what you'll do, you'll notice this time out. Have this little dot here. Now what? Dismayed as we connect this up to the end and can connect some meat order 12 weight stage out. Time out will notice. This will actually continue here from this little thought. If this order confirmation will don't exist, otherwise it will time out. And then if we want to throw an exception, we can connect up an exception. Going to that accepts a message. We caught a system exception and we could give it our own custom message such as order confirmation Screen did not like in quotation marks because it's text. So I hit OK, and after that time out, what will do or add a navigate stage? So copy that clicks of me order, haste, that and then we're going to drag on the continued by them to the element to click on their continued violent and will do click continue for the name on that stage. Okay, connect that Tom out to the click. Continue. No. So now what will know this is If we reset this, we'll go back to the navigate at a new order. From this stage, it starts select set next stage. Now let's run that. Now we click, submit order. We wait five seconds, the screen loads up and we click. Continue. So this is a really good technique for your bots. When you're waiting for a screen to learn, you don't always want to say, Wait 10 or 20 seconds just in case. Detect a while to load by using this trick by waiting toe, an element exist. You can wait until it exists the but will immediately continue processing onto unless there's a time out. For some reason, that's great, might not load. And then you can prone exception so somewhat to take quite a while to run. They might take half day. They might take a day. So this is a really good trick for speeding up your bots. So make sure you have that page published that right order details and we're going to connect that up sort process now. So hit save, and we'll do have it continue bottom in our safe changes. 47. Adding multiple orders from a CSV/Excel file!: Okay, so now that we can add in order in our process, let's actually look at this wall is not satisfy a file which you can download in the resources for this lecture off for this course. So you can see we have a product code quantity, you know, pricing cost centre. So what we want to do is load this up using Blue Prism and that all of these orders to our application. So once you've downloaded it, make sure you met. Remember the path to this file because we'll need this later. And just the note. Even though this is a CSP file, it's called a comma separated file. So if you open it up in the pen, you know, security structure, each call is separated by a comma. So in order to open this, there's several approaches you could use in Blue Prism. I'm going to run over them before we settle on the best one. Just so you know what your options are, what to look out for and what two years? So we're going to close down this process and back in blue present. What you need to do is go file, then import, have truth and put far away Go to go to browse and you need to go to your blue prison installation directory. So in this case, we've got C program files, blueprints unlimited Blue Prism automate. And in that you have a photo called Baby These visual basic objects which a handy little utilities to do stuff such as? Get data out of excel at look word. So women connect to websites and so on. So the several options here. So which one do we use? The 1st 1 you might think of issues TMS excel. So we simply hit open. We hit next, we import it and will notice it now comes up on objects as M s xlv video. So if we double click on that So now I've got this m s XlV be open. You can see we've got all these pages here that do various things. The thing is, this is used to open up Excel files and now CSP while it opens up in excel. It's not a dot XLs x or so on. It's just a comma separated file. So in our pages here, you'll notice there is a import CSP What, what? That is meant to do this to import one of this sea's vowels into an actual Excel file. So we can't use this one for our orders. Don't CSP. So let's go back to file import browse, and there's several other ones. The one way want to use is utilities file management, and this just comes of experience actually knowing where it is. Like I've said before, I recommend you sound for the Blue Prism website on the forms there. If you want to do something such as important CSP concert for figure out which Phoebe object you might need or someone what have created a custom one that can use. So we're this open here. Next. Completely import. Now, if we open up utility file management, this is used to open files or download files and so on, and you'll notice we have here get CSB, Texas collection. So what that's go to do that's go to read our CSP file and store it inside a collection. So before use this in our process, just a note when you're actually important items from the Blue Preserve video, I recommend you import them all at once. Just got the war there to use and in your objects fold up, create a new group, call it Blue Prism baby are then drag all the ones of imported from Blue Prism into their. It just makes it a lot easier to separate what the ones are that are provided by blue prison and the custom objects that you have created because they have a quite a lot. And it gets quite messy trying Teoh open up objects and also for other people to figure out . Did we create this or to Blue Prism creator? So with that done where Goto open up our order system process want again and then what we need to do, we need to drink and action and you'll notice we now have out utility follow management here under that blue person vb Okrent with created So use that we want to select get CFB Texas collection. So just CSP file path is the full path to disorders file. So what you can do, you can select that we're going to use copy Pop that is in Texas surrounded with quotation works. So if we open it up in a calculation stage, we've got F seamer Blue Prism foundational training session order, sort CSP. So yours will be different. Wherever you start on your computer, you need the full path to that first lightly said us. So if we open up this file again, the first row or first line with Quincy are headers here. So we want to set that as true. And then outputs is where we want to actually store the values in a collection. So we're going to start in the collection Port order details. Hit that bottom to create the collection here. Okay. And what we've got to do with their to call this open CSP? No, but connect that up from start to the end. We live out. Logical. It's adds border in the main page for now. Let's run that so we can see here. We've got Road one on fire now in order details require current values conceived. Got ahead. It's a product code quantity the unit Prosek or center on all the values. So before we finish off this lecture, we're gonna drink a loop start on loop and and what we're going to do, open up the loop start. You want to select order details as a collection was going to call it loop over order details for the name. Now we connect that up. What this is going to do is when we run from the start, we open the CSP, and as we loop over with concede, this is on road to grow. Three row four, row five ghostie end. So what that Luke is doing is inside that loop. When we access, say order details, stop product code. You'll access the current value for the loop. It's going over. So first loop the product code will be ABC 1 to 5 seconds is 1 to 7. Third is 1 to 1 and so on. So it is going to be important because now that we can't open that CSP fall story in the collection and loop over it, we can add load the orders inside the slope here. So let's save this now. As added, flowed from C s fleet, we go to take a break in. In the next lecture, we will actually automate adding everything from this orders, not CSP to our ordering system application. Remember this order slot CSP conduct be downloaded from this lecture or from the materials for this course 48. Adding an order - add CSV object to process: All right. So now we've set up that water system to over from a CSP and added to this order details collection Well, actually sent out process to loop over those ordered 1000. Add it into the system. So when you're doing that, need to be very careful around how you structure your actual loops here. So what we want to do is before this loop, will this movement over? We need to open the CSP story in the collection that release to be wrong once and any other in disguise is to set up. So typically, this is launching your application, logging into it and navigating to the windows and so on. So what we want to do, we're going to grab, launch and log in. We're going to move it down here, connect up open CSP to watch application and Morgan and then remember, once we add in order, we need to never get back to the order window every time we add in order. So we'll drag. Never get a window inside the loop. Well, then add in order to the application loop of it, it details, and when all the orders have finished, will finally close the application and go toe end. So now that ovary arrangement, we need to connect all the links up in the correct order, so simply do it as follows. Once that's done, we're going to Drake back up to the top, remembering left to right because it's a lot easier to read. Remember your blocks. This is where blocks come in handy. You could do a block to say, Launch wants the up, which will only be around once so we know what's happening here. Then we'll call me that about a loop, and we're going to cool that at and order on order and finally over the close bit. Copy that in and we're going to call this closing up. Typically, I leave the stock and outside that looks, Let's tidy it up now, launching and that includes looking in. Then we add in order. So with that over a bit slightly so it looks nice and clean this way. Remember, other people that are added in your process can see what's going on nice and easily. Okay, so now that we've made a nice and tidy and we can easily see what's going on at a glance We need to think about how we added more order because currently it's manually hard coded. But you'll notice with the collections we don't have order details. Stop product closing soon. We just have the collection on the details. So how do we access that? Well, let's take a look at order days house. You can see we have feels an issue very set a blank. So that's why we can't actually get apart from it just because we haven't added a field toe . But we don't need to do it. There's a not a way to get that. So let's go to start and let's simply set a break point at launch and all we want to do is open. The CSP now got all the details. If we go to current values, you can notice we actually have field such a product code, quantity, unit, price, cost centre and someone. So let's get the snipping tool. Let's take us great all that because we're going to need to refer to this in a second. So when we add in order now in the product code, we can simply drag on order the towels toe value. It will show an error than its expected text. But this is a collection. So what we need to do after order details like dot than products space code. So as it's spelled in this field up here, it needs to match exactly and what this is doing. Its telling blue present to go to the order details collection and look for that product code. I feel values. So the nifty thing about collections is you might have a collection that you don't know what fields will be stored in it until you run it or a cold store, different types of values. So this is a way to be out toe access those values without actually having the field set on initialization. So number required is text, but you'll notice the quantity is a number, so simply will copy what we don't before. And if we do not quantity, this will come up with an error. So we simply do it n percent on do text to convert to text. We do the same for unit price. That's the number and cost centre. I'll be that over and cost Cento. So this is hey can access feel based on a collection with the dot notation and manually sending it if you can actually drag it from the right hand side. So let's Okay, now, let's get rid of that break point on once I recommend if you do need to find out what the field Basil Bay just actually loaded into a collection and actually take a look at it. So I'm going to go back to the start stage, get reset to reset all the variables before we're on it. Let's save will call. It reads from C s fee and adds orders. Now let's run that to see that in action. Now see, we've added the or the details of the first order in Excel Lutes over to the 2nd 1 ABC 1 to 7 as a product product for this one is ABC 1 to 1, and if you want to verify it's working, you can open up the Excel toe. Actually compare what the automation is importing. Union all you can also run Blue Prism want step at a time to slow it down and see what's actually happening. Then that closes the application and we finish. So, congratulations, you've successfully used to separate applications opening a cease V fall and actually reading that and then adding those into a custom application. So hopefully now it all makes a bit more sense how the process layer actually ties and everything together throughout objects layer, which is the actual order and system and the CSTV be oh, we've got from Blue Prism and the application model, which is actually telling the ordered system. Hey, here's where you actually put in values. Click bottoms and read values from the ordered system as a challenge. If you want, you can see if you can actually read the order number and right back to a cease freefall. Anyhow, we're going to take a short break until we move onto the next lecture. 49. What happens when things to wrong?: So what we're going to do is look at what happens when things go wrong. In order to do that, we're going to see relate an exception whereby with trying add in order to the system when it's on the wrong page. So what is to do that? Copy the Adam Order stage highest just on the Logan. We're going to put in the values all as simply to in text that okay. And after Logan were instead going to connect that up to add in order and what would do to differentiate it? We're going to draw a box around it. So select a block stage, draw a block, and then with the block, you can actually change the color up in the corner here. We're going to change that orange. We're going to call this the Arab Bloc, and we're just three sides of a bit here, and it's not going left to right. But this is in order for us to know that we're actually simulating an error here. So what will happen is if we now added, Acuff writes, near the end, remember and ankle could be used to make its Cranie, so connect those up and then we need to run our process. From start went on, Let's see what happens. We could see SV wants application with log in or on the wrong screen. We try to add in order, and we get this failed exception. So close down the application and what happens is when an exception occurs. You can catch it by using a recover. If you try to recover to be inside your box, make the text blue. Then we can connect that Upton acceptance stage, and we can give that a custom exceptions. We're going to call system exception. That's up from Do Top Will be could not add an order with quotation marks as text hit. Okay, now let's run this from the start again and see what happens. Conseco's to recover stage. Then we get it out Exception, which is a system exception and our custom message. It could not at order, so you can see it a lot. Order. It's a lot more human friendly toe actually read that message. So how that works is if you have a block such as his era block any stages inside that block that throne exception will jump to the recovery stage in that block, so you can only have one recover ST were blocked and then it will try and recover. Asked simply will throw straight on exception. So a good practice in blue president is to retry, usually about three times. And then if you're still having issues value Freddie exception. So in order to do that, we are going to create and you data item, we're going to call it retry around data type as number initial value as zero, then drag a decision on call this very try with a question mark. And if our truck can't is less than three, we want to continue retried that same step. So what we'll do at, so do we added catalyze stage. Now we'll call this increment, retract out and what we want to do. We want to take the retract account number, the crew mets up by one and then store it back and retract now. So with that done, connect up your recover century try. If yes, well, incremental. Retract out if no grown exception. And typically, if you haven't issued an application what you do, you actually closes down and reopen it and try again now, depending on the application, some you might want to close down, but sometimes they can get into a funny state that you can't recover from. So even though it might take a bit longer to recover, closing it down, it's good practice and then connect that back up to the Lord stage. Since we are only actually closing down our ordering system application, we've already loaded to see SV contents, so we don't need to go back to that stage and relied on. So let's run this now and see what happens. Get a narrow tries to retry. Retract Can is one, and we can see we're still getting an exception here. Failed formed, step pointing, right state right product code on page right order thes house unable to match any windows of the crew terms. So what's actually happening is if we go in right clicking view action in object, Syria will go straight to this action. This is actually thrown an exception in one of these stages, and we're not catching it. So what happens? Within an exception, it will attempt to bubble up to the parent If you capture otherwise, it will throw it straight away So what we want to do it is simply use a block, surround all that occurred here now, right, Order details with this at a recovery stage and then exception what you want to do. Connect up your recovery to your exception stage. Make sure to block through ounce there a cover state fully and then with your acceptance stage. If you took preserve it, type and detail exception it. Okay, what happened is when this exceptional throws it will go up to the parent page or the apparent process, and then it will jump to recover stage and move on. So if we've hit, save make surely the same ultra objects order up their object. And whenever you needed update and object, you typically need to actually close down your process and reopen it. Or if you add a new page, you need to save your process and reopen it all. See it so usually s s for sanity sake. So do that. Close it down. Open up all the system again. And now let's try and running up from start to end. It opens. Got an exception. So will retry gain. Retract town is one over here and we still get that exception. And the reason for that is if you have a recover state once you've resumed operation, you need to make sure that will actually connect upto a resume state. So otherwise your exception won't catch, probably, and you'll run into with issues. So when you recover and you continue, it always needs to come out at a resume stage to resume normal operations. So let's run that from the start. Now, with a resume stage connected up and see what happens. We re try. Retry count. Is one want log in again? Could see we recover again now, so we're no longer getting that exception. Let's prices strike game Retract Hat is now going to go up to three, and this will be the final time. It will try and add in order on the Logan Scrape so it will no longer retry after three times and we go to our exception could not add in order. So this is how you handle exceptions in Blue Prism. The key things to remember if we goto added water page is that if you take that preserved retired Andy tell the con exception what it will do it will jump to the apparent page. Or even if you don't have that and you have a customary message in, it will drop to parent page or parent process if you actually have a recover stage in there all the way up to the main page of your process to try and continue operating. Otherwise, if it can't continue, I highly recommend trying a retired block because sometimes the system might not let up quick enough. You might not type in the right thing for some reason, so retry a few times. And then if you can't actually continue the process value for your exception. And then once you for an actual exception, you might email someone saying, Hey, the bodies aren't working. This leads manual intervention or you need to look at it And final item is your color state always need to connect up to resume state want it continues normal operation. Otherwise, you might see were things such as you just saw, where on the second time around, the added order would for an exception and not recover or other weird oddities in blue prison 50. Wrapup: nice work. We have set up an empty my automated process. It might sound simple, but this covers about 80% of a blue prism world. And it usually blows people's minds away when you can actually automate processes such as this one. So let's do a quick recap off this complete and 20 process and the three lays in Blue Prism it is in. Okay, so first of all, we're going to start at the application model. Recall that this will tell Blue Prism where the text input parent and so on the screen. Remember that you might encounter issues went by, such as it will find you pick it inputs. This is due to the attributes can share the same settings. So remember to change these to make sure the item that your spine is unique and one of the best friends is orginal. And this is a position of a particular text field bottom import or so on. Next up, we have the object layer. This is where we actually control the ordering system. In this set up, we had our log in. We have navigating the menus. We have adding an order and retrieving an order tips to remember that sometimes systems are slow. So remember to use time out to make sure the window well, Lloyd, because sometimes it might take, say, one second to load another time. That might take 10 seconds to load everyone to using the same system at the same time. And finally, acceptance, I guess, off the track weapons girl to connect it all up. We had the process layer. This is where all your business logic is in here. We were treating order by using object we created, and then we passing the order details as an import into that object. The object will then output be returned details, often actual order that we retrieve. For example, we also then added in order in two ways. First of all, we added a single order at a time. And then where we really unlock a power off blue prison is when we connect up different systems together through blue prison as an orchestrator layer. This is when we got the CSP Far or Excel sheet into a collection, then added orders into our ordering system from here 51. Best Practice Overview: So before we wrap up this course, there's a few best practices of blue prison. I want to quickly run. You buy that are very common in that price. Had ups as mentioned earlier. We'll show you the secure way to stall passwords in a credential manager also having developer standards why they're important and an example set standards. Next Stop the que lo que process, which is a very, very common pattern when using automation with enterprise. So it's very important to have this one in the back of your mind. Finally, a cover up. Why shouldn't be scared of a code stage, why they can be useful and have to use them. And then, finally, how you can recover a lost account in Blue Prism because is, this is quite Call me if you have a training set up on your desktop, for example, you don't use it for a while, you come back. You can't remember your possible if you have the raid. So everything a game. Also, you have to avoid that completely 52. Secure your passwords with credential manager: Let's take a look at the blue person credential manager. This is a secure way you can store your password when you're running a process. There are three ways to restore your profits. The 1st 1 is simply in the process of an object. This is the most intricate away, and I do not recommend it at all. The next two ways, which will cover soon, are in a credential. Many job and there are two options. Toe. I restore them in the database with a credential and a key. Finally, the application server, where the application server has a key and a database has your critic credentials. Let's take a look at the diagram. If you have a credential within a process, it simply stores it in plain text. So say I use the name is BP, not password is password. It's towards it on the system that's running a process. So anyone who has access to that can actually view that user name and password. Next thought is used in a credential manager with the day the base. What happens here is when a process is running. It goes to the database and he will ask. Mayor had the parcel it for the ordering system. The database will go shore. It will use the key to unlock the credentials what sent to the client? And now we have right credentials, which I use a nine day pay. Impossible possible. So super simple, super secure. It only accesses credentials when it needs him. The database will send back the key and credentials. The client, which is running the blue piece of process with decrypted, flowed into the system, and that's it. So if anyone is able to access your blue prison system as long as the processes that running get credentials as safe and sound, the final option is the most secure way where you actually use the application server toe. Encrypt your Gran chul's So we have our Blue Prism client on the left. Once again, we have the application server on the right over here and our database off the top above it , the client asked. May I have the password for ordering system? The application server will then go to the database, retrieve the credentials so the encrypted user name or password in the application server has two key already on it. It will decrypt it on the server so that you use my blue prison. Your password is password. Then send it over encrypted connection to the Blue Prism. Climb nice and simple. Some further security around Encryption is when you're using a credential manager. You can actually restrict them to only be able to be access to buy certain processes equal restricted. So only certain systems so certain computers or virtual machines can actually access them. And finally, you can restrict them to a certain user group. So not everyone he could look into blue prison can actually access it. So this is a way, especially in sensitive environments such as pay information, leave information and so on. You can make sure you've got locked down as much as possible, and you want to use the principle of least privilege, where you only give the minimum amount of credential access to be able to run the process. So let's jump into Blue Prism and take a look at setting it up. Now we're going to go with the third option, which is using the database, which is nice and simple to set up. But for any production system, I recommend using the application so So let's jump into it. Okay, so what you need to do to set up credential? First of all, head over to the System tab and Blue Prison, and it will be under security credentials. But before we do that, we need to set up the encryptions games. Recall. You can store the encryption details in the application, server or database. If you do location application server, you get instructions that the secret cave for the scheme, which will be added to the server case store, is in a configuration utility on each application of. If you get OK, it's not actually going to do anything that's a method will be unresolved. So what we're going to do instead of going through those steps that we're going to simply sit up database for the exercise of a development environment with the method, Just leave it as default A s 56 which is the most secure method it generate. K hit. Okay. And now we've set up our first encryption scheme so you can actually have database and application server set up side by side, but a recommend just setting up your applications over. They don't move it. Now that that's it up. We're going to credentials and actually create after natural for all the system, you try to students without setting up your own crops Screens. You will get an era when we go new on credentials. So make sure you do that. We're going to call this one order system. Next up, you can set up the top of credentials you may usually be using General, which is just a user name and password. The next ones under here are for accessing AP eyes where you don't actually automate. Using user interface, you connect directly to the application and exchange data, so just select general user name will be BP possible. We passed work. You can also store additional properties in a name and value pair on a credential if you want. So this any further details you need, you can explore it so it's still encrypted within a credential. You can also set an expiry date a market as invalid. Next stop the next tabbies access right? So remember security roles for user is in any of these roles. They can access credential, so we're going to allow for any role for the purposes off this lecture then you have processes, so construct the processes that can actually access a credential. So we only want the order system to be able to access one. And finally, resource is is the actual systems that connect us a credential. So we're only running blue prison on this PC. But in a production environment you want have 10 pieces that can run Blue Prism, and you might have one of them as a designated secure server. That's more locked down than arrest. And you can actually make it certainly runs on that computer. We're going to select all resources, okay? And now we've got our first grandchild's set up for organ system. So it's super simple to access was simply head of Australia. We'll go to our order system process, and what I'm going to do is drag on a new action just up the top here, we're going to call this gets credentials for the business object. Drop that down and your notice. You have one court credentials. Then you have various options you can actually set and get them here so it gets use get, and the value will be called order system, which is a name or a credential that in outputs you concede you cannot put the user name password expiry date. So we're gonna store password on user name on. You can also see the documentation in the conditions. So here. Okay, try to use name possible next to it. And now what we'll do is after we launched the application, we're just going to connect it up to get credentials just to see what happens. It will throw in a row, but we just want to see if we can actually get the user name and password launch, get credentials. We get the error because it's not connected to young stage. However, we notice we've got the user name be people Blue Prism. And I can assure you that possible it will be the word password. So that's hey, actually store and get credentials in the application. Next stop in your log in. You could actually modify that log in page to accept an import with a user name and password to pass through the credentials and use. Um, that's up to you if you want to explore that. But now you know how to safely and securely stored credentials always using a credential manager you can access of. Ah, you can control who has access to it. What systems have access to it? What processes have access to so you can actually look down? Your process is so not every man in a dog has access to them. 53. Developer standards: So when you're working on a project, I've were a few developers or many developers, or even with an organization, you might come across Blue Prism developer standards. If you don't come across him, it might be a good initially to get set up on what they are, essentially a standards the team will follow when building out Blue Prism processes, objects, application models and so on. The reason for standards is that way. You have quality processes and you team members can on board a lot more quicker. And finally, you can actually maintain your process is a lot more simpler if they awful the same patterns. So you're free to set your own standards on the following slide here. I've got some example standards off some general once at a common in the industry. So, for example, processes always flow from the left to right. As you've seen we've done in this course. Next up is that objects are built to be reusable, so several processes can use them and they might do different things. But ultimately you don't have to go recreating every time. So if you have a core application such as the ordering system, you build that to really reasonable. So many processes can use That same orders object, and generally you follow, read, write and navigate pages with are being raid w being right and being navigate. However, it is okay to make useful pages such as Log in la Galette objects at the person's discretion. Next up is that code stages are okay to be used, so long as I do one function and one function only. And they are auditable because one of the important things is when you order mating stuff, things can go wrong and you want to be on a trace where they went wrong and how they went wrong and so on. If a code stage doing 10 items, when you look at the logs that will only at port one thing essentially. So if a code SAGES doing 10 things, you should have an intense, separate code stages, so make sure they only do one function at a time. Next up, we've got the credential manager, which have already seen whereby, or credentials will use a credential manager and that operate on the principle of least privilege, which means you only give them a minimum access. I require urine, given full administrator privileges, access to everything. You only give them access to the pages in the system. They need the processes and its axis. And so what? So that way, if there is any security incidents, no one can get in and wreak havoc on your systems. And finally, anything such as processes, objects and so what must be peer reviewed before going to production. That way you can ensure your following the standards, and it's always good to have a second I because when you're developing something, sometimes you over miss some obvious things. So it's quite handy to get someone to quickly Carson I over it and make sure everything's all good, so I'll leave it with you now, as I mentioned, you may already have seen standards. Feel free to make any suggestions or changes to him as you feed. See fit, depending on how your team and good works if you don't have them, I highly highly recommend actually looking at setting out some standards 54. Queue loader and processer: okay before we actually set up a que load on process er, let's take a quick look at what it does and the advantages off. So, first of all, looking at their orders. CSP, that would seem before Now, let's just say we want to be out of processes orders in a more faster and efficient manner . So looking at the table, we have five orders. So let's take a look at what a set up with a Q loader and Q process I would look like. So let's just say we have a table with five orders in Blue Prism, we use a que lo don't toe. Load up those five orders to wake you so AC you'll have five items, and that will come due. We can delegate it out. So let's just say we have three systems, which are the Q processes, so all of them can process any single given order at a time independently off the other systems. So the first system processes towards the next system processes to, and the final system on the fire right processes one order so it can see here. And so one system processing or five orders. We've now split up the work into three systems, and we can get it done much, much faster. And another advantage of a Q is you can actually see which items were successful and which answer an exception. So in this scenario for off, the orders have a great tick. So they process find. However, one order on the final system had an exception. So taking a look at some of the other advantages off while we should use cues. First of all, as you've seen the scale ability, we can easily delegate work to run on multiple systems. Next up this analytics, you can see how much runtime was per item one acute. How many eyes of you presses etcetera so you might notice the systems a slow at a certain time of day and so on and also seeing how long it takes on average, the process on island can help you work with scheduling on your blue present system. You can set priorities on items, so if something comes in, that's important from, say, an executive team member. For in order, you can set that process before all the other items in acute as we just saw you contract items status. So whether or not the items have been completed or there is an exception, you can retry any items that failed that had an exception. And finally, once you load data into a queue, you can actually encrypted. So just another layer off security. So let's take a look up Blue Prism now and actually set up a que loader and Q process our for our orders. All right, so let's take a look exciting up Queues in blue prism. First of all, we need to head over to the system tap none of work where we have work use. So this is where you're new to set up your cue here. First of all, we need to give back you a unique names were going to call out orders, and then you're going to see this canine. What this is is when you load an item to the cute, you always have to load it as a collection. And the key name is if you have something unique to identify the road in that collection. So, for example, we have our order system here in this taste, each product code is unique, so we'll use that as a key I d Okay, now, so going to call it product code. And this is because when we learned this excel sheet into acute, the collection will have product code as one of the options we could get data from. So if you're not too short to use, you can just leave it as devote. But I recommend you use a unique idea where possible. It just makes it a lot easier to track what's happening to your cue. Then you can use some other options here where you can actually have a maximum attempts to retried item cryptic you on So on. So with that set up, what we can do now is head over to our control, make sure we save the changes and we could go to queue management and we can see we have a cure orders here. Now we can see the queues running. How many items have been worked on it? How many a pending and so on and in the bottom half of the screen, you can actually see the list of items in this kid. So let's set up a process to actually first of all load items to the cute and then after that will set up a separate independent process to actually action the items in the queue here. So go over to our studio and what we're going to do. We're going to create a grip. We're going to call it order you process, and I recommend when you're using a que load off and a Q processor, you create a fog up because you actually two separate processes. The first Oneto work accused. So we'll call this orders. You going next hit finish. Now let's open up that process. And before we start using it, open up your order system process and we can actually copy this. Open CSP and order details stages over to our other process. So if we pay citing here, we concede you can actually copy paste ages from one process to another. So super handy if you have a tiny bit of logic or some steps you need to replicate in another process. So let's close down all the system. And now, in our orders like you, what we're going to do well, open CSP from our all is which will be this CSP as you recall. And that's going to put it in this collection order details and to actually add those items too accurate. Simply drag on another action. We're going to select work use on the internal business objects we've had too cute. A que name is going to be orders. Remember, we added that as a cue and the collection at order Details collection. And that's going to up load up or the items in this collection to the Q and as touched on earlier. You consider priority 40 items on some other options. So let's get OK. We're going to call this step load orders to kids. Then let's connect up our start open to use food to lower orders to cuter and then save the process. Will call it, set up a few processes, save the changes, mallets from the process from start to end. You got all the details. We load the orders to the Q. And now it ends so you could see we don't get too much feedback. But we can confirm it worked in two ways. First of all, any order details collection, we could tear current values to confirm that our seriously still opened and loads those items to this collection and next we can close down the process. Now that we've finished with it, make sure you save any updates. And then if we head back to control in the queue management, select this always que you'll notice down the bottom. Here, we've got all the items so you can see here the item key, which was the product code. So let's an easy way to glance at Kew content what you've actually got in there. So that's why I said set it to a unique I d. Where possible. Otherwise, use the next best option. You have the priority, the resource. It's light it on any matter attempts its head. So once you've loaded items to acute, you actually need a separate process ideally to process them. So what we can do? We head back to our design studio in our order que process up. We're going to create a new process for orders. Process cute going next, he finished. And now if we open up the process, there's a few things we need to do to set this up. So dragon Action stage onto our order process you. And once again, we're going to use work use toe actually managed to Q. And then we need to use the option. Get next item so you can see this. Various other option to just focus on get next on for now, que navies orders. So we want to be out, get in order. You can actually feel to the data in a queue to get certain arms. But let's not worry about this for now. Then in outputs, we need to craft the order I d and the data to store in a collection. So here. Okay, don't worry about least two options for now. I'll run over them soon and actually show you what they do. So we're going to call this get next item. You okay? Let's connect that up to start and then we need to drag 80 Susan stage and we're going to call this no more items, Question mark and what we want to do. It's if this out of my day is equal to blank text, that means with processed or the islands in the queue. So it might not make too much sense now, but let's set this up start to win, and it will all come together. So we've no more items set up. Let's strike and anchor above it. And just right before the end and right next to the end connect, Get next item up to no more items. If there's no more islands to press an acute, we just want to jump straight to the end. If we do get in autumn, what we're going to do is copy the sage get next item. We're going to set this to mark completed and grab that item I d text and put it in here. And then we're going to call this mark item as completed. Then we're going to Dragon Anchor states below that below get next item. If we still have more on Mr Process, we're going to go ahead and protest it. Drag up the anchor stage and then connect that up back to next. Get next item as follows. So let's run through this step by step. So actually see what's going on with the process. So by using the step, we'll go to get next item hit step. You'll notice we have a unique item. I d. Here and in the data we go to current values. We know this. We've actually grabbed a single item from the cure. So remember, we loaded this excel sheet to the queue. So product code is ABC 1 to 5 quantities three unit prices 2.16 and call center is one a one. So this get next autumn, actually grab one of the arms from the queue and each item will have this unique day. And the reason for this is you can grab that unique I d. And then in the stage mark item is completed. When we step into that hit step in the background in a cute this is going to mark this single item in that queue has been successfully completed. And then if we hit run, this is going to loop are out on all that islands and cute, which is five items. It's going to protest, the more mocked him as completed and once there's no more islands. This item, my day will actually be Blake. So be coming up soon. And that's how we know when we need to stop processing. So this should be the final item. Now get next item. I don't might be explained. Davis empty and then simply moves on to end. So this get next item. If there's an item in acute, he will actually grab the item i d story in the item i d output. It will grab the data sorting a collection date up. But if there's no items remaining in acute process, it will simply set the text and the collective empty. So the best way is to see if the item ideas blank. Then you know there's no more items to press us in the cure. So let's say that as set up, you process off hit save changes. Just minimize that. For now, let's head back over to our control in al que management in orders, we can actually see not just a great tick against all items. So these items have been processes successfully conceive the amount of time it took to complete its item. You notice once 43 seconds. That's when we manually step through it. Apart from that, it takes 2 to 3 seconds. Stop processes and go item. You can see how many attempts it took and so on, and we can also do also right click on cue items. You can delete the work cases from the selection If the items have thrown exception, you can actually force him to retry. So this is really good at when you're actually building at a Q process. Er, you not yet finished What? You want to rerun it and test that process for again? You can force it to retry. You can edit the state us. And you could also lock the items, which is a bit of a more advanced topic on so on. So going back to our actually que prices up this mark Island has completed would actually come at the end when you have successfully completed a single item in acute. If there was an exception, you change that to Mark. As an exception with the item I d. You can, given an exception reason a flag if it should retry If you should still locked that item, we just cancel out of that. And what you would do say we're using our order system example where this note is, this is actually where you set up the process to in open the audience, ordering system on order and then move on to the next item. So you'll remember earlier we actually set up a process toe load all of those orders from Excel and then run through them one at a time. So using this que lo que process on method What you would do the Q. Lodha would let up all those Excel items, as we just done, place him in a queue. Then where this notice here, This is where it actually set up the ordered system to add the next order, then move on to the next item. If it's successfully added in order you mark the autumn is completed. If there was an exception for some reason, say a program didn't launch you mark that item as an exception and move onto the next one. So that's it for cues. This is just a very high level overview as how to set them up. Why you should use a man so one I really recommend getting to know them more anyhow, let's take a break now before we move onto the next lecture 55. Code stages: Okay, so with created a new object called code here. And you might have noticed we have this code stage within objects. What this does it actually allows you to write code and executed within blue prison. So we're going to rename Alster coat and let's use house to join a simple string. So we need to do first, we're going to create two data items were going to call it name. Gonna set the data, talk to text. We're going to set the visual back to our name. So in my class, it's Andrew. So that's your name. Akopian paces, Rain amis. Great e. Delete the initial value. Then connect a coat stage up from start to the end on our and you could object. We just haven't on the initial s page. And before we get coding, you can actually set up the co two B one or three languages in order to change that setting into your sliced page on the little square. If you double click on that, it gives it the properties off the business. On Jack, we select card options. We have this language here by default. Blue prison is in visual, basic and earlier, we used VB owes provided by Blue Prism, which stands for visual basic objects so it can actually see some dark blue prism items. He is code in visual basic. I'd prefer to use C sharp because there's a lot more documentation on it on line. If you run, tow a problem. There's better example code out there and visual J isn't you so much. So it's completely up to your preference. If you do work in a team, try to follow one language where you can uncle to U c sharp for this video. So changed that to see Stop here. Okay, then back in our code, we're going to give it an import. So at the import off their name, we go to name this name outputs. We're going to add grading. They're going starts ingredient and the name will be grateful. Then over on your co tabs, you notice you have your prime minister in and out. So instance, for input out stencil output. So in this code, import means you can grab data from these islands. Output means is you want to send data back to those items. So just before it hurt, if I go back to the import. The actual name stage here, such as grating. This is how you access it within the code. So where God's do creating equals, we'll do a strength. How long? Plus tackle and full name, then semi column. So what this quote does here is in the output greedy. We're going to store the text. Hello? Plus, whatever the name we set will join these two text islands together to form a grating. And now, before we run the code hit check code and this will actually run a senator check annoy code and make sure you have no mistakes on you'll notice we have an error here. Court code member names cannot be the same as their enclose closing type. What this one here made it is not obvious, but the actual name off this stage cannot be the same as a name off our actual object. So we're going to the rinos to say greedy. Hey, it's OK. Hit refresh. Open it up. Go Code check. Look and will notice. We have no errors now, so he closed, you know? Okay, run that from start to end. We can see we've got Hello, Andrew. and upgrading now. So that's a super simple example of using card in Blue Prism. You only want to use it where you need to. And if you do as I mentioned, you only want to take one action because the order child is very important. That blue, is it not just for finding out what went wrong, but if you're process, does something really weird and your coat step has 10 stages in it. How do you know at what point in your code it failed? So Cupid Super simple. If I go back to Sir grating if you've ever done quoting before, you can't actually and start the code a run through it, step by step to the end. Unfortunately, so it does take a beautiful coding background to get used to this and have a run. But I recommend starting off basic includes stages. And if we close down this and save it as added grating, just going to go to the blue prison VBS reported imported earlier. So if we go to file management, let's go say to figure down at fault, you notice that this is a code states you said can open up that see how it all works. This is already in visual basic. And if we go to the other pages file exists on someone you notice, so code. We've got to get CS V Texas Collection. You know, set. That's all code there. So that's a really good way to actually feel right. How to use quite in blue prison is actually by looking at how other people don't and also within this course, I've included a bunch of useful utilities for Blue Prism that do some really cool stuff or for free on a lot of those use. Coat. Second, download it for the resources for this lecture or this course and just a final point. Don't be afraid Off code stages There's some really useful wants to, such as regular expressions that a used to extract, say patterns from a string so you might have an email where you only want to get the body. It could be useful that you might have say, the price for an item on using rejects. You can really easy get price on items, so don't be afraid to use an experiment with code stages. They are your friend. Just make sure that other people can understand how they're being used and why they're being used 56. How to recover a lost password: all right and intellectual way going to quickly look at Hey, Khumri sent the blue Prism part of it. If you have access to a blue prison database, so quite often if you have Blue Prism install on your computer, you might not use it for a while. You might come toe back to it and pass. It might have expired my Afrikaner password. But you want to get back in because you don't want to lose all your processes, objects and so want so first of all, what you need to do is just open up blue prism on your connection. Go to configure. And we're going to make sure we get the database server in the database name from the Blue Prism connection with using recall. At the beginning of this course, we installed Blue Prison using sequel expressed. So we're just connecting with Windows authentication on their sexual computer. Now what you need to do is open command prompt by typing CMD next up, you need to talk to see cool Command Dash s local host. Then we'll do slash Sequel Express, which is database server listed in work, Blue Prism and finally dash D for the database to connect to, which is Blue Prism. Your answer. And if it's successful, you notice you've got this line one thing here. So now we can actually execute sequel commands, which will enable us to up that using them. Impossible. So just an example. Command here to list all the users we can do. Select. These are I D coma user name Rome BP. A user, which is a database table Press Antioch typing go percent up. And now we can see all our users in Blue Prism with the use, right d and use the name Ellis. Adapt here so that the admin years that their user i d and also just somebody uses that may have been in that. So now I've in this lecture order of resources for this course, you can copy this command here, which I'm about to paste in. So you just copy it, right? Click to hit paste, answer and then typing goat and you see run Rose Affected. What dismay it is. This command has updated the ad meaning user to be the password password. So how that works is we're updating the BP a passport table. We set a unique combination of a salt and hash, which is the actual password? No, this is a one way function. You can't figure out what a party waas from assault on hash. It puts it for encryption algorithm. The reason we know what this is is if we manually password to say password. It's going to be the same sultan hash every time. But this is extremely difficult to crack if you're actually trying to figure out what's possible. And we only want to update the password where the user I d matches a user idea from that BP a user table. We just got where the user name equals admin so early updating the admin password to show that working now closed down and go to Blue Prism topping his name, Admin password as password we've consigned into Blue Prism. So that's hey can reset your admin. Possible or use is possible. If you don't actually have direct access to Blue Prism, they should only be used if you know what a way to get into it. Typically, you only be using it on your life computer, but if for some reason you don't have access to any accounts on a production set up, but you have access to the Blue Prism database. You can also use this method to update a users password in this example the admin to have the password as password.