2. 2
â–Ş Send Email using Automation
â–Ş Basic String Manipulation
â–Ş Date Formatting
â–Ş Debugging and error handling in Studio
â–Ş Leveraging Orchestrator Assets
â–Ş Making use of Orchestrator Queues
â–Ş How to publish a project in Studio
â–Ş Deployment to Orchestrator
â–Ş Wrap up and Overview of UiPath Academy
Agenda
4. 4
Email Automation using Studio
â—Ź Install the UiPath Mail Activities Pack to send, retrieve, and filter emails
â—Ź 'System.Net.Mail.MailMessage' represents the main data type when working with
emails in UiPath
â—Ź The following can be configured while using the activities in Studio to send emails:
• Add a subject
• Custom body
• Attachments
• Even use a template
5. 5
Email Automation using Studio
â—Ź The activities grouped under App Integration
cover various protocols such as
IMAP, POP3, and SMTP, or are specialized in
working with Outlook and Exchange.
â—Ź Outlook activities are easier to configure and do
not require you to set up servers, users or other
details, as they work with the API of the desktop
application and with already existing Outlook
accounts.
8. 8
String Manipulation using Studio
â—Ź Strings are the data type corresponding to text.
â—Ź Anytime a text needs to be captured, processed, sent between applications, or
displayed, strings come in handy
â—Ź String manipulation is done by using String Methods borrowed from VB.Net
â—Ź Full list of String Methods from Microsoft can be found at:
https://docs.microsoft.com/en-us/dotnet/api/system.string?view=netframework-
4.8#methods
9. 9
Common String Methods
Concat Concatenates the string representations of two specified objects
Ex: String.Concat(Var1, Var2)
Contains Checks whether a specified substring occurs within a string and returns true
or false
Ex : <VarName>.Contains(“Test”)
Format Converts an entire expression into a string (and Inserts them into another
text). Reduces complexity and increases readability
Ex: String.Format(“{0} is {1}”, VarName1, Varname2)
IndexOf Returns the zero-based index of the first occurrence of a character in a
string
Ex: <Varname>.Indexof(“A”)
10. 10
Common String Methods
Join Concatenates the elements in a collection and displays them as string
Ex: String.Join(“|”, <CollectionVariable>)
Replace Replaces all the occurrences of a substring in a string
Ex: <VariableName>.Replace(“original”, “replaced”)
Split Splits a string into substrings using a given separator
Ex: <VariableName>.Split(“|”c)(index)
Substring Extracts a substring from a string using the starting index and the length
Ex: <VariableName>.Substring(StartIndex, Length)
13. 13
Date Formats
Format E.g., Result
DateTime.Now.ToString("dd/MM/yyyy") 12/08/2022
DateTime.Now.ToString("MM/dd/yyyy") 08/12/2022
DateTime.Now.ToString("dd/MMM/yyyy") 12/Aug/2022
DateTime.Now.ToString("dd/MMMM/yyyy") 12/August/2022
DateTime.Now.ToString("dd MMMM yyyy") 12 August 2022
DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt") 12/08/2022 10:08:21 PM
DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") 12/08/2022 22:10:08
DateTime.Now.ToString("hh:mm:ss tt") 10:11:32 PM
• dd - Represents the day of the month i.e., 03,05,18 or 30
• MM - Represents the month number with leading zero i.e., 01,08 or 12
• MMM - Represents the abbreviated month Name i.e., Jun, May or Dec
• MMMM - Represents the full month name i.e., April, June or December
• yyyy - Represents the year i.e., 2022
• hh - Represents the 12-hour clock with a leading 0 i.e., 07,02 or 12
• HH - Represents the 24-hour clock with a leading 0 i.e., 06,14 or 22
14. 14
Methods for Date Formatting
Convert.ToDateTime Method
Convert.ToDateTime(String)
• Parameters
String - The String representation of a date
and Time.
• Returns
DateTime
• Example
Convert.ToDateTime(“08/12/2022”)
DateTime.ParseExact Method
ParseExact(String, String, IFormatProvider)
• Parameters
String - A string that contains a date and time to convert.
Format - A format specifier that defines the required format of
String.
Provider - An object that supplies culture-specific format
information about String.
• Returns DateTime
• Example
DateTime.ParseExact("12/04/2022", “dd/MM/yyyy”,
System.Globalization.CultureInfo.InvariantCulture)
17. 17
Debugging is the process of identifying and removing errors that prevent
the project from functioning correctly.
âž” During the design stage of the automation project, at activity, file and
project level.
âž” Debug can be executed from both Design or Debug tabs.
Debugging
Debug current file
Debug project
(starts from Main process)
18. 18
Debugging Actions
Re-executes the previous
activity, and throws the exception
if it's encountered again.
Ignores an encountered
exception and continues the
execution from the next activity.
Debugs activities one by one.
Opens the workflows in “Invoke
Workflow File” activities.
Restarts the debugging process
from the first activity of the
project.
Completes the execution of
activities in the current container
and then pauses the debugging
at the current container level.
Step Over executes all
activities inside a
container without opening
the container.
19. 19
Debugging Actions
â—Ź Breakpoints: Places a breakpoint to selected activity to pause the debug execution.
â—Ź Slow Step: Debugs at slower speeds and highlights each step of the execution flow.
â—Ź Execution Trail: Shows the exact execution path at debugging.
â—Ź Highlight Elements: UI elements are highlighted during debugging.
â—Ź Log Activities: Debugged activities are displayed as Trace logs in the Output panel.
â—Ź Continue on Exception: When enabled, exception is logged in the Output panel and
the execution continues.
21. 21
The panel shows:
â—Ź Exceptions - the description and type of the
exception.
â—Ź Arguments
â—Ź Variables
â—Ź Properties of previously executed activity -
only input and output properties are
displayed.
â—Ź Properties of current activity
Debugging Panels
The Locals panel displays properties or activities and user-defined variables
and arguments.
The panel is only visible while debugging.
22. 22
Debugging Panels
The Immediate panel can be used for
inspecting data available at a certain point
during debugging.
The Call Stack panel displays the
next activity to be executed and its
parent containers when the project
is paused in debugging.
These panels are only visible while debugging.
23. 23
Debugging Panels
The Breakpoints panel displays all
breakpoints in the current project,
together with the file in which they are
contained.
The Watch panel displays the
values of variables or arguments,
and values of user-defined
expressions that are in scope.
The panel is only visible while
debugging.
25. 25
Exception Handling
Holds the activity(s) that could throw an
exception.
Specifies the exception type and,
optionally, holds an activity that informs
the user about the found exception.
(e.g. Log message, Send mail)
Holds the activity(s) that should be
executed whether when an error is
caught (without being re-thrown) or Try
block executed successfully.
Try Catch
26. 26
Error Handling
Throws an exception previously caught in an exception handling block.
â—Ź Must be the child of a Catch handler of a TryCatch activity.
Throws a custom error.
â—Ź new BusinessRuleException("message As String")
â—Ź new ApplicationException("message As String")
Throw & Rethrow
29. 29
Leveraging Orchestrator Assets #1
Orchestrator Assets are configuration values, which are pulled at runtime by
automation solutions.
But, why use Assets, when I can just keep
the values locally in my automations?
Sure, but what data types can Orchestrator
Assets store?
Okay, but I need a value defined per
Robot/Account, so I can’t use Assets, right?
1
2
3
30. 30
Leveraging Orchestrator Assets #2
Now that we know what Orchestrator Assets are and why we use them, we
need to how we use them.
Two main Activities for
interacting with Assets:
Get Asset
Get Credential
Though, you can also Set
Asset values!
1
2
1
2
33. 33
Making use of Orchestrator Queues #1
An Orchestrator Queue is a list of items to be processed by automation
solution(s).
Orchestrator Queues:
Enforce Unique-ness
Support Robot Scaling
Provide Process Metrics
34. 34
Making use of Orchestrator Queues #2
When making use of Queues, a common best practice is to split automation
solutions into Dispatchers (shown below) and Performers.
35. 35
Making use of Orchestrator Queues #3
With the transaction items added to the Queue, the Performer will begin
retrieving items and processing them.
38. 38
Publishing a Project in Studio
Once you have finished developing an automation solution, you can leverage
the publish functionality in Studio to package/push your code to Orchestrator.
Publishing:
Validation errors will prevent
successful publishing.
40. 40
Deployment to Orchestrator
With our automation solution package in Orchestrator, we need to create a
new process and assign it our published package.
42. 42
Log into UiPath Academy www.academy.uipath.com
> go to the Learning by Role page
> enroll for the RPA Developer Foundation course
> go through the lesson titled
- Email Automation with Studio,
- O”
Feel free to ask any questions in the UiPath Forum Please
remember to use the RPA Summer School Category or Tag
What’s next?