Automation Anywhere Bootcamp | Andrew Seeley | Skillshare

Playback Speed


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

Automation Anywhere 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

34 Lessons (2h 30m)
    • 1. Course Structure

      1:38
    • 2. Project Roles

      4:11
    • 3. Sign up and setup

      2:57
    • 4. Your very first bot!

      3:24
    • 5. Automation Anywhere Overview

      4:46
    • 6. Make sure its running - tips and tricks

      1:12
    • 7. Launching notepad

      5:43
    • 8. Writing to notepad

      5:03
    • 9. Reading from notepad

      10:26
    • 10. Closing notepad

      1:45
    • 11. Variables

      4:03
    • 12. The humble dollar sign

      1:25
    • 13. If then else

      4:27
    • 14. Loops

      5:51
    • 15. Order System Intro

      0:19
    • 16. Order System Overview

      1:53
    • 17. Bot building approach - best practices

      2:19
    • 18. Login

      6:23
    • 19. Navigation

      6:53
    • 20. Retrieving an order

      12:04
    • 21. Adding an order

      7:21
    • 22. Read from a CSV file

      5:31
    • 23. Adding an order from the CSV file

      6:51
    • 24. Cleanup

      1:24
    • 25. Triggers

      5:02
    • 26. Website and outlook automation overview

      0:56
    • 27. ABN Website overview

      1:38
    • 28. ABN Lookup bot setup

      7:17
    • 29. HTML Selectors - Deep Dive

      6:20
    • 30. HTML Selectors - Practical

      2:34
    • 31. Get the legal entity name

      2:45
    • 32. Sending an email

      3:25
    • 33. Credential Manager

      5:01
    • 34. Logging

      6:44
  • --
  • 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.

62

Students

--

Projects

About This Class

Ever wish the mundane daily tasks could be automated?

Learn from an instructor who delivers enterprise Automation Anywhere projects and has been actively involved in engagements that has won global RPA awards.

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. We will 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

  • Process life-cycle

  • How to security manage your credentials

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?
    Exceeded!
  • 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.

Transcripts

1. Course Structure: Before we jump into the cause, I wanted to give you a quick overview of how the course structure will work and what you will learn. So in the first section, we're going to have an overview of automation anyway. So this is around setting up your account, getting your very first bot running and just a quick overview of navigating and using our product. Then throughout the course we're going to create three bots. A bought to automate notepad. I bought so automated and audit system which complaints and retrieve orders. And finally iPod to automate a website and send out emails in between these bots. So we're going to look at various Automation anywhere features such as variables and control flow, triggers and Automation anywhere, best practices. So the flow will look like this. You'll be creating a boat. Then we'll be taking a bit more look at one of the features or key areas of automation anywhere, then creating another book and looking at another feature and so on. At the end of this to finish a course. And congratulations when you get to that point because you'll be able to easily create your very own bought, know what to look out for the best practices and how to set one up. This will save you a significant amount of Tom when developed uterine book, once you're armed with all its knowledge, learning doesn't stop there. I also run a YouTube channel called seeming automation, which I explore all aspects of automation products. So be sure to subscribe after you finish for a heads up on more content that you can actually learn. So all the best, I'll see you in the course. 2. Project Roles: Okay, before we get it to developing bought, I just wanted to give you an overview of the types of roles available in Automation anywhere projects. I think the important thing to note is you don't just need to be a developer. However, these skills and developing what's a critical and applying to domain any role at all. So you don't need to be an expert by omega all these roles. But this is a good foundation for you to have that background knowledge within these roles. So let's take a look at the different types of roles. Good, the project manager slash scrum Moscow, the developer, the book controller, he Business Analyst, and finally the test off. The first one is a project manager or scrum master. They're responsible for leading a project, resolving any blockers. So say you can't get access to a system. You're waiting on a username and password there that help resolve that book of for you so you can chain development. They're there to engage your project sponsors around funding. Next, heirs of opportunities responsible for upskilling near team, developing their skills, getting certifications, and finally, managing timeline and deliverables. Next up we have the developer. There are spots for building a boats there to assist with I design document, which is a document around a manual process as it is today. And what that's going to look like in an actual automated process. So it's essentially a requirements document. They estimate development timelines for boats and liaise with stake holders more from a technical bought development point of view. Next up you've got the control. They assist users in running the boats. They do monopole maintenance. They work with developers for any major updates to boats. They'll lies with ITA to make sure if there's any system updates, is it going to impact their boats and make sure they all run smoothly off the systems, update. The update stake holders are any of these key issues. And typically though, overlook, obey or smooth for 20-30, VO2max doesn't mean that they're running on their selves. It's just there, the key SMA around maintaining and running a bought. So your end-users might run the books, but they're there to help make sure things run smoothly. We then got the business analyst, they gather requirements, photo bots. They will map any menu business processes to what it looks like in an automated world. And the process might not look exactly the same. They find ways to optimize a process or through automation, make systems completely automated so the end user doesn't even see them at all. They'll then help transition this manual process to development of the developers. So defining a solution definition document or design document around what that bill looks like. And running workshops around gathering the requirements and following up with key stakeholders around any questions. We then finally have the test up. They're responsible for testing boats to ensure that they meet the requirements set up. They create around test cases. And in their test cases you have what's known as a happy path and a unhappy pop. The happy path being if everything's good, what a successful run over what looks like. And he unhappy POS being, if this fails to log into the system, how do we handle that exception? Do we rerun the do we are trying to read on a five times before we give up and send out an email to stake holder saying, hey, the boat didn't run successfully this time. And they're responsible for User Acceptance Testing, whereby once a developer has completed building a boat, then a to run testing with a bought with the and uses to make sure they're happy to move that into production. So there we have all our rolls around and automation anyway, I project. So that's quite a lot of opportunity in this course will help in any of those roles you're looking at, getting into all you are already in. 3. Sign up and setup: Alright, let's get Automation anywhere setup. We're going to use the community edition, which is free and runs in the cloud. So you need to head on over to the Automation anywhere Communities website can be found by following this URL or giggling Automation anywhere Community Edition. Simply putting your first name, your last name, email, country, find number and company. Don't have a company. Just put in useful self. Make sure you accept the terms of conditions and then get the free community edition. You then get an email directly to sign up and set up your account. Once you set this up, you'll be able to login to the community, dot cloud the Automation anywhere dot digital. And you have a screen like this, and it might prompt you for a tutorial. So if you have any pop-ups around that, simply ignore it and get to this dashboard. I will take you through that in a moment. What we're going to do is, first of all, get the Automation anywhere setup on your computer itself. And then I'll run you through the quick tutorial that prompts you to go through. Just to give you a brief overview of how to setup your first ball within a few minutes. So what you need to do, first of all, in the top right-hand side, you'll see an icon that looks like your computer needs to drop that down and you'll see a local bought agent. You also look different tomorrow because I've already got my setup. You'll have a prompts, you set it up and download the Automation anywhere, install up. So download that. And once you've downloaded that, you had this Automation anywhere bought agent. Just double-click on that to run it. There. Yes. Then this is going to take you 30 Automation anywhere install. This will only take a minute or two. And once it's set up successfully, we'd be able to say that it's actually configured in the Automation anywhere Control Panel. So might already installed and that's why it was so quiet. You might need to click next and continue. And once that's installed, you won't actually see anywhere on windows in your Start Menu or in this era here. What I will show you in a lecture soon is have to check that it's correctly running on your computer. However, we can actually also check it in this dashboard up here. And the top you can say you all local bought agent should be ready to run now. And then if you head on over to my devices, you'll actually see your computer in here with a green tick on the computer and e-version of automation anyway, you have installed. So now that I've set up, we're going to take a quick break. Then we're gonna get into the tutorial that it makes you run through setting up your first in a few minutes. After that, we'll run over this dashboard, navigating it around and using it. And from that, I'll show you how to actually check that Automation anywhere is running properly on your computer. How to start and stop it and restart it. If you do need to go there. 4. Your very first bot!: Now we're going to go through the walkthrough that prompted us to set up our very first bought. So you'll see this question mark in the top right. You'll see walkthroughs. You click on that to get this walk-throughs with that pop up. And we had this walkthrough. Let's simply click on that. And you can see here it's going to highlight, hey, can create your very first bought. So I'm gonna take you through this step-by-step or you can follow it only automation any web, website is just simply get if we move the UI and see how it actually works. And then I'm going to take you deeper in section by section and also diving in a lot more around setting up and running I bought. So let's head over to the boats tab. We then need to go to my boats. In the top right, we need to go to create, but it will then prompt you to give it a name. So we're going to call as hello world and give it a description and put it in a center photo where it is going to go create an edit. You then get this UI interface here. On the left side you have the actions I can take. In the middle we have this flow. We can say where I bought starts and ends. And in a talk we can run debug and analyze it. So what it's going to do is search for message. And you can see this message box action. Simply drag that onto the middle here, wave got sea dragon action here. Stroke that in that. And then you can enter a message box into the window Totto here. And the top right, we are going to do hello world. And then you can add to the message to display some total was a toggle. So the alloy, this is a bought, Isn't this cool? And I'll just fix that up. And you can see you've got some other options, but we're just going to hit apply. And once you're happy with that hit save and a top right. Let's go on to save it. Then to run a very first bought hit this Run button. It's going to deploy to a computer. You also probably its height IB at longer, it will have to download some dependencies. Usually the first ones, the worst, it takes a few 100 megs to download it. I've already got mine. And once it's running, you can see here we've got our pop-up message from the bought. Hello. This is I bought isn't as coal. We've got the title hello world. And then we can see in the bottom right the progress of the boat. We can pause, cancel it and were exact soon as soon as we hit Close, this is going to jump onto the end and finish running that bought. Or can say Automation anywhere tells us as running in the background. So let's say clause that finishes. And we can see Apple has run successfully. So I congratulations, you've run your first bought in Automation anywhere. If you haven't done this before, that's right. We're going to dive a lot more deeper into the content soon. This is just to give you a brief overview of how creating and running a ball works. So let's take a quick break before we jump into the overview of the Automation anywhere, navigation. 5. Automation Anywhere Overview: Alright, let's take a quick look at the automation anyway, a Dashboard we can see we've got navigation down on the left-hand side. We've got an overview here and on the top right, we've got somebody airs on navigation. So we'll start off in the top right. You can see you've got your help here. You've got your language. And you can see that the local board agent is running on the computer that you're actually using right now, which will be used for building and testing books. And you've got your profile on the right side. Next up we've got our navigation on the left, hardly where our home. And this is the way you can jump to the most used areas, Automation anywhere. You can jump to creating a bought. The cognitive automation, which is a new feature to actually create a bought that use machine learning and artificial intelligence to actually bring some sense to unstructured data such as handy little letters, emails, and so on. You've got some analytics around bought insight to see how you boats are performing to make sure they're efficient as possible. And finally coming to it is a digital work was marketplace. Now although it says it's coming to me, if you Google it, you can actually get a direct link to it and is currently up and running. So I just don't think they really did up yet, but keep an eye out for that soon, where it will link directly into your automation anywhere club. Then we've got our dashboard. Next, we can see he liked the homepage. It's got a bunch of Eris and navigate to such as getting started, creating a bought your insights, your recently viewed pages. Either you, the number of tasks the boards have created, the most US actions such as a message box we used. And this might be actually opening Excel rotting to Notepad, navigating a website and so on. Number of task watts you have run and the average time you've spent creating an actual task or here. And if you click on this, you'll actually get a bit more metrics or some of them. Then you've got your activity here. So you can see any bots that are currently running in progress. So if you have a lot of computers hooked up to your account, which will be for the enterprise. You can see the currently running bought. This would be especially useful any books that take awhile to make sure they're running a k, then you can see your historical activity for all the books that you've actually run previously. Good, see if that's successful or brain red if it failed. And then if you click on the item name and jump into it, you can save over details around which device that ran on. It started when it ended, and so on. Following this, we've got the boat, which is a main area we're looking at. You've got my boat, which is simply a folder structure of boss you've created. I've created a few already, some tests ones. And you'll be living in here for most of this course. Then you've got your credentials. We can actually store credentials that your boss use. Sorry, you bought net might need to login to a finite system. And you want to make sure that their credentials crypted, secure, and not just anyone creating bots can access them. So that's where you would store it, is in your credentials here. Then you've got your packages, which you won't need to worry about it all these all come out of the box for free with automation anywhere. And these are just the actions you're bots can take. So let's just say we go to the browser, which is a web browser, could see and hear. And this package has three actions, which is the downloaded file font broken links to a website. So we using these soon and you can also switch the different versions if you need to. If for some reason an update broke something, but that's pretty rare. Then you've got your devices on the left. And this will list all the devices that are hooked up to European, should say your computer here from one we set as up. And then if we go to administration and go to users. And this will be if you had several users actually working in the same space or working on the same bots, running them on different systems and you can give them different access. So you might have a group of people who are dedicated to creating books. And you give them create an edit permissions. And you want to have a group of people who just need high-level dashboard and activity infer to report NCD executives. So you create them and give them radar on the access to your automation anywhere data. So that's just a high-level overview of not going to go into any of those and too much data on now, we're just going to take a quick break. And then not too long after the next lecture, we are going to get into actually creating our full own end-to-end bots. 6. Make sure its running - tips and tricks: Now just before we get into actually creating what I'm going to show you, how you can make sure Automation anywhere is running on your computer. What you want to do is go to the search bar, type in services. And you'll see this services at ballpark, the need to open that up. And let's just expand that out and you'll see a series of services running in here. One of them is going to be Automation anywhere or agent. And this should always be running brought to work. If the issues with it, you can jump into here and re-start the service. And sometimes that may fix it. Otherwise, you might need to restart your computer and installed a ball agent if you have issues. This should be quite rare, but it's good to know where to actually see that it's working properly and actually be out to re-start it if you do an A2. So just keep this in mind. I recommend you just note it down somewhere, scribbled down somewhere. It will just be helpful to confirm that it is actually running properly because like I mentioned, it doesn't give any indication at all that is installed on your computer. So it can be quite hard to tell if it's working or not. And if you're like me, you just like to confirm or piece of mine on its right. 7. Launching notepad: Alright, we're going to get started creating our first, bought. What we're going to do, we're going to make a bot that can write to Microsoft Notepad and read for market stock Notepad. It's a basic bot. However, what it's going to do is it's going to get you familiar with the Automation anywhere you're why in regards to creating, selling on bots and a few tips and tricks. So what I need you to do is head on over to the my boat's window. And then we're going to hit create, but we're going to name our Hello World note pad, right? I'm gonna leave the description and leave it in a default folder. We're going to hit create an edit. And then we're going to be in this window here. So what you'll notice is first of all, you've got all your actions on the left. So these are the actions you can take. So you actually might be opening a program, sending mouse commands, keyboard commands, rotting. So Excel, reading from Excel, sending emails and so on. And there's a whole bunch of actions out of a box. You can drop them down such as e-mail. You can see you can connect forward, move, reply, save all attachments and so on. And there's all sorts of ones. So I recommend you just take a quick look around here when you're creating your bot. Also, just to get familiar with the power and what Automation anywhere can do. Next up, you've got your triggers and we're going to cover this later. These are certain triggers you can use to actually run a bot automatically if a file is created, if something's editor folder and so on. And finally, you've got your variables. So your bot can actually store data such as someone's name and then use it somewhere else throughout the bought later on. Next stop, you've got your flow window here. So you can see you've got flow where you bought starts and ends. In the middle you have drag and action here, which is our actions. And then start up the top, you can drag your triggers. Next, that is this list tab and it shows the same as a floor view, however, in our list. So it's a bit more Nader, or you can click on geo. Well, show both at the same time. For this course, I'm just going to use a flow because that's a lot more easy to follow along and make sense of it. However, as you get more advanced and build bigger and bigger boats, you might want to assert a ListView because it consolidates everything, especially if you have a lot of steps into a nice simple view. Then in the top we can run debug and ML as our bought. So what we're going to do is where Dan to set up our notepad application to open first of all. And then we'll take a break and come back and actually writes notepad. So what we want to do is under actions, we have this application and we see this open program file. So we've any action, you can click and drag it onto the dragon action here, or you can try it and see a list. I'm going to put it into the flow, then switch over to the Flow view. And then what we'll notice, we now have our application or can program file. You'll notice it has a red icon next to it because it's not set up fully yet. So what we need to do if we click on that step in the right hand side over here, you will see that these are the settings for it. So it needs to location or the program file you want to open. And it has some optional settings such as the stop path and any parameters. We're simply going to use location or the program file. So hit Browse. This is going to connect to your computer mainly to download some dependencies. And it shouldn't take too long. Up front. It will take a while to download to dependencies at first. But as you use more and more actions and things in Automation anywhere, it's a lot more quicker to run through this step. So you can say here that man has downloaded. So what we're going to do, I'm going to go to this Pasi, joy to my C drive per to system level are going to go to windows, follow, then head on over to system 32. And in here we type n, o jumps straight, it's all start tapping a notepad. You'll find notepad eventually in here, and we need to select that, then hit Open. It's going to put the PAF to Notepad on here. So this will be the PAF to Notepad on all Windows computers. So you should be able to find it super easy. Once you happy with that, make sure you hit the apply button. Otherwise it changes for this step won't take effect. And this is super important. And then hit save to make sure your latest changes to your bot save. And with that done, we can run our bot now. So you can hit the Run button. And if you haven't saved that, it will actually warn you you need to save your changes in order for it to run. So I'm going to hit run and let's see it open up Notepad. See it deploys to that computer. And now I can see here that Notepad has automatically open for us without touching anything at all. So that's pretty cool. So I'm going to close that down, closed notepad and we're going to take a quick break. And any upcoming lectures, we're going to actually write some text to Notepad and read from their pad and explore a few of the Automation anywhere quirks to look out for when you're building your own bots. 8. Writing to notepad: Alright, now that we've got an application open, let's actually write something to know pad. So in your actions you can send key strokes with something called simulate case strikes. And all you need to do is drag this on. And then the next action you can either put below an action or offer an action with this dotted line. So we're gonna put it after we opened Notepad. And then in order to actually write an iPad, we need to tell simulate keystrokes, which when did they want to write through? Because you might have Notepad, open word, one node and so on. And it's not sure where to send the keyboard keystrokes to. So to do this, I'll show you the easy way and the better way. The easy way is to select a window. If you hit this refresh windows, it will connect to your computer. Find out which windows you have open. So you will need to make sure you do have Notepad open up. And then to actually select the window once we refresh the Windows, if you drop this down, you'll notice you actually have the untitled Notepad. You can select that. You can see it will automatically grab the window title the executable part, and then you can send key strokes. So we're going to do hello Andrew, which is my name. You can put in your own name at all. And if you wish, you can put in a delay between each case stroke, but we're going to leave that as default. So let's hit apply, let's hit Save. And once that say I'm going to close down notepad, then we're going to run, to run it from the very start and watch it open Notepad and type in hello Andrew. So we can see its open up Notepad automatically and top-down. Hello, Android, that's pretty N8. So I'm gonna close that and go back to automation anywhere and just show you one quirk with the simulate keystrokes window to look out for. And you might have already noticed that if there's any differences here and singing like keystroke, you probably picked up its variable selected with window one. So what happens if you select a window by default, say Untitled notepad hit apply when you run it. It's actually in the background assigning that window to this variable. And a variable is something that can store a piece of data. And these case, it stored in details of the window. The thing I didn't like about this is that names that window one. It's not so obvious. And unfortunately you can't rename a variable, wants it set up. So how can we make this something battle? Well, what you can do is if you showed variables and the left-hand side, you can see you've got Window. And click on that. You can go to Edit variable. You can see you can edit all the details except for the name of the variable. So what I'm going to do, instead of editing that one, we can hit this plus two crate variable. I'm going to call this notepad window. Leave the description, make it read only, change the type to window. And then you see this default value. We can select windows, we have open or refresh windows to say what, what windows open. Hit Notepad it create. Then in this Simulate keystrokes, I can actually change this. If we click on this insert variable button to the right, we can change our variables. So we've got to define variables here. When there one was automatically created. We have Notepad window here. Yes, insert, hit apply. A left-hand side. I'm now going to delete the window one variable because we can't rename it. We don't want to anymore hit delete. Now on to simulate keystrokes, you notice you have this notepad window. So at a glance, it makes a lot more sense and it's a lot more user-friendly. If someone who's reading the code for your boss doesn't understand how the process is actually working. It's just much easier at glance value, especially working in a team. And if you create a bot and come to it, come back to it three months later, it will come to you more easily. So now I'm going to hit Save. Then let's hit run just to make sure it still works. It's the pointer up computer pre-processing. And now we can say it's still run, it's still inserted a text Hello Andrew, but it's a lot more better. So I recommend if you actually need to select any sort of Windows, make sure you menu create the variable on the variables as user defined name, it's something that's a human-friendly name, not a computer or bought friendly name. And then actually manually selected from his insert variable bottom here to the right. And it will be a lot more better in the long term. So that's the way I recommend you do it over the easy way. Take a bit more time, but make it better. So let's take a quick break until we get into the next lecture. 9. Reading from notepad: Okay, so now that we've created a Hello World and iPad or iPod, we're going to make a bot that will actually read from the pad. So what we'll do, we'll go. But for now, I'm going to just call rate because we're going to throw it away in a second and you'll see why wanted to show you something which unfortunately there isn't a phage of all this yet in Automation anywhere. Let's say I have my new botnet, Henry, and I go to my hello Notepad, right? You'll notice you can click on the three dots. You can copy the action or you can click copy out the top. But if you go back to a different boy, there's no at a pace that action can only paste it within this actual bought itself. You can't copy one action from one book to another. Unfortunate that currently isn't supported in Automation anywhere. 2019 Community Edition. So what we're going to do is we're actually going to delete this book. So head on over to my books. Then I'm going to hover over these three dots next to an iPad raid, gonna hit Delete Task, but I'm going to delete it. And what you can do instead, we can copy this Hello World Notepad, right, bought by going to the three dots. He didn't copy, toss Ball. And then we can name this Hello World note pad, read it, copy. Then, now if we jump into HelloWorld notepad rate, it has all the same actions that we used to actually write to Notepad. So we're going to have to change it a bit. What Apple is going to do, it's going to open up Notepad. We're going to let you use a typing something, and then we're going to store it so they could use it later on if it wants to. So first of all, we need to search for I delight. We're going to try that a and after open program file can change at time unit two seconds and we're just going to delay for five seconds. Hit Apply. Going to delete the simulate keystrokes, stage or action. And now what we want to do is once you use this actually typed in something, we want to get the text from Notepad. Sorry, there are some actions to get texts from specific programs, such as SAP, terminals and PDFs. But unfortunately there's nothing for notepad or any other programs, but there is a way to get it. What we need to do is we need to use a simulate keystrokes once again. And what we can do is on the right-hand side and it seemed like case or X. We can insert case. Shrug. If we click on control, then it's happened to lead to a, you'll notice we have this control down, a control up. And what that's going to do, it's going to stimulate pressing Control a on your keyboard, which will select everything within a text input. So if I go up to my website browser. I press control a. It highlights everything within a textbox. And then now that we've done that to actually copy it, we use control again. And then we type in say, so that we'll do Control a to select all the text in the current active window, which should be Notepad, and then Control-C to copy a. So now that we've got that, we need to select our window. So remember, we have our variable called notepad window from our previous lecture. So go yes, insert. When you do that, make sure you hit apply on every stage. If you turn, all show a little red icon here and there weren't run properly. And then what we can actually do, we have a clip board action from and we can use copy from. And if you hover over it, it will trade value stored in a clipboard and assign it to a variable. So remember the simulate case rates were copying what is in Notepad. And we can use an existing variable all against uses. Magic wants to create a new variable. We're going to call this one note at text. By default, OB type string, which is what we want. Text and string are the same thing. So hit Create and select. Let's hit apply, hit save. So now we can run a ball. When we hit run, It's going to run and notepad will open up in the background. So you need to make sure you select that within a 5 second delay we had when it opens up. So I've got it open here. We typed in hello. Should copy it any second now. But you're going to notice it's going to take awhile to run longer than 5 second delay we specified. And it's actually going to come up with an arrow. So let's give it a second and let's investigate this era. Okay, you can see there was a problem at line three. Which line three is actually three, which is simulate keystrokes. And it says, unable to find on thoughts on the iPad because the application is not running to continue edit the bought ethics era. Then try again. If you can see you see this message, please contact your system administrator. And this is a bit of a tricky one. It's not too obvious water is at first, but I'm going to show you and you need to be careful of this because this will get you when you first open up Notepad, let's open up another window. So this on the right-hand side is what happens only first, open up Notepad. And our left-hand side is what happens when we start talking in something. Transport difference. If you haven't found that already, you'll notice the left-hand side has a stop of the top-left on total Notepad, the right-hand side doesn't have this. So as soon as we type in anything at all, that little stuff symbols up here and talk in a little while. So I am going to close both dies down. And if we go to simulate keystrokes, you'll notice this window title says, I'm targeting iPad. It doesn't take into account that stop more. So in order to fix this, we need to head on over to a variables. Remember we have M notepad window, go Edit. And what you can do, you can actually edit window title. Put a star in there. And this is just going to make it even more confusing, is that this star within automation, any man is actually a wildcard for any number of characters at all. So we can delete the whole on toddlerhood. And this is going to mean, fine any windows that begin with any sort of texts at all and end with Notepad. And we can also add a star at the end, which will mean find a window title that just has notepad in. So this is a better way to be safe because you might have someone who's actually save the document. Notepad might have a start that beginning or something at the end. So by having these star wildcard characters, It's telling us, look for a window with any texts the front than Notepad is contained in it than any text at the end with the star at the very end. So let's hit Apply. Now. Let's hit Save. Let's hit run. As top ten. Hello there. See it highlights it. And now if we press control v is actually copied correctly so we can verify that it's actually working now. So going back to automation anyway, will you remember that we actually want to store in this variable notepad text string. So how can we verify it stored in there? Well, that's the right way, which unfortunately doesn't currently work. I hope Automation anywhere fits as soon and as a quick way to work around us. So a shader rot. Why first, what should happen is if we go to the debug tab here, you'd have this watch variables. If you click this Add remove, you can add all user-defined variables, all select individual ones. Hit update. And you'll notice in this drop down now, what should happens is if we run the bots from here, as we run it, it's running in debug mode. And what should happen is, as these variables are populated with the total of the notepad window, what the notepad text is, it should show the stuff we put in F, j, d, j of t. Let's copy it. So it's copied. However, unfortunately the watched variables, dots and update at all. So the workaround for this, if we close that guy back into helloworld notepad rate, what we can simply do is you remember we use a message box. And one of the first lectures when we will first explore an automation anyway, in message box, we can select that. Then in a window Totto, Hello there. And in the message to display, we can actually insert a variable. And from that dropdown, select notepad text string, hit yes, insert. And you maybe click on that little x bottom to the right to insert a variable. Hit Apply. Then let's run that. Starts when you'll notice we've got an arrow, there's some unsaved changes, so hit save and the top right, you can see it's saved. Now let's actually run it and check it out. So in notepad Alltop, I like cats. Gonna say copy and we go, we can see our message box. We have message from the pot. The title is Hello. I like cat, which was what was stored in a variable by using control a, control C to copy that. And then in a clipboard copy from stage, we will store it in that Hallowell text variable and now showing up in our message box. So with this, you can now copy input and actually store it somewhere within I bought for later use if you need to use something. So we're going to take a quick break now. I'll see you in the next lecture. 10. Closing notepad: Okay, we're back in our hello world notepad, Brian. And what we're going to do is once we actually brought some cistern ipad, we're going to look at how we can actually close the application down. If you search for actions, let's search for a mass, obviously, which will be claws. So search for that. You notice we've got various options, CSV, text, DLL, Excel, giggle, Shaich, JavaScript. Now one we want is Windows. So this is for an actual windows such as a browser or anything else that's open on your computer. So let's drag that in and assume like keystrokes. You'll recall that 40 notepad window, we made our own variable, which is notepad window, window. So select that heat yes, insert. And see what our window title here. We're going to surround it and Asterix, you can see we've got our window, Taraki, and in this case it is untitled notepad. Remember in the last lecture, we only set it out to work dynamically for our notepad reading texts we taught in that. That's fine for this one. Let's hit apply it. Let's hit save, and let's run out bought and see what happens. So it can say it opens and closes. And it happened super, super quickly, much faster than a human can do. And the thing to note about closing the window is it didn't actually say that Notepad file. So what it will do is it will close it. If I asked you, do you wish to save this file, it will just assume no, don't save it automatically. So you want to make sure if you do want to keep anything, you either save it or copy it out to your bot and put it somewhere else for safekeeping. 11. Variables: All right, just before we go on into the next part, we're going to look at variables and flow control. And he'd done this before. You can skip on to the next set of lectures around the audit system. You haven't done this before. I recommend running over this as just a good overview of how these key items of Automation anywhere actually work. So credit a new pot here called variables plus for flow control. And what we're going to look at is parables. Can say here there's some atoms. If you click on it, you can create a variable with a name, I'm going to call mine name. You can give it a description. So this can be the person's name using reports. In this example, we can make it read only, which means you can't override it. The main thing I want to look at is a type. So think of a variable as a box. Its got a box. You could put something in. In my variable name. I wanna put someone's name in that box. So an example, M9, Andrew steely. And we can set up the box to only accept certain types of data. So a string is just text which is suitable for one. I'm Andrew Sealy, where if I want to have a box that only accepts numbers, I can select type number and that box when taking my name intracellularly or only taken a number. So that box copy youth one n. What it might be useful for something such as my age because it can stole my age in there. And then later on we can unpack that box, get my age and years later. There's several other topics such as date, time, which is the day anytime. Boolean, which is true or false. A file we can store in a variable I list, which is simply a list of items, such as orange, apple, pineapple. A dictionary, which is a key value pair, which you can see an example on screen. It has a key. So say we have a car brand value as Ford Model is Mustang years Nazi 60 for a record, which is a single row or single database records. So think of a single row and an Excel table. Then we've got a table up on screen, which we'll use later on in our ordering system. And you've got window which can actually stall. And application windows such as a Chrome window of news.com data, you can store a reference to that window. Simple thing is to think of it as a box that can store diary and you set the type of daddy or to store in that box can also allow to store any data all you want. But I don't recommend using this unless you have to. It's better to define what type of data you're storing in it so you don't accidentally stole the wrong thing in that. So for my name ongoing to simply store as a string, hit Create. And now I've got this user-defined variable called name here. Now to actually use it, we're going to go to actions. You'll see this string one. We can use a one assign. And we can talk in my name here, Andrew, silly. You can type in your name and dropping down into variables. We can assign it to that variable called name. So if we hit apply, then he's a message box. If we enter a message to display hello, followed by a space insert variable, hit name. He has insert. Don't worry about the dollar signs yet. We'll cover that in the next lecture. It apply. Hit save. We run that, but now we're putting our name into a box, which is Andrew Sealy. And then a message box is unpacking that box to charlotte. Hello, Andrew, silly to us. So we can see here we've got a message. Hello Andrew, silly. 12. The humble dollar sign: Okay, let's have a quick look at how this dollar sign ME convention wax. He may have already picked it up, but essentially what it is is anything in between dollar signs is an actual variable. Stopping it in. It's actually going to show us all the variables. You can see the description of the top four to one we made the persisting using a bot. So essentially, if I do hello name, name, hit apply. What this message box will do is it will unpack that books with my name in it and replace name with Andrew silly or whatever's Assad to that. So let's actually say that. Let's run that. And it's going to say, hello, Andrew steely, Andrew Sealy. So we can see that here now. So anything in messages, text or anywhere else in automation anyway, we've dollar signs around actual texts is a variable and its unboxing that variable, grabbing whatever value was in it and putting it in that. And just an art with variables, you can replace them with anything. So spots running, it doesn't need to stay the same all the time unless it's a constant radar and a variable. And you can use it to make you both do different things based on what the value is in the lectures coming up. So let's take a quick break and take a look at that soon. 13. If then else: Let's take a look at control flow. This is easy if statements and loops to control how a boat actually executes. First of all, we're going to look at an if statement. So what it does is it will run a sequence of actions if that condition is true. So let's try it down if statement. And we've got a condition here and you've got Barry's conditions. You can check, we're going to check the string condition. And then we can check the actual source variable, which is nine. We can see if it's equal to Andrew Sealy. And if it is, we could apply. Tried that message box into here. And two, andrew is a cool guy. Hit apply. And you can also do an LCF of, of that. And we can check the same string. And if it contains John. So instead of equals true just if it includes any mention of John at all. From the source value name. What we'll do is we'll add another message box from action. So hit apply. And that's a cool name. Hit apply. And finally, on the actions, if you go to, if you'll notice this else condition and what this does if none of these match at all. If this, if else, if else, if, else condition will always run as a philosopher if you wanted to. So we can then show a message box if none abandon those match up conditions. We can write. That's an also named exclamation mark. So let's hit apply it. Let's save. And let's take a look at how these if conditions can actually run. So can see I'll name is Andrew serially. So it shouldn't send a message box. Andrew was a cool God. Only if the name exactly matches Andrew steely. So let's hit run. And what we're running it, you can replace it with your own name or whatever you want at all. Just to have a play around with if statements and control flow works. And we can see that what we've got Andrew is a cool glad. Now if we change the name to Andrew Smith and the assigning Andrew Smith to the variable name string. Let's hit apply. Let's hit Save. Let's run that. We'll see what comes up with a message box. Can see it came up with that and also name. And that's because it didn't meet the condition that it's equal to Andrew Sealy. It goes on to the next LCF, which says if the condition the ninth includes drawn, it shows that's a cool name. Else otherwise, which is the fourth word, it will just show a message box with bats and also name. So if we now change that name to enter John, let's hit apply. Let's hit Save. Let's hit run. We can see that it comes up with that cool name because it includes the word John. So now we've taken a look at if statements and flow control and thing with if statements is they don't always need an else if or else. You can simply just happen if and only have it execute if it meets a condition. You said, All you can include. Elseif says well, or else as a full fruit if you want. So this is how you can take a different logic based on your bot. So for example, say you're doing a financial institution automation and you checking our bank transfers. If anything's under $10 thousand, you want them to operate as usual. But if you say I transfer over $10 thousand, you may want to flag it, send an email to manage up to make sure they investigate that is a legitimate transaction and it's nothing to do with any fraudulent transactions or transferring money to countries where it shouldn't be transferred to. So that's just one such example of how you can use control what? Let's take a quick break before we move on into loops. 14. Loops: Finally, let's take a look at loops. You can search for this from the action stage, and then we can drag it onto the actions. And what a loop does, it runs a certain amount of times depending on your condition. At the most basic one, we can run this for n times, up to ten times. So what we're going to do, we're going to change it to five times. And you can assign what the current number it's running crew to a variable. So let's create a variable. We'll call this loop iteration quality description of the current number Luke is on. Let's go create. And then we're going to sew a message box that will actually show us a value that the loop is on. So let's insert the number variable. And what you'll notice is you can actually insert a number variable to a message walks. So what we need to do is convert that number to a string. So if you search for number, can see we've got number. You've got a two-string action. So we're going to actually choose the loop iteration it, yes, insert number of digits after the decimal format will use 0. We don't want any decimal formats. And then click the magic wand to assign it to string loop iteration. It created unselect, hit Apply. Then in the message box, we can actually choose the variable string loop iteration. So you can't actually use a number in a message box or inserting text anywhere in any applications. You need to first convert it to a string with a number two strings, stage or action. So let's hit Save. Let's make sure we save all asked ages. So let's apply hit Save. And now let's run our loop, which would run around five times. And so I messaged books with the current iteration for each one on its own. So it can say it's a first iteration, second, third, fourth, fifth, and so on. So loops are super useful to repeat an action and number of times. Let's say you have ten items in an Excel document and you need to do the same thing for each item you can loop through old eyes, Adams. And the great thing about loops is as different types of iterators. So if you drop it down, you can loop it over for each row in a worksheet. Structures, the one on screen, which is an ordering system, we're going to look at sued. Each row in a table, each row in a CSV or text file. And you've also got a wall condition. So you can repeat it forever until it meets a certain condition whereby it will exit ALU. So you could say a boolean condition. So you could say, well, age is not greater than 18. Keep on looping around. And you want to make sure you update the agent need to loop. And as soon as it hits 18, you can use that boolean condition to actually exit the loop. So you could say that age, as long as that's equal to 18, then exit the loop. And you've got all sorts of other conditions to actually exit a loop. And finally, if we search for actions on loop, there's two options here, which are super handy as I continue, whereby you put it inside a loop. And what it will do is it will terminate the current iteration of the loop. So if we have any other message boxes off though dilute, less social message box. And we'll ports in the Mencius despite end of loop. Let's hit apply. Let's save that. We'll just call that changes from the loop we made earlier. What it will do is the loop will exit out at this point and continue on with the next iteration. So let's hit run. So we can see here I've got 12345. So it doesn't ever get send a message box and a loop because this loop will break out of it and go back to the start. So this is handy if you have some sort of logic way going for a bunch of rise in Excel. And if the data is formatted correctly, you might want to break out of the current iteration of the loop and continue on, say can process a rest of the items in your Excel document. So the ball can carry on as normal. So let's delete that action and let's look at the outer one, which is a break. Now, unlike continue, if it meets break, it will exit the loop completely no matter how many times into three running it. So let's hit Save. Make sure that the brake stage is on there correctly. Then let's hit run. And what it's going to do is it's only going to get through the loop once before it will break and go to the end of the bot. So can see message one. It breaks out of it and goes straight to the end stage. So sometimes you might have a condition where you're trying to search for an item in an Excel document, there are a 100 thousand rows and as soon as you find it, you want to exit a loop so you break out of it and continue on to the handle, the bot, or the next actions. So both continue operate a more advanced paces of loop control. You won't need them as much of the loop, but just keep them in the back your mind. Cause I asked super, super useful one, you actually need them. 15. Order System Intro: Now we're going to look at a demo orange system. It will allow you to retrieve and place orders. The great thing about this system is it's a really good stomping ground. Because a lot of issues and things you need to look Apple will run into in the course of developing our POC for this system. So let's jump right into it. 16. Order System Overview: Alright, for the next set of exercises, you will need to download this training order system from the resources for this course. This is a programmer might guarantee use to look at automating up, to sign-in, the staff number will be BP and a possible would be possible. Once you do that, hit sign-in. Then you'll see the application has a series of options. You can either add a new order, unit, existing order, or quit the application. So what I'm going to take you through is how to automate adding and viewing and existing order. But we've quitting the application. And also getting an Excel document which has a bunch of folders in it and a loop over all those orders in the process, and then interact with this application via an object. So let's take a quick tour of this actual app. So hidden option one, it go, you'll notice it's a very retro noise up and it opens a new window. So you can put in a product codes will be BMW, number quad would do to cross 20 Call Center as Hello. You can see the total post-capitalist automatically. When we hit Submit Order. It takes a second and then we get a new pop-up without order reference number, which is 1054. So hit continue. Next stop in the options screen, hit Option two and good. And we're going to look at an existing order. So if we put in order number ten, it will trey border skirts to take a few seconds to load. And you can see some order details come up here. So let's say you can view orders in the system and you can hit Option three to quit the application. 17. Bot building approach - best practices: Okay, so with the way we've done bought so far, we've done everything in one pot. So if we take the same approach that are ordering system and we want to build I bought supplies an order, and retrieve an order. It will look back the follows. Placing an order, we'll launch you order system login, navigate to the place order screen, then place an order. Retrieving an aura will want to ordering system login, navigate to the architrave order screen and then get the order details. So have a think about it. If we're building is in two separate bots. So have a think about it. You'll be willing to complete separate bots, which have quite a lot of common functionality. Is there a better way to break this down? You'll notice two steps. Launch and login are exactly the same. Navigation is slightly different, but it simply putting in a different number to go to a different screen. So we could probably somehow consolidate some of these steps into one bought. So you actually can an automation anywhere by making separate task bots. So let's take a look at the approach will now take we will separate these common task into task boards, such as a launch order system task bought, a login task bought, and then navigate to place Auto Task bought, which will take in the menu you want to navigate to and navigate to a four year. Then after that, we can actually do the functionality to place an order or get an order details. So this way we are sharing a common process code between books. And this is much more faster to create bots in this manner, but also it's a lot easier to maintain in a longer term. Let's just add a login screen change only after update it in one place instead of across to bots, three bots and so on. So I highly recommend before you actually build any bots, have a think about how you can break them down. Don't worry too much about it yet because any upcoming lectures, I'll actually run over how a break-in at an orange system. And then this way, you and I have to approach any other bots you correct in the future in order to be able to do this. 18. Login: Okay. So you shouldn't have downloaded the training audit system now and the staff number is BPA and a postulate is postulate. And just hit the sign in button and that will open it up. So what we're going to do, where does kind of make the application launch and sign in with a simple bot to do that. And then we'll use the other bots to control actually placing and retrieving and order. So before we create a bot to do that, and you're gonna create a new folder called Order System. Hit create folder. Then within our box will now have this order system folder. So I can create a bot and I'm gonna call this open order system and place it in the fall are all under bots or the system confirm. Let's hit create and edit, and let's create our bot. So what we'll do first of all on the actions will go open, just like we open up, notepad will go open program file. I've got the PAF to it here. So occasion, put this in here, slash training order system dot AXA. It's a pretty long path. Let's see if I can just expand this out of it. Make it a bit bigger. And let's just copy the whole name of that and put that in there. Let's hit apply. Let's just quickly say that and let's just hit run to confirm that we can't open up our training order system. Perfect, at open that up and our boats ran successfully. So let's leave the training or stem now I'm going to show you a really handy feature of Automation anywhere that makes creating bought super easy and super quick. And it's called the recorder. So if you've ever used Excel macros where you can record a macro and repeat something. It's similar to that. So you'll see here this record button. So we're going to hit that. Going to connect to our computer and then it's going to record all the steps we take an actually repeat them in the bot. So you can see it's recording actions. You select the window you ought to record from. So we want to select Sign In which has an ordering system. Hit start recording. And now anything we do, it's going to repeat those actions in a bought. So in staff number, click that type BP possible type password. Then hit the sign in button. And then once you've done that, he am recording. And it's actually gonna place all those steps in a row here. So you can see here, first of all, we select the text box. You can see it's placed in a default window, one folder ricotta, it's fine. We're not going to name it anything special. You can change a window title. It's got the executable. And it'll actually show you a preview of the stuff number box selected. And it has object properties. So I fold that stuff Number in the background. The creators of the programme actually give this an ID called texts username. The path is the position of it. And this is going to vary from program to program. But if I head back to the main screen on trading order system, the path could be say, the first text box could be number one, the second textbooks could be number two and so on. It's not always going to be consistent and that's a key thing to remember. It's going to be different from program to program. And the path will be unique for the actual input or label most of the time. And you shouldn't need to change this object properties, but you can't drop down the arrow. And these are used to actually filter and select it. So anything that is ticked as selling it to use these properties to identify. And then actually type in the characters BP. Click the tab button and type in password on this textbox. So that's what it's going to do. And then it's going to click the sign-in button on the next step here. And under this recorder capture, you can see here a window title side in a sign-in button. Select the object properties. The path is different. This is number one, the parents Class Name, Name, ID, and so on. And then you can see here, we actually clicked on the total. Well I was recording. So these steps on actually needed. So the thing to note with this is you need to be careful with my added some extra sets that you don't actually need. So I'm going to delete those walls where I just clicked on the head above the top. So delete those record our actions. Delayed. Delayed. So I've just got these free now where I'll open the application. I select the staff number textbooks. I type in BP, hit the tab key type and password. And then I click the Sign In button. So let's save that. Let's close them to application now. Let's run our bought to see what happens. So you'll notice as urban Out program at signing in there, click sign in and where our main landing screen for auctions. So we've now successfully created a small little bot to open our audit system. And then we connected it up to add an order view and order and quit. And just a quick note on ricotta is record capture. If they change the ordering of staff number and password is smart, actually break it. So when you recording, we could have actually manually actually click on password and talked in our possible rather than hitting the tab key. So you're ordering might be different. You might have a click on staff now, but type it in and click on possible and type it in. And that would be a lot more stable, but I'll get more into that and actually utilizing the capture function and more advanced detail as we go through this course. So let's take a quick break and I'll see you in the next lecture. 19. Navigation: Alright, now that we have a lot to actually login and open the application, we're going to create the separate one to actually navigating options menu. And we're going to make it to the spot, can take in an input which is a navigational CR1. Ivo wants to add a new order to to view an existing order author rates aquire. So let's create a new book. We're going to call this navigates or the system. We're going to put this in our order system bots folder, hit Confirm it, create an edit. And once again, we're going to use the color to initially set this up. So hit record. We're then going to select the options for that application. Hit start recording. We can say it opens up and as you move around a mouse, you notice the all also highlight in red, something you can click on. And it doesn't actually take an action to click on it. So click on option number. Then let's just type in two for now to be an existing order. Then click on the Go button and it'll actually open up that window for viewing and order. Once that's done, hit and recording. We can then verify it's working by closing that net window. Hitting save on our ball. Then hit run. Just quickly delete that. And say we've got options. Window already opened up one where testing to run. So make sure you have that open with nothing in the option number, can see it types into clicks on go and the hazard successfully. So now we've confirmed that let's actually set this up to be a bit more dynamic, whereby we can actually pass in an option number that's our own custom one. So this Bach and Handel navigating to any of those three pages. So what we'll do is we'll create a new variable. We'll call this navigation option. Make sure you use input. And I'm going to show you in a second how to combine a book to open the application and navigate. We'll leave it as a type string and you can give it a default value. I'm not going to give a default value because I want the user to determine what they want to navigate to. So I'm going to hit Create. Then in the first stage of record our select textbooks. If you scroll down on the right, we have this actions. We set the text which is typing the number two here. And what we can do is select the Insert variable. We can then choose our Navigation option, he, yes, Insert. And now what's going to happen is we're going to call this bought from a, not a bought Haas in a number. And it's good to navigate to that. So we'll hit apply. Let's hit Save. Then head on back over to my bots. Let's create a new bought. And this is going to be for an upcoming lecture to retrieval in order. So we'll call this retrieve order by going to place this in our auto system Box folder. Hit Confirm it, create an edit. Then any spot on the left-hand side of actions, we can search for Bott, and there'll be several options. You can actually run bots within a bought. So we can select toss bought Ron, if we hit browse underneath bots or the system, we first wanted this book to open up the auteur system. So that's the first one we created. You'll notice you can keep on repeating a bought as many times as you want, which is really good to know. So say your trade and 20 orders, you could run a bought 20 times. Let's hit apply. Then we want to run another task bot, which is to actually navigate to retrieval order. So hit browse. Goods robots go to order system. The one we just created was navigate order, sort of hit Confirm. And then you'll notice there are input values on the right-hand side, we have our set Navigation option. So what we can do is take that and we're going to posse and number two to view an existing order. So passing the value to hit apply, and we're going to run this in a second, close down the ordering system. Let's hit save. And what I want to do first is just quickly check on and navigate bought to make sure we set it up correctly because this is quite important. It's very easy to actually overlook small little things and then your boat won't work and you'll be left scratching your head for a while. So we've got navigate order system and the set texts with didSet Navigation option. That's good. It's always good to double check your work because I have left is to say always navigate to option one. And I wonder why my bots not working at all. And it's usually you've done something silly like missed adding a variable and it's hard-coded. So now we can go back to our boats, tie back to order system. Then let's go to retrieve order. We don't have the application at all. So now we're going to run two separate bots. First, we're going to open order system. Then we're going to navigate to retrieval order page. So let's hit run and let's see it in action. You can say it's logging in now, navigate to view an existing order, so that was successful. And what you can also do if we just close that down again, let's go back to our task will run. Let's type in number one where o navigate to add an order. Let's hit Save. Let's then run the bought just to confirm that it is navigating the many system properly. When we pass in an auction for navigation, we can say here the bots running signed in. Now it's navigated to add a new order. So that worked successfully. So now hopefully you're saying why sometimes it's better to break down bots and you can pass some input values to take in different actions, depending on what you want the parent what to do. Going to change it back to set navigation options, to navigate, to retrieve an aura, which we'll take a look at in the upcoming lecture. So we're going to take a quick break. 20. Retrieving an order: Okay, now we've got our retrieve auto bought here. We can navigate to this view or the screen. Let's actually get an order details. So if you put in any number, it's going to just generate some random data every time you click on retrieved Bordeaux. And when you click on retrieve all, it will take 2.5th or two to come up and give you the product code, units ordered, you know, price and so on. What I'm going to do is I'm going to again create a new task was to get the order details and just show them in a message box. Then I'm going to add that task was to run in this retrieve order. So it can run from start to end, whereby open up the application and navigate to the view older screen and show an order details. So what I'm going to do is back in my books, going to create a new bullet, going to name it gets order. I'm going to put it into my order system folder, hit Confirm, hit create and edit, and then set it up to get an order details. So first of all, I've deleted the order number and I'm going to use the recording feature to set up the steps or actions to actually treat them well. Then I'll show you how to manually be able to select these details and retrieve them without using the ricotta. So let's hit the record. I've selected the view auto. Let's start recording. So I'm gonna click on order number, type in ten, click Retrieve order. And then that's only going to do for the recorder action so and the recording. So good. The steps here to click on order number and type in some text. So you can see here on the recorder capture, we type in a Texan ten. So what we'll do, we'll make a new variable. We're going to call this order number as a string, going to use it as an input. So another book can actually pass a value for the order it wants to or trade. Let's hit Create. Then in the set text, I'm going to use that little x to inset variable and use the order number we just created, hit, apply and save. And then now we've actually set up the bot to retrieve and order. Now let's grab some of the details and showed in a message walks. So what we're going to do on the actions, search for capture. And under record, Adobe does capture action. If you drag it in, it's the same as a screen ricotta. However, it allows you to do it manually. So this gives you more granular control as to capturing your board details. I recommend you do whatever way is easiest for you. But for some items such as this, I find the capture is slightly easier by manually doing it. So let's select the view auto. Click on capture object. And then if you hover over it, if you wanted to say get the product code hover over it. And so that's a red box around it. Click on it. Then you'll noticed it's got the details. And here product could say, say 60. It's got the properties. And what we can do to get the text, we can use this action code, get property. And you notice in its properties it has a name here of say, 60, which is what is on the screen. So if we do get property. We call this name. And then we can assign the output to a variable. So if we click this magic one MOOC or a new variable called product could. The top would be any by default when we're getting it from the capture step. So don't worry about that. Hit Create and select. And then we'll hit apply. And on the actions left her a message box. I am then going to in this message box, window title will leave us, they fold and in a message to display, click on this integer variable. We can then select that product code. We got he, yes, insert, then he apply on a message box, let's say that bought. And what we can do to actually test this box is under this capture step we created to get the product code. If we click on afraid odds and click run from here, we can run the bought from a step that's halfway through our actual process. So that's super useful for testing something without having to go through all the steps. So let's run that and see what our message box comes up with. We can see here our message is C6, which is a product code, so we're able to get it successfully. So let's try putting in auto of 11 and see what happens. Give that a second. Let's go run from here on that capture step for the product code. And what you'll notice is while waiting for it to run, I can tell you now it's going to come up with an error guaranteed. And this is something that's going to be common. Thankfully, it's super easy to avoid if you've experienced that before. I just want to show you an actually in action and then I'll show you how to fix this so we can get product code for any order at all. So we can see here, there was a problem at line three. Unable to find object client search criteria did not match. So on and so on. And what's happening is in this Ricotta capture step where we get the product code. If we expand the object properties, what these properties do is essentially this is an address is the best way to think of it too, that actual input. So imagine an address book where you want to get to someone's house. You look up that address and that's a get to their house. Same for list properties. The bot will use these properties to look up the address to go to that protocol. But what has happened is this addressed needs to be fixed. We have this name here, which is CC2650. So each trying to find an actual label product code at the PAF minus six with the name cc 60. But now we've got CDs at 63 after we change the auditor 11. So ANSI-C name, hit apply, hit save. And then let's run our bought again. And we can see I've run it from scratch and now the product code is C, the 79. And the boat has successfully got the CD 79. So make sure to always shocky properties on capture steps. You may need to mess around with it. You want to usually have at least puff the unique ID if you can. And sometimes you will need to also add an index since two items might share the same path it's read that might happen. And be careful of name, because if you have a textbox or something with content in it, this is going to change depending on what you type in, what the application actually returned to you. So now that we've set that up, we can actually search for that capture step again. Good to recorder. Let's go capture. Let's get the units ordered. So we're gonna go to Window View auto capture object. Going to hover over the units ordered until it's in the red box. Click on it. Then what we can do now that we know about the properties as the funding allocation, we can antique that name. We can see the ID here is labeled ordered. And then we can store this in a variable with discrete variable one down the bottom, code units ordered. Hit, create, unselect, hit, apply. And remember, we need to go back to the action to get property. We want it to get the property name, since that is how many units we ordered. You can say here, by default it was a 100, which is the item we selected. Yours will be something different. How many units it shows in your application. Let's hit apply, hit Save. Then go back to our message box. In the Ansar message to display, we're going to do products code. Just in plain text. Colon will insert the variable product code. Hit yes, insert, press enter for a new line will be units ordered. And then in units ordered will add units ordered. Then we'll just add a few dashes at the end. Let's hit apply. Let's say that bought. And then we can run it from the first capture step that grabs the product code, then the units ordered and the message box. So let's run it from there and say what the message box comes up with. So we can say here we have the product code, CD 79 units ordered over a 100, which matches that application. So what we can do, we can close the that. If you want to add the other items, you can ongoing to show us how to integrate it to the rest of the bot now. So I've a pause here and add the more and add them to their message walks. I recommend you at least give one a try. And once you've done that, come back and then resume the video and we'll move on to adding it to the outer bought. Ok, so now what we're going to do is now that we've got this get order here, we're going to go to my books. Go to the oldest system photo. You remember we had this retrieve auto bought. What we can do, we can add in a task, but run. We can select that, get Audubon we just created, and the order system get order it confirm. You remember we set a input variable at first, could get auto number. So say get older, 15, hit apply, hit Save. Let's close down the application and let's run it from start to end to see it actually open up the ordering system, navigate to the get orders page. And then so I message box with somewhat the order details. We can see it's now logging in here. It's going to navigate to retrieve order number 15. It's going to retrieve it. We can see here it's got a message from the bought the product code is CDs at 100 and the units audit is 900. Just a quick note, it may come up with order not found and that's deliberately built in this program to try and throw you walk and build up that can handle it. If you get that message, simply raid on it, or come around to how to handle that exception later on and just handling exceptions in general. And the second thing you might notice clicking on retrieved order also takes 2.5th or two for the order to actually lloyd. So sometimes in a boat you may need to introduce a delay action and delay you bought by a few seconds to make sure the system can actually Lloyd probably, in our case, it didn't have to wait at all. 21. Adding an order: So now we've actually set out bought to retrieve and order. Let's look at adding a new order. So what we're going to do is from the orange system, we're going to need to navigate to option number one. Click Add a New Order, goes submit order. And once we submit and once we submit an order, it's actually going to give us an order number. Let's just give it a second order reference going continue and then close that window. So open up the new auto window. And then we're going to create a new bought to set the order details and leverage some of that existing bots to navigate to that screen. So let's go to create, but I'm going to call it set order. I'm gonna place it into our ordering system folder. I'm gonna create an edit. For this. I'm going to use a recorder again. And the thing about record up to make sure it's as efficient as possible. Make sure you only click and type on the things you want to do. Say you have these four text fields and you click on something that you don't want the boat to actually do. The boat will actually take action on that. And it will run slightly slower. So just be careful of that. Gottman, you oughta start recording. Can see it's recording now and it's only going to take note when we click on something. So let's click on Product code. Type in hello. Click on number required, type in ten, unit price, type into your notice a total price updates automatically. Placental set to abc, will then click Submit Order. This popup comes up, we're going to hit continue. And then we're going to end our according. So what we can do to test that work to make sure you save your bought, navigate to the Add a New Order screen, and then simply run out bought and we'll know if it worked or not. Can see it's added an order successfully now. So now that that's done, let's actually changed the order to variables when it's actually adding it. So we can actually use another bought to run this task bought. So what we'll do, we'll go and go to variables. We are going to create some new ones. We'll call it product code. Code uses inputs flat string Create, and I'm going to create one for number required UniProt costs on top. So I'm gonna skip ahead with them all created. Okay, we can see here I've created my product code, number required, unit price and cost center user-defined variables. These are all set to be an input. So that way, when we actually set the textbooks, when we click on this that here and go back to the first one. And this is setting a product code from the action set text. We can use an inset variable. So make sure we delete hello, click that X insert variable. We're going to choose the product code string heat. Yes, insert. For the next step for number required, repeat the same thing. So I'm going to delete ten at the variable, we create a number acquired. Hit apply. Then we do the same for unit price. And this way we can use a different bought to actually add an order like we did to retrieve an order. That way we can reuse pieces of code we've created before. And we're going to have to re-do them over and over again. This one is unit price. Let's hit Apply. This one is called sense of. Let's delete ABC. Let's do cause Centre, PTS, insert and hit apply, then hit and then hit Save. Make sure you've saved all your action steps here. Now what we're going to do, we're gonna head on over to my boat's going to get to all the system. And remember we use or tree border to combine a bunch of different bots. We're going to actually copy that boat and call this one place auto. Hit Copy and open up the place order bought. And you'll recall that we first open up the ordering system application. We then navigate to a menu option in here, this set Navigation option is two, which is View and existing order. So we want to change that to one. Hit apply. Then this other task, but we'll running where a trading Unordered data so we can delete this action. Then search for task bought, run. Let's drag that in there. Then with the tough spots around where going to go to our order system, bought the set auto confirm. And in the inputs we've got set product code number quiet and unit price. So I didn't set call center as an input. So let's just go and quickly fix that up now. So that's why it's important to verify your variables when you're creating bought. So for goods or cost center variable, I can edit it. Seek uses input here, applied. This is on a set auto bought, hit Save. Then if we go back to my bots in the order system, place order, we go back to that runs that we created. We can say the set cost center is here. So let's take all of them to put in values the product code is going to be. So we want to all ten of those unit prosper age is going to be seven and a cost center we're going to bill it. Is corporate. With that Don hit apply, hit Save. Then we can close down our audit system. So it's not open at all now. So let's run the bot from start to end, which will open up, navigate to a place on the screen and actually play some auto for us. So we can see it running here. Can see it adds a new order of stone to submit the order. Hit OK, and abort has run successfully. So now the pitch should be coming together. Why? When you are creating your own quad, before you go actually create a hit straight away. Have a think about how can we structure. Because as I mentioned earlier with these bots, it or could be done in one bought, however, many of these texts would be duplicated. So that's why we have created a separate task walk to open up and login to the system. And not a one to actually navigate around the menu, put any option number so it's dynamic so that can be used for adding a new order DUE existing what equity. Finally, I bought to add or retrieve orders. Let's take a quick break and in the next lecture we're going to look at actually loading it up from a CSV or Excel file. 22. Read from a CSV file: Okay, I have this CSV file here, which we're going to open up in our bought and then actually place orders based on each line of a product code, the quantity, price, the cost center, and so on. So first of all, let's take a look at how we can actually open a CSV file in Automation anywhere. So I'm gonna close that down. Let's head on over to our boards where going to duplicate that place order bot we've created. So go copy toss, but we're going to call this place order wrong. Csv. Hit Copy and jump to that boat. And for now for each stage, three dots and we can actually disable each of them while we're actually setting up the scaffolding to open up our CSV file and then re-enable and arrange them later. So on the actions on the left-hand side switch will CSP. And then you can open, close or rate and you can download the file we're using in the electrode materials, all the course materials. And that's going to be just this oldest dot CSV file. And once you've done that, we've CSB texts. We first of all, we need to open then rate of file. So we're going to go to open. Leave the session name is default with fall powerful guard desktop file hit browse and will actually navigate to that file. So we can see Explorer is open and we need to just select the orders dot csv. Hit Open. The delimiter is comma and leave everything else as a default. Hit apply. Then we want to try it on read. And this is a bit confusing because we only have a session name and assign a variable to the variable. So what we need to do is click create variable. We're going to call this orders to place. As a table. Hit Create and select, hit apply, and hit save. And I'm going to explain how days work soon. Let's just actually see it opening successfully and then I'll go back over them. Finally, we're going to drag on a message box. And what we want to do is in the message to display, I'm going to choose the orders to place table. And it's going to come up with this table row index and by index. And I have this is the onscreen. And what it means is the table row index is which row of the table you want to actually display. And it begins at row 0, not one. And finally, index is which column you want to display. So 0-0 will display the product code. So let's go heat. Yes, insert, let's hit apply. Let's save. And let's run that bought. And we can see here we've got the product code. So if we close that and go back to a message box, actually changed that in here from say, row one, column two. Let's hit apply. Let's hit Save. Let's run that. And that's going to give us the unit price of 2.16. So we can see we've got the unit price of 2.16. So successfully, openness is a file and save it to a table variable. Now just before we take a break for the next lecture, let's take a look at how it is opened and read actually works. The way it works is as CSV open or openness file and assign it to the thing called a session name. And you want this to be unique. If you're opening multiple CSV files, you want them to have a different session name. We're going to leave as default. And then when you read it, you say, let's take the default session name for the CSP, that is opening session and place the variable in the actual orders to place table to variable type. And you can actually verify this by, let's just say we disable this action for the open CSP hit save. And let's hit run, and let's see if it works or not. It's not going to work, but it's just good to disable that and actually change the session name and will actually click the session name is kinda like a unique variable name that it's storing a reference to that open CSV file on your computer. So imagine it's a box. And we have a box with a label called default. And we're putting a CSV file into that. So we can see here, we've got an arrow. If we disable that. Now if we re-enable it, ok, and now that we re enabled it, remember the session name is like a box and it's essentially saying, put the seeds to the fall in the box called default. If we say rate, we change that session name or box Name to default to it, apply, hit save. And if you hit Run, that's going to come up with an error. Okay, we can see that's come up with an arrow now. So let's close that down. Make sure you change it back to default, hit apply, and rerun your boat to make so the matches boxers at correctly. And then I recommend you play around the message box and the rho being the first one and the column being the second one. The so different items from that CSV file. And then we're going to take a quick break before we move on to the next lecture, where we'll actually add orders from this table we've read in. 23. Adding an order from the CSV file: Okay, now setup a place order from CSP to actually open and read a CSV file. Let's actually connect the dot. So I'll bought to place orders. Before we do that, we need to wait to actually loop through all out actual CSV items and place an order. And to do that, simply search for loop. And all you need to do is under CSV rate will drag on a loop stage. And then on the right side you can see we couldn't repeat this loop for a certain amount of times. All you can do a while condition. What we're going to do is under this iterator, you can see, can actually loop it over tables, CSV, text files and so on. We've actually got assays, PayPal, and place it in a data table. And you'll see why we've done this in a moment, but you could read directly, pharmacy is a text file, database, Excel and so on. So for each row in a table, we have an oldest plays table. And for each row in that table, you need to assign to a temporary variable. So we're going to click on the magic wand and create a variable called current row. Do, create and select. And what that's going to do is when this is leaping over, it will actually place the current row that its own, that Excel or CSV file or table variable into this current row. So let's hit apply. And then in our loop we're going to move our message, walks on to that. And we're going to delete the message display. Let's insert a variable and we're going to use current road. And then what you'll notice is now you just have this index. And referring back to our handy-dandy chart, this index is simply the column we want to look at. So index era will be product code. So let's see. Yes, insert. Let's hit apply. Let's hit Save. And let's just run that now just to make sure it behaves as we expect it. And I recommend, as you build your more complicated bots, you test it bit by bit to make sure it works. Rather than build a whole bunch of complicated functionality. And real live, you miss something critical or there's something simple. But it's actually a lot harder to debug if you've done a big chunk of work at a time, rather than breaking up into small chunks of work and a DAP bugging it as you move along. So we can see we've got a message on the boat. We got a product code, ABC, one-to-five, one to seven, so on. So that's perfect. Pretty much what we need. But you remember that the product code came up first. Now when we're adding orders, we don't actually want the first row from that table. So what we can do from the actions search for table. And you can see you've got a whole bunch of actions you can do on a data table, such as getting the number of columns, deleting columns, deleting rows and so on. So you might have already guessed, we want the delete row. We're going to take the oldest Laplace table. And rho 0 is the first row. So hit apply, hit Save, then hit run. And now our message box. So just show us product codes only. So we can say here it where we've got our first product code, second, third, fourth, fifth, 1, and so on. So now we can actually start really enabling I bought. So we are going to enable the arpanet, the navigate, and they set order. Now, you probably went recall when you place an order in the training oldest system, it will actually go back to the navigation menu. So I'll just show you what I mean now. If we go Add New Order, we place you in a bunch of details. Let's hit Submit Order. Remember, our bot will submit the Owner. Click Continue on the confirmation and we'll go back to this menu. So what we need to do for each run of that loop, we need to navigate to adding a new order, then add the order. So what we'll do now is a drag the navigate action down into our loop. And you can see it's a bit difficult. So you might want to go to the list view and you can actually drag it down in there. I bit more nicer. And then we want to drive it down the one where we actually set the order details. So I drag that down into there. We'll go back to our flow view. And what we need to do when we actually set an order. You remember we had the product code number required, you know, price and placenta. So what that's going to come from now is if we copy that current where a variable from the message books. Remember product code is column 0, the first one number required. We can edit that to be a column one. Unit price is column two and so on. And if you want, you can actually click on the Insert variable and actually have it do it for UI and prompt you to actually manually set the column number or you can simply type it in like this. A dollar sign around something indicates that it's a variable that you've set. So let's hit apply. Let's hit Save. Let's delete the action, the message box, and make sure that save the game. And then now let's try and test out bought from end-to-end. So let's see it run. So I can say it's now adding our first order correctly submit oughta. Continue. Goes back to Add to second order. And it's going to keep on doing this until we've actually added all the oldest NRCS play a file. So this is really cool. You've actually connect up to complete separate applications that wouldn't usually talk to each other. And this is one of the core foundations of RPI and automation, is connecting up different systems. And most common ones that might be email, one application such as organ system or Excel and an application such as this orange system. So by doing this one, you actually ready to go out and start building your first bots? Sorry, congratulations. We're going to take a quick break and then tie up the rest of this. But before we move on to the next section of this course. 24. Cleanup: Okay, and finally we've created our place an order form CSV. Now we need to actually set up the application to close. So search for closing actions. Then try again, window close. And what we'll need to do is actually open up the training order system, sign in with the staff number and password, so it BP and password. Then what we need to do is go to window. We're going to scan our windows by clicking the refresh Windows button. Then from here, we need to simply select our options because that's the title right here. It could use navigation number three and go to quit. But I find it's a lot more obvious to use a window close, especially if someone else is working on the same bought or needs to maintain your bot. So with that said get applied, hit save. And then you can actually click run and then run you bought from Anton and confirm that it actually closes the application, wants it's placed all the orders. So it can see where on the last order here now. And once it's placed the audit, it's closed down an application straight away and a bots run successfully. So we have no trace of anything leftover at all. So great job. 25. Triggers: Okay, now we've created a bought in order to place an order from a CSV file, we need to manually run it. We're going to look at something called triggers, which allows you to actually run your bought when a user creates a file, modify something in a folder, or actually does something within an application to trigger your bot. So you can find this under the left-hand side on the triggers. And what you'll notice at the start of your body, you have these triggers area. And if we expand this, we have various triggers. First of all, let's just take a look at the file trigger. So drag that onto triggers. You'll notice you can't drag it anywhere else. And then what we're going to do, we're going to browse to our actual orders file. So this is the actual file we're currently using to place an order from the CSP. Let's hit open. And then we have these options here. So when this file is created, deleted, renamed the modified. We can actually trigger this spot around. So we're going to change this to modify it. Hit apply, hit save. And what that means now is if we modify that file, the bot will run. And just a quick noise, you actually need to manually set it to watch that file. The boats not always going to run in the background when I'm modify that fall automatically unless I deploy the boat. Or when we're actually developing, we have this roundwood triggers option. And what that will do, that will start listening to these triggers. We have set up photo bought. If one of them fires than the actually wrong. So I'm going to go to wrangle triggers. It's going to deploy to our computer and it's going to sit there listening in the background. So what we need to do now is we're going to open up the orders dot CSV file. I'm going to create a custom one here called Product Code of Andrew. Quantity of one, you know, price of 99, cost center of 11. We're going to close the Excel file now. And now what we'll notice is when we save this, It's going to find that trigger that goes, hey, this Excel file has been modified. I need to run the bot. So let's hit Save. Let's hit Save. Yes. Yes. Give it a second. Okay. We can see as soon as we say the file that bought starts running and we can see it's pretty processing. I did have to rerun it with triggers a second time because for some reason Automation anywhere didn't pick up. The fall had been modified the first time. So that's just a quick note if you do and counter that. But let's just leave this running and we're going to see it actually open up the order system, run through it, and place all our orders so we can see its opening it up here, signing in, and then it's going to start adding oldest. You're going to skip to the new order that we added in that XML file to actually show it running. Now we're at my order. We can see its placement order details here. And it successfully submitted the order, close down the bought em run successfully. So triggers are really powerful and being able to execute I bought when something happens. So you might get a new invoice come into your email inbox. And then you might trigger to actually take that email invoice and populate some systems such as SAP and so on with those details. Now if we go back to triggers, Just a few more notes is you can actually have several triggers in a boat if you can drag it from side to side. And more than one, I'm going to delete the ones I've just created, but it's just good to know you can actually run a bottle multiple triggers, triggered types, as we've seen, a file trigger, when you create, modify, rename, or delete a file, you can run a boat. There's also a folder trigger. If we drag that on, we can actually study. But when a particular folder is created, renamed, within that folder is a file created, change to rename, or it's something deleted in that folder, we can actually run a bot. I finally something really cool is an interface trigger objects. And then what you can do, you can actually make a bought run when you're in a particular application. So let's just take the audit system. Say we were at the login screen, we could trigger a boat to automatically fill out our staff number and password and login to an application for us. And on a final note, remember if you want to run with triggers, you need to drop down, run, go run with triggers way develop now, but when you actually deploy it, you're sitting there silently in the background listening for any triggers, and then actually execute your bought if you don't have it scheduled to run at certain times. 26. Website and outlook automation overview: In this section, we're going to have a look at web automation. Web automation is a little bit more tricky than application automation, because often websites update, change as you're using them and so on. As a result, you bought is more points of breakage more often. So what we're going to look at doing is how we can avoid the abouts breaking by building a much robust Bob we possibly can for a web application. In addition, we're going to look at sending out an email as well. So we'll touch on the email side of things. Also just a quick note in a section, we might be breaking down into small boats in this section because we've already covered that topic. And Hillary, I want to focus on new key learnings we haven't looked at yet. But when you add developed urine bots, long-term heap ordered linings in mind from every section of this course as we go along. So let's get into automating a web application. 27. ABN Website overview: For the next automation, we are going to be looking at website automation. There's a tool we are going to look at, which is called an Australian business number. Look up what this does. It allows you to search for an ABN number. And then based on that, it will give you a list of results if there's mighty matches or take you directly to the ABM. So if I jump into this one here, it gives us details such as the entity name of the business, when it was active from the type of business that is and the main business location with the state and postcode. We are then going to take details from this ABN and actually email it to some email address. So that way the boat integrates a website and actually using an e-mail to send out emails. So as you'll see here, we've done a search for an ABN and actually gave us a list of potential matches. What we're going to do for our boat. We're going to use Google's ABN, which I've got here. And we're going to search for the exact match, which will take us directly to that page. And then we're just going to crack the entity name and all the other details I'll leave up to you to grab. The important parts of this lesson are actually how you automate websites in a stable manner. Because I'm sure you know, websites update often and if you don't do it the right way, you would be breaking week by week. So I'll show you how to make it as stable as possible. Then we'll collect this information and actually use that looking at email systems such as outlook to be able to send out an email. So let's jump into it. 28. ABN Lookup bot setup: Okay, let's set up by a boat to get the AB and DE towels. So for this one, we're just going to have in a single block for the sake of this lesson. So what we'll do, we'll simply good to create a bot. And we're going to name ABN, lookup. Hit create and edit. And then we'll have our bot here. What you need to do is in a separate browser window, I'm going to be using Chrome and I recommend you do as well, is go to APR dot Business.gov that IU. And you're pretty presented with a page that looks like this, with a big search box to look up an ABN. And the first step is to search for browser in actions. And we're going to go to launch website. So if we drag wants website, we can see we have our browsers here. We're going to use Google Chrome. And the URL for this is going to be a business.gov dot IU. So copy that, paste that in the URL. Apply it, hit save. And that's the first step of our bought to actually launch a website. Now what we need to do is we're going to use ricotta to actually search for the Google ABN and navigate to that page. So let's go to record. And then we've selected a b and look up which are already have open. Go start recording. One such thoughts. Highlight over the search box and wait until it shows up in red. When you're doing automation for websites, sometimes it takes a second to actually hot a Alvin unread. So you definitely want to make sure until it does that. Highlight the actual search box. Click on it. Then in here we need to type in 33102417032. Then hover over the Search button until we've got the red thing. Click on that. And you know, you've got it right. If you get the actual details for Google, if you missed the digital too, you'll be returned to search results of potential matches. We don't want that. We want to make sure we get the exact match. So with that done and not clicking on anything else to add another step towards two n recording. Then go back to automation anywhere. And we can see we have this to record a steps. The first one will actually click on that ABN search box. Down here we can say all type in Diego's ABN number with setText. Then it will actually click on the search button here, which will load up the search results for Google. Now we're going to say that bought and we're just going to dive into the recorder steps. I beat more and things you really need to look out for when automating website. So you'll recall the properties for my oldest system is like an address to actually look up or location on the screen to actually click on it, getText, set texts and so on. The thing you need to look out for is with a lot of automation software, especially around Website automation. The defaults for this object properties are not sensible or they're prone to break if the website shows something else or updates or had some minor change away clay up. So let's go to the Object Properties and take a look the best ones. Html tag is a good say bet. So make sure you leave. That's it. Dmx puff is a fairly okay to use. Pitch til Ma De is really, really good to use this as a unique identifier for an element on a website. Some websites use it, some don't. So if you haven't always use it, HTML has frame. Not too worried about that. Html type. It's a textbox. That's fine. We can leave that ticks. The path here is something you need to look out for. And it looks like absolute junk is go minus1, minus2, minus 12 and so on. What you have to think of is the way to pop works is if we go back to the AB and search page, imagine this website is essentially a tree and each item has a path. So this header bar Miles thought off as path 0. These four buttons harm, search tools and resources help might have PAF 1234. And let's say I want to click on a search button. If I click on that, the path is the header bar 0, its parent, followed by the search button, which is one, so that pop would be 01. And then you might have another path for all the details on this great here from a search box, all the texts and so on, which is one for the parent. And in the search box might be PAF one, whereas ahead, Oh, he is PAF 0. So I've only gets a search box, it's 11. Now that's just a quick example on made up. But hopefully you get the point that's the white is PAF actually generates is the page is divided up into sections and has children and so on. The danger with this, if they add some text up here in between the search box and top title here, that can change a search box from path one to two, which would completely break you bought. And websites do this quite often. So I don't recommend unless you absolutely need it always ANSI-C path. Then we've got some other item series such as HTML name and so on. We're going to leave those as default that looks safe to me. Hit apply, hit Save. Then go to the next record a step. Let's take a look at the object properties. We can see here, we've got a lot of similar items. We gotta hate him RT, which is good. And we've gotta pop which we want to answer for that for clicking on a search button, go to hedge the amount name, which I don't really like this one. It looks like something that could change quite easily for Lusaka, Water gibberish, usually unsecured unless you need it. But if it looks like something sensible such as nine search button, for which the my day leave it in there. Let's see lapply. Let's hit Save. Let's close down at IBM window. And then now let's run up bought. So make sure it's working with our changes. So we can see it's opened up here. It jumps down a bit and then navigate is straight to the AB and for Google so that web successfully. So great job and congratulations. What we're going to do now is we're going to take a quick break. And in the next lecture before I'm a born, I'm going to dive deeper into the object properties and what the common ones actually mean and do a page HTML, because it's important, you have a fundamental understanding of them, have how they work. Because we added your website automation will be a lot more challenging to actually do. So let's take a quick break before we jump into that. 29. HTML Selectors - Deep Dive: Okay, before I move on automating website anymore, let's take a deep dive on HTML selectors. They're like an address book in order to be able to get to a house. But instead HTML selectors are the address to actually be able to get to the element on a webpage to either click a button, type in some texts and a textbox, or retrieve the text from a textbox. Now, so I'm going to default so that a selected aren't too great and some that are unselected are actually super helpful. So I'm just going to go over the most common ones right now, which are the ones you see on screen and explain what each of them actually do with an example website IF quickly put together that you can actually do it in this and the next lecture or in the course itself. The ones we're going to look at is how HTML tag hates them all. Iid, HTML type, HTML class, HTML, DOM, xpath, and finally path. And you can see here on the right is a snapshot of the one we just looked at around the AB and woke up. So let's take a quick brief on HTML. I've set up this simple website which has a firstName, label, a textbox, and a submit button. Now, the actual code for this behind the seeds actually looks like this. So you can see here would have a label with a class blue, which is some CSS to make that text blue with a text firstName, we have an input of the ID name, named firstname type text, which is at textbox. And finally a submit button, which is a actual button to click submit. So this is our example website. And I'm going to run over what all those selectors are that we just looked at. Just hid around how they'll actually be using automation anywhere to select the element on this example website here. So let's start off with the HTML tag. The HTML tag is the root tag. So we can say here, in this case, the highlighted code in yellow and what is the actual tag? So we can see here for the first one, it's label for the input as input and afford a botnets button. So that's what we'll be populated, not Automation anywhere. If we selected, say, the actual firstname label, the HTML tag we set as label. Next up, we have the HTML ID. This is a unique identifier for the element, and not all elements have this. So we can see in our code the input has an ID of name. We've HTML on the page. There should only ever be one unique ID form islands. So in this example, nothing else at all should have the ID name. So this is a safe bet to actually use. If the website you're automating does actually have it on its elements. I highly recommend taking it, but just know not all elements will have it. So it's about 50-50 percent. Next up we have the HTML class. These can be applied to each element. It's used to typically style components. So in this case as making that first-name text to be blue. And it's not unique. It can be on LE, any element at all. So we could have ten labels, all the class blue just to make the text blue. So it's not a unique selector. However, it does help you narrow down with automation anywhere to actually be able to uniquely identify an element based on a combination of object selectors. Then we've got HTML name. Sometimes a website developers, kind enough to provide a name for an element. It is not always unique, just like class. In our code, our text box has a name, a firstName. So it's similar to class in that it can be used with a combination of a number of other selectors to uniquely identify an element. Then we've got DOM xpath. This is essentially a straight directory of the webpage. Failing any other site is defined elements. This is your next best bet. There are Chrome extensions such as crow path that can find this out for you. And in the example here, the label we can see is HTML slash bodies slash label. The input is slash slash star, then at ID name. And what this means is find all elements where the ID equals name. So if we had an ideal firstName, we could change that to firstname and refine all elements with an id first_name. You could also do it for class and so on. And then we've got the actual button which is hates them or body button. So don't recommend relying on is straight away. However, if you have something such as the ID name equals here, it's usually a safe bet. So find the element on the page. And finally we have path, this is the Automation anywhere path to the element. Don't use this always-on ticket. And the reason is if we had this website here, and let's just say the path to the input is number one. And let's say we add another label called lastName. In between them, the path for the actual input would be number two. So this can easily change. And quite often either websites will update, sorry, they'll update, there'll be some new copepod on a website and all the paths will be completely different, which will break bots, or sometimes depending on the page, not every time we'll have the same path. It might be doing some AB testing to show different content to different users. If you click on a dropdown, it might show some more items and so on. So do not use this always-on ticket. Use a dom x path if you must, but really don't recommend using this at all. So that wraps up the HTML selectors we've looked at. We've touched on some of them previously with the AB and look up. What we're going to do in the next lecture is actually taken a look at that example website we just went over and Automation anywhere, select a few elements and see what they come back with. So let's take a quick break before we get into that. 30. HTML Selectors - Practical: Okay, so we've got our website here on the top right. You can head over to CMO apps.com slash RPI for SaaS example that HTML. And if we drive a capture stage on example website boat, which is just a new simple bought after curated. And then we go to window. Let's refresh it and then select the example website from the windows. With the website selected, let's go capsule object and then let's click on the text box, for example. Once it's captured, you can see it's got the dome puffy, which is input name. It's found the HTML I date of name. Its scope of HTML taught as text. Scott, the path which we don't want. It's got the hedge and we'll name which is firstName. So as discussed with untick path, we've got all the other properties we went over an example. If we change this action to set text as I lower, hit apply, let's hit Save. Then let's simply run the ball with current still open on that website. We can see it successfully set the text to Hawaii for us, elect us. So I recommend trying to have a play around and record a capsule stage Clicking on the elements. And notice that sometimes on website said is firstname box might be wrapped in a not a box which is called a div. So sometimes you need to make sure you hover over directly nasa and click on it. And another thing you can also do is actually manually set these object properties. So if there's some missing, you can actually go in and manually set them. And what you could do is in your current, if you press at 12, your developer tools will come up. Let's just open it up. And if you select an element, would this little button here. Let's hope whatever the hello, you can actually see the code for a website. So you can actually manually grab it, then set the properties and Automation anywhere. It should be red that you'll need to do this. However, I have had a few edge cases when automating. We need to mentally go into the website, grab an odd day because sometimes a capture won't actually get these details correctly due to the way websites are structured. So that's a small hint, is you can manually selected as well. So let's take a quick break before we get back to the API and lecture around grabbing that legal entity name. 31. Get the legal entity name: Okay, so now we're coming back to our ABN lookup bought after a quick break on a date glider at HTML selectors. So let's just run it again just to get a refresher of what it does and the next step. So you want to take with building out this spot. Okay, so we can see how bots Ron and it's got to the page with the entity details. So let's just move this out into a new window. Then we're gonna go back to automation anywhere. And what we want to do is capture this entity name, which is Google Australia. So in our actions, we are going to use a capture stage from the ricotta. Let's grab the window. Okay, now we've got the window which is currently tells for the ABR name, the window title. We're actually going to add a stock of the current details. And that's a wild caught. So what that means is any text off the current details, it will match for us. So this way, if this window text changes for a different ABN, owl capture object can still grab the details. So wildcards are very handy to use and keep that in mind. Let's go capture object. You can say it's found it. Then highlight over the entity name. Let's click on it. And back in Automation anywhere we can see we've got Google Australia here on that object properties. You can see we've got various items by going to ANSI-C path. The rest look good to me. And what we want to get is this HTML in our text which contains an angular Australia. So we're going to use the action get property. The property name is hedged tail in a text so you can copy that, paste it here. And then we're going to assign the output to a new variable which we're going to create, which is going to be called business name. Then go create and select. Let's hit apply. And finally, let's verify it works by dragging on a message box. And the message to display will go insert variable, insert business name, hit, yes, he'd apply, hit save. And then let's run our bought from start to end. And see here. Now again, it's got Google and we've got the message box saying it's Google Australia. So back to the bought, hit close. Let's take a break before we move on to the next lecture. 32. Sending an email: Okay, now that we've actually got an Australian business number, looked up the name of the business. What we're going to do is use Outlook to send an email with that business stamp to not a email address. So at look, c'mon sound stick Gary and complicated to automate what's actually deadly simple in Automation anywhere, which is a blessing. Calls email can be super fiddly. So I'll go at Luke's setup with a hot mountain email address on my computer. I recommend you do the same. You can use Gmail as well. However, it's a bit more involved in setting it up and as instructions on Google around how to do that. Otherwise, I recommend using using Outlook or Hotmail email address to set it up. Once you've got that set up, we can close them, outlook on our computer. And then under actions, there's a series of e-mail ones where going to use the send email one, which is ascend. And we can put in the To address which I'll come back to the subject. We are going to put the, you have the ABN. Now. We're gonna send the email just as plain text text only. We can insert the variable from the business name. So remember this is a business name that was able to look up. So good. Insert that. Then before that we're at the business name is with a colon. Send email. There's several options. The main modes you need is at local email server. It looks easiest because it will use Outlook, which is stored on the computer, the box running. However, if you don't have Outlook and stored, you can use email server, which gives you more configuration options because you can actually specify what address the BOD is sending an email from. You need to put in a bit more advanced details such as the email server host, hot, and credentials, but it provides more flexibility. Whereas aliquot just use the current account that you've got set up on outlook on your computer to actually send an email. For this example, we're just going to use Outlook, put in the address you want to see the send an email to. So I've put in the address now, let's hit apply, let's save. And then let's run our bought from start to end to actually send an email. So I can say it's looking up the ABN, Scott, the entity name. We've got our message box when we hit close. That's going to send that email now to our email address, the sale or successful. And then if I jump into the email inbox for the address, I'll put it into. We can see we've got the email, you have the a, b and now with the business name. But open that we can see, we've got the details here. And if I open up Outlook and the sense items, I can say, this is a novel that was sent to the email address I specified. So it's super easy to send an email and the actions around email with automation anywhere. I've used some other automation products and they Arabic Morefield Lee. So you're really lucky that they've put a lot of time and effort into making this as simple as possible. 33. Credential Manager: Okay, we're going to take a look at the historical activity to see the logs of what box have run and what happened with them. Exactly. So one running, but it's very important to make sure they audited. So when they run, what exactly happened in case any issues occur, you can track them the utter who Ron known, what the vassals ran on what actions the board took in historical activity, we can see here it has a status, a green tick if it ran successfully. I read icon. If it didn't run successfully. The device name that ran on the name that ran, the use of who actually run the book. Then started, and that was last modified. If we click onto one of the autumn names on the boat, will also have the historical activity in here, which is pretty much exactly the same as what we had in a summary view of the last day. It's got a lost action, unfortunate doesn't populate and so on. So other automation frameworks will actually log what happens step-by-step on robot. So for example, if I go over to my baby and lookup bought, it would actually look when the browser launches what website it goes to, what texts that puts in, what there is and so on. However, unfortunately, the historical activity will actually only show us the basic details of one a bot was run. There is a way around this, however, it is manual and that is what's called a log action. So if we search for that, we'll see this log to file. And we can drag that onto our bought. And this is going to log some details to a text file. So what I've done, I went ahead and created this ABN logs dot TXT file with nothing at all in it. You can also do that by going right-click new texts document and creating an empty text document. And then what we can do in Automation anywhere with that loads that file, we could put it in a file path and select the avian lungs document. Then make sure you click Append timestamp and we'll enter text to log AB and will cup bots is starting. We could append to existing log file. That way if there's anything in there, we just simply add to the end of it. We don't want to overwrite any existing walks. Hit apply. Then at the very end, we'll drive a not a lot to file, and we'll do the same file path, opened up the API and logs and to texts. The log will do the business name. Found is, and if we type in a dollar sign, you'll notice it becomes a variable and it will automatically stop order completing it for us, which is super cool. So that's a nifty feature you may not have known about. When that's done here, apply, let's say the book. And now let's run it end to end and see what happens. So you can see the bolts run, it's got the business name and if we close that down, it's running the final step, which is logging to a file that has finished running now. So can go close. And then if we actually open up a Bian logs, would notice we have the exact date and time that actually log to files, run it. The first one was the avian will cup is starting. And then the business Same found is Google Australia Proprietary Limited. So you can actually look individual actions as the boat is running to a file. So this is super useful for debugging and also just keeping an audit trail of what actually happened when you bought wrong. Because if things go wrong, let's just say that place an order for the wrong product. You want to know exactly what happens step-by-step. And without logs, it's super hot track. With logs, you can see what happened at each stage or action of the process. And just important note, when you are logging information, make sure you don't look any personal information such as someone's name for a number, that credit card number, social security number, etc, to a file. Sensitive information and you do not want to look at all. So you want to make sure those items Outlook and you might just say getting the person's first name, for example, instead of putting an actual name because that sensitive information. So I'm going to close out. And that is one way to work around the lack of the logs in historical activity, unfortunately in Automation anywhere, it just is what it is. So it's good to know that you can go to his circle activity to get the high level of details of when I bought Ron what device that ran on he ran it. But you can use a long-term fall actions to actually get more granular details of a box activity. 34. Logging: Today in this course, what would they login application such as the old system, we'd just been using the username and password inside the robot. This is not secure and Arduino recommended at all. It's only useful for either when you're learning or first developing iPod. But what you really need to set up is a credential manager. And a reason for this is as secure as your credentials and a secure area. You can restrict access to who has unhidden user credentials. And you can make sure in production systems, no one has access to a password, for example. So Knowlton login, who's been developing about and make Melissa changes to your system. So we're going to make a credential 40 audit system and you recall the username and password equals password. So in order to do that, you'll need to head on over to the credentials, crate a credential. We're going to call this credential order system. Then it has several attributes here, and this is why he set a username and password. So first one we're going to do a username. It can give it a description. It can also allow users to provide us one and developing it and then it will be stored in a secure location. But I recommend just using standard and we set it as cells. So we'll set it as a paperclip prism. And you can make a mosque which you want to use for passwords. So let's add a password now by clicking add, add a new one. Attribute name is going to be password. Input standard value is possible. And now if we take Mosque, you'll need to re-enter the value. But it will look like a password. So once you actually create the credential and go back into it, you can see here that no one's going to know what the password actually as. So in order to be able to use this credential, what we need to do, we need to actually put it in what's called a Loca. So the concept is you can have many credentials and a Walker who actually store some subset of these credentials. So lets their credit local. I'm going to call this Android's Local. Then you can store credentials in this local. I'm going to tick all the system user error to edit. You can select owners of the local. So who has access to the local? You can add managers. So they can also have the same permission as arenas where I can add credentials, add other papal RAM it uses, but they can't remove owners. Then you have participants. So who can actually just knew this Lacoste, sorry, they can access and use of credentials and application, but they can't add or modify them. And finally, you have consumers. So who's able to view the local? So these are essentially roles or permissions. So just selects the USA had hit create lockup. And now we've created a lock hazardous Andrews LacA contains a credential for order system. And what we're going to do, we're going to go back to our old system bought and uses credential. So head on over to my bolts. Head on over to the audit system folder. And you'll remember depot, we credit earlier to open an older system and login. Remember the steps you remember this capture will type in the text BP than tab and type in password in a password field. So what you can do now is we can take the select credential, pick the credential. You can choose a local which is enters lock-up, which contains a credential for audit system. And then we can choose username and password, select username. It confirmed he acquire, let's say. Let's run that now. And I'm not going to login successfully because we haven't actually set the password in a separate stage, but that's all right. We just want to prove that we can actually store the credential successfully and access them. So we can see here it successfully x as the lockup and taught in a staff number B pay 40 years. And I although so now that it's run, you could recapture the password textbooks only order system, create a new action. And then user credential Order System password to actually login to the system. A really good thing about Automation anywhere is in the documentation on Credential variables, is that if you're typing in a password, it makes sure we've credential manager, if you have something set as password, the inputField is secure. And what does it mean by that? What it means by that is this stuff number is an unsecure input. We can see what's being taught in. A secure input is something that has a stars or thoughts when you type in a password. So it will check the application you're targeting. And if you have something set as a possible, that's most, you make sure the inputField is mass so it can only type postulates in a password field and not a plain text field. Otherwise, someone had who has access to robot could actually type it out in a plain text field and then get the password. So that's one really good feature, all the credential manager. And finally, there is a list here of the commands that support credential variable. So not everything supports it. So it's good to keep these in mind as to how you access credentials. I recommend you absolutely always used Credential Manager. It's a way to securely store your credentials, restrict access to them. And also if you have a test and production system, you could easily set credentials to login to your test application and swapped them out for a production system. When you move into production later on in a super easy manner. So if hours reviewing someone's bought and I will logging into a system where App financial manager, I would reject it straight away. You need to make sure it's secure. And also IT will also get you and a lot of trouble if I find that you you're not using this and he was talking in plain text. It's not a good practice at all to do that.