0% found this document useful (0 votes)
172 views593 pages

Self Paced Automation Essentials - Course Book

Uploaded by

Kavitha Arjunan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
172 views593 pages

Self Paced Automation Essentials - Course Book

Uploaded by

Kavitha Arjunan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 593

NICE Designer

Self-Paced Automation Essentials


NICE Advanced Process Automation

Course Workbook
For Automation Developers
Designer Automation Essentials BE Layer - Functions and Events

BUSINESS ENTITIES
LAYER:
FUNCTIONS AND EVENTS
Designer Automation Essentials BE Layer - Functions and Events

Lesson By the end of this lesson you will be able to:


Objectives • Create Functions and Events

• Work with data structures

• Up until now you have learned how to capture Screen Elements,


and how to create Business Entities, i.e. Types and Instances.
• This lesson will cover how to create and handle different data
structures. In other words, how to populate Business Entities
with data, and manipulate them for implementation purposes.
Designer Automation Essentials BE Layer - Functions and Events

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials BE Layer - Functions and Events

Functions Basics
Designer Automation Essentials BE Layer - Functions and Events

What are Functions?


• Functions perform an action on an element
• Elements in the Designer will have different Functions available, depending
on their Type:
• SE Functions operate on SE’s
• BE Functions operate on BE’s
SE Function BE Function

Click Sort

80 25 100

• Always select the element on which you want to operate in order to access
the set of Functions available for it.
Designer Automation Essentials BE Layer - Functions and Events

Function’s Structure

Return Type Return Type and Input Parameters are optional.


▪ Function can return an element as output
Input Parameters ▪ Function can get elements as input

Body is mandatory.
Body It contains a set of Instructions, that are executed top-down.

?
Example

Number
▪ What is this Function’s output?
Customer’s birth year
▪ What is this Function’s input?
Return Current year – ▪ What does this Function do?
Customer’s birth year

• Functions are defined at the Type tab, but operate on the Type’s
Instances.
• They are triggered at an upper layer.
• The example function returns the customer’s age.
Designer Automation Essentials BE Layer - Functions and Events

Remember that the


How to Create a Function Function is defined at the
Type level, but operates
2 on the Type’s Instances
Click New
Function
3 Select Return Type if
Function returns a
value

4
1 Add parameters if
In the Business Entities Function receives any
tab, click the Type you
wish to add a Function to
5
Insert Instructions to execute
at Function Body

Create
Create aa Create
Create Create Create an
Create Events
Type Properties
Properties Functions Instance

• Some Functions do not return any Types (To set this, in Step 3,
select “None” as the Return type). For example, a Function that
assigns a result of a calculation into a Type.
Designer Automation Essentials BE Layer - Functions and Events

Built-in Functions

• Library Object Functions are available in the Designer.


Here are a few examples:

Math Date Text Window Clipboard

Subtract Year of Concatenate Get Active Copy text


Process

Add Get Current Get length Set Focus to Copy file


Date Window
Designer Automation Essentials BE Layer - Functions and Events

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials BE Layer - Functions and Events

DO IT YOURSELF
Creating a Function
• Create a BE Type called ‘Address’ with the following
Properties:
• Street
• City
• State
• Zip
• Make an Instance of this Type
• Create a Function called ‘Full Name’, which:
• Returns a Text value
• Has 2 Input Parameters: “First Name” and “Last Name”
• Contains an Instruction to Return the free text: “Full Name” (This will be
replaced with a more meaningful value later)
Designer Automation Essentials BE Layer - Functions and Events

Function Body
(Instructions)
Designer Automation Essentials BE Layer - Functions and Events

Function Invocation

• Function Invocation Instruction calls another Function.


This Function can be:

A built-in A built-in A built-in / user-created BE


Library Objects Function SE Function Function

Concatenate (text A, text B) Click Button Sort List

Function Location
Function Invocation  Library Function Invocation  Screen Function Invocation  Business
Objects  Elements  Entities 
Text  Button (specific SE)  List (specific BE) 
Concatenate Click Sort

• Business Entities – Can be either a Function you created or a


built-in Function like sorting a list.
• Library objects – A built-in Functions library, much like Excel.
Drill-down menu will display the group Functions (Math
Functions / Date and time Functions etc.), and Functions you
can invoke in this group (Sum, Current date etc).
Designer Automation Essentials BE Layer - Functions and Events

How to Invoke Library Objects Functions

• The “Concatenate” Function is one of many Library Functions.

Drill down to
Concatenate
Designer Automation Essentials BE Layer - Functions and Events

Library Objects Syntax- Concatenate Example

You can concatenate values stored in Business Entities…

… as well as free text, including


spaces, commas, hyphens and
all other punctuation
Designer Automation Essentials BE Layer - Functions and Events

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials BE Layer - Functions and Events

DO IT YOURSELF
Invoking a Library Function: ‘Concatenate’

• Add the relevant instructions to the ‘Full Name’


function to Return the Concatenation of the “First
Name” and “Last Name” parameters
• Under the ‘Address’ Type, create a function called ‘Full
Address’ that returns type ‘Text’
• Add the relevant instructions to concatenate the values
in the ‘Address’ type as follows:
Street, City, State Zip
Designer Automation Essentials BE Layer - Functions and Events

SE Functions

• Each Screen Element has different built-in Functions to invoke,


depending on its type

Window Text Field Button Combo


Bring to Front Emulate Keyboard Click Make set of Items
on list
Name of Window in Set Focus Get Property Get value at X from
focus the list

• Before you take action on a window, it’s important to first bring


it to the front, so it is the active window.
• “Name of window in focus” is a Library Function.
Designer Automation Essentials BE Layer - Functions and Events

How to Invoke SE Functions

Project

Drill down to Layer


Function through
SE’s location
Application

SE

Function
Designer Automation Essentials BE Layer - Functions and Events

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials BE Layer - Functions and Events

DO IT YOURSELF
Invoking a Screen Element Function

• Create a Function called ‘Click Add’, which invokes the


‘Click’ Function associated with the ‘Add’ button you
captured earlier.
Designer Automation Essentials BE Layer - Functions and Events

BE Functions – “Add Item to List” Example

• There is an Add Item Function associated with every List


• Use it to add the current contact name to My List

My List

Oprah Winfrey
Contact on Call
David
555-1212 Ricky Lake
Letterman

Jimmy Kimmel

David
Letterman
Add Item
Designer Automation Essentials BE Layer - Functions and Events

How to Invoke BE Functions

Layer

Drill down to
Function through BE
the BE that
contains it Function
Designer Automation Essentials BE Layer - Functions and Events

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials BE Layer - Functions and Events

DO IT YOURSELF
Adding to a List of Primitive Business Entities

• In the Instances tab, create a List of Text and call it


‘List of Zip Codes’
• In the Types tab, create a function under the ‘Address’
type and call it ‘Add Zip Code to List’
• In the function, add the appropriate instruction to add
the ‘Zip’ Business Entity to the List you just created
Designer Automation Essentials BE Layer - Functions and Events

Adding Composite Business Entities to a List

• When you add an item to a list of composite BE’s, the Instance is


connected to that lists’ position.

• So… when its value changes, so does its corresponding value on the
list.
My List
Oprah Winfrey 555-1000
Contact on Call Ricky Lake 555-1010
David
JayLetterman
Leno 555-1212
Jimmy Kimmel 555-1202

David
JayLetterman
Leno 555-1212
Add Item
Designer Automation Essentials BE Layer - Functions and Events

Adding Composite Business Entities to a List

• To prevent values from being overwritten, add a duplicate of the


Instance (not the Instance itself) to the list.

Duplicate My List
Oprah Winfrey 555-1000
Contact on Call Ricky Lake 555-1010
David
JayLetterman
Leno 555-1212
Jimmy Kimmel 555-1202

David Letterman 555-1212

Contact on Call
David Letterman 555-1212
Add Item
Designer Automation Essentials BE Layer - Functions and Events

Adding Business Entities to a List

• To Add a Duplicate BE to a List:

Drill down to Duplicate


Function through Library
Objects  BE
Designer Automation Essentials BE Layer - Functions and Events

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials BE Layer - Functions and Events

DO IT YOURSELF
Adding to a List of Composite Business Entities

• Create a List of Address Types


• In the Types tab, create a Function under the ‘Address’
type and call it ‘Add Address to List’
• In the Function, add the appropriate Instruction to add
the entire ‘Address’ Business Entity to the List you just
created
Designer Automation Essentials BE Layer - Functions and Events

Simple Instructions

Insert Instruction 
Comment
Local Variable
Assignment

Return

• Comment
• Add documentation for implementation
• Local Variable
• Declare a variable of a certain Type, to be saved and used locally
within the Function, but only while the Function is running
• Assignment
• Assign a value to a PO, BE or a local variable
• Return
• If the Function’s return type is NONE, no value is returned and the
Function stops running. If the Function’s return type is Number
for example, define which variable or value will be returned.

• Assignment Instruction allows you to change BEs' values after their


initial assignment (defined in the Data flow tab).
Designer Automation Essentials BE Layer - Functions and Events

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials BE Layer - Functions and Events

DO IT YOURSELF
Instructions

• Create a Type called ‘Customer’ and make an Instance


of it
• Under this Type, create a Function called ‘IsSenior’,
which returns a Boolean value
• Insert Comments to your Function to describe the actions
you intend to implement in the Function
• Declare a Local variable of type ‘Number’ called ‘Age’
• Assign the value ’60’ to ‘Age’
• Insert the Instruction to return out of the Function with the
value ‘True’
Designer Automation Essentials BE Layer - Functions and Events

‘IF’ Instruction
If (Condition)
Instruction A
Else
Instruction B

?
What will be the value of Is_senior if the client’s age
is 60?

• If the client’s age is greater than 60, then Is_senior=true.


Otherwise, Is_senior=false
Designer Automation Essentials BE Layer - Functions and Events

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials BE Layer - Functions and Events

DO IT YOURSELF
‘IF’ Instruction

• Modify your ‘IsSenior’ function as follows:


• Add an input parameter of type ‘Number’ called ‘Age_Input’
• Assign this parameter to the ‘Age’ local variable instead of
the static value assigned earlier
• Add instructions and comments that Return the value TRUE
if Age is 60 or above, and Return FALSE otherwise
Designer Automation Essentials BE Layer - Functions and Events

‘For Each’ Instruction


For Each (Item in a set)
The Instruction in the loop
Do this instruction
will be performed for each
item in the set

?
Example
Item
▪ What is the instruction in the
“For Each” Loop here?
▪ How many times will the loop run?
▪ What does this function do?

• The instruction to do in this “for each” loop is to increment X by


1.
• The “for each” loop will run as many times as the number of
items in List1.
• Practically speaking, the function will return the number
elements in List1: Let’s say List1 has two items. When X is
created, its default value is 0. Then, for each item on List1
(twice) we increment X by 1 so at the end of the loop X=2. Then
X is returned.
Designer Automation Essentials BE Layer - Functions and Events

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials BE Layer - Functions and Events

DO IT YOURSELF
‘For Each’ Instruction

• Create two Lists of Text, called ‘List of Phone


Numbers’ and ‘New List of Phone Numbers’
respectively
• Under the ‘Customer’ Type, create a Function and call
it ‘Add Phone Prefixes’
• Add the relevant Instructions to add ‘09’ to the
beginning of each item in the ‘List of Phone Numbers’
and add this new value to the ‘New List of Phone
Numbers’
Designer Automation Essentials BE Layer - Functions and Events

‘FOR’ Instruction

• FOR (Iterator starting value, condition to continue iterating, iterator step)


• Do this instruction The FOR loop instruction
performs the instruction a set
number of times. It uses a
variable named Iterator to keep
track of repetitions
?
If List1 holds 2 elements, how many clients will be added to List2?

• Example explanation: Let’s say List1 has 2 items.


• First iteration:
• Iterator starts with value 0.
• The condition is TRUE (because 0<2).
A client is added to List2.
• Iterator is incremented to 1.
• Second iteration:
• The condition is TRUE (since 1<2).
A client is added to List2.
• Iterator is incremented to 2.
• Third iteration:
• The condition is TRUE (because 2 is indeed not larger than 2).
A client is added to List2.
Iterator is incremented to 3.
• Fourth iteration:
• The condition is FALSE (because 3 is larger than 2).
• The loop ends.
• List2 contains 3 clients.
Designer Automation Essentials BE Layer - Functions and Events

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials BE Layer - Functions and Events

DO IT YOURSELF
‘FOR’ Instruction

• Create a List of Text, and call it ‘List of Phone Numbers


to Call’
• Under the ‘Customer’ Type, create a Function and call
it ‘Choose Numbers’
• Add the relevant Instructions to add every third phone
number in the ‘Phone Numbers’ list to the ‘Numbers to
Call’ list
Designer Automation Essentials BE Layer - Functions and Events

Instructions Summary

Instruction Description When to use?

Function Invocation Call another Function ▪ To act on a Screen Element


▪ To invoke a Library Function
▪ To call another BE Function
Assignment Assign a value to a BE or a local variable ▪ Assign value to local variables / Screen
Elements / Business Entities

If Apply an action according to a ▪ When the action to be done is


condition’s evaluation dependant on a condition

For Loop that iterates a set number of times, ▪ To find an item on a list
each time keeping track with an iterator

• The “When to use” column describes the most common


examples for using this instruction.
Designer Automation Essentials BE Layer - Functions and Events

Instructions Summary

Instruction Description When to use?

For Each Loop that iterates on all the items of a ▪ To apply the same action for all items in
set a set

Return End the Function from running and ▪ Perform a calculation / query and return
return a certain value the result

Local Variable Variable that exists only within the ▪ As needed


Function

Comment Add a description to instructions ▪ As needed

• The “When to use” column describes the most common


examples for using this Instruction.
Designer Automation Essentials BE Layer - Functions and Events

Other Action Editor Commands

Delete selected Cut / Copy / Paste Re-order Copy Instructions


Instructions within a Project Instructions between Projects

Disable/Enable Instructions to
control whether they are executed
at runtime
Designer Automation Essentials BE Layer - Functions and Events

Events
Designer Automation Essentials BE Layer - Functions and Events

What are Events


• Events are raised when a change occurs. The change can be to a SE
such as a button being clicked or to a BE such as a property’s value
being changed.

Add Button Clicked

BE Event
BE Event BE Events may have Parameters, whose values are
The Event is broadcasted Event Parameters
populated in real time when the event occurs
and any interested object
can react to it

Create
Create aa Create
Create Create Create an
Create Events
Type Properties
Properties Functions Instance

• Events are created in the Type tab, but defined in the Instance
tab. This means that different Instances can have different Event
parameters.
• Parameters that were assigned a value, will be used further
along the Solution in upper layers.
Designer Automation Essentials BE Layer - Functions and Events

How to Create Events

• At the Type level:


Create the Event
Contact
• Add Event Parameters (if any) First Last
Phone Email
Name Name
New Contact Added

2 Click New
Event

1 Click the Type to


add an Event to
Designer Automation Essentials BE Layer - Functions and Events

How to Create Events

• At the Instance level:


• Define when the event is raised Contact on Call
This is in fact, what connects the
screen element’s values to the BE
New Contact Added

1 The BE Event is raised


when an SE Event is raised
Designer Automation Essentials BE Layer - Functions and Events

Built-in Events Examples

Built-in Built-in Built-in


Library Objects Events SE Events BE Events

• RT Client Shutting down • Created / Destroyed • Value Modified


• Solution Downloaded • Gained / Lost Focus
• Launch Bar clicked • Minimized / Maximized
• Multi Instance Created • Clicked

Event Location
Library Objects  Screen Elements  Business Entities 
Administration  Button (specific SE)  BE 
Solution Downloaded Clicked Value Modified

• Business Entities – drill-down to the BE Instance, then click the


Event you wish to raise.
• Library objects – A built-in Events library, to identify system
Events, such as recognizing when RT Client is shutting down and
when the Solution is downloaded.
• Screen Elements –drill-down to the SEs captured, then click the
Event you wish to raise.
Designer Automation Essentials BE Layer - Functions and Events

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials BE Layer - Functions and Events

DO IT YOURSELF
Events

• Capture the ‘Add’ button of the New Account Window in the


Training CRM Application
• Add an Event to the ‘New Account’ Type called ‘Account
Added’
• Define the Event to be raised when the captured ‘Add’ button
is clicked
Designer Automation Essentials BE Layer - Functions and Events

How to Define Life Cycle According to an Event


• Events can be used to define when a new BE will be constructed and
destructed.
Every time the “Add” button Screen Element in the
New Contact window is clicked, a new instance of
New Contact will be constructed

Instance of
New Contact
First Name
Steve
Last Name
Jobs
Account
Apple

• Life cycle definition will be available only for composite BEs, not
primitive. Define:
• Construct on Project load (from that point on this BE’s value
may change when you assign it due to an Assignment anywhere
in the Solution) OR
• Define when to construct and destruct when a certain Event
occurs
• Use the Life Cycle definition carefully, construct BEs and
destruct them only when needed.
• Constructing unnecessary BEs can result in using up memory
space
• Destructing unnecessary BEs can result in data loss
Designer Automation Essentials BE Layer - Functions and Events

Representing Screen Elements in Business Entities

• All Screen Element Functions that will be used in the Business Solution
must be constructed as BE Functions.

Create a Type for


every application Create an Instance
that appears in the for every Type
Business logic

• In the Types tab - Define Functions’ Parameters, and Return


Type. Create Parameters for Events.
• In the Instance tab - For every Instance define Data flow, Life
Cycle, and Events Parameters values.
Designer Automation Essentials BE Layer - Functions and Events

Summary
• Creating Functions and Events

• Working with data structures

• Our Solution is built from Projects, each represent a layer. In order for
them to communicate Project References are added

• Assign BE Properties to hold a pointer to the SE as a data source in real


time
• Functions perform an action, and can return a value. They are built from
a list of Instructions:
• Function Invocation invokes a call to another Function
• Local Variable allows you to use a local variable within the Function
• Assignment allows you to assign a value
• Return instruction stops running the Function. It may return a value
• If, For and For Each allow you to logically handle conditional and loop
operations on BEs and SEs

• SE Events are raised when a change in the Screen Element occurs. You
can create a BE Event to capture certain data from the screen when the
Event occurs
Designer Automation Essentials BE Layer - Functions and Events
Designer Automation Essentials Business Logic Layer

BUSINESS LOGIC LAYER


Designer Automation Essentials Business Logic Layer

Lesson By the end of this lesson you will be able to:


Objectives • Create Rules and nested Rules

• Create Event Handlers


Designer Automation Essentials Business Logic Layer

Business Logic Layer

• The Business Logic Layer enables you to define the logical entities that
determine the behavior of RT Client according to your business
requirements.

Business Logic

Event Handlers
Rules define actions
define the actions to
to take as a result of
be taken as a result
defined conditions Event Handlers
Rules of Events that occur

Decision Support
Business Entities
Physical Objects
Designer Automation Essentials Business Logic Layer

Project References Connect Layers

• Our Solution is built from Projects, each representing a Layer


• Instead of creating one big complex Project, Projects reference one
another to create a structured and organized logic

Business Logic
Decision Support
Presentation
Business Entities
Physical Objects

• In order for Project A to reference Project B, Project B must have


public elements.
• Always add the lower layer reference to the upper layer Project.
Designer Automation Essentials Business Logic Layer

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Business Logic Layer

DO IT YOURSELF
Project References

• Create a Business Entities Layer Project


• Create a Business Logic Layer Project
• Reference the Business Entities Layer Project you created
Designer Automation Essentials Business Logic Layer

What are Rules?

• A Business Rule is comprised from a Condition and Actions.


The Condition is evaluated
Logical Condition
whenever the VIP Property of
a Client is modified
? New Client is VIP

VIP = VIP =
True False
TIME

When the Condition is fulfilled, the ON OFF


Rule is turned on
When the Condition is no longer
fulfilled, the Rule is turned off

Action to trigger
when a rule is ! Action ! Action*
turned on
*Optional

• When Jeff becomes a VIP client, the VIP property’s value is


modified, and so the RT Client will check if the condition is
fulfilled. If so, It will trigger the green Action. When Jeff is no
longer VIP, the rule will not be fulfilled anymore, and the red
action, if defined, will be triggered.
Designer Automation Essentials Business Logic Layer

How to Add a Condition

• A Condition is a logical expression, built from: ?


Item Operator Value

• For example:
Client’s Age Is greater than 60 AND
For more than one
Condition, AND /
Account’s ‘Is OR OR operators will
equals True
closed’ be added
Product’s
contains ‘Special’
Name

• When you add a second (or higher) Condition, Designer will


automatically add the and operator. By clicking it you can switch
it to or.
Designer Automation Essentials Business Logic Layer

Instruction Types

• An Action is a set of Instructions, executed top-down. !


• Function Invocation – Call another Function
• Drill down to the Function you want to invoke from the menu:
BE Library Objects
User-Defined Functions
Functions Functions

Add to List Copy text to Clipboard

Duplicate Get Active Process

• Business Entities – drill-down to the BE Instance, then Functions


you can invoke on that Instance. It can be either a Function you
created or a built-in Function like sorting a list.
• Library objects – A built-in Functions library, much like Excel.
Drill-down menu will display the group Functions (Math
Functions / Date and time Functions etc.), and then Functions
you can invoke in this group (Sum, Current date etc).
Designer Automation Essentials Business Logic Layer

How to Create a Rule


1 Go to Business Logic tab 
Rules tab
2
Click on
New Rule

3 Assign Rule a
meaningful 4 Add a
name Condition

5
Define an
Action when
the Rule is
turned On

6
Define an Action when the
Rule is turned Off

• It is important to differentiate between a Rule and an IF


statement:
• This example DOES NOT mean that if the Rome package’s price
is higher, then Rome will be assigned as the selected package.
• It DOES mean that as long as the Barcelona package’s price is
lower than Rome package’s price, Barcelona will be assigned as
the selected package. When this is no longer true, the Rome will
be assigned as the selected package.
Designer Automation Essentials Business Logic Layer

How to Monitor Rules

• The Rules tab presents all properties relevant for a Rule within a single
view.

For every Rule


Rules that their
you can view the
Condition is
Last time it was
TRUE will be
turned on and off
highlighted in
green View the entity that appears
at the Condition and its
value

• The Rules tab in the Monitor window displays the Rules


currently defined in Designer.
• Start and End time - Only the most recent times are shown.
• The Dependencies section (Bottom section in the right pane)
lists the dependencies of the Rule, i.e. those properties on
which the Rule is dependent. Property values can be changed as
needed to monitor the effect on the Project.
Designer Automation Essentials Business Logic Layer

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Business Logic Layer

DO IT YOURSELF
Creating and Defining a Rule

• Create a ‘Customer’ Type and Instance with the following


properties:
• ‘IsSenior’ (Boolean), initialized to FALSE
• ‘Message to Display’ (Text)
• Create a Rule which assigns the message “Customer is not
senior” to ‘Message to Display’ if ‘IsSenior’ is FALSE, and
assigns “Customer is senior” otherwise
• Test your Solution using the Monitor
• Reverse your Rule to assign the message “Customer is
senior” to ‘Message to Display’ if ‘IsSenior’ is TRUE, and
assigns “Customer is not senior” otherwise
• Retest your Solution
Designer Automation Essentials Business Logic Layer

Nested Rules Example


• Rules can be nested under other Rules. A nested Rule’s Condition will
be evaluated only if its parent’s Condition is TRUE
• Use nested Rules to define complex logic.

• An example: What is the premium value for a 25 year old male with 2
previous claims?
Rule 1 Condition
? Gender = Male
Rule 2 Condition
? Age between 20-30
Rule 3 Condition Rule 3 Action
? Previous Claims = 0 ! Assign premium = 30
Rule 4 Condition Rule 4 Action
? Previous Claims > 0 ! Assign premium = 60

• In order to nest a Rule under another Rule in the Designer,


simply drag the “child” Rule to the “Father” Rule
Designer Automation Essentials Business Logic Layer

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Business Logic Layer

DO IT YOURSELF
Nested Rules

• Create the following properties in the ‘Customer’ Type:


• Gender (Text)
• Age (Number)
• Previous Claims (Number)
• Premium (Decimal)
• Create set of nested rules that reflects the example on
the previous slide
• Test your solution with Monitor
Designer Automation Essentials Business Logic Layer

What are Event Handlers?

• An Event Handler is comprised of an external Event that occurs in a


target application, or any internal Event thrown in the Project, and an
Action to perform.
Event Raised
The value of VIP is modified

VIP = VIP = VIP =


False True False
TIME

When a change occurs in the VIP


Action to perform
value, an Event is raised and ON ON when the Event
broadcasted for the Event Handler
Handler is turned
to catch.
on
! Action ! Action

• The difference between a Rule and an Event Handler is the


triggering mechanism – A rule is triggered by a Condition, while
an Event Handler is triggered by an Event. The use of Rules and
Event Handlers depends on the Business Logic scenario and the
simplicity of implementation.
Designer Automation Essentials Business Logic Layer

Rules vs. Event Handlers - Summary

Rules Event Handlers

Structure Condition and action Event and action

Actions’ are triggered 1. Condition is fulfilled


Event is raised
when… 2. Condition is no longer fulfilled

?
Select the appropriate Business Logic element (Rule or Event Handler) for each
of the following scenarios:
• For smoking customers, life insurance premium is 30% higher than the regular rate.
• On their 60th birthday, life insurance premium is increased by 50%.
• Calculate the Customer’s Disability insurance premium (always 1% of the salary) whenever the salary
changes.

• 1st scenario:
• We would use a rule to implement, since customers’ smoking status
can change and the premium should change accordingly. If
someone starts smoking, their premium is increased by 30% but if
they stop smoking, then their premium should be set to the regular
rate (action when the Rule is turned off).

• 2nd scenario:
• Customers only turn 60 once, so an Event Handler would be
appropriate in this case.

• 3rd scenario:
• Since the premium is directly linked to the salary, when the salary
changes so should the premium (the Action calculation is always the
same 1% of something) – classic Event Handler.
Designer Automation Essentials Business Logic Layer

Associating Event Handlers to Events

• There are various groups of Events. Here are a few examples:

BE Library Objects Rule


Events Events Events

Value Modified Client Shutting down Turned off / on

Solution Downloaded Start time Modified

• Drill down the menu to Event group (for example BE events),


then to the entity of which raised the Event, then to the Event
itself.
Designer Automation Essentials Business Logic Layer

How to Create an Event Handler


1
Go to Business Logic tab 
Event Handler tab
2
Click on New Event
Handler

4
3 Select the raised
Assign the Event
Handler a Event from here
meaningful name 5
Insert Instructions to form an
Action when this Event
occurs

• If the Event Selected has parameters, then you will be able to


select its parameters in the Execute section.
Designer Automation Essentials Business Logic Layer

Business Entity Event Parameter: Old Value

• The Old Value parameter enables you to access the old value of
a Business Entity Instance, before it was changed. This
parameter is passed with the ‘Is Modified’ Event of a primitive
Business Entity Instance.
Designer Automation Essentials Business Logic Layer

How to Monitor Event Handlers


• The Event Handlers tab presents all Event Handlers defined in the
Designer within a single view.

Recent time
triggered
Triggered Event Handlers property for this
will be highlighted in green Event Handler,
Read-only

• If an Event is triggered while this tab of the Monitor window is


open, the Event Handler in the Navigation pane flashes green
for five seconds, in order to indicate that this Event is alive.
Designer Automation Essentials Business Logic Layer

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Business Logic Layer

DO IT YOURSELF
Event Handlers

• Create an Event Handler that does the following:


• When the ‘Age’ Property is modified:
• If the Age > Old Value, assign “Older” to ‘Message to Display’
• If the Age < Old Value, assign “Younger” to ‘Message to Display’
Designer Automation Essentials Business Logic Layer

Summary
• Creating Rules and nested Rules

• Creating Event Handlers

• A Business Rule is comprised from a Condition and Actions. The


Condition is a logical expression, evaluated every time an entity
in it changes value. An Action is a set of Instructions, executed
top-down.

• Rules can be nested under other Rules. A nested Rule’s


Condition will be evaluated only if its parent’s Condition is
TRUE.

• Event Handler specifies the Action to perform when an external


Event occurs in a target application, or any internal Event
thrown in the Project.
Designer Automation Essentials Business Logic Layer
Designer Automation Essentials Physical Objects – Web Services

WEB SERVICES
Designer Automation Essentials Physical Objects – Web Services

Lesson By the end of this lesson you will be able to:


Objectives • Describe the concept of Web Services

• Utilize SOAP services

• Utilize REST services


Designer Automation Essentials Physical Objects – Web Services

Web Services
Designer Automation Essentials Physical Objects – Web Services

What Is Web Services?

Request to Service

[DATA1,DATA2……]

Response

Consumer Internet Different Formats: Web Service


HTML ,XML, JSON..

• Web services is a technology for transmitting data over the


Internet and allowing programmatic access to that data using
standard Internet protocols.
• Web services provide a way to communicate between
applications running on different operating systems, with
different technologies and programming languages.
• Only data is transmitted using Web services technology(web
services do not have GUI).
Designer Automation Essentials Physical Objects – Web Services

What Is Web Services?


Human via Browser Software via Web Services

Request to URL Request to Service

https://www.nice.com GetAllClaimsByNameInJSON/Santa

Response in HTML Response in Data


Consumer Server Consumer JSON Web Service
Nice Website

• Using Web service is similar to browsing- When a person wants


to connect to Nice web site, he is in fact sending a request to
the server just by typing the website address in the URL bar and
the server response is the website(HTML).
• When we are using web services the consumer is not a person
but a software that can also use the URL bar to send a request.
In this example the software is requesting to get all Santa’s
claims in JSON format and the response is five claims, presented
in JSON format(this example is using REST services)
Designer Automation Essentials Physical Objects – Web Services

Web Services – Usage


• Using Public services (free or paid) to consume updated data:

Stock Markets Exchange Rates Currencies Locations Schedules Social Media

• Using third-party systems API for getting data and/or for integration:

Organizational CRM’s API’s Customers Customers


Services Authentication Information

• For example, Company A provides a weather Web service and


Company B uses this Web service to provide weather
information to its customers.
Company C may combine Company A’s Web service with its own
Locations Web services and offer it as a Web service to other
companies.
Designer Automation Essentials Physical Objects – Web Services

Web Services – Common Languages

REST SOAP
REpresentational State Transfer Simple Object Access Protocol

Data sent via URL Messages are sent and received in XML
Data received in JSON

WSDL document describing the


Web services

• SOAP and REST are two answers to the same question: how to
access Web services
• SOAP relies exclusively on XML to provide messaging services
• REST rely almost exclusively on obtaining the needed
information using the URL approach.
• Both types of services (SOAP and REST ) can be used in a
solution.
• A WSDL(Web Services Definition Language) is an XML document
that describes a Web service. The content of the WSDL
document defines the contract of the web service: what
methods it has, how you must call them, what parameters it
expects etc. you can use WSDL for SOAP but not for REST.
Designer Automation Essentials Physical Objects – Web Services

SOAP
Designer Automation Essentials Physical Objects – Web Services

Consuming Web Services In The Designer


• The Real Time Designer enables you to import a web reference of a WSDL
document.

• The file can be:


• Local – specify location on server
• On a reachable location on the net – specify URL of WSDL

When the reference is added to a project, a new Service Designer will parse the WSDL file:
is automatically created at the PO layer Methods  to Functions
Objects  to Business Entities

WSDL Web Service BE Library Types

From this point, the Web service’s Type is available in the Project

• After adding the WSDL reference, the designer will parse the
XML and the relevant service functions will be available to the
solution engineer in an upper layer.
• Service objects are used to enable client integration with
services outside the Real-Time Designer system.
• Different Services will expose different functionalities, make
sure you use them in the correct way
• The functions are available in 2 forms: Synchronous and
Asynchronous (depends on the service functionality)
Designer Automation Essentials Physical Objects – Web Services

How To Add SOAP Web Service Reference

3 Click New Web Reference for


adding a WSDL (or Web
1 Go to the Project Reference From DLL for
tab adding a DLL directly)

5 Click Go

4 In the dialog box, type


the URL or click on >
to specify location of The service’s name,
WSDL description and
operations will appear

6 Click Add Web


Reference

2 Click the Web


services branch

• Selecting Seal Business Types prohibits being able to set web-service-originating composite business
entity types as a base type of another business entity type or as the type of a business entity instance.
• Some web services require composite parameters, rather than a list of textual parameters. In such cases,
composite business entity types are created for the WSDL import process.
• When you select this checkbox, the web service originating composite business entity types are only
available via local variable declaration within a rule/event handler/workflow step action or a business
entity type function.
• Selecting Proxy in RT Server connects all RT Clients to the web service via the RT Server. When this
checkbox is selected, the RT Server creates a proxy that is used by all RT Clients to connect to the
external web service.
• Select Ignore SOAP Header if you do not want a generated SOAP header in the request sent to the
service.
• By default, all operations are selected.
• Clear the checkboxes of the operation you do not want selected, or click the Clear All button to clear the
checkboxes for all the operations. You can click the Select All button to reselect all the operations.
• Clicking the Add Web Reference button automatically performs the following operations transparently:
• Generates a DLL that serves as the wrapper for accessing the web service.
• Makes a reference to this DLL.
• Generates a new service object in Services tab that is assigned to the specific type of service for which
the DLL was created, in order to provide access to that service.
• This means that you do not need to complete the references and then manually create the new service,
as it is all done automatically for you.
Designer Automation Essentials Physical Objects – Web Services

Web Services Library

• After adding a Web Reference, the Designer will create a DLL file
containing the types and methods provided by the Web service.

Web Reference Info Web Reference Functionality

• The Web reference Info can be found in the Project


TabReferencesWeb References
• The Web reference Functionality can be found in the Project
TabReferencesLibrary References
Designer Automation Essentials Physical Objects – Web Services

Web Services Library Types

• If the Web service that you added is using objects, you will find them in
the Business Entities TabLibrary Types
Designer Automation Essentials Physical Objects – Web Services

Monitoring Web Services

• The Services tab in the Monitor window enables you to monitor and test
Web services defined in a solution:

• Succeeded: Indicates whether or not the latest run of this


service succeeded (True) or failed (False) when last called by the
project.
• Timeout: The time that Real-Time Designer waits for the web
service to complete.
• Url: The URL of the web service. By default, the URL of the
imported web service definition language (WSDL) is specified.
• Use Integrated Windows Auth: Indicates whether or not to
send Windows credentials in the web service consumption.
Designer Automation Essentials Physical Objects – Web Services

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Physical Objects – Web Services

DO IT YOURSELF
SOAP Services

• In RTD1 machine open Web Browser go to following URL:


http://172.21.102.212:80/soap/Converter.asmx?wsdl
• Check Service is reachable and WSDL received.
• Add new Web Reference to the same URL.
• In the Physical Object tab rename the service “TempConvert”
• Create a BE with 2 properties:
• TempCelsius
• TempFahr
• Create logic to assign the “Fahrenheit To Celsius” Function to
TempCelsius of the “TempConvert” Web Service, whenever the
“TempFahr” property is modified.
• Perform similar actions for the “TempFahr” property.
• Open the Monitor tool and enter different temperature values in each
of the properties to see how the data changes in the other property.
Designer Automation Essentials Physical Objects – Web Services

REST
Designer Automation Essentials Physical Objects – Web Services

REST Web Services

• REST services parameters are usually transferred as strings via URL

URL Separator Key-Value Arguments

http://localhost:8090/tmpRest/v1/participant ? isHost=false&name=partner1&isActive=true

• Response is usually plain text in JSON format

• If Additional parsing is required, you may use Regular Expressions library


Designer Automation Essentials Physical Objects – Web Services

Invoking Web Services Using HTTP Request – REST Example

• To execute a web request, we usually use 3 main properties of the


“HTTP Request” type.

Method to execute:
Get
Post
Put etc’

URL of Web Service :


Concatenate the Parameters

The response will be received in this property:


Read and Parse –after execution:

*Despite the name, the response can also be


in JSON format

• REST can use four different methods (GET, POST, PUT, and
DELETE) to perform tasks.
• If you need to use parameters in your request, you need to
concatenate them in the URL property
Designer Automation Essentials Physical Objects – Web Services

How to Invoke Web Services Using HTTP Request


1 Create an instance of HTTP Request and
set the URL and Request Method(you can
set additional properties if required)

3 Insert a Function Invocation


and drill down to the Post
2 Create a function
Request functions
Designer Automation Essentials Physical Objects – Web Services

HTTP Request Functions And Monitoring

• All functions can be executed and tested through the Monitor


Adding or Removing Header information

Executes the request and waits for results


Returns True or False

Execute the request asynchronously,


for time consuming requests

You can use the HTTP Request event to verify if the


request succeeded:

REST Services - Online Lesson


For more details on invoking REST Services, please refer to the
Online Lesson Available in Nice University

• Header is an optional element that can contain some extra


information to be passed to the web service.
• In some cases, you may need to pass some additional
information in the Header element of the HTTP request.
• For example: pass authentication information to the web
service or pass information on how the body contents should be
processed by the web service
Designer Automation Essentials Physical Objects – Web Services

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Physical Objects – Web Services

DO IT YOURSELF
REST Services
• In RTD1 machine open Web Browser go to following URL:
• http://172.21.102.212:80/rest/getclaims/bylastName?lastName=
Check if Service is reachable and results received.
• Create a BE RequestProvider of type HTTP Request:
• Add new property and name it BaseURL
• Assign the Web Service URL to BaseURL property
• Add new property: searchFor
• Provide Initial value for Request Method: GET
• Create a function: GetRequestURL-it will return concatenation:
BaseURL+searchFor
• Create EH(on searchFor modified):
• Assign the GetRequestURL return value to URL of RequestProvider
• Execute the Request
• Run Project -> Open Monitor -> check your Logic
Designer Automation Essentials Physical Objects – Web Services

Summary
• The concept of Web Services

• Utilizing SOAP services

• Utilizing REST services

• You can import a working Web Services Description Language (WSDL)


file into the Designer, to be used in the project for accessing and
retrieving information in a non-GUI way
• Available services :
• SOAP
• 1) TempConversion service:
• http://172.21.102.212:80/soap/Converter.asmx?wsdl

• 2) HistoryCheckService
• http://172.21.102.212:80/soap/HistoryCheck.asmx?wsdl

• REST
• http://172.21.102.212/rest/getclaims/bylastName?lastName=John
Designer Automation Essentials Physical Objects – Web Services
Designer Automation Essentials Presentation Layer

PRESENTATION LAYER
Designer Automation Essentials Presentation Layer

Lesson By the end of this lesson you will be able to:


Objectives • Launch documents in context of an application

• Describe the use of Callouts

• Create, design and preview a Callout

• Add content to a Callout


Designer Automation Essentials Presentation Layer

Presentation Layer
Defines the items that are displayed on the agent’s screen.

Business Logic
Decision Support
Presentation

Callouts Launch in Context

Business Entities
Physical Objects

• Presentation layer is the first operative layer in your solution.


• It allows to define elements that are displayed on the agent’s
screen. In upper layers you will define what triggers the
Presentation to display.
For example:
• When a certain event in the system occurs.
• If a certain condition is TRUE.
Designer Automation Essentials Presentation Layer

LIVE DEMO
Project References

• Open a new project for your Business Entities Layer


• Open a new project for your Presentation Layer and
reference the BE Layer project
Designer Automation Essentials Presentation Layer

Launch In Context
(LIC)
Designer Automation Essentials Presentation Layer

Launch In Context
• Launch in Context enables to display a document in the context
of its standard application

CRM application
.pdf file in .doc file in
Adobe Reader Microsoft WORD
Designer Automation Essentials Presentation Layer

How to Create LIC Items


2
Click New
Launch In 1 4
Context Go to Presentation  Select Document
Item Launch In Context tab context Type (Web/pdf
etc.) and source

3
Give your Item a 5
meaningful name Edit Display options

6
Select Presentation
settings - location on screen
and size to be displayed

Step 5 notes:
• Open in options allows to define the presentation of an LIC item, if the
same item is opened more than once:
• Same window - Open the LIC in the same window
• Open in New window - Open the LIC in a new window
• Open in Group window - Open a few LIC items in the same
window if they belong to the same group
• Prompt before overriding window - relevant if the Same window option
or Group window were selected. Checking this box will force an Agent to
confirm the display of this new information in the same window before
overriding the window’s content.
• Group Name - enabled only if the Group window option is selected. You
have options to add\delete\select an existing group.
Designer Automation Essentials Presentation Layer

How to Create LIC Items

2
1 Click here to
Mark a part of the path insert a BE

3
Drill-Down the
menu to the BE

• An LIC item’s path (or part of one) can hold a dynamic value so
that the file launched can change in real time.
• This can be defined by selecting the path (or part of it), clicking
the button and drilling down to a Business Entity, so the
Business Entity’s value will be taken according to the logic
implemented in the solution.
Designer Automation Essentials Presentation Layer

Launching

• There are two functions associated with LIC items: Show and
Close.
• These functions can should be used to open and close an LIC
item according to Business Logic.
Designer Automation Essentials Presentation Layer

LIVE DEMO
Creating Launch-In-Context Items

Create a new LIC item for www.nice.com


to be opened as follows:
• Open in a New Window
• In the Top-Right of the screen
• Restored with Width: 500 and Height: 400
• Show WITHOUT Toolbars and Menus
Designer Automation Essentials Presentation Layer

Callouts
Designer Automation Essentials Presentation Layer

Use of Callouts
• Best offer, reminder, survey, data completion, item description

• A Callout is a popup window that is displayed on an Agent’s


screen under certain conditions.
• A Callout can contain predefined text, images and dynamic data.
• RT Designer enables you to design the look, behavior and
content of each Callout.
Designer Automation Essentials Presentation Layer

How to Design Callouts – Step by Step


• RT Designer provides a variety of tools to make the graphical and
content design of a Callout simple

• We will follow this process flow:


Create a Design and Add Preview
Assign Data
new Callout Location Content the Callout

• The Callout should deliver a message in a short and targeted manner.


Keep it simple!

There are a few things to be aware when creating a Callout:


• Hiding essential fields / information by accident.
• Preventing the agent perform the task by covering buttons with
a callout that would prevent the agent from clicking on it.
• Considering different habits / settings: full screen, resolution,
Citrix, etc.
Designer Automation Essentials Presentation Layer

How to Create a Blank Callout


2
In the Callout tab,
click New Callout
1
Go to Presentation 
Callout tab

3
Give the Callout a
meaningful name

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout
Designer Automation Essentials Presentation Layer

How to Design and Locate a Callout


1
Design the 4
Callout’s Click here to
Background define location
color from the
Style Editor
2
Click the
Callout’s Frame
and then click
Properties

3
In the Properties Window that pops
up, change Skin name (Frame
Color) and Title text (headline will
appear on the Frame)

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout

Different properties will be displayed for every element selected:


body, frame, HTML object etc.
Editing tools:
• At Callout Properties define bgcolor = background color, can be
found under Layout list
• At the Callout’s frame Properties define Skin name = frame
color, can be found under Appearance list
Designer Automation Essentials Presentation Layer

Callouts Design – Location on Screen


• Location defines the Callout’s position on the screen

Specify location relative


to a Screen Element
Capture location
on screen
Specify location
on the screen, for
example: Top Left

The dot represents the


callout relative to screen

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout

Callout location should be in line with the Callout’s message:


• If the message points to correcting a certain field, you should
locate it next to the field (Screen Element).
• Locate all messages following a process or regulation in the
same location, so the Agent will instinctively know where to go
for action.
Designer Automation Essentials Presentation Layer

LIVE DEMO
Creating a Callout

• Create a New Callout, and name it “New Account”


• Define the “New Account” callout as follows:
• Skin Name: Ocean Skin
• Title Text: “Add New Account”
• Location: Fixed: Center – Right
Designer Automation Essentials Presentation Layer

Add Content to a
Callout
Designer Automation Essentials Presentation Layer

Callouts Content
• The content of a Callout should be short Text
and clear so that it can be read and
understood quickly by an Agent. Image
Link

• The following objects can be entered


in a Callout:
Dynamic
Control
Text

Table

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout

Link – RT Designer enables implementer to create various kinds of


links that can be displayed by clicking on text, an image or a
button in a Callout:
• Link to another Callout
• Link to a Launch-In-Context item
• Link to invoke a Function
Control – various HTML GUI elements that can be inserted into a
Callout, such as a button, text field and dropdown menu.
Note: Adding an object to a Callout’s body is done through the
right-click menu, or Tool menu in Presentation layer.
Designer Automation Essentials Presentation Layer

How to Add Content to the Callout


Add Add
Tables Links

Add HTML Controls


and Image

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout

All Controls can be designed using the Style Editor from the
Editing Menu.
When adding links, you will be asked to select the object you
want the control to be linked to.
For example, adding a link to another callout will require you to
drill down to the other Callout.
Designer Automation Essentials Presentation Layer

HTML Controls
• RT Designer enables you to create various GUI objects that
can be inserted into a Callout

Check box Input Text area Radio Button Combo Box


Button

Date
IFrame
Picker

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout

• GUI Controls are simply HTML Objects.


• These objects are built-in HTML elements.
• It is possible to view and modify an object’s HTML source from
the Source tab.
Designer Automation Essentials Presentation Layer

Callout Content – HTML Controls

Add HTML Controls

Edit Properties

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout
Designer Automation Essentials Presentation Layer

Callout Content – Links

Add
Links

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout

• RT Designer enables you to create various kinds of links that can


be displayed by clicking on text, an image or a button in a
Callout such as a Link to another Callout, to a Launch-In-Context
item or a Link to invoke a Function.
• When you add links, you will be asked to select the object you
want the control to be linked to.
• For example, adding a link to another callout will require you to
drill down to the Callout you wish to link to.
Designer Automation Essentials Presentation Layer

Links Menu
• Various Links are available to be added to a Callout:

Link to a BE
(Dynamic Text)
Link to another Callout

Link to an Action
Link to a LIC element

Link to an Image

• When you add links, you will be asked to select the object you
want this control to be linked to.
For example, adding a link to another callout will require you to
drill down to the other Callout.
Designer Automation Essentials Presentation Layer

Link to a BE
• Dynamic Text control enables you to insert text in a Callout that
reflects the value of a BE’s Property
• That value may change to reflect the new value of that Property
each time it changes

• In the Callout’s design assign dynamic text to BE properties.


• In real time the Callout will reflect that property’s value.
Designer Automation Essentials Presentation Layer

Link to an Action
• Functions perform an action, and can return a value

Library Objects Callout


SE Functions BE Functions LIC Functions
Functions Functions
Get Text Add Item to List Add Numbers Show / Close Show / Close
Click User created Get Active Set Body
functions Process

• Business Entities Functions – Can be either a function the


Integration Engineer created or a built-in function like sorting a
list.
• Library Objects Functions – A built-in functions library, much
like Excel. A drill-down menu will display the group functions
(Math functions / Date and time functions etc.), and then
displays the functions you can use in this group (Sum, Current
date etc.).
Designer Automation Essentials Presentation Layer

How to Link an Action to a Control

2
Click the action
link at Links &
Data Menu
1
Click a Control or
anywhere in the
Callout’s body
3
Give the Action Link
Give the Action Link a
a name and insert an
name and insert an action
action into the Action
into the Action Editor.
Editor.

4
Click OK

• To add an Action as a hyperlink, perform steps 2 and 3.


The Action’s name will be added as a hyperlink to the Callout.
Designer Automation Essentials Presentation Layer

Preview the
Callout
Designer Automation Essentials Presentation Layer

Callout Content - Text

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout

Typically, when designing a callout, the callout is previewed


during the design process to view how it will appear at run time
There are two ways to Preview a Callout:
1. Preview displays the callout AS IS (with no values assigned to
objects), mostly used for checking appearance and location on
the screen.
2. Preview with… enables you to preview a callout with dynamic
data
Designer Automation Essentials Presentation Layer

Quick Callouts- Callouts On Demand


• The RT Client provides Agents with a window of options from
which they can quickly access the most frequently used functions
or information that they require

• A Quick Callout window is displayed when an Agent clicks the Quick


button in the Agent’s Launch Bar

• Only one Quick Callout window can be displayed on an Agent’s


screen, so create a Callout with all the Functions and
information the Agent will need to reference quickly, and add
that Callout to the Quick Menu.
Designer Automation Essentials Presentation Layer

How to add a Quick Callout


• Add a Callout to the Quick Menu

1 3
Go to Project tab Select Callout from here

2
Click on the Quick branch

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout

• The Quick Callout is selected from the project tab, and only one
callout can be selected as the Quick Callout. So, to create a
Quick Callout, in the Project tab click on the Quick branch, and
then select a specific callout you have created.
• While only one callout can be selected as the Quick Callout in
the Project tab, you can define Business Logic that changes the
callout to be shown as a Quick Callout window, using a business
rule, workflow or event handler.
• After the definitions are completed, run the RT Client to view it
from the Quick or Help buttons in the Launch bar.
• Assignments will be displayed with real time values.
Designer Automation Essentials Presentation Layer

LIVE DEMO
Adding Content to a Callout

• Add the fields from the new account window to the


callout:

• Set this callout to be a Quick Callout


Designer Automation Essentials Presentation Layer

Assign Data to a
Callout
Designer Automation Essentials Presentation Layer

How to Assign a Control to a BE


2
Click on Assignment
icon in Links menu

1 3
Click the control you
want to assign to In the
Assignment
window assign
a BE/parameter as
a data source

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout

• FLAG's value will be determined according to the BE's value in


real time.
Designer Automation Essentials Presentation Layer

How to Assign a Control to a Parameter


1 4
In the Callout’s body click Click on Assignment
Edit Callout Parameters icon in Links menu

3
2 Click the control you
In the popup add a new
want to assign to
parameter from here

5
Assign parameter
as data source

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout

• The element that will trigger the Callout to present, will have to
deliver a value for the FLAG.
Designer Automation Essentials Presentation Layer

How to Use Radio Buttons


• Radio Buttons have to be a part of a collection, since they are
interdependent
• If we assign one of the Radio Buttons to a BE, its value will be
assigned to the BE and vice versa

Instance
Retention Reason = Other

Collection When a Button is selected,


the BE will get its Value

• The Collection is defined in the Radio Buttons’ properties as


Name.
• When several Radio Buttons are given the same name, they are
in a collection.
Designer Automation Essentials Presentation Layer

How to Assign a Table to a BE


1 3
In the Callout’s body Click on Assignment
click Insert Table icon in Links menu

2
In the popup window
4
Select a BE as
define Rows & Columns
Data Source

5
Delete columns
you don’t need

Create a Design and Add Preview


Assign Data
new Callout Location Content the Callout

• In order to display a table in the Callout that contains


information from a BE, all you have to do is create the table as
described in this slide.
• There is no need to add the columns’ names in the callout itself,
RT Designer arranges the table so that the properties’ names
are automatically displayed as column names.
Designer Automation Essentials Presentation Layer

LIVE DEMO
Assigning Data to a Callout

• In your BE Layer, create the required Business Entities


to assign to the Controls in the callout

• Assign your Business Entities to the controls in the


“New Account” Callout

• Test you solution


Designer Automation Essentials Presentation Layer

Summary
• Launching documents in context of an application

• Describing the use of Callouts

• Creating, designing and previewing a Callout

• Adding content to a Callout

• Presentation Layer defines the items that are displayed on an


agent’s/supervisor’s screen

• Launch in Context enables you to display a document in the context of


its standard application

• A Callout is a popup window that is displayed on an Agent’s screen


under certain conditions

• A Callout can contain predefined text, HTML controls, images and


dynamic data

• After creating a Callout, define its location and design, add Controls and
links and preview your Callout
Designer Automation Essentials Presentation Layer
Designer Automation Essentials Database

PHYSICAL OBJECTS
LAYER:
DATABASES
Designer Automation Essentials Database

Lesson By the end of this lesson you will be able to:


Objectives • Add a Database connection

• Create Database elements

• Stream data from Database elements to Business Entities


and vice versa
Designer Automation Essentials Database

Physical Objects Layer


• This is the first layer on which all other layers are based.
It represents real physical entities in the environment in which the Real-
Time solution will operate.
Business Logic
Decision Support
Presentation
Business Entities
Physical Objects Each Physical Object is a
connection to a source of
information

Screen elements DB elements Web Services

• DB Elements and Web Services are part of the Physical Objects


Layer.
Designer Automation Essentials Database

DB Connections Layers Module

• DB connections are part of the Physical Objects layer


• They are used in order to allow data flow from the database to data
structures called Business Entities, and vice versa

3
Create Business Entities,
Business Entities connect to DB elements

1
Physical Objects Add the DB
connection

2 DB Server
Define DB
Elements

• When you begin to design a solution, you must get a list of what
data is required from the database, from the business analyst
• Then, you can follow the step-by-step flow described here.
Designer Automation Essentials Database

DB Connections

• Before you can define a database element, you must first create a
connection to the external database

• Local connection Server connection

RT Client DB RT Client
Server
RT Server

RT Client RT Client

RT Client RT Client DB
Server

• Local connection - each Agent has their own direct connection


to the database.
• Server connection - a single connection is made to the
database, which is used by all Agents to obtain data from the
connected database. This type of connection is advantageous
when a large number of Agents need to be connected to the
database at the same time. Because there is only one
connection to the database, the maximum number of network
connections allowed is not exceeded.
Designer Automation Essentials Database

How to Add a Local DB Connection


2
Click Add New Connection 
Add Local Connection

5 1
Click on Test to validate Go to Physical Objects
connection to DB  Database tab

4
Define the connection’s
provider, location and log
3 on parameters
Give connection a
meaningful name

• Supported providers
• Microsoft Access
• Microsoft SQL
• ODBC
• OleDB
• Oracle
• Provider Log on parameters are standard connection
parameters to each database and differ for each database type.
This slide displays an example for Microsoft Access parameters.
• The Test step validates connection to the database. If no
connection was established between RT Designer and the
database, check for errors that appear in the Messages pane.
Designer Automation Essentials Database

How to Add a Server DB Connection


2 Click Add New Connection 
Add Server Connection

5 1
Click on Test to validate Go to Physical Objects
connection to DB  Database tab

4 Select the Database


Connection Mapping
3
Give connection a entry
meaningful name

• DB Connection map – Defined by the System Administrator, to


assign a correct DB Server URL for each environment –
development, test and production.
Designer Automation Essentials Database

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Database

DO IT YOURSELF
Adding a DB Connection

• Add a new local DB Connection called ‘My DB’


• Define the Database Provider to be Microsoft Access
• Enter the path of the MS Access ‘Database’ file
provided
• Leave the default Log On parameters
• Test the connection to validate it
Designer Automation Essentials Database

DB Connector Elements

• Two options are available for creating database connector elements:


Commands and Tables
Commands perform a simple data Tables perform a simple data
query, executing query, which reads data from
Get-Schema-Operation requests to the DB into a table in the
the DB Server Designer

DB
Server

Update
Select
Delete
Insert

• DB elements will be used in upper layers. Therefore, you should


create all commands that involve connection to the database,
and all tables you will need information from
Designer Automation Essentials Database

How to Load a Table from the DB

1. A Table DB Element is created at the Physical Objects Layer


2. A BE is created at the Business Entities Layer, in order to hold the
Table’s data
3. A Load Function is added to the BE in order to activate the DB
Element

Create
Create aa Create
Create aa Load
Load the BE
BE with
with
DB Element
DB Element BE the data
the data

• Functions are defined at the Type tab, but operate on the Type’s
Instances
• Built-in Function on DB tables:
• Update Function updates a table in the DB
• Built-in Functions on DB commands:
• Execute Non Query Function executes a DB command
against the DB connection. and returns number of affected
rows. For UPDATE, INSERT, and DELETE statements, the
return value is the number of rows affected by the
command. For all other types of statements, the return
value is -1
• Execute Scalar Function executes a DB command against
the DB connection. It returns the first column of first row
in the result set
Designer Automation Essentials Database

How to Create a DB Table Element


2 Click Add Table
4
Click Test to validate

3 Form query in Query


editor

1 Select a
connection to add
a table to

5
The Test validation creates
the table, you can view in
Create
Create aa Create a Load the BE with the Query Results
DB Element
DB Element BE the data

• Tables are only enabled in a Local DB connection.


• Defining a Table in RT Designer enables you to define a SELECT
SQL command, which reads information from a database into a
table in RT Designer.
• The following command enables you to access all data in the
table: SELECT * FROM
Note: Query Editor may enable you to type another first word
apart from SELECT, but it will not be valid.
Designer Automation Essentials Database

How to Create a DB Table Element

Ctrl-Space brings up a menu of


all available commands…

… and tables in the Database

Create
Create aa Create a Load the BE with
DB Element
DB Element BE the data

• Query editor automatically completes the SQL syntax for you, all you
need to do is click it.
• There are two ways to write a command in the Query Editor:
1. Click Insert at Tools menu to open a list of all the options of a standard
SQL editor to select from.
2. Start typing the command. The RT Designer uses Intellisense, which
automatically completes the command with every letter you type.
• NOTE: The command’s parameters can be of a fixed value, or BE used as
parameters. For example, Select ColumnName FROM tableName
• Ctrl + spacebar opens a list of commands, BEs and tables for you to
select from.
• Adding a dot after a table will display a list of the table’s fields to select
from.
Designer Automation Essentials Database

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Database

DO IT YOURSELF
Creating a DB Table Element

• Add a ‘My Products’ table element to your ‘My DB’


connection
• Enter the query to select all columns from the
‘Products’ table in the MS Access ‘Database’ to be part
of your table element
• Validate the query by testing it
Designer Automation Essentials Database

How to Load Tables into BEs


• A table in the database is actually a list of rows

Row

3
Load List of
Rows with 2
data from the Create an Instance List of
table Rows

Row 1 Create a Type


Field A Field B Field C Field D
Row, with
Row Field A Field B Field C Field D properties that
Row Field A Field B Field C Field D match DB columns
fields

Create a Create
Create aa Load the BE with
DB Element BE the data

• All DB tables that are used in the solution must be loaded to


BEs. In order for the BE to hold the table’s data, it must be
structured as a list of rows. Each row will hold the columns
Types.
• Follow these steps:
• Create a User Type “Row”. Add “Row” properties according to
the table’s columns Types.
• Create an instance “List of Rows”.
Designer Automation Essentials Database

DB Table’s Functions
• There are 2 built-in Functions available for Tables:

Update the values in the


DB Table from a BE

Business Entity

Load a Table from the DB


to a BE

Create a Create a Load


Load the BE
BE with
with
DB Element BE the data
the data

• When loading, there will be a Load for update checkbox. It


should be checked only if you intend to update the table in the
DB during the solution. Until now, you have loaded data from
DB field to property. If Load for update is checked, the reverse
option is enabled: the DB field will be open for update from the
property’s data if it was changed.
Designer Automation Essentials Database

How to Load Data From the Table into the BE

3 During loading you will be


asked to map properties to
fields in the pop-up window.
Then click OK

1 Create a Function

2 Navigate to the Table DB


element and click Load

Create a Create a Load the BE


Load the BEwith
with
DB Element BE the data
the data

• Only DB columns from the same type as the property mapped


will be available. For example, a property from the type Number
cannot be mapped to a Text field in the DB
Designer Automation Essentials Database

How to Load Data From the Table into the BE- Initial Value
1
At the List of Rows
Instance
3
Navigate to the Table DB
element and click Load

2 Check
Initial
Value

4 During loading you will be


asked to map properties to
fields in the pop-up window.
Then click OK

Create a Create a Load the BE


Load the BEwith
with
DB Element BE the data
the data
Designer Automation Essentials Database

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Database

DO IT YOURSELF
Loading a Table into a Business Entity

• Create a Business Entities project


• Create a Type called ‘Product Row’
• Add properties to it that match the names and types of the
DB elements:
• ID
• Product
• Price
• Features
• Create a BE Table by creating a List of Product Rows
• Initialize the List by Loading the ‘My Products’ table
• Map the fields in the ‘My Products’ table entity to the
properties of the Product Row
Designer Automation Essentials Database

How to Load Data from the BE into the Table


1
Invoke a Function

2
Navigate to the Table DB element

3
Select Update

• The table will only be successfully updated by Lists that have


already been mapped to it
Designer Automation Essentials Database

How to Load Data from the BE into the Table

4
Select the relevant List of Rows

• The table will only be successfully updated by Lists that have


already been mapped to it
Designer Automation Essentials Database

How to Monitor Databases and their Connections


• The Database tab presents the state of the database connections and
their Data Tables
• Database Connection:
• Connection String shows the value of the connection string used to establish the
Database connection
• Recent Activation time shows the date and time the database was recently accessed by
the Client
• Data Table:
• The query used to access the table and the data retrieved is displayed

• The table will only be successfully updated by Lists that have


already been mapped to it
Designer Automation Essentials Database

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Database

DO IT YOURSELF
Loading a Business Entity into a Table

• Create a Type (and Instance): ‘DB Commands’:


• Function: Updates the ‘MyProducts’ table with the values in
the ‘List of Product Rows’
Designer Automation Essentials Database

Static DB commands

• DB Commands perform a simple data query, executing


Get-Schema-Operation requests to the DB Server
• Commands’ parameters can use Static or Dynamic values

• SELECT [Customer Profile].Age FROM Customer Profile


SQL command DB Table DB Column
Designer Automation Essentials Database

DB commands
• Common DB Commands
• SELECT [Column(s)] FROM [TABLE]
WHERE COLUMN1 [operator] Value
• INSERT INTO [TABLE]
VALUES (Col1Value, Col2Value, …)
OR
• INSERT INTO [TABLE] (COLUMN3, COLUMN4…)
VALUES (Col3Value, Col4Value, …)
• UPDATE [TABLE]
SET COLUMN2=NewValue, COLUMN3=NewValue…
WHERE COLUMN1 [operator] Value
• DELETE FROM [TABLE]
WHERE COLUMN1 [operator] Value

• Commands examples:
• SELECT command extracts data from the database
• INSERT command inserts data into the database
• UPDATE command updates existing data in the database
• DELETE command deletes data from the database
• Built-in Functions on DB commands:
• Execute Non Query Function executes a DB command against the DB
connection. and returns the number of affected rows. For UPDATE,
INSERT, and DELETE statements, the return value is the number of rows
affected by the command. For all other types of statements, the return
value is -1
• Execute Scalar Function executes a DB command against the DB
connection. It returns the first column of first row in the result set
Designer Automation Essentials Database

How to Add a DB Command Element


2
Click Add Local
Command 5
Click Test to validate

1
Select a DB
connection to add 4 Form query in Query
a command to editor

3 Give it a meaningful
name
6 The Test validation results
appear here

• The values entered into an INSERT command must be in the


same order as the fields in the DB table appear. In this example,
the order is ID, Product, Price, and then Features
Designer Automation Essentials Database

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Database

DO IT YOURSELF
Static DB Commands

• Create a DB Command Element called


‘Insert Product (Static)’
• In the Query Editor of the Command, write a query that
inserts a new entry in the Products table in the DB,
specifying the following values for the following fields:
• Product = ‘Microwave’
• Price = 275
• Validate your Command by Testing it
Designer Automation Essentials Database

How to Run a DB Command

2 In the Function,
insert a Function
1 Invocation
Create a Function
instruction
with a meaningful
3 Navigate to the
name
Command you want
to run

4 Select Execute Non


Query

• The values entered into an INSERT command must be in the


same order as the fields in the DB table appear.
• In this example, the order is ID, Product, Price, and then
Features
Designer Automation Essentials Database

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Database

DO IT YOURSELF
Running DB Commands

• Add elements to the ‘DB Commands’ Type:


• Function: Run the ‘Insert Product (Static)’ DB command
• Function: Loads the values from the ‘MyProducts’ table into
the ‘List of Product Rows’
Designer Automation Essentials Database

Dynamic DB commands

• DB Commands perform a simple data query, executing


Get-Schema-Operation requests to the DB Server
• Commands’ parameters can use Static or Dynamic values

SELECT [Customer Profile].Age FROM Customer Profile


SQL command DB Table DB Column

SELECT [table].column FROM table


BE Property BE Property

• Commands examples:
• SELECT command extracts data from the database
• UPDATE command updates data in the database
• DELETE command deletes data in the database
• INSERT command inserts data to the database
• Built-in Functions on DB commands:
• Execute Non Query Function executes a DB command against
the DB connection. and returns the number of affected rows.
For UPDATE, INSERT, and DELETE statements, the return value is
the number of rows affected by the command. For all other
types of statements, the return value is -1
• Execute Scalar Function executes a DB command against the DB
connection. It returns the value in the first column of first row in
the result set
Designer Automation Essentials Database

How to Add a Dynamic DB Command Element


2
Click Add Local
Command 5
Click Test to validate

Pick the Appropriate


1 Business Entity
Select a DB Properties as
connection to add 4 Form query in Query parameters for the
a command to editor query

Only Instances of
3 appropriate BEs will be
Give it a meaningful available
name

6
The Test validation results
appear here

• The values entered into an INSERT command must be in the


same order as the fields in the DB table appear. In this example,
the order is ID, Product, Price, and then Features
Designer Automation Essentials Database

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Database

Layered Projects with Databases

• In general, only higher layers should reference the lower layers. The
reverse is not encouraged.
• Creating Dynamic Queries also requires the Physical Objects Layer to
receive information from the BE Layer.

Business Entities

Physical Objects
Screen Elements Databases Web Services
Designer Automation Essentials Database

Layered Projects with Databases


• In general, only higher layers should reference the lower layers. The
reverse is not encouraged.
• Creating Dynamic Queries also requires the Physical Objects Layer to
receive information from the BE Layer
• So how do we accommodate for this?
• Create a dedicated project for DBs, including all related BEs
• Reference this project from the regular BE project
Business Entities Project
Execute Non Query of Command

DB Project Physical Objects Project


Physical Objects: Business Entities:
DB Table Row Screen Elements
• Field1 • Field1
• Field2 • Field2
• Field3
• Field3
Command
Designer Automation Essentials Database

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Database

DO IT YOURSELF
Dynamic DB Commands

• Create an Instance of Product Row


• Create a DB Command Element called
‘Insert Product (Dynamic)’
• In the Query Editor of the Command, write a query that inserts a
new entry in the Products table in the DB, specifying the
properties of the Product Row type as the values for their
corresponding fields.
• Validate your Command by Testing it
• Create a Function that executes the ‘Insert Product (Dynamic)’
Non-Query
Designer Automation Essentials Database

Summary
• Adding a Database connection

• Creating Database elements

• Streaming data from Database elements to Business


Entities and vice versa

• DB connections are part of the Physical Objects layer

• They are used in order to allow data flow from the database to
data structures called Business Entities

• Step by step design:


• Add a DB connection to RT Designer
• Create DB connector elements: commands and tables
• Create Business Entities to hold data and invoke DB elements
Designer Automation Essentials Database
Designer Automation Essentials Business Logic Layer - Workflows

BUSINESS LOGIC
LAYER:
WORKFLOWS
Designer Automation Essentials Business Logic Layer - Workflows

Lesson By the end of this lesson you will be able to:


Objectives • Create Workflows – Steps and Transitions

• Test Workflows
Designer Automation Essentials Business Logic Layer - Workflows

Business Logic Layer

• The Business Logic Layer enables you to define the logical entities that
determine the behavior of RT Client according to your business
requirements
Business Logic

Rules Event Handlers Workflows

Decision Support
Presentation
Business Entities
Physical Objects

• Workflows provide a structured way to define a business


process by Steps and Transitions.
Designer Automation Essentials Business Logic Layer - Workflows

What are Workflows?


• In life, processes are typically comprised of Start
a series of functions to be performed
in a specific order
Get up from Bed
and dependent upon specific conditions
Got up

Steps define the Actions to Brush teeth


be done
Brushed

Get Dressed
Transitions define Dressed
conditions to move on to the
next Step Go to Work
• Workflows are used to: Went
• Guide Agents through a process
End
• Force Agents to perform a flow in a certain order

• Workflows are a series of steps performed in a certain order,


and transitions that define when to move between steps.
• There is a certain order to the Workflow’s steps – You do not
brush your teeth before getting up from bed.
• Transitions are like this flow: you get out of bed >you brush your
teeth >you get dressed > you eat breakfast> you arrive at work.
Designer Automation Essentials Business Logic Layer - Workflows

When are Workflows Triggered?

• Workflows can be triggered in 3 ways: Start

• On demand
Users can click the Flows button on the Launch Bar. The Launch bar appears
on the user’s desktop to display a list of available workflows

• Push Mode
Triggered by a Business Entity or a Rule

• Through the Monitor

• Push Mode examples:


• Convert a lead to a new Account
• Create a service request
• Navigate to the billing info screen
• Get and rank available offers
Designer Automation Essentials Business Logic Layer - Workflows

How to Create a Workflow


1
Go to Business Logic tab  Workflow tab

2 5
Click New
4 Click New Transition
Workflow
Click New Step and and drag the mouse
drag the mouse on on the canvas
3 the canvas
Give Workflow a
meaningful name

• Transition condition - When a certain Event or a Rule occurs,


transition to the next step.
• If you do define 2 transitions to a single step, you must define
their priorities. If both conditions are met, the one with the
higher priority will be executed, and the other will be discarded.
Designer Automation Essentials Business Logic Layer - Workflows

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Business Logic Layer - Workflows

DO IT YOURSELF
Creating a Workflow

• Create a workflow called ‘Guide’, which will guide an agent


through the process of creating a new account, and set it up
as follows:
• Create the necessary layers to accommodate
this task (capture SEs, BE, callouts….)
• Create a BE Boolean instance
which is automatically assigned
with the “Exists” property of the
“New” button SE value and
name it “CRM Open”
Designer Automation Essentials Business Logic Layer - Workflows

Step Structure

• Steps hold Actions to perform


“Go to Work” Step
Take car keys and laptop
Get out of the house
Start the car
Drive to work

• Workflows can be nested under a certain Step, like a sub-procedure


“Get Dressed”
Start
Step

Put on Clothes

Put on Shoes

End

• To define a nested workflow for a workflow step:


1. Define the workflow in the standard fashion
2. Select the step in the workflow that is to have a nested
workflow assigned to it
3. In the Action tab of the Properties pane, select the name
of the workflow to be assigned to the step in the Nested
Workflow dropdown list. When the workflow reaches this
step, it will run the nested workflow like a sub-routine.
Designer Automation Essentials Business Logic Layer - Workflows

Define Step Properties


• Visibility
Whether the Agent will see the step in the flow

An Agent can go to this


step whenever he
wants

• Interactivity
Whether the Agent can move back and forth between steps

• Timeout
Set a limit of time to wait for any of the transitions to occur. Can be used
for delay, error handling, and timed loops

• Visibility – a step that performs internal system actions that are


created “behind the scene” and will probably be invisible to the
user.
• Interactivity - Only visible Steps can be Interactive! Make a step
interactive for actions that can be done anytime during the
process, for example - adding bonus points for a customer.
• Timeout – Allows you to define a limited time to wait for an
Action to occur, in order to retry the Action upon failure, or to
exit the Workflow.
Designer Automation Essentials Business Logic Layer - Workflows

How to Define a Step: Actions

1
Click the Step to
define
2
Define Step Name

3
Insert Instructions to
form an Action
Designer Automation Essentials Business Logic Layer - Workflows

How to Define a Step: Properties


Select to make
the Step visible
to the user during
runtime

Select to allow the user


to repeat the step when
they choose
Designer Automation Essentials Business Logic Layer - Workflows

How to Define a Step: Timeout


1
Tick checkbox

2
Define Timeout
Interval

3 Insert Instructions to
be carried out when
Timeout elapses
(optional)
Designer Automation Essentials Business Logic Layer - Workflows

How to Define a Step: Timeout

It is possible to assign values into the Step Timeout


Designer Automation Essentials Business Logic Layer - Workflows

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Business Logic Layer - Workflows

DO IT YOURSELF
Defining a Step

• In each Workflow step you’ve created:


• Make the step visible to the user
• Add the instruction to show the Callouts
• Associate the callout to the relevant SE
Designer Automation Essentials Business Logic Layer - Workflows

Transition Structure
• Transitions define when the next Step is executed.

• You can define a transition by:


• An Event
Add new Contact
Once the Event occurs,
New Event of Contact
Transition will be
occurred
triggered

• Conditions (Transition Rule)


Add new Contact

Contact’s age is greater Once the Conditions


than 60 are fulfilled, Transition
AND will be triggered
Contact VIP equals true

• The definition of a Transition may also include an Action to be


performed when the Transition is triggered and before going to
the Next Step.
Designer Automation Essentials Business Logic Layer - Workflows

Workflow Events

• An Event-driven Transition can be triggered by:


• Internal Events in the RT Designer, for example if a BE value is modified
• External applications Events, for example, a CRM launch
• Workflow Events. For every Workflow, Step or Transition
the following Events are available:

WF Events

Started Timeout Value of Paused Value of Process Value of Running is Value of Start
is Modified Available to User is Modified Time is Modified
Modified

• Workflow Events can be used to transition from one Step to


another. For example, Transition to the next Step when the
previous Step has Timed out.
Designer Automation Essentials Business Logic Layer - Workflows

Transitions and Steps

• For efficiency and maintenance, a single Transition should be defined


for each direction (if needed) between each two Step boxes

Add New Contact Add New Contact

New Contact Contact VIP Contact’s age is greater


was added equals true 1 2 than 60
Show Offers Callout Show VIP Show Senior
Offers Callout Offers Callout

• If 2 transitions are defined to a single step, you must define their


priorities

• Priorities - If both conditions are met, the transition with the


higher priority will be executed, and the other will be discarded.
Designer Automation Essentials Business Logic Layer - Workflows

How to Define an Event-Driven Transition

2
Define Transition
Name

1 3 Click to select the


Click the Transition to define Event to fulfill the
Condition

4 5 Select the Entity of the 6 Select the


Drill down the Events
Group Event Event

• The best approach for defining Transitions is related to the


previous step. For example, if a step Opens a certain application
window, then the transition to the next Step will be driven by
the window displayed.
Designer Automation Essentials Business Logic Layer - Workflows

How to Define a Condition-Driven Transition

2 Define Transition
Name

Callout Closed

3 Select the Transition


Rule

4 Add Conditions to
transit

1 Click the Transition to define

• Condition-driven transitions are actually Rules made on-the-fly.


When the condition is fulfilled, the Transition is triggered.
Designer Automation Essentials Business Logic Layer - Workflows

Always True Option for a Transition

• You can define a transition in your flow that is always true and
automatically occurs without waiting.
Designer Automation Essentials Business Logic Layer - Workflows

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Business Logic Layer - Workflows

DO IT YOURSELF
Defining a Transition

• Define the transitions in your workflow to transit to their


respective target steps as follows:
• “CRM Opened”
• When “Open” of “CRM Application” equals “True”
• “New Account Window Open”
• Based on BE event with the same name
• “New Account Added”
• Based on BE event with the same name
Designer Automation Essentials Business Logic Layer - Workflows

How to Define an Action in Transition


2
3 Go to Action tab
Click When in Transit
do the following:

5
Click Insert
Instruction, then
1 define the Instruction
Click the Transition to define

4
Transition will
turn bold

• Actions you define in a Transition will be executed while


transiting, meaning before the next Step.
Designer Automation Essentials Business Logic Layer - Workflows

Use Parameters in Transitions

It is possible to use parameters in a transition rule:

• Parameters can be assigned to a workflow in a similar manner


as assigning a function.
• Workflows can only receive parameters that are primitive types
or a list of primitive types.
• After parameters are assigned to a workflow, then when that
workflow is invoked, parameters must be passed to it.
Designer Automation Essentials Business Logic Layer - Workflows

How to Define a Transition Style


2
3 Go to Style tab
Click Override Style

4
Edit settings as
required
1
Click the Transition to define
Designer Automation Essentials Business Logic Layer - Workflows

How to Add Parameters to a Workflow

• Parameters can be defined for use within the workflow


1
Click Edit
Parameters

2
Click here to add
a new parameter,
and then define it

3
Click OK

• Workflows can only receive parameters that are primitive types


or a list of primitive types.
Designer Automation Essentials Business Logic Layer - Workflows

How to Return a Value in a Workflow

• A Workflow can return a result once the Workflow has ended


2 Select the Step
1 Select the type of for which you
want to return a
value to be
value
returned
4 Select the BE to
be returned by
3 the Workflow
Invoke the Set
Result function
Designer Automation Essentials Business Logic Layer - Workflows

How to Return a Value in a Workflow

• Retrieve the Workflow result using the Get Result Function and
Assigning it to a BE

• The Get Result Function retrieves the result from a Workflow. It


cannot be used within a Workflow, but can be used to retrieve
the result from a Workflow once the Workflow has completed.
Designer Automation Essentials Business Logic Layer - Workflows

Where / When you should add logic to reset


BE’s values that are used in a workflow?

Question

?
Designer Automation Essentials Business Logic Layer - Workflows

Reset BE’s values in a workflow

• It is recommended to add logic to reset the BE’s values when the


workflow is not running: Completed or Failed.

• Business entities that are used in a workflow should be reset


when the workflow is not running: Completed or Failed.
Designer Automation Essentials Business Logic Layer - Workflows

Workflow Legend
• RT Designer enables you to modify the Workflow’s steps’ visually so it
can be readable at a glance

Regular Step Rounded Step Link Step

Link to DB Callout User Input


Step Service
Step Callout Step
Step

• This is called the Workflow’s Legend

• Changing the Step’s appearance can also help in


troubleshooting – get quickly to the step you are looking for.
• If you have several Workflows in the Project, all will be
presented in one big Legend.
Designer Automation Essentials Business Logic Layer - Workflows

How to Create a Legend


1
Click Edit Legend

5
Right click a step,
select Set Legend,
then select step 2
type 4 Click here to add a
3 Click here to select
Give Step Type a Step in the Legend
meaningful name shape, then click OK

• First create step types in the Legend, then select for each step in
the Workflow its relevant type.
Designer Automation Essentials Business Logic Layer - Workflows

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Business Logic Layer - Workflows

DO IT YOURSELF
Creating a Legend

• Create a new workflow to test legends


• Add three steps to the workflow
• Define three different legends
• Allocate a different legend to each step you’ve created
• Delete the workflow when you’re done
Designer Automation Essentials Business Logic Layer - Workflows

How to Test your Solution


2
In the Properties window,
check Process is
available for the user and
Run the RT Client

1 Click the Workflow


branch
3
When the Launchbar
appears, click Flows
to see all Workflows
marked “available for
the user”

4 Select Workflow to
Test, then click the
Start button

• Flows window displays all workflows created in the project,


which were defined for the User. From here, you can activate
each Flow by demand.
Designer Automation Essentials Business Logic Layer - Workflows

How to Test your Solution

• The Workflow’s Steps will appear as the flow progresses


• In the Monitor tool go to Flows Tab,
to see which Step your flow is at
(Active Steps will be colored in green)

Click here to view


steps according to
their order instead
of alphabetically

Step and Transition information


For Every Step you will appear in real time in the right
will see transition to pane
it and End time

• Steps must be defined as “visible to user” in order for them to


appear in the Flows Menu! To see how to make a Step visible to
the User, refer to slide 9.
• Another way to test your Workflow can be by showing a testing
Callout in a step (for example, with the text “I got here!”).
Designer Automation Essentials Business Logic Layer - Workflows

Triggering Workflow Parameters

It is possible to change the parameters defined in a workflow during


runtime
1
Select Flows Tab

3
Select the Parameters
5 Tab
Press Play
2
Select the Workflow 4
Enter the Parameters

• Parameters applied in the Monitor must be invoked using the


play button in the Monitor, and not from another source.
• For parameters of type List, there’s no validation of the entered
value. For other parameters provided by the user, the Monitor
validates the content of the entered value.
• For selected parameters such as DateTime, the format is given,
however for other parameters such as Text and List of Number,
you must manually enter the values using the required format
(in some cases, with parenthesis). Examples: List of Boolean:
{true,false,true} Number: 123
Designer Automation Essentials Business Logic Layer - Workflows

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Business Logic Layer - Workflows

DO IT YOURSELF
Testing your Workflow

• Mark the ‘Guide’ workflow: “Process is available for the


user”
• Test your solution
• While the workflow is running:
• View the workflow’s reaction to the actions you take
• View the appropriate values in the Monitor application
Designer Automation Essentials Business Logic Layer - Workflows

Summary
• Create Workflows – Steps and Transitions

• Test Workflows

• Workflows are a series of steps performed in a certain order, and


transitions that define when to move between steps.
• Workflows can be triggered by the Agent’s demand from the Flows
Workflow, or by a Rule or a change in a BE.
• Steps hold Actions to perform.
• Transitions define when the next Step is executed, and can hold an
Action to perform before transitioning to the next Step.
• Parameters can be assigned to a workflow in a similar manner as
assigning a function.
• When calling a workflow, it is possible that the workflow will return a
result value.
• Workflows can be nested under a certain Step, like a sub-procedure.
• Workflows can be created using the Guidance Workflow Wizard
intended to guide an Agent
Designer Automation Essentials Business Logic Layer - Workflows
Designer Automation Essentials Solution Publishing

SOLUTION PUBLISHING
Designer Automation Essentials Solution Publishing

Lesson By the end of this lesson you will be able to:


Objectives • Publish a Solution

• Assign Solutions to Teams


Designer Automation Essentials Solution Publishing

Solution Publishing
Designer Automation Essentials Solution Publishing

Recall: Design to Deployment Flow

RT Solutions

RT Designer
RT Server

1 Projects are created on the 2 A Project is


RT Designer by Installer or Published to the
Power Users Server

Let’s see what happens during


publishing…

• RT Server is the core engine of the Advanced Process


Automation Solutions .
• The RT Designer and the RT Client both act as clients to the RT
Server, which in turn approves each request at a time.
Designer Automation Essentials Solution Publishing

Publishing a Project

• The Publishing process performs the following:


Contains images and text Points to
displayed on the Solution dll Update
RT Client file Version

Generate
Project
Resource Files DLL XML
Validate
Project
Contains solution’s
behaviors,
functionalities, etc that Publish Project
are activated when to Server
loaded into the RT
Client

• Updates the Project Version: Each time you publish a project,


the project’s version is updated automatically.
• Validates the Project: RT Designer compiles the project and
checks for errors. If the project has errors they are displayed in
the Messages area at the bottom middle of the window. You
can jump directly to the window in the RT Designer to edit that
object by clicking on it in the Messages area.
• Generates the Project: If the project does not have any errors,
the project files are created. These files are saved under the
folder Generated Solutions, which is located in the Installation
folder.
• Publishes the Project to the Server: RT Designer uploads the
project files to the RT Server.
Designer Automation Essentials Solution Publishing

Version Control

• Solution deployment mechanism allows you to control the version


published

Increase major version Increase minor version after


after performing major performing minor changes in
changes in Business one of the Elements – Adding a
Logic, Layers etc. Callout, changing a BE etc

001.000.000
Increase medium version
after performing minor
changes in Business
Logic.

• Each time you publish a project that was published before, the
Project’s Version is updated automatically from what you define
here.
Designer Automation Essentials Solution Publishing

Recall: Design to Deployment Flow

RT Solutions

RT Server
RT Designer

3 Clients login to the Server and


download Solutions assigned
RT Client RT Client RT Client to them

Agents can add or remove


solutions loaded on their
station from their tray

• RT Solution deployment mechanism has several built-in


capabilities:
• Version control
• Separate development / test / production environments
• Automatic distribution of updated solution and files
• Server DB connection
Designer Automation Essentials Solution Publishing

How to Publish a Project

2
1 When Publishing an already
Go to the Project existing Solution, update
tab Version

3 4
Select Target Select in Target
Orientation: Classic environment the
or Robotic environment that the
solution is running in:
Development, Test or
Production
5
Enter relevant notes into
the Version Description

6
Click
Publish

• Target Orientation: Indicates the Type of the RT Client in which this Project is
deployed. When there is a Thin Client and there are no group assignments, you
need to configure deployment at the settings window  Designer  Orientation
Items  Web so that instead of dll and XML files, java script files will be
generated.
• Target Environment: Indicates the purpose of this Project, as follows:
• Development: Specifies that the project is still under development.
• Test: Specifies that the project is ready for testing.
• Production: Specifies that the project is ready to be deployed to Clients.
Version Description: The Version Description only provides a description of the
current solution version, and is not a description of the solution itself. After
publishing, the Version Description is cleared.
• Allow multiple Solutions to share a single instance of this project checkbox: In RT
Solution implementations involving a great deal of content, you may need to break
down the solution file into separate solution files. In such cases, some objects will
likely be common to all solution files, such as the value of BEs pointing to screen
elements. When you select this checkbox, common objects are shared in memory
during runtime, which helps to improve performance. This feature can apply to
any object on the project level.
Designer Automation Essentials Solution Publishing

Publishing a solution can only


How to Publish a Project be performed on the main
project

When the Active project is NOT


the main project, the “Publish”
button will be disabled.
Designer Automation Essentials Solution Publishing

Solution
Assignment
Designer Automation Essentials Solution Publishing

Solution Assignment

• After publishing a Solution, the system administrator assigns Solutions


to teams
• When a user from the team logs in to the RT Client, they download the
Solutions assigned to them
RT Server
• Assignment includes support
of the following features:
• Solutions Assignment
• Update after assignment
• Load on Startup
RT Client

• Features explanations:
• Automatically or Manually assign a Solution to a team: Will be covered
in the coming slides.
• Automatically: Whenever a Solution is Published, a dialog box will
appear to select the teams to assign this Solution to.
• Manually: Administrator assigns a Solution manually through the
Designer GUI – in the Administrator tab.
• Update after assignment: When a Solution is assigned to teams, and
then an updated version is published, the publisher gets a dialog box
that asks whether the current assignment should update the new
version or not.
• Load on Startup: To support large scale Solutions, where the
implementation is broken down into several solutions, only a single
main solution should be loaded at start-up and other solutions should
be loaded/unloaded according to the context of the interaction.
Designer Automation Essentials Solution Publishing

Solution Assignment in the Designer

• Solution assignment is done from the Administration tab in the Designer,


either by Teams or by Solutions.

By Teams
Select a team and assign it Solutions

By Solutions
Selects a Solution and assign it teams
Designer Automation Essentials Solution Publishing

How to Assign Solutions to Teams

2
Select one of the
User groups and
3 then click +
In the Available
Solutions window that
1 Go to Solutions
appears, select the
Assignment branch  Solution and click OK
By Solutions

4
Solution is added to this team.
Configure its settings and click
Apply changes

• This branch allows assigning a Solution or multiple solutions per


team.
• Teams branch: Displays a hierarchical tree of the user groups
imported from the corporate LDAP server, such as Active
Directory. These should represent Agent teams.
• Available Solutions Window: Lists the projects that have been
published to the RT Server. A solution may appear more than
once, each with a different version.
• Solution Settings (Step 3): Context specifies the context of the
solution, for example citrix, desktop and so on. The solution
assignment is assigned to a team in the given context for each
RT Client installed. Upon login, the RT Client is assigned to a
team and given a role (for example, supervisor) by the RT Server
during authentication within the context.
Designer Automation Essentials Solution Publishing

Inherited Solutions - Optional

Child groups can inherit Solutions from their parent groups.


▪ Default
The selected group searches up the hierarchy for a Solution
▪ Accumulate
Child Groups receive group Solutions on top of their own Solutions
▪ Override
The Child Group Solution overrides the mother group Solution

Remember to click
Update Behavior
when done

• Solution assignment hierarchy enables the delivery of combined


Solutions to the group
• Child groups can inherit the Solution from their parent groups
• Inheritance is optional
• Default: The group behaves as it used to before: If a user group (in
which a user is a member) does not have a Solution assigned to it, then
the system can search for a Solution to return to the user. To do so, it
searches upwards in the User Groups hierarchy (parents). It continues to
search upwards in the hierarchy until a Solution is found. Once a group
that has a Solution(s) assigned to it is found, the search is terminated,
and the identified Solution(s) is (are) returned to the user.
• Accumulate: The group receives group Solutions on top of its own
solution
• Override: The child group Solution overrides the mother group solution
Designer Automation Essentials Solution Publishing

How to Assign Teams to Solutions


3
In the Available Select Teams
window that appears, select
the Teams and click OK

2 Select one of the


Solutions and then
1 Go to Solutions click +
Assignment branch 
By Solutions

4 Teams are added to this


Solution. Click Apply
Changes

• This branch allows assigning a team or multiple teams to a


Solution.
• Solutions branch: Displays a hierarchical tree of the Solutions
that were published to the RT Server.
• Select Teams Window: Lists the teams that have been imported
to the RT Server.
Designer Automation Essentials Solution Publishing

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Solution Publishing

DO IT YOURSELF
Assigning Solutions/Teams

• Assign one of your published Solutions to your team,


or assign your team to one of your published
Solutions.
• Whichever method you used, verify that your actions
are verified using the other method.
Designer Automation Essentials Solution Publishing

Summary
• Publishing a Solution

• Assigning Solutions to Teams

• Publishing a Solution performs the following actions:


• Updates the Project Version
• Validates the Project
• Generates the Project
• Publishes the Project to the Server
• After a Solution is published, it must be assigned to the Agent’s
team in order for him to download it.
• Assignment includes support of the following features:
• Automatic / Manual assignment
• Update after assignment
• Load on Startup
Designer Automation Essentials Solution Publishing
Designer Automation Essentials Automation

AUTOMATION
Designer Automation Essentials Automation

Lesson By the end of this lesson you will be able to:


Objectives • Automate processes

• Handle special cases


Designer Automation Essentials Automation

Process Optimization

• The goal is to reduce handling time by automating human actions

Screen Element Automation LIC of


Manipulation Library Functions Applications

Database Tables
Web Service
and Invocation
Commands

• Real-Time is meant to support all efficiency-driven projects.


• Screen Element Manipulation
• Enables you to mimic the user’s actions on Screen Elements, for
example – close a window, type in a field etc.
• Automation Library Functions
• Enables you to use system functions, for example – copy to clipboard,
get active process etc.
• LIC of Applications
• Allows you to launch any application – PDF, WORD etc.
• Database Tables and Commands
• Allows you to create DB tables and different command objects
• Web Service Invocation
• allows you to import web services and harness their functionality
Designer Automation Essentials Automation

Screen Element Manipulation

• Assign Value when invoking a Function

This SE will display “account”


property’s text

• The SE value will change to Subject’s Text whenever the


Function is invoked, typically from the Logic Layer.
Designer Automation Essentials Automation

Library Functions

• Automate third party application’s Functions

When this Function is invoked, the


window’s caption will be copied to
the clipboard

• These Functions help you to complete the automation process,


by imitating the user’s actions.
• Functions for Win 32, Web, MS Office, File and Clipboard
application based are supported.
Designer Automation Essentials Automation

LIC of Applications

• Assign any URL/path to an LIC Object

Source Text Instance =


D:\My Documents\Guide.pdf

• Launch In Context allows you to launch applications


automatically, and then proceed. This is used for example, in
cases where automation performs actions in third party
applications.
Designer Automation Essentials Automation

LIC of Applications

• Launch an LIC item as Hidden

• LIC preferences allow Launching an application or other


documents as hidden / restored / minimized / maximized can
help during automation implementation.
Designer Automation Essentials Automation

Advantages of Automation

Reduce Process Consolidated


Handling Time Enforcement Desktop

▪ Perform several ▪ Prevent mistakes / ▪ Prevent the need to work


Actions malicious activities with multiple applications
simultaneously

• Several automation Workflows can operate simultaneously, in


addition to the Agent’s actions at that time.
• You can enforce an Actions’ order, to make sure there is no step
overlooked / forgotten.
• Copy information from application A to application B.
Designer Automation Essentials Automation

What can you Manipulate?

• Launch any Application

• Invoke any Function

Win 32 Web MS Office Clipboard File

Is Window Copy text to Create Outlook Clipboard Text Copy / Delete File
Available Clipboard Email message
Set focus to main Get Active Process Create Outlook Copy Text into the Does File Exist
Window task Clipboard

• Automation by itself is straight-forward. But there are few


things to take under consideration, which we will learn about in
the next few slides.
Designer Automation Essentials Automation

Automation Concept

• Sequence of Actions and Conditions

• Creating an automation solution is similar to creating any


workflow or implementing a logical process where the steps
define the actions to be executed and the transitions are used
to verify these actions were indeed performed as expected.
Designer Automation Essentials Automation

Automation Concept

• Transitions validate that each of the expected Actions were performed


successfully
Start

Knowledge base icon Clicked


Open Knowledge base
application
Application Open
Paste word Agent
seeks at application
Validate each step! You Word Pasted
cannot perform the
search if the word was Click Search
not pasted
Search Results appear

End

• Transition should include validating the expected result from


the previous step.
• Since the order in the Workflow is important, validation is
crucial.
Designer Automation Essentials Automation

Automation Concept

• Cover ALL possible scenarios


Start
Knowledge base
What happens
icon Clicked
if application Open Knowledge base Step Timeout Show Callout to Agent:
is not application Proceed Manually
launched? Callout
Application Open
No results Show Callout to Agent: No Closed
Paste word Agent results
seeks at application
Callout Closed
Word Pasted

Click Search Close Application


What happens
if there are no Search Results Application
results? appear Closed
End

• If one of the Workflow’s Steps or transitions is unexpected, the


Workflow is disrupted and the Agent will experience delays. To
prevent this:
• Use Timeouts
• Notify the Agent in case of failure
Designer Automation Essentials Automation

Automation Concept

• Create Transition Loop


Start
Knowledge base
icon Clicked
Open Knowledge base
application
Retry Open
Application Open
Paste word Agent
seeks at application
Word Pasted

Click Search
Search Results
appear
End

• A common use of Transition Loops is for retrying a failed step.


Designer Automation Essentials Automation

Automation Concept
• Reset BEs between iterations if necessary

Assign empty or
default values

OR
Use the Create
function to reset
composite type BEs

• In some cases the leftover data from the previous iteration


might create unexpected behavior. In such cases a reset
operation is recommended.
Designer Automation Essentials Automation

Automation Concept
Set Result
• Error handling function
Write to Log
function

Send an email
containing error related
information

• When running an automation process many factors should be


taken into consideration, so when designing a solution, it is
recommended to gather error related data and pass it on in one
or more ways.
Designer Automation Essentials Automation

Considerations

1. Notification
vs.
Act behind the scenes

2. Automation
vs.
Human decision

• Notify the Agent that a process is automatically being made:


• To indicate when automation is finished
• To prevent the Agent from interfering or performing the Actions
themselves
• Operate behind the scenes (minimize the application where
automation occurs) when:
• You wish to save time, and allow the Agent to perform some
other action simultaneously.
• The process display is not vital to Business Process
• Not all steps need to be automated, sometimes it is better to
leave the Agent the decision of how to proceed. Whenever
there is a human factor to consider, give the Agent a choice. In
other words, automate the trivial actions and leave the sensitive
decision points for the Agent.
Designer Automation Essentials Automation

Considerations

3. Full Automation
vs.
Information retrieval

4. Set of Actions Go to URL


Open Google
vs. http://www.google.co.il/
#hl=iw&source=hp&q=n
Final target Paste “NICE Systems” ice+systems

Click Search

• When information to proceed is fully provided – automate!


When information is missing in order to proceed – ask for it
from the Agent.
• When possible, Shorten a set of Actions to a single step, in
order to prevent disruptions in between steps.
Designer Automation Essentials Automation

Considerations

• All roads lead to Rome… Define Transitions so they validate all habits
and working methods

• Different people work in different methods, consider ALL


possible scenarios to avoid Workflow disruption.
• This example shows that there are many ways to open the
Calculator application. Prevent covering only the straight-
forward one.
• A wrong Transition in this case would be: when the Calculator
shortcut is clicked. A right one would be: when the Calculator is
open.
Designer Automation Essentials Automation

Summary
• Automating processes

• Handling special cases

• Automation is a sequence of Actions and Transitions

• Transitions validate that each of the expected Actions were


performed successfully

• Automation uses:
• Reduce Handling Time
• Process Enforcement
• Workforce Management

• Workflows can be created using the Automation Workflow


Wizard intended for automation using LICs and Callouts.
Designer Automation Essentials Automation
Designer Automation Essentials Robotic Automation part 1

ROBOTIC AUTOMATION
PART 1
Designer Automation Essentials Robotic Automation part 1

Lesson By the end of this lesson you will be able to:


Objectives • Describe the concept of Robotic Automation

• Configure Real-Time Solutions for Robotic Automation in


the Real-Time Designer

• Create a Robotic Automation Workflow

• Invoke a Robotic Automation Solution using a Web-Service


Designer Automation Essentials Robotic Automation part 1

WHAT IS
ROBOTIC
AUTOMATION
Designer Automation Essentials Robotic Automation part 1

What is Robotic Automation

• Robotic Automation is a solution in the APA suite which enables


triggering and running of automated workflows

• The Robotic Automation solution enables applications to


remotely activate workflows that are exposed on the Real-Time
server.
• Applications can benefit from the functionality provided by
these workflows by sending execution requests.
Designer Automation Essentials Robotic Automation part 1

What is Robotic Automation

• The typical back office employee needs to perform many mundane


repetitive day to day tasks
• Robotics Automation can perform these tasks automatically, freeing the
employees to engage in more complicated tasks
Designer Automation Essentials Robotic Automation part 1

What is Robotic Automation

• Robotic Automation is all about:

• This is where NICE Robotic Automation can be of great value.


• The whole purpose of Robotic Automation is to process
unattended automation flows, which require no human
decision in order to be carried out, and can run entirely in the
background, on an unmanned desktop.
Designer Automation Essentials Robotic Automation part 1

Robotic Automation - Pros

24x7 Fast Flawless


Robots work 24x7 Robots are faster Robots don’t make errors
Robots work Robots handle a process 4-5 So processes are completed
nights, weekends, times faster than flawlessly
and don’t take a human being
breaks
Designer Automation Essentials Robotic Automation part 1

Robotic Automation - Pros


Robots can automate any employee desktop activity

Mouse Field Copy &


Selection Entry Paste

Web Services
Screen Log-in/Log out of Invocation &
Navigation Applications Database Queries

• The idea behind the automation aspect of Robotic Automation


is the same as that of the regular Process Automation feature
that is part of the RTPO package, in that the robots can
automate any employee desktop activity, such as mouse
selection, field entry, copying and pasting, screen navigation,
etc., but this time, without the presence of an agent at the
workstation.
Designer Automation Essentials Robotic Automation part 1

ARCHITECTURE
AND FLOWS
Designer Automation Essentials Robotic Automation part 1

Design to Deployment

Real-Time Solutions

Real-Time Designer Real-Time Server

Real-Time Real-Time Real-Time


Client Client Client

• We’re already familiar with the typical Design to Deployment


architecture, whereby the solutions are designed on the RT
Designer workstation and published to the RT Server, so that
when RT clients log in, they can download the solutions that
have been assigned to them from the RT Server.
Designer Automation Essentials Robotic Automation part 1

Robotic Automation High-Level Flow


Customer Application/ Real Time Client Controller

Using the Automation


Portal to manage and
monitor robots and
tasks
Any 3rd party system can Attended or
send tasks Un-Attended Invoker

RT Server Robot Pool


Task is added to sync Robot pulls the task from the
queue queue

Task
Queue
1 2 3
The robots reside on Citrix/VM clients
Sync Schedule Async
Employee’s work
is automated by the robot

Transaction Completed

• The third-party application, or the classic RT Client, requests via


web service that a specific workflow in a specific solution be
invoked with the relevant parameters and prioritize the task.
• That request is received by the RT Server and put into the Task
Queue according to its Type and given priority. Once processed
by a robot assigned with the relevant solution, the completed
transaction and its data are stored in the RT Operational
Database for reporting purposes.
Designer Automation Essentials Robotic Automation part 1

IMPLEMENTING
A ROBOTIC
AUTOMATION
SOLUTION
Designer Automation Essentials Robotic Automation part 1

Robotic Automation Solution

Invoke the
Create
Workflow
Automation
via Web-
Workflow
Service
Publish as Robotic
Third party
Automation
Application/ Classic
solution
Client Invoker

• The process of implementing a Robotic Automation Solution


involves creating and publishing a Robotic Automation Solution
which contains at least one Robotic Automation Workflow, and
then invoking this workflow using a Web-Service.
Designer Automation Essentials Robotic Automation part 1

Robotic Automation Target Orientation

Under the Project tab select


Robotic Automation as the
Target Environment

Verify the change

Invoke the
Create Workflow
Automation via Web-
Workflow Service

• Before we start creating a workflow, the solution must be


defined to be published as a Robotic Automation solution so
that it can be made available to the third-party applications, or
classic RT Clients, that wish to invoke it.
• To specify that a project is to be published as a Robotic
Automation solution, the Target Orientation needs to be set as
Robotic Automation. The status bar should also update
accordingly.
Designer Automation Essentials Robotic Automation part 1

Robotic Automation Target Orientation

Verify the icon changed

Check the Publish as


Robotic Automation Web
Service checkbox

Create Invoke the


Automation Workflow
Workflow via Web-
Service

• In order for a solution to be recognized as a Robotic Automation


solution, it must have at least one workflow defined as a
Robotic Automation Web Service, which will also be made
available to the third-party applications, or classic RT Clients,
that wish to invoke it.
• Once the Project’s Target Orientation was defined to be Robotic
Automation, it is possible to specify a workflow to be Published
as a Robotic Automation Web Service. Selecting this option will
also cause the corresponding icon to appear in the navigation
pane.
Designer Automation Essentials Robotic Automation part 1

Robotic Automation Target Orientation

Publish as a Robotic
Automation solution
Assign to a team which
contains at least one robot

Create Invoke the


Automation Workflow
Workflow via Web-
Service

• After creating the workflow, the Robotic Automation Solution


needs to be published and assigned to a team that contains at
least one robot.
Designer Automation Essentials Robotic Automation part 1

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Robotic Automation part 1

DO IT YOURSELF
Creating a Robotic Automation Workflow

• Create a Robotic Automation Workflow, named “Happy


Birthday” with the following 2 parameters:
• “Name” (Type: Text)
• “Chosen Gift” (Type: Text)
• Create a timer to be used
for the transitions
• Publish and assign the
solution to the RtraTeam1
team
* Actions to be performed in the step will be added later in the lesson
Designer Automation Essentials Robotic Automation part 1

Invoke via Web-Service

• Invoker - The Robotic Automation Workflow can be invoked by any third


party application able to execute Web Services

• Classic Client Invoker - The RT client can serve as the invoker

Create Invoke the


Automation Workflow
Workflow via Web-
Service

• Once the Robotic Automation Solution has been published to


the RT Server, it can be invoked as a web service by any third
party application able to do so, including a regular RT Client
solution created in the RT Designer.
• In this lesson we will be focusing on using the RT Client as the
Invoker.
Designer Automation Essentials Robotic Automation part 1

How Do Robots Load Solutions?


Option 1 (Default) – Load on Demand

Download all Load only the


Wait for task
Robot up solutions with solution with the Perform task Unload solution
invocation
tasks assigned current task

Option 2 – Load All solutions

Download all Load all Load all


Wait for Perform task Unload
Robot Up assigned solutions with solutions
incoming task from queue solutions
solutions tasks assigned again

• Load on Demand: Robots are configured to load only the solutions needed for the
task pulled from the queue, and then after the task is completed, unload these
solutions
This method prevents collisions between solutions and can improve speed and
performances especially with large projects.
• Load solutions: Robot download and load all the solutions with tasks assigned to it
Designer Automation Essentials Robotic Automation part 1

Solution Load - Configuration

• The default setting is Load on Demand: true and can be configured in the server
configuration management
Designer Automation Essentials Robotic Automation part 1

How to Create a Classic Client Invoker


2 Click New Robotic

1 Go to Project tab  Automation


Reference
Select Robot
Automation References 3
branch Select the Robotic
Solution

4
Click Add Reference

• A regular RT Solution acting as an Invoker of Robotic


Automation solutions is referred to as a “Classic Client Invoker”.
• After clicking New Robotic Automation Reference, the RT
Designer displays a list of all Robotic Automation solutions
published to the RT Server, including their versions, the Robotic
Automation Workflows they contain, and the parameters of
those workflows.
• In case another version of the project was published, the
reference may be updated by right clicking it and selecting the
“Update Web Reference” option.
Designer Automation Essentials Robotic Automation part 1

How to Create a Classic Client Invoker

The solution will show as a web


service

• The Web-Service of the selected solution is added to the


Services tab in the Designer, presenting all published Robotic
Automation Workflows. The service’s functionality is now
available in the invoking project.
Designer Automation Essentials Robotic Automation part 1

How to Create a Classic Client Invoker

2 Select the workflow

3 Select the Priority

1 Drill down to the Async


Invoke function of the
desired project

4 Assign values to the


workflow parameters

• All robotics workflows that are a part of the referenced project


can be selected.
• The parameters can be assigned business entities as well as
typed in value.
Designer Automation Essentials Robotic Automation part 1

Workflow Parameters in an Invoker


• In order for a workflow to be invoked, any parameters that are sent to it
must not be empty.
• A workflow that receives an invokation with empty parameter(s) will not
start and an error message will be added to the client log:

• Note- by default, parameters that are Number or Decimal type


are automatically initiated with ‘0’ as a value and will not be
empty.
Designer Automation Essentials Robotic Automation part 1

Workflow Parameters in an Invoker


• A recommended way of action is to add a validation step to the invoker
• The validation will check if any of the parameters are empty, and if so, a
predefined logic will assign a specific value (# in this example) instead of
the empty parameters:
Designer Automation Essentials Robotic Automation part 1

Workflow Parameters in an Invoker


• On the invoked workflow, a matching logic will address the parameters that were
assigned with that value:

• The logic could differ between parameters that are mandatory to the workflow and
parameters that are not:
Designer Automation Essentials Robotic Automation part 1

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Robotic Automation part 1

DO IT YOURSELF
Creating an Invoker

• Create an Async Invoker to invoke the Robotic


Automation Workflow:
• Create a new Robotic Automation Reference
• Create a callout that allows the agent to specify the
customer’s Name and chosen gift, to be passed on as the
Robotic Automation Workflow parameters.
• Assign the callout as the Quick Callout
Designer Automation Essentials Robotic Automation part 1

Third-Party Invokers
• GetAllWorkflows – Returns all the published robotic automation
workflows

• In order to invoke and run a specific Robotic Automation


Workflow when using a third party application (similarly to the
Classic Client Invoker) you will need the Solution and Workflow
IDs. These can be found by running the Get All Workflows
function that is part of the Web-Service.
• For example, this is how SoapUI, an application used for
invoking, developing, simulating and functional testing of web-
services, produces the Solution ID and Workflow ID. This
function will also inform you as to how many parameters (if any)
the workflow will expect.
• For additional information on how to use the Web-service in a
third party application, please refer to the Robotic Automation
Solution Guide.
Designer Automation Essentials Robotic Automation part 1

Third-Party Invokers

Solution and Workflow IDs and


workflow parameters
Designer Automation Essentials Robotic Automation part 1

Third-Party Invokers - Example

External Invoker for Robotic Automation Solution-Online Lesson


For details on using third-party applications as the Invoker please refer to the
Online Lesson Available in Nice University
Designer Automation Essentials Robotic Automation part 1

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Robotic Automation part 1

DO IT YOURSELF
Robotic Automation Exercise

• Update the workflow:


• The Workflow should concatenate the two parameters and insert the text
into a text file (simulating the archive), which is located on the Designer
machine.
• Each added line in the file should have the following structure:
The customer’s Name is <Name> and s/he has chosen a <Chosen Gift>.
• The text should be added to the already existing text in the file.
• Use the Write text to file library function. The path to be used in the function will be:
Hostname\Users\niceadmin.NICETRAINING.001\Desktop.
For the Select Update parameter select TRUE.

• Publish and assign the solution to the RtraTeam1 team


Designer Automation Essentials Robotic Automation part 1

ERROR
HANDLING
Designer Automation Essentials Robotic Automation part 1

Business Execution Status

• The Business Execution Status is a predefined Boolean which represent


business logic error during execution of the workflow.

• This value will be saved in the database, and can be displayed in the
Automation Portal.

• The Business Execution Status is added by the implementer per


workflow basis to address
• situations of business problems (business logic rather than
technical problem or design issues). For example, if the
workflow is intended to transfer funds from one account to
another, but the balance is insufficient, the workflow cannot be
completed, but not because of a system or technical problem.
• Additionally, this type of result needs to be monitored in the
Automation Portal for tracking purposes.
Designer Automation Essentials Robotic Automation part 1

Business Execution Status

1 2
Select a Workflow In the action editor Select Assign->
Workflow Items->
Business Execution Status

• By default, the Business Execution Status value is set to True


meaning Execution Successful.
• Best practice is to have this value changed in case a business
error occurs and use the Set Result function to state the error
reason.
Designer Automation Essentials Robotic Automation part 1

Set Result Function

• The Set Result function enables the user to define a text string field that
will be returned by the robot upon completion of the workflow

• For example this can be used to indicate an error had occurred

• This string can be added by the implementer to provide


information required by the project.
• For example, the user can set this field to display a text string
that indicates that a workflow was completed successfully, or
alert to a workflow failure in order to understand potential
workflow problems.
• In addition, if a 3rd-party application used in the process
displays an error message, the robot can capture the error
message and attach it as the result.
Designer Automation Essentials Robotic Automation part 1

Set Result Function

1
Select a workflow 2 Select a Workflow
Result Type from the
dropdown list
Designer Automation Essentials Robotic Automation part 1

Set Result Function


3 Drill down to Workflow
Items-> Workflow
Name-> Set Result
function

4 Select a Business
Entities or type in a
value
Designer Automation Essentials Robotic Automation part 1

Summary
• The concept of Robotic Automation

• Configuring Real-Time Solutions for Robotic


Automation in the Real-Time Designer

• Creating a Robotic Automation Workflow

• Invoking a Robotic Automation Solution using a Web-


Service
Designer Automation Essentials Robotic Automation part 1
Designer Automation Essentials Robotic Automation Part 2

ROBOTIC AUTOMATION
PART 2
Designer Automation Essentials Robotic Automation Part 2

Lesson By the end of this lesson you will be able to:


Objectives • Describe the concept of Sync Robotic Automation

• Invoke a Sync Conversation

• Schedule Robots

• Describe the concept of task queues and priorities


Designer Automation Essentials Robotic Automation Part 2

Sync Automation Flow


3rd Party Application
RT Server Robot Pool

Task is added to Robot pulls the task from the


sync queue queue
Any 3rd party app that uses
the invoke API command

Task
Desktop Client
Queue
Response is sent
back to the invoker

1 2 3

Desktop Client that Sync Schedule Async


uses the sync invoke function

1. An invoker (a third-party application that uses the invoke API command


or the Desktop Client that uses the sync invoke function) sends a request
to begin a conversation with the Real-Time Server.
2. The Real-Time Server creates a conversation ID.
3. The invoker sends the first task. The Real-Time Server assigns a
dedicated robot to the conversation, and adds the task to the sync task
queue. The robot is assigned for the lifecycle of the conversation (a
conversation can include several automation requests).
4. The assigned robot executes the task, sends a reply to the invoker and
then waits for the invoker’s next task or for the termination of the
conversation.
5. Each time the Robotic Automation client processes a task, it returns a
response to the Real-Time Server, and the server saves the results to the
database for reports and analysis.
6. Additional tasks are sent (one at a time).
7. The invoker sends a request to end the conversation.
Designer Automation Essentials Robotic Automation Part 2

Real Time Robot – Sync Conversation

Robots
RT ServerID
Conversation
Get my
Change Package
package
my details
changed
details
package

Invoker Dedicated Robot


Begin Conversation Conversation ID End Conversation

• When the initial task is sent to the server, the server creates a
conversation and assigns a dedicated robot.
• This robot then executes this initial task and responds to the
invoker.
• The conversation continues, with each of the tasks executed by
the same robot. The robot sends a reply to the invoker after
each task.
• This continues until the conversation ends (a conversation ends
when the invoker sends an end conversation call or the
conversation times out).
• NOTE: A conversation can last up to two hours after which it will
be terminated.
• If a synced invocation is orphaned, backlogged or removed, the
conversation is closed by the microservice
Designer Automation Essentials Robotic Automation Part 2

Enabling Sync Invocation (Conversation Mode)

• To enable sync invocations (conversation mode), you must edit the


RTClient.exe.config file on each robot.

• When it set on false the robot will not check the sync queue
• This configuration is only relevant for robot client config file
Designer Automation Essentials Robotic Automation Part 2

How to Create a Sync Invocation - Begin Conversation

Invoker Idle Timeout

User defined business entity to


hold the method’s return value
Drill down to Library
Objects->Robotic
Automation Service->
Begin Conversation

• Use the Begin Conversation method to send a request to begin


a conversation with the Real Time Server.
• You must specify the invoker idle timeout (this timeout checks
the idle time between the begin conversation response and the
first invocation.
• It then checks the time between the first invocation response
and the second invocation, and so on).
• The Real-Time Server creates a conversation ID.
Designer Automation Essentials Robotic Automation Part 2

How to Create a Sync Invocation - Invoke Sync

2 Select the workflow


3 Select the Conversation ID

4 Select the Priority

1 Drill down to the Sync


Invoke function of the
desired project

• The Priority: This only impacts the first invocation inside a


conversation, as once the first invocation is executed, a
dedicated robot services the conversation.
Designer Automation Essentials Robotic Automation Part 2

How to Create a Sync Invocation - End Conversation

Assign the BE that holds


the Conversation ID

Drill down to Library


Objects->Robotic
Automation Service->
End Conversation
Designer Automation Essentials Robotic Automation Part 2

Get Robot Response

Create an instance of Sync


Automation Response

Automation Result is the


property that holds the response
Designer Automation Essentials Robotic Automation Part 2

Get Robot Response Example

When the Invoker gets


the result from the Robot

Assign the result to the instance


of Sync Automation Response
Designer Automation Essentials Robotic Automation Part 2

LIVE DEMO
Sync Automation Exercise
• Update the Robotic Workflow
• Add logic to check if the gift that the customer chose contains space(“ “) and
set the business execution accordingly
• If the gift contains space, set the result to: The gift is Invalid
• Else, set the result to: The gift is Available
• Republish and assign the solution to the RtraTeam1 team
• Update the invoker
• Update the robotic reference to the latest published version
• Create an instance of Sync Automation Response and present it in the callout
• Add a Sync invocation
• Test your solution
Designer Automation Essentials Robotic Automation Part 2

SCHEDULING
ROBOTS
Designer Automation Essentials Robotic Automation Part 2

Robot Service Schedule

1 Go to Administration tab
 Select Profile View in
the Robotic Automation
branch

2 Click the add profile


button and name it

• It is possible to create a schedule profile and assign it to a team


that contain robots
Designer Automation Essentials Robotic Automation Part 2

Robot Service Schedule

3
Schedule each day

4
Click Apply All

• There are 4 scheduling options:


• On – the robots will be active all day.
• On Between – when selecting this option it is require to choose
a time frame in which the robots will be active.
• Off – the robots will be inactive for the entire day.
• Off Between - when selecting this option it is require to choose
a time frame in which the robots will be inactive.

• Clicking Undo All will undo the last changes you made.
Designer Automation Essentials Robotic Automation Part 2

Robot Service Schedule

6
Select a team

5
Click Assign By Team
7 Click the Add
button
Designer Automation Essentials Robotic Automation Part 2

Robot Service Schedule

8
Choose which profile to
assign and click OK

9 Click Apply
Changes
Designer Automation Essentials Robotic Automation Part 2

PRIORITIES
Designer Automation Essentials Robotic Automation Part 2

Task Priority

• In the Designer, when the Invoke function is selected, the ‘Priority’


parameter can be changed to High or Low (Default is Medium)
• If a 3rd party invoker is used, this parameter will be Medium unless defined
otherwise
Designer Automation Essentials Robotic Automation Part 2

Task Priorities
5

4
3
NOTE 2
Be aware not to over prioritize 1
your solution
Designer Automation Essentials Robotic Automation Part 2

Automation Queues Architecture

• There are three automation queues:

Sync Scheduled Async


Automation Automation Automation
Queue Queue Queue

• Sync Automation Queue is used for Real-Time robots. The process begins
when a request to initiate a conversation is sent by another client or 3rd
party application. Then, when the first invocation will enter the queue a
dedicated robot will be assigned to serve the conversation until it ends. A
conversation can include multiple invocations for different tasks.

• Scheduled Automation Queue is used for scheduled invocations which


were created in the Automation Portal. This is used for periodic tasks like
maintenance tasks.

• Async Automation Queue is used for tasks which were invoked by a 3rd
party application or a classic invoker (another attended Client).
• As opposed to the sync queue, those tasks are processed asynchrony by
any available robot.
Designer Automation Essentials Robotic Automation Part 2

Automation Queues Architecture

• Priorities:

• First invocation priority + FIFO

Sync Queue

• Time range + FIFO

Scheduled Queue

• Priorities + FIFO

Async Queue

• The unattended client (Robot) checks the three queues in the following order: sync,
scheduled and then async.
• The robot filters the tasks based on the solutions assigned to its team. For example,
if solution A is assigned to the robot’s team, and there is a task from solution A in
the sync automation queue, it pulls the task. If not, it proceeds to check the
scheduled automation queue, and so on.

• In the Sync automation queue, priorities can be set for the first invocation inside a
conversation. This impacts the only the first invocation, as once the invocation is
executed, a dedicated robot services the conversation. High priority tasks are
processed first, followed by medium priority tasks and finally low priority tasks. Tasks
in the sync automation queue with the same priority are processed on a first in, first
out basis.
• In the Scheduled automation queue tasks are processed according to the time range
which was set to them. Tasks with the same range are processed on a first in, first
out basis.
• In the Async automation queue tasks have priorities assigned to them by the
invoker, and are processed accordingly. High priority tasks are processed first,
followed by medium priority tasks and finally low priority tasks.
Designer Automation Essentials Robotic Automation Part 2

Automation Queues Architecture


• Cluster environment

Node 1 Node 2

Sync Scheduled Async Sync Scheduled Async

Robot Robot Robot Robot

• In a cluster environment, each node has all three automation


queues. The robot processes the tasks in the queues on its node
first so tasks are processed in the following order:

1. Sync automation queue tasks (giving priority to conversations


where the first invocation has a high priority, then medium
priority and finally low priority)
2. Scheduled automation queue tasks
3. High priority async queue tasks
4. Medium priority async queue tasks
5. Low priority async queue tasks
Designer Automation Essentials Robotic Automation Part 2

Automation Queues Architecture


• Cluster environment

Node 1 Node 2

Robot

• If there are no tasks available to a robot in its node, tasks from other node
will be distributed across the nodes and the robot will start to process
these tasks. A robot completes all the tasks (at all priority levels) in the
async automation queue on their node, before taking tasks from a
different node. As a result, in some cases low priority tasks on one node
will be processed before high priority tasks on a different node.

• The robotic client signals node 1 its availability. Since node 1 queues are
empty, this triggers the sharing process, in which tasks are transferred
from node 2 to node 1. Those tasks are executed by the robot according
to the same algorithm discussed earlier.

• The process is handled by the ActiveMQ and the spread of the task is
determine by its algorithm.

• NOTE: The master node is responsible for the network of brokers and
must be up to use shared queues. If the master fails, each node will
process their own tasks only.
Designer Automation Essentials Robotic Automation Part 2

In this lesson we covered:


Summary
• The concept of Sync Robotic Automation

• Invoking a Sync Conversation

• Scheduling Robots

• The concept of task queues and priorities


Designer Automation Essentials Robotic Automation Part 2
Designer Automation Essentials Automation Portal

AUTOMATION PORTAL
Designer Automation Essentials Automation Portal

Lesson By the end of this lesson you will be able to:


Objectives • Use the Desktop Client Control Room and Dashboard

• Use the Robotic Client Control Rooms and Dashboard

• Schedule a task for Automation

• Manage Passwords

• Use the Admin Functions


Designer Automation Essentials Automation Portal

Automation Portal

• The Automation Portal is an easy way to monitor and control your APA
system. The Portal is divided into three modules:

Desktop Client Robotic Client Admin

• Desktop Client - You can see a Dashboard of all client statues or


drill down to the Control Room where you can receive more
details and perform some actions.
• Robotic Client - If you have a license for Robot Automation you
use the Robotic Client to view and manage your robots and your
scheduled and non-scheduled tasks.
• Admin - Here you can perform administrative tasks such as
assigning roles which can limit each user's access to their own
area.
Designer Automation Essentials Automation Portal

Using the Automation Portal

• To access the Automation Portal click on the icon:

Verify that the URL for the shortcut is in the following form:
https://<Server FQDN>:1912/webapps/rtclients

The Automation Portal only works in a secured environment (HTTPS)

• Login page:

1366 x 768px

Best viewing experience

• Automation Portal is supported only on the following web


browsers:
• Google Chrome Microsoft
• Internet Explorer 11 and higher
• Minimum screen resolution is 1366 x 768 px.
• Automation Portal only works in a secured environment
(HTTPS).
• NOTE: Verify that the URL for the shortcut is in the form:
https:/FQDN:1912
Designer Automation Essentials Automation Portal

Desktop Client
Designer Automation Essentials Automation Portal

Desktop Client Dashboard

The Desktop Client Dashboard provides you with a graphical


view of the Real-Time Client machines in your organization
Designer Automation Essentials Automation Portal

Desktop Client - Dashboard

Client Status – RT Client


running or not

Click any pie chart to open the Control


Room with the relevant filters applied

View the client file deviations


(aligned/not aligned with the
reference client) for the selected
team and its entire sub hierarchy

Clients which have been assigned a solution


but have not yet been loaded/ clients that
didn’t yet load the latest assigned solution
Designer Automation Essentials Automation Portal

Desktop Client Control Room

The Control Room provides you with a view of the


Real-Time Clients in your organization
Designer Automation Essentials Automation Portal

Desktop Client - Control Room

Reference Client

RT Client RT Client RT Client RT Client RT Client RT Client RT Client RT Client RT Client

• It is considered best practice to set a reference client


• The reference client is the client used as a standard for all other clients.
It is generally a client that is installed on the administrator's machine,
and is updated with all latest versions and .dll files. The other clients are
then compared to this reference client.
• The reference client appears pinned at the top of the list of clients
For each client (other than the reference client), the following installed
files are compared with the versions of the reference client files:
• Program Files: *.exe and *.dll in the directory where the Real-Time
Client is installed, typically, C:\Program Files\NICE Systems\Real-Time.
• Config Files: *.config, *.cfg and *.xml files in the Application Data
directory.
Designer Automation Essentials Automation Portal

Desktop Client - Control Room

Click the menu button and set a Client to be


the reference version or to remove it
Designer Automation Essentials Automation Portal

Desktop Client - Control Room

Filters Client properties and actions

• You can filter Clients upon any of the following:


• Client state – online or offline
• Clients with solution updates – solution has been assigned but not yet downloaded
• Clients aligned with reference client – client dll and config files match the reference client
• Teams
• Loaded Solutions – solution versions loaded by the clients
• Assigned Solutions - solution versions assigned to the clients
• Client Properties:
• OS Login - The login details for the machine on which the client is installed.
• Host Name - The machine name on which the client is installed.
• User Name - The Real-Time client user name.
• Time in State - The length of time the client has been in its current state.
• Solution Name - The name of the solution installed on the client machine.
• Solution Version - The version of the solution installed on the client machine.
• State - Indicates whether the client is:
• Online or offline
• File alignment with reference client
• Client is pending a solution update

• NOTE: When you clear the filter, the unchecked options still appear. To remove these, press CTRL+R to
refresh the page.
Designer Automation Essentials Automation Portal

Desktop Client - Control Room

Indicator whether the


Client is running or not
(Online vs. Offline)

Dll and config file


alignment with
reference client

Solution has been assigned


but not yet downloaded

Filters Client properties and actions

• State - Indicates whether the client is:


• Online or offline
• File alignment with reference client
• Client is pending a solution update
• Reference client
Designer Automation Essentials Automation Portal

Desktop Client - Control Room

Solution assigned
and loaded

File version mismatch

Click for additional


Config files mismatch Client information

• By clicking the info button you can view additional information


about the selected Real-Time Client, over and above what
appears in the Control Room grid.
• Use the info window for further client investigation such as list
of files that do not match or multiple solution assignments.

• If all the program files match then an All installed file versions
match the reference file versions message appears.
Similarly, if all the config files match, an All installed config files
match the reference config files' message appears.
Designer Automation Essentials Automation Portal

Restarting Real-Time Clients

• An administrator can remotely restart the client from the Automation


Portal:

Request Restart Force Restart

• Real-Time Clients sometimes need to restarted to load a new solution,


update a configuration file, or if the client freezes.
• An administrator can remotely restart the client from the Automation
Portal without the need to physically be at the machine or sign in with
their own user ID
• Request Restart – A message pops up on the agent's workstation, asking
to restart. If the agent accepts the request, the Real-Time Client is
restarted. This option enables the agent to complete their work and
save all files. If the agent rejects the request, the administrator can send
it again later or force a restart, the restart request does not
automatically get resent
• Force Restart - This immediately restarts the Real-Time Client. The agent
does not receive a warning message. If an agent is in the middle of a
solution, it will not be completed. The agent's files will not be saved.
This option should be used with caution.
Designer Automation Essentials Automation Portal

Restarting Real-Time Clients

• To restart Real-Time Client remotely:

Locate the client you want to restart and then


click on the three dots | |

Select Request Restart or Force Restart

If you request to restart, a message Respond to the confirmation


will pop up on the agent's workstation,
asking him to restart

• Note: Make sure you have permissions to edit Clients


Designer Automation Essentials Automation Portal

Restarting Real-Time Clients

• To see the status of the restart action:

Click on the Information Window button

Refer to Last Remote Operation

• If the agent rejected a restart request, you can resend the


request later or force a restart. The restart request does not
automatically get resent

• All actions are reported in one of the following log files:


• On the Real-Time Server:
• <Install Dir>\RTServer\logs\RTServer.log
• <Install
Dir>\RTServer\logs\RTSMicroServices\RTServerMHService.o
ut.log
• On the Real-Time Client:
• <Install Dir>\RTClient\logs\RTClient.log
Designer Automation Essentials Automation Portal

Robotic Client
Designer Automation Essentials Automation Portal

Enabling Robotic Client Panels In Automation Portal

1
Go to Administration tab

3
2
Select
Select ‘System ‘INTERNAL’
Configuration’
4
Set ‘Display Robotic
Automation Panels’ to ‘true’
and click ‘Save’

*Using Robotic Client requires a separate Robotic Automation


license.
• In order to use the Robotic part of the Automation Portal we
first need to enable it.
This can be done from the Designer or directly from the Server.
Designer Automation Essentials Automation Portal

Robotic Client Dashboard

The Robotic Client Dashboard provides a


graphical view of the active and completed tasks
Designer Automation Essentials Automation Portal

Robotic Client Dashboard

• The Robotic Client Dashboard has two widgets: Global(default) and


Detailed. Completed task
divided by result

Data can be filtered by


different time periods

Sort by team
Total number
of tasks
Click any pie chart to open the Control Room with the relevant filters applied

• Global(default)- provides a graphical view of the active and


completed tasks.
• The dashboard is automatically updated approximately once
every 60 seconds.
• To manually refresh the dashboard, press F5 or click the refresh
icon.
Designer Automation Essentials Automation Portal

Robotic Client Dashboard

• The Robotic Client Dashboard has two widgets: Global(default) and


Detailed.

Active Tasks can be Pending in the


queue or Processing by a robotic client

Total number
of tasks

• The Active Tasks area provides a color-coded pie chart (in


percentages) of the active tasks (Queued or Processing). The
total number of active tasks, appears in the center of the chart.
Designer Automation Essentials Automation Portal

Robotic Client Dashboard

• The Robotic Client Dashboard has two widgets: Global(default) and


Detailed.

Filter by specific Tasks


Filter by time periods

Completed tasks are


divided by different
Tasks and results

• The Detailed pane view displays a graphic view of how many


times each task ran.
• Up to 10 tasks can be shown at a time. You can select which
tasks to show. The default is to show the top 10 tasks by priority.
• Priority was determined when the task was invoked. Priority
cannot be changed
Designer Automation Essentials Automation Portal

Task Control Room

• View task status


• Filter and search for specific tasks, and view task details
• Remove tasks that are waiting in the queue and have not
started
Designer Automation Essentials Automation Portal

Task Control Room

Robotic Task name


Task type
Invocation date
Time spent in Queue
Processing Time
Completion Time
Task Priority
Task Status

• What you can do in this view:


• Identify Type of Task
• Search for a specific task - Type in the Search field. The Task Name and Priority
columns are searched, as well as the parameters in the Info window. The search
finds partial words or you can use wildcards.
• Sort according to any of the columns shown except for Time in Queue and
Processing Time.
• Remove a task - Select one or more tasks and click Remove. This removes the
task from the queue. It does not delete the task. You will still see the task in the
Tasks Control Room for tracking purposes.
• View task details

• By default, up to 100 pages of tasks appear in the Tasks Control Room. This
number of pages is configurable
• NOTE: from version 6.7, all times that appear in the Robotic Client module are
shown in local time. Previously, in earlier versions, the times shown in the
Dashboard and Task Control Room were in UTC
Designer Automation Essentials Automation Portal

Task Control Room- Task Type

A sync Sync Scheduled


A task that is invoked by an A task that is invoked by an
attended client or third party attended client or third party A task that is invoked by a
application application as part of a schedule
conversation(dedicated robot)

• Identify Type of task:


• A sync -A task that is invoked by an attended client or third
party application. This task will run only one time.
For example, an attended client invokes a task to place and ship
an order.
• Sync -A task that is invoked by another robot. This task is part of
a conversation.
For example, canceling an order is initiated by an attended
robot, but then that robot invokes a different robot to log the
cancellation and send a confirmation message.
• Scheduled-A task that is invoked by a schedule. A separate
instance of the task appears for each time that it is invoked by
its schedule.
For example, if a schedule is set to run Monday - Friday, then
each week you will see 5 instances of this task
Designer Automation Essentials Automation Portal

Task Control Room- Task Status

Succeeded: Tasks that finished with no errors

Business Failure: From a technical aspect the robot completed the workflow
successfully. However, from a business perspective the workflow failed

Technical Failure: Tasks can fail for technical reasons such as a robot was unavailable,
or in the case of a scheduled task, the end of the starting range was reached and the
task never started or was forced to stop

Processing: Tasks that are currently running

In Queue: Tasks that have been invoked and are waiting for a robot

• Business failure: For example, if the workflow is intended to


transfer funds from one account to another, but the balance is
insufficient, the workflow cannot be completed, but not
because of a system or technical problem. Causes for Business
Failures are defined in the Designer by a Business Entity called
'Business Execution Status'.
• Processing: You will not see these tasks when you filter by team
because the robot that ran the task is not identified until
completion
Designer Automation Essentials Automation Portal

Exceptions in RT Client

• When a technical or a business condition is not met, there is a break in


the RT Client workflow. This break is called an exception.

• Real Time Client has two exceptions types:

Business Exceptions Technical Exceptions

• Even if there are many exceptions while the workflow is


running, the workflow might still succeed. You can review the
exceptions in the Task info dialog box after the workflow is
complete. All exceptions are stored in the RT Server database
• Business Exceptions: If the business logic set in a solution does
not match a condition in the RT Client a business exceptions
occurs. A business exception will be raised by RT Client if
BusinessExecutionStatus flag is set to “False” while execution of
a workflow.
Designer Automation Essentials Automation Portal

Technical Exceptions

Technical Exceptions

The task fails due to flaws in


Incorrect Parameters The task fails due to entry of execution. For e.g. division by 0,
incorrect number parameters
Execution Exception file not found, incorrect number
Exception
format, etc.

Occurs when the task times-out Occurs when the task is not
Execution Timeout during its execution. This could be In-queue Timeout picked up from the queue after
Exception(Orphan) due to a disconnect between RT Exception (Backlog): end of the Backlog Timeout value
Server and the RT Client in the Server Configuration

• If an exception occurs inside the work-flow, libraries, rules and


transitions a technical exception occurs. Technical exception also
includes In-queue timeout and Execution timeout
• A Robotic RT Client is capable of handling exceptions for the following
libraries: Math, Clipboard, File, Launch In Context, Conversion, Regular
expressions, Administration, Environment, Text, Remote Channel,
Customer Entity, Real-Time Authentication, Business Data, Web Site,
Data Base Table, Data Base Server Command, Data Collection, Call-out,
Business Entity, Run Time Functions, Credential Management, Date
Time, Encryption, Error Handling, Launch Bar, Location Based Cases, MS
Office Functions, Password Management, Robotic automation service,
Value Mapping.
• Apart from the above libraries, RT Client is also capable of handling
exceptions due to custom library objects
Designer Automation Essentials Automation Portal

Exception Details on Task Info page

Viewing Additional Task


Info and Parameters

• Here is more information about each task than can be seen in


the Task Control room, such as the hostname of the robot that
performed the task and parameters that were sent to the task
at the time it was invoked.
• Only manually invoked tasks send parameters. You can not edit
parameters in this window
Designer Automation Essentials Automation Portal

Task Control Room- Removing a Task from the Queue

A removed task remains in the Task Control


room for tracking purposes.
Removing a Task
You can apply a filter to hid the removed tasks

You can only remove a task that did not start


(status = In Queue). A task that currently
running cannot be removed.

• A task that is removed is no longer included in Dashboard


statistics.
• Remove a task - Select one or more tasks and click Remove .
This removes the task from the queue. It does not delete the
task.
• You will still see the task in the Tasks Control Room for tracking
purposes. If the task was a scheduled task, it will it be re-
invoked at its next scheduled time. To re-invoke a manual task,
you have to use the re-invoke API.
Designer Automation Essentials Automation Portal

Task Schedules

Tasks that do not require a manual trigger and can be run by an


unattended client (robot) can be prescheduled to enter the task queue
at regular intervals. Once a task is in the queue, it will run when a robot
becomes available.

• Scheduling tasks requires a Robotic Automation license.


Designer Automation Essentials Automation Portal

Scheduling a Task

To make a change to a
Enable a Schedule
single schedule, click a
schedule's Action menu
Delete a Schedule

Disable a Schedule

• Enable a schedule: Reinstate a schedule that has been disabled.


The task will be invoked at the next scheduled time. Scheduled
times that passed while the task was disabled will not be
invoked.
• Disable a schedule: Stop a schedule from sending more tasks to
the queue.
• Delete a schedule: Tasks that are already in the queue from this
schedule will not be deleted and will run as scheduled.
• Editing changes made to a schedule will not affect tasks that are
already in the queue, only those that haven't been invoked yet.
Designer Automation Essentials Automation Portal

Scheduling a Task

2 Select a Task
from the list 1 Click New

3 Select the Recurrence

4 Set the Starting Range

5 Click Save

• Task Name: only published tasks with no parameters can be scheduled


A task can be scheduled more than once-for example, schedule a task
that updates the currency rates on your website at 9:00 am and then
again at 5:00 pm. This requires 2 separate schedules for the same task.
• Starting Range: When you create a schedule, you set a time range for
the task to start. If the task does not start within that range, it will be
purged from the queue and will enter the queue at it's next scheduled
time slot.
• For example, A task is scheduled to start daily between 8:00am and
9:00 am. On Monday at 9:00 am it hasn't started because a robot wasn't
available(becomes a Technical failure), It will not run on Monday but will
re-enter the queue on Tuesday at 8:00 am.
• Once a task schedule is created, the schedule invokes its task at each
scheduled time.
Designer Automation Essentials Automation Portal

Password Manager

In the Passwords section of the Robotic Client module, you can define
all applications and credentials for all robots. Different credentials can
be assigned for each team of robots.
Designer Automation Essentials Automation Portal

Centralized Credential Management

• To access applications, robots must have valid credentials to


these resources.
• These applications and credentials can be defined in the
Automation Portal Password Manager.
• Different credentials can be assigned to each team of robots or
to a specific robot.
• The robot uses the new CCM microservice to pull the
credentials on demand for the applications from the Centralized
Password Management repository.
• The passwords are encrypted and stored in the RT CCM DB and
the data is secure both at rest and in transit.
Designer Automation Essentials Automation Portal

Adding Applications for Password Control

2 Click New

1 Go to Robotic Client>Password 3 Enter Application Name


Manager>Applications

4 Description(optional)

5 Click Save
Designer Automation Essentials Automation Portal

Adding Applications for Password Control

3 Click New

4 Select one robot or all users


1 Go to Robotic Client>Password
Manager>Credentials 5 Select an application

6 Enter a valid user name

7 Enter a valid password

8 Enter an expiration date for


2 Select a team the password

9 Click Save

• User - You will see only the robots who belong to the team
selected in the Organizational Hierarchy. Select one robot or All
Users (all the robots in the team that was selected in the
Organizational Hierarchy).
• Application - Select one application.
• User Name - Enter a valid user name that will be recognized by
the application.
• Password - Enter a valid password. Automation Portal does not
validate passwords.
• Expires - Enter an expiration date for the password
Designer Automation Essentials Automation Portal

How to access Password Management in the Designer


1 Go to Library>Predefined BE
Types>Application Login Info

2 Create an Instance
4 Assign the return value of the
Get Credential for Application
3 Create a Function into the Application Login Info
Instance

CRM

5 Choose the Application


Designer Automation Essentials Automation Portal

Robot Control Room

In the Robot Control Room you monitor and manage your robots.
Here is where you will see your robots and their current activities
Designer Automation Essentials Automation Portal

Robot Control Room- Managing Robots

Restart the
Filter the list to show only
selected robots
robots in one state

State

Idle
Processing
Sleep
Inactive

• Restarting a Robot: Robots can be restarted from the Robot Control


room.
• If a robot is in the middle of a task when restarted, the task is not
completed and appears as a technical failure in the control room.
• When you restart a robot, all new solutions and updates to existing
solutions are automatically downloaded to the robot
• Robot States:
• Idle - The robot sends a 'keep alive' notification and listens to the
queue but is not processing any solution currently.
• Processing - The robot sends a 'keep alive' notification and listens to
the queue and is currently processing a solution.
• Sleep -The robot sends a 'keep alive' notification but is not listening to
the queue. This indicator will also be displayed when a robot is
inactive based on a schedule profile defined in the Real-Time
Designer.
• Inactive - The robot does not send a 'keep alive" notification,
indicating that it is currently inactive.
Designer Automation Essentials Automation Portal

Robot Control Room - Scheduling a Robot to Work

Always on – The robot runs Pause - The robot


continuously enters a sleep state

Scheduled- The robot runs according


to the schedule defined in its profile
Designer Automation Essentials Automation Portal

Task Schedule Vs Robot Schedule

Task Schedule Robot Schedule

What you schedule? When the Task should run When a Robot should be active

Why you use the schedule? Invoking tasks that do not Flexibility to increase or decrease
require a manual trigger and robot activity around important
can be run by an unattended events such as updates, system
client (robot) maintenance and more

Where you set the schedule? Task Schedules in the Real Time Designer and Robot
Automation Portal Control Room
Designer Automation Essentials Automation Portal

Admin

• The Admin module is where you import users to the server, set
up roles and permissions, and also assign solutions to the users
by teams. You can also change passwords for the databases,
FTP connections, and version management systems installed in
the RT Server.
Designer Automation Essentials Automation Portal

Roles & Policies

Automation Portal Authorization is the process of authorizing or limiting user access

• For any admin task, make sure that the OpenAM Administrator
has assigned you to the Admin group with the respective
authorization policies. The authorization policies in OpenAM set
access to every function in the Admin module.
Designer Automation Essentials Automation Portal

Enabling Authorized Access

• For policies and roles to be enforced, the Configuration Management


parameter Content authorization enabled on the Real-Time server
must be set to true.

Once Content authorization is enabled, you must set


Note a role for your user, or else no data will be presented
in the automation portal

• The default setting is false, in which case you can define roles
and polices, but they will not be enforced; any logged in user
will have full capabilities.

• Server branch
• False = free access for all

• True = polices are enforced


Designer Automation Essentials Automation Portal

Admin Authorization Overview

Finance
Robots
Finance user with View only
privileges for Robots

Finance
Attended
Clients
Finance user with Edit privileges
for Robots and Attended Clients

HR
Robots
HR user with Edit privileges for
Robots

View only Edit Robotic Attended

• Automation Portal Authorization is the process of authorizing


or limiting user access. Authorization includes:
• What users are allowed to do - some users can only view control
rooms and other users can also perform actions such as creating
schedules or removing tasks.
• Which groups each user is allowed to access - viewing and other
access privileges are given per team(groups).
• What areas of the Automation Portal are accessible to each user
-users can be given limited access to only part of the control
room applications.
Designer Automation Essentials Automation Portal

Admin Authorization - High level workflow

Define Role Assign Content Team Create Policy

On which group of robots or Which team of admin users


Automation portal module and
clients machines can a role be can have privileges from the
privileges
employed content team

• First you create Roles-Each role is one or more resource-


permission combination. The resources are either clients, tasks,
or robots. You define which permission is allowable for each
type of resource. For example, one role can give permission to
edit tasks, but only to view clients. Another role can give
permission to edit tasks and clients.
• Next you assign roles to teams - These are called Content
Teams. Teams are groups of either attended (agent) or
unattended (robot) client machines. Each team can have more
than one role and the same role can be assigned to more than
one team.
• To complete the security process, you create Policies - For each
policy you pick a group of admin users and assign one or more
Content Teams.
Designer Automation Essentials Automation Portal

Roles and Authorization Privileges

Roles Categories Permissions

Clients View

Tasks Edit

Robots *Restart

* Restart permission is only relevant for Robots Category


Designer Automation Essentials Automation Portal

Roles and Authorization Privileges- Example

Clients Permissions

In the Desktop Client view the:


▪ Dashboard
View
▪ Control Room
This includes searching and filtering the content

In the Desktop Control Room perform all actions such as:


▪ Set a reference client
Edit
▪ Remove a client
The user must also have the View permission

For more information about Roles and Authorization


Privileges, refer to the Automation Portal User Guide.
Designer Automation Essentials Automation Portal

Creating Admin Roles

1 Click New

2 Give the Role a meaningful name

3 Select a Category

4 Select a Permission

5 Click Save

• You can select more Categories and more Permissions.


Designer Automation Essentials Automation Portal

Creating Content Teams

1 Click New

2 Give the Content Team a meaningful name

3 Select one or more Roles

4 Select one or more Teams

5 Click Save
Designer Automation Essentials Automation Portal

Creating Admin Policies

1 Click New

2 Give the Policy a meaningful name

3 Select a Role Assignment

4 Select a Group

5 Click Save
Designer Automation Essentials Automation Portal

Admin Authorization Example


1 Define a Role

View
Tasks
Edit

2 Assign Content Team

Tasks View David, IT Manager in a Bank


Edit Needs to have permissions
to edit the Task Schedule of
Finance the Finance robots team
Robots

3 Create Policy

Tasks View
Edit
Finance
IT Managers Robots

• In order to meet David’s needs we first need to define a Role:


David needs to edit the Task Schedule so the Role category will
be Tasks and the permissions will be view and edit(the user
must have view permissions in order to have edit
permissions)[‘What?’]
• After we defined the Role, we need to assign it to a content
team-David needs to be able to edit the tasks of the Finance
robots, therefore we assign the Schedule Tasks role to the
Finance robots group.[‘On who?’]
• Finally, we need to give David permissions to edit scheduled
tasks : David is part of the IT Managers group so we need to
create a policy that enables the IT Managers group to preform
those actions and we do it by assigning the content team to the
IT Mangers group.[‘Who is?’]
Designer Automation Essentials Automation Portal

Solution Assignment by Team

Assigning Published solutions that were created in in Real-Time Designer or


Automation Studio to the clients(teams)
Designer Automation Essentials Automation Portal

Assigning Solutions by Team

• Make sure that you have the required permission to view or assign
solutions to a team:
Designer Automation Essentials Automation Portal

Assigning Solution by Team

3 Click Assign
2 In the Organizational
Hierarchy, select a team

1
Go to Admin ->
Solution Assignment -> 4 Type the solution name
click Assignment - By
Team
5 select single or multiple solutions

6 Click Save
Designer Automation Essentials Automation Portal

Removing Assignment
Multiple Solutions: Select on or more
solutions and click Remove Assignments

Single Solution: Click the Remove


Assignment icon on each solution row
Designer Automation Essentials Automation Portal

Editing Assignment
Multiple Solutions: Select more than one
solution, and then click Edit Assignments

Single Solutions: Click the Edit


Assignment icon on each solution row

• When you edit single solution, you can change:


• Version: Changes the version of the solution that is assigned to the
team
• Context: Description of the solution, which is visible to the Real-Time
Client users
• Load on Startup: Determines whether or not the solution loads when
the Real-Time Client is launched

• When you edit Multiple solution, you can change:


• Context: Description of the solution, which is visible to the Real-Time
Client users. When you leave this field blank, existing text for each of
the individual solutions is deleted
• Load on Startup: Determines whether or not the solution loads when
Designer Automation Essentials Automation Portal

the Real-Time Client is launched. The setting you choose


affects all selected solutions.
Designer Automation Essentials Automation Portal

Modifying Solution Inheritance

The Parent Solutions list contains solutions assigned to the


parent of the team selected in Organizational Hierarchy

1 In the Solution Inheritance


list, select a behavior type
2 Click Edit

• You can either add assigned solutions to team from its parent
team, or you can replace team solutions by their parent
solutions.
• Solution Inheritance types:
• Default: Displays solutions as per the inheritance behavior
defined in the Real-Time Server properties
• Inherit: Assigns solutions from the parent of the selected
team. The solutions that are common in the team and its
parent are listed under the Team Solutions list.
• Replace: Retains the solutions only assigned to the team. The
solutions in the Parent Solution list appears blank after
selecting this behavior.
Designer Automation Essentials Automation Portal

Modifying Connectivity Watcher Behavior

Select Enabled and set a Relearn Date to ignore


Select Enabled to activate the Connectivity previously gathered data and restart the learning mode
Watcher for all assigned solutions
Click Edit

• You can activate Connectivity Watcher and relearn this


capability for solutions assigned to a team. (Connectivity
Watcher recognizes connectivity breaks between the GUI on the
Real Time Client machine and the solution in run-time.
• Relearn Mode: Each Real-Time client which belongs to the team
will compare the Relearn Date to the last time the Connectivity
Watcher activated the learning mode and will begin
• The Relearn phase if the Relearn Date is newer.
Designer Automation Essentials Automation Portal

Importing Users

Import users into the RT Server, along with their team structure, via the
staticUsers.txt file
Designer Automation Essentials Automation Portal

Importing Users

• Import users into the RT Server, along with their team structure, via the
staticUser.txt file

Must contain these three main sections: The file name must be staticUser.txt
#Users, #User Groups, and #Groups

Each section in the file has a required


header section for the information

After each section, there must be a blank line


After the header section, you enter the user information
(each bit of user information must be separated by a comma)

• On the RT Server, the staticUser.txt file is located at this path :


<installation folder>:\nice_systems\RTServer\config\properties
• Important: Make sure the admin user who is importing new
users is mapped to the UserImportActions authorization policy
in OpenAM.
• Note: If no information is available, an additional comma is still
required
Designer Automation Essentials Automation Portal

Importing Users Via the Automation Portal

• You can Import Users to the server using one of these methods:

Run Import The User Import job imports the last uploaded file to the server

The file is uploaded to the RT Server, and a scheduled import job runs on
Upload to Server the server to import the users. The user import Job can be scheduled to
run at a specific time.

Users in the file are directly uploaded to the RT Server. The new user list is
Upload & Import immediately reflected in the portal

• Benefits:
• Ease of use for client
• Better User Interface
• Made User Import accessible over Cloud(Automation Studio)
Designer Automation Essentials Automation Portal

Run Import

• To Run Import:

Click Run Import

Go to Admin -> User


Manager-> click User
Import

• In this method, the User Import job imports the last uploaded
file to the server.
• Click Refresh, to view the User Import summary of this job.
Designer Automation Essentials Automation Portal

Upload To Server

• To Upload a user file to the RT Server:

Click Upload to Server

• In this method, the file is uploaded to the RT Server, and a


scheduled import job runs on the server to import the users.
• The user import Job can be scheduled to run at a specific time.
After the job has successfully run on the server, the new user
list is available in the Automation Portal.
Designer Automation Essentials Automation Portal

Upload and Import

• To Upload and Import user file to server:

Click Upload & Import to Server

Click Run Import

• In this method, users in the file are directly uploaded to the RT


Server.
• The new user list is immediately reflected in the portal.
Designer Automation Essentials Automation Portal

Import History

• To view a summary of the last import jobs:

Click Import History


Designer Automation Essentials Automation Portal

Role Assignment

Assigning Roles to Designer Users to determine which module(s) the user


can access
Designer Automation Essentials Automation Portal

Assigning Roles to Users

• To assign roles to a user: 3


Select the new role, and click Apply

Type in keywords to search in


all the columns

2 Select one or more users to


change the role

Click the User Info icon to see


the Role Assignment Details
1 Go to Admin -> User
Manager-> click Role
Assignment

• The contents in the Roles Assignment page will be visible if you


are mapped to the Roles Assignment authorization policy in
Open AM.
• You can assign roles to one or more users in the RT Server
• Select Exact Search to see the results that exactly match the
keywords.
Designer Automation Essentials Automation Portal

Password Manager

Changing the passwords of databases, version management systems and


FTP connections in the Real-Time Server

• Password management for system passwords in APA is done


through Vault (a third party tool).
• This method replaces manual password configuration and
provides a secure and robust way for system secret
management
Designer Automation Essentials Automation Portal

Changing System Passwords

• You can change the passwords of databases, version management


systems and FTP connections in the Real-Time Server from the Portal

• The Password change involves two steps:

1 2

Changing password in Finalizing password reset


Automation Portal on the RT Server

The steps to finalize password change on the


RT Server are different for each component
Please refer to the guide for more information

• For the Operational Database and DataMart passwords, change


the password on the RT Server database(before updating it in
the portal)
• To change the password, make sure that your log-in ID is
mapped to the VaultUpdateActions authorization policy in Open
AM by the administrator.
• Important: It is recommended that you change the password
during non-business hours as some of the steps involve
changing password in the database and restart of the services
on the RT Server.
Designer Automation Essentials Automation Portal

Changing Password in Automation Portal

2 Select a module icon

3 Enter New Password, Confirm


Password and click Save
1
Go to Admin -> click
Password Manager

• Note: Make sure that the password does not have any spaces.
Designer Automation Essentials Automation Portal

Summary
• Using the Desktop Client Control Room and
Dashboard

• Using the Robotic Client Control Rooms and


Dashboard

• Scheduling a task for Automation

• Managing Passwords

• Using the Admin Functions


Designer Automation Essentials Automation Portal
Designer Automation Essentials Solution Debugging

SOLUTION DEBUGGING
Designer Automation Essentials Solution Debugging

Lesson By the end of this lesson you will be able to:


Objectives • Debug Solutions

• Add Logging Appenders

• Search/Filter for Logs

• Troubleshoot in the area of Screen Elements

• React to Connectivity Watcher Alerts


Designer Automation Essentials Solution Debugging

Project Debugging Tools

• Designer gives you several tools to debug your Solution:


When… Project is not
Project Does Not
Produce Expected
Unexplained Error
Message /
Generated
Results All Else Fails

Then… Designer Syntax Error


Logical / Connectivity
Any Other Problem
Problem

Use… Messages Pane Monitor Tool Log Files

To… View Where to Fix


View or Assign Values
in Real Time or Invoke
View System
Messages and History
Functions

• When… defines the symptoms.


Then… defines the actual problem (bug).
Use… defines which debugging tool to use.
To… defines the debugging tool’s usage.
Designer Automation Essentials Solution Debugging

Designer
Messages Pane
Designer Automation Essentials Solution Debugging

Messages Pane Shows Error Messages


• Designer enables you to validate the correctness of specific objects in
your Project and of the entire Project as a whole.
• Only error-free Projects can be run or deployed.

Generating a Project
checks the current Project
Messages pane can and all its referenced
be shown for a single Projects
object

Messages pane
shows where (and
what) the error is

• 2 ways of looking for error messages: either for a single object –


if it is red-crossed in the objects tree, you can right click and
select Show Errors, or for the whole Project and its referenced
Projects, click Generate.
• In the Message pane, click any of the messages to go to the
problematic layer.
Designer Automation Essentials Solution Debugging

Common Error Messages


? For each error message:
1
•Define the problem
•Offer a solution

• Message 1
• The Problem: an automatically assigned data source was checked in
the instance’s data source tab, but no data source object has been
defined for it.
• The Solution: either select a data source or uncheck the auto-
assignment box.

• Message 2
• The Problem: the Function was defined a return parameter of a
certain Type, but one of the logical paths in the Function’s body
does not return anything. Usually happens when using loops (“if-
else” for example) and forgetting to return a value in one of the
possible outcomes.
• The Solution: either define a return value for the problematic path,
or remove the return parameter.
Designer Automation Essentials Solution Debugging

Designer Monitor
Tool
Designer Automation Essentials Solution Debugging

When to Use the Monitor Tool

Local RT Client must


be run in order to
monitor

Can be Used For… Cannot be Used For…


• Real Time Observation •History Observation
• Local RT Client Testing •Remote RT Client Testing
Designer Automation Essentials Solution Debugging

How to Use the Monitor Tool

Change Property values to monitor Invoke Functions to monitor


the effect on the RT Client the behavior on the RT Client

In the Properties tab look


for the Properties’ Values,
which are also editable

After assigning values to parameters


and invoking a Function, look for the
returned value, or a change in another
BE

• The Monitor will show only directories that relate to that


module – for example – only Projects that have Business Entities
will appear in the Business Entities window.
• Using the Monitor to observe can answer the following
questions:
• Is a certain Screen Element active?
• Was a BE’s value modified?
Designer Automation Essentials Solution Debugging

Monitoring Example

Your Solution turns


on a Rule when value
taken from the scree
n equals “Australia”.
Here’s what the
Monitor displays:

?
The Rule is not turned on when it’s supposed to….
Can you find the problem by viewing the Monitor?

• First, identify that the Rule is not turned on: 1. It has not turned
Green 2. Its properties have not been changed….
• Second, to debug the problem, look at the value that the
Monitor uses as this Rule’s dependencies, you can see the
Australia has a space after it.
• Since the Rule’s Condition is not fulfilled (“Australia” does not
equal “Australia “), the Rule is not turned on. We need to either
adjust the Condition, or trim the value from spaces before it is
saved into the “Travel” Business Entity.
Designer Automation Essentials Solution Debugging

Monitor: Top-Most Window

• For debugging purposes, you may be required to not always have the
Monitor as the top-most window:

Change to
False

• When this setting is changed to False, the Monitor window will


be minimized once started.
Designer Automation Essentials Solution Debugging

Designer
Log Files
Designer Automation Essentials Solution Debugging

Log Files Location and Appender Type


• Log files are saved in the installation folder.

• Rolling File Appender is set by default, producing a simple text file. But
other Appenders can be added and configured, such as: UDP, Event
log, Debug Appender etc.

• The Installation folder can be either C:\Program Files\NICE


Systems\Real-Time Designer or in the AppData folder
(depending on the what was configured during installation).
Designer Automation Essentials Solution Debugging

How to Add a Logger Appender


1
Click NICE menu 
Settings

2 In the Settings window, right click


Appenders  Add New
Element  Select new
Appender
Designer Automation Essentials Solution Debugging

How to Add a Logger Appender

3
Configure log destination
Logging will be done to the new settings
Appender, as well as to any other
Appenders listed here
Designer Automation Essentials Solution Debugging

Log Layout

• Conversion pattern under Layout specifies the message structure:

Logger thread – who


wrote
[Direct Logicthe logINFO
Thread] on the
EventHandlersLogger Entity
- The Event Logger
Handler 'New Event Handler' is being triggered. Event: ElapsedTime.
client Type Message
[Direct Logic Thread] INFO LibraryObjects - Math_Functions.SumIntegers - result=1

[Direct Logic Thread] DEBUG PhysicalObjects - Physical Object property changed - name: 'test.EDIT - .Text', old value: '1', new value: '0‘

[Direct Logic Thread] INFO Rules - RuleSet.EvaluateRule: The Rule 'New Rule' is Turn on, Invoking Then action
Logger
[ Level

• In the log file there will be also a date and time stamp for every
message (not shown here).
• For testing in a multiple Client environment for example, a
%Username string can be added to the Layout.
Designer Automation Essentials Solution Debugging

Logger Entity Types


• The messaging logging level is configurable by entity type:
Physical Screen Library Event
Biz Entities Rules
Objects Connectors Objects Handlers
POs State & Connector Functions Modified BE Rules State EHs State
Content plug-in State Values

System Communication Developer

CPU, Memory status etc. Client-Server Developing information

For example, if you have a problem with BE’s…


• Increase logging level for Business Entities to view relevant logging
messages
• Decrease logging level for all other entities (even turn them off), to avoid
unnecessary ‘noise’

• In order to configure the logging level, you must first select the
Entity to configure
Designer Automation Essentials Solution Debugging

Log Levels

Off No log data at all

System System messages only

Fatal Crucial errors

Error Only errors

Warning Warnings and Errors

Info Info messages (start, end, value changed)

Debug Errors, warnings and all steps that were performed

Errors, warnings, all steps that were performed including extremely


All detailed messages

• By default, logging level is Error for all Entities


• For example, when you use a support connector fix, change
logging level to All
Designer Automation Essentials Solution Debugging

How to Configure Log Levels


1
Click NICE menu 
Settings

2
Drill down to 4
Configure
Real-Time Client log level
 Logging 
3
Loggers Select Logger
Entity

5
Click OK

• Logging level can also be configured directly by editing the


RTClient.exe.config file, located in the installation folder
Designer Automation Essentials Solution Debugging

RT Client Log Archiving

2
Enable the Log
1 3 Archiving by
Go to NICE Settings  RT Insert how often
Client  Log Archiving to archive the log specifying a path
(minutes) of a shared
location
4
Define whether to archive based on the
Archiving interval (True) or only upon Agent
log out (False)

• The Log Archiving feature allows you to archive log files into a
shared folder, which enables the developer to save Real-Time
Client logs to a folder and review them whenever necessary.
• This feature is useful in organizations which use Citrix clients,
and all application data is deleted once the agent session closes;
or in environments with dynamic seating, in which agents move
around between workstations.
• The log will be archived as long as you specify an archive path
and if the Timer Enabled is set to False, the log will only be
archived whenever the agent logs out of their workstation.
Designer Automation Essentials Solution Debugging

RT Client Log Archiving

Shared Folder

Separate
directory per
user

• The next time the agent logs out (or if you have set Timer
Enabled to True), the archived file will be saved as a ZIP file with
year, month, and day of the archive and the index number of
the file (for example, if there are several archives a day). The
format will look like this: Log<yyyy><mm><dd>_1.zip.
Designer Automation Essentials Solution Debugging

Log Filter Tool

• For searching specific log messages, use the built-in Log Filter tool,
located at Installation Folder. 4
2
Click Select, browse to
1 Uncheck Real Time Set filter criteria the required log file
checkbox

6 Relevant messages will


appear according to search
3 parameters
Check log levels and
log type

5
Click Filter

• Log files can also be searched with text editors.


• Log files can be found under the installation folder (either
C:\Program Files\NICE Systems\Real-Time Designer\log or
%appdata%\Nice_Systems\Real-Time\log)
• Select one of the Designer logs to view logging during
development.
• Select one of the RT Client logs to view logging for the RT Client.
Designer Automation Essentials Solution Debugging

Log Filter Tool with UDP Appender

• Add and configure UDP Appender:

2
Configure log destination
settings
3
Add UDP Appender to
Appenders Reference list

1
Add UDP Appender to
Appenders list
Designer Automation Essentials Solution Debugging

Log Filter Tool with UDP Appender

• Make sure to open the Log Filter tool from the location defined in the
UDP Appender settings:
4 Check Real Time 6
Set filter criteria
checkbox

5
Check log levels and 7
log type Relevant messages will
automatically appear
according to search
parameters
Designer Automation Essentials Solution Debugging

Troubleshooting
Screen Elements -
Example
Designer Automation Essentials Solution Debugging

How to Troubleshoot Screen Elements

• The process of capturing a Screen Element consists of three primary


steps, each of which has a decision point that determines how to
proceed
Attempt to
Attempt to Attempt to Check If
Capture SE
Capture SE Locate SE Supported

If the Capture process fails…


A message is displayed and the SE is not added to the SE tree as a new branch

Checklist

 Check if the relevant connector is installed and enabled


Designer Automation Essentials Solution Debugging

How to Troubleshoot Screen Elements


Attempt to Attempt to Check If
Capture SE Locate SE Supported

If the Locate process fails…


A message is displayed

Checklist

 Check if the Application in which the SE appears in is open


 Select the top parent in the SE tree and then click the Locate button to locate it
 If the SE is located, then proceed to the next descendant in the tree and repeat

 Work your way down through the tree until you find the SE that has the
problem. Go to its Identification tab
 Check SE Type, Relation Types and Self Properties
 Locate Again to test your changes

• If the Locate process fails, the goal is to try to understand which of


identification parameters of the actual screen element or one of its
ancestors is not being identified.
• SE Type – if it does not properly describe the SE (for example –a window
instead of a button), change its property.
• Main Relation Type – If the SE in focus has a parent that is not always
displayed on the Agent’s screen, change its property.
• Additional Relation Type – This by default is None. Try to add more
anchoring information so that Designer can find the element.
• Self Properties – One of the self-properties for the SE may not be
appropriate. For example, it may not be generic enough and may
require use of wildcards. This involves testing the SE by typing different
values in it to see if one of the Self properties changes.
Designer Automation Essentials Solution Debugging

How to Troubleshoot Screen Elements


Attempt to Attempt to Check If
Capture SE Locate SE Supported

SE Functionality can fail when the following occur:


• The property is listed in the Properties area, but the Set column does not have a + , which means that a
value cannot be assigned to it
• The Function or Event that you want to invoke or capture on this SE is not present
• The Bindable column for a property does not have a +, which indicates that the property is not bindable

• Supported Functionality for each SE can be viewed at the SE


branch at Functionality tab.

• If the Bindable column is not marked for a property and you do


not know what is the specific event that indicates a change in
this property, then polling that property constantly does provide
a solution, but it may introduce a performance issue. In such
situations, for the purpose of screen capturing, the functionality
is considered to be not supported. The Bindable setting applies
to both Get and Set operations.
Designer Automation Essentials Solution Debugging

Connectivity
watcher

29
Designer Automation Essentials Solution Debugging

What Is Connectivity Watcher


• Enter Content Here

• Font Sizes:
• Bullet arial 24
• Bullet arial 20
▪ Bullet arial 18

• The Connectivity Watcher is part of the Real-Time Solution platform,


enabling users to detect connectivity breaks on the client machines
while a solution are running.
• The Connectivity Watcher automatically alerts when there is a
connectivity break, allowing to react by modifying or repairing the
project.
• Main Functionalities:
• Recognize connectivity breaks during runtime post deployment (such
as GUI changes or application modifications).
• Use statistic analysis of connectivity to analyze incoming events.
• Collect and analyze statistical data of the relevant events in order to
recognize abnormal behavior of screen components.
Designer Automation Essentials Solution Debugging

Connectivity Watcher – Operating Modes

• The Watcher has 2 operating modes:


• Learning Mode:

Information Statistical
Gathering Analysis

• In the Learning mode the watcher:


• Gathers information about the solution’s Screen Elements on an
agent's computer
• Performs statistical analysis on the data collected

• A meta data file is stored in the generated Solution’s folder


named: “Connectivity_Watcher.data”
• A data statistics file is stored in the AppData folder named:
{user’s name}_dproj_{solution’s name}.statistics

• An event is raised when the initial learning phase is completed


for the implementer to react to, while the
learning continues to run as long as the solution is working.
Designer Automation Essentials Solution Debugging

Connectivity Watcher – Operating Modes

• The Watcher has 2 operating modes:


• Learning Mode:
• Run-Time Mode:

Connectivity Alerting
Tracking Enablement

When the initial Learning mode completes, i.e. each Screen


Element was created and destroyed 120 times,
the Learning Finished event is raised for each Screen Element in
the solution.

During this mode the watcher:


• Utilizes the data compiled when the algorithm was running in
Learning Mode to track ongoing screen activity
• Verifies the Screen Elements’ activity is within the average
distribution of screen events
Designer Automation Essentials Solution Debugging

Connectivity Watcher Events

• The Connectivity Watcher raises 3 events:

Connectivity Watcher Learning Initial learning mode is over and run-


Finished time mode turns on

A Screen Element cannot be


Connectivity Watcher Warning detected within the
average distribution
A Screen Element cannot be
Connectivity Watcher Exception detected within the maximum
distribution

• If a connectivity break is detected, the Connectivity Watcher


issues the following events:
• Warning event - A warning event is displayed when a Screen
Element cannot be detected on the agent's computer within
the average distribution.
• Exception event - An exception event is shown in addition to
the Warning event when there is no Screen Element event
sent at all within the maximum time distribution.
Designer Automation Essentials Solution Debugging

Connectivity Watcher – Menu


Designer Automation Essentials Solution Debugging

Activating the Connectivity Watcher

1
Select a team

2 3
Check the Enabled checkbox Click Update

• Since the Connectivity Watcher is a tool which analyzes Screen


Elements in a specific solution assigned to a specific team, you
must first select a team to which the Watcher will be enabled.
Designer Automation Essentials Solution Debugging

Activating the Relearn Mode

1
Select a team

RELEARN

2 3 4
Check the Relearn checkbox Set the Date from when the Click Update
Relearn will begin

• In some cases a new learning period will be required, such as


when an application is changed – affecting the captured Screen
Element.
Designer Automation Essentials Solution Debugging

Connectivity Watcher – Handling Events

The Connectivity Watcher events are located under the Library Objects folder in the
Screen Connectivity Watcher folder.
Designer Automation Essentials Solution Debugging

Connectivity Watcher – Handling Events

After choosing an event its


parameters are available

Each event has 3


useful parameters

Each event has 4 parameters:


• Name – The name of the Screen Element which raised the event
• Sender of – The sender of the event (Connectivity Watcher)
• Solution – The name of the solution containing the Screen
Element
• User – The name of the user who is running the solution
Designer Automation Essentials Solution Debugging

Connectivity Watcher – Common Uses

• Send an Email • Write to Log file

Best Practice
Combine Write to Log function with the Log
Archiving feature as a complete operation
Designer Automation Essentials Solution Debugging

Summary
• Debugging Solutions

• Adding Logging Appenders

• Searching/Filtering for Logs

• Troubleshooting in the area of Screen Elements

• Reacting to Connectivity Watcher Alerts

• Designer gives you several tools to debug your Solution


• Messages Pane
• Monitor Tool
• Log Files

• Messages Pane helps you to find syntax problems – before running the
Client.

• Monitor displays values and allows you to set values in real time.

• Use the Log files when all else fails or to view history.

• You can add a Logging Appender to write logs to a different target.


Designer Automation Essentials Solution Debugging
Designer Automation Essentials Data Collection

DECISION SUPPORT:
DATA COLLECTION
Designer Automation Essentials Data Collection

Lesson By the end of this lesson you will be able to:


Objectives • Describe the goals of Decision Support features

• Define BEs as collectable

• Create and define Data Collection objects

• Use Data Collection Functions in the Business Logic Layer

• Test Data Collection logic in the Monitor


Designer Automation Essentials Data Collection

Decision Support
• Defined in Business Logic Layer
• Collects information from defined sources
• Investigates collected information for reporting and improved guidance
and assistance
Business Logic
Decision Support

Data Collection

Business Entities
Physical Objects

• Designer can also investigate the behavior of the Agents,


bottlenecks in customer handling, most-used parts of
applications and where mistakes are typically made. For
example: Average Handling Time, Conversion Rate.
Designer Automation Essentials Data Collection

Decision Support

• Designer provides insight and Decision Support based on its data


mining analytics.
Designer investigates this
collected information in order
to offer you the best
suggestions and assistance
throughout customer
interactions

Information is collected from


databases, from the
applications that are being
used and from a rich variety of
sources that you define

• Designer also investigates the behavior of the Agents,


bottlenecks in customer handling, most-used parts of
applications and where mistakes are typically made. For
example: Collect data about the interaction, Collect Time spent
in each workflow step, Average Handling Time KPI, Conversion
Rate KPI
Designer Automation Essentials Data Collection

What is Data Collection?

• Data Collection feature enables specifying the data to collect and store
in the RT database during runtime
• The idea is simple: track Designer entities so you can learn about agent
activity and interactions with the RT Client

Instances Rules Event Handlers Processes & Tasks Callouts LIC Items

RT Database

• A Data Collection enables you to collect information about the


interactions between an Agent and a customer and various
kinds of profiling information about the customers themselves,
such as the activities that they typically perform.
• This is done by tracking the activities performed in the RT
system in order to extract from it information that has relevant
business implications.
Designer Automation Essentials Data Collection

How to Use Data Collection

• 1 • Define future behavior according to the data collected


• Self Learning • Collect data from previous interactions to improve others

• 2 • Complete data that is not saved to regular DB


• Queries

• 3 • Select data collected to be presented in reports


• Reports

• RT creates a predictive model that modifies rules to affect RT’s


behavior and thus the Agents’ interaction with the customers.
For example, refrain from offering the same product to a client
that has refused to it in the past. Its self-learning features do
not require human interaction and independently modify RT’s
behavior for the company’s benefit.
• Example queries: Recent offers made to the customer, success
rate of various business actions, the reason the customer
refused an offer and so on.
Designer Automation Essentials Data Collection

What Data can be Collected?

• Data can be collected on any RT Entity, for example:

Rules Event Handlers Callouts

Rule Duration Event Handler Start Date Callout Position

Rule Instances Event Handler Instances Callout Shown Duration

More… More… More…

• Designer enables you to define for which RT elements


information is collected, such as Business Entities, Rules, Event
Handlers etc.
• RT collects a variety of information about each element that you
select.
Designer Automation Essentials Data Collection

Collecting Data From Business Entities

• In contrast to all other RT Entities, which their collectable data is static


(i.e. their properties are known and do not change), Business Entities
are dynamic.
• They are built each time you publish a solution to the server, and are
based on the BE Types defined for collection in that Solution
NOTE
Since Properties’ values are dynamic, they must be checked as collectable

• The Collectable checkbox is available at the info tab of every


Business Entity Type, under the Public checkbox.
Designer Automation Essentials Data Collection

Business Entities Example


When a BE Instance of that Type is
• Each BE Type has a corresponding constructed, property values are
table; Its Properties are represented represented as table rows.
as table Columns.
Current Offer
1334756 David S. 10,000
Offer
ID Name Price
Pending Offer
Offer dynamic DB Table
4064332 Tom M. 12,000
Client ID Name Price

1334756 David S. 10,000


4064332 Tom M. 12,000 Rejected Offer
6112002 Sandy I. 15,000
6112002 Sandy I. 15,000

• The Offer branch contains Properties, each of which


corresponds to a column in a database table. Thus, each column
represents a Business Entity Property.
• These columns are created dynamically in the database
according to the Properties that are defined for collection in the
Project where the Type is declared. Each row in the table
represents a specific offer Instance.
Designer Automation Essentials Data Collection

Primitive BE’s Data Usage

• For primitive BE properties, data usage is defined to specify how their


data will be used in data collection reports.
• There are 4 optional usage definitions:
Unknown Identifier Fact Attribute

Default, no Data represents the Data represents an Data represents a


indication to what unique ID amount segment
the data
represents
Examples: SSN, customer ID Balance, Age etc. Gender, City etc.
etc.

Facts can be aggregated by


Attributes can be
function: average, minimum,
used to group by…
median etc.
Designer Automation Essentials Data Collection

Data Collection Configuration - Workflow

• In general, there are 3 steps to configure data collection:


Create
Create aa Invoke DC
Test DC
DC Object
DC Object Functions

Define WHAT Define WHEN to


data to collect collect data

• However, since Business Entities are dynamic, there is an additional


preparation step for them:
Define BE as Create a Invoke DC
Test DC
collectable DC Object Functions

• This step is done only if there are BE to collect data on.


• Only once the Property is defined as collectible in the Business
Entities layer, it will appear available to be selected in the Data
Collection tab, where you can specify that RT starts collecting it.
• When you click on a Type, its child can be marked as collectable.
Designer Automation Essentials Data Collection

How to Define
Business Entities
as Collectable
Designer Automation Essentials Data Collection

How to Define BE Properties as Collectable

2 Go to Info tab and check


Collectable. An icon will be
added to the Property in the
hierarchy

3
Choose a Data Usage,
and if it is a Fact, specify
1 aggregation function
Click a BE Type’s property to
collect data on

Define BE as Create a Invoke DC


Test DC
collectable DC Object Functions
Designer Automation Essentials Data Collection

Process Monitoring Business Entities

• Process and Task representation BE’s are collectible by default:


Designer Automation Essentials Data Collection

LIVE DEMO
Defining BE Data as Collectable

• Create a Boolean Instance called ‘Trigger’ and initialize


it to FALSE
• Create a Type ‘Customer’ with the following properties:
• Age (Number)
• Gender (Text)
• Mark these properties as ‘Collectable’:
• Age: Fact (Average)
• Gender: Attribute
• Create an Instance of ‘Customer’
Designer Automation Essentials Data Collection

DO IT YOURSELF
Defining BE Data as Collectable

• Create a Boolean Instance called ‘Trigger’ and initialize


it to FALSE
• Create a Type ‘Customer’ with the following properties:
• Age (Number)
• Gender (Text)
• Mark these properties as ‘Collectable’:
• Age: Fact (Average)
• Gender: Attribute
• Create an Instance of ‘Customer’
Designer Automation Essentials Data Collection

How to Create
Data Collection
Objects
Designer Automation Essentials Data Collection

When to Create Separate Data Collection Objects

• Different collectable processes use the same Entities

Sales DC Churn DC

Product Name

• Product Name (Business Entity Property) is used both for


collecting data during a sale process AND for collecting data
about products that were cancelled.
• The number of processes that use this entity = the number of
Data Collections to create.
• An example for process A contains process B: Process B collects
data about opening an account. Process A collect data of selling
a product, which requires opening an account for new
customers.
Designer Automation Essentials Data Collection

When to Create Separate Data Collection Objects

• A process that may have more than one instance in a single interaction

Offer 1 DC Offer 2 DC

Offer

• Offers of different products may occur in a single interaction.


• The number of occurrences we would like to collect = the
number of Data Collections to create.
Designer Automation Essentials Data Collection

How to Create a Data Collection Object

2
Click New Data 1
Collection Go to Decision Support  Data
Collection tab
3
Give DC object a
4 Click entity type to drill
meaningful name
down the hierarchy and
check the entities you
wish to collect data for

Selected entities will


appear here

Define BE as Create a Invoke DC


Test DC
collectable DC Object Functions

• Each time you check the checkbox of a branch, it appears in the


Selected objects area at the bottom of the window.
Designer Automation Essentials Data Collection

LIVE DEMO
Creating a Data Collection Object

• Create a Data Collection Object called ‘Customer Data


Collection’
• Define only the ‘Customer’ Business Entity to be
collected
Designer Automation Essentials Data Collection

DO IT YOURSELF
Creating a Data Collection Object

• Create a Data Collection Object called ‘Customer Data


Collection’
• Define only the ‘Customer’ Business Entity to be
collected
Designer Automation Essentials Data Collection

How to Activate
and Collect Data
Designer Automation Essentials Data Collection

Data Collection Functions

• In order to control Data Collection, two Functions are used in the Action
Editor of the Business Logic layer:

7
2
6
Activate
Start collecting data for
8
a RT entity 1

Collect
Pour data to DB through RT
Server DC Object

• Each time you invoke the Activate and Collect Functions for a
specific Data Collection activity, its data is collected as a
transaction in the database.
Designer Automation Essentials Data Collection

Data Collection Functions

• Each start collecting (Activate) and stop collecting (Collect) pair


constitutes an instance of one interaction

Start of End of
Interaction Interaction
Offer 1 Offer 2

Activate Collect Activate Collect

Interactions DB Table

Date Start time End time


May 23, 2011 9:15:00 AM 9:20:00 AM
May 23, 2011 9:25:00 AM 9:30:00 AM

• Interactions are also an Entity in the Designer, for which data is


collected according to the DC Functions “Activate” and “Collect”.
If, for example, in one interaction we have 2 different DC
processes, then we will have 2 instances for that interaction.
Designer Automation Essentials Data Collection

How to Call Data Collection Functions

2
In the Action Editor, insert the
1 Create a new Rule or Function Invocation Instruction 
Event Handler at the drill down the menu to the Data
Business Logic tab Collection Activities library and
select Activate or Collect

Define BE as Create a Invoke DC


Test DC
collectable DC Object Functions

• DC Functions can be created in the Action Editor of every


Business Logic Layer object.
Designer Automation Essentials Data Collection

LIVE DEMO
Calling Data Collection Functions

• Create a Rule called ‘Activate DC’, which:


• Turns on when the value of ‘Trigger’ is set to TRUE
• Runs the ‘Activate’ function when Turned On
• Runs the ‘Collect’ function when Turned Off
Designer Automation Essentials Data Collection

DO IT YOURSELF
Calling Data Collection Functions

• Create a Rule called ‘Activate DC’, which:


• Turns on when the value of ‘Trigger’ is set to TRUE
• Runs the ‘Activate’ function when Turned On
• Runs the ‘Collect’ function when Turned Off
Designer Automation Essentials Data Collection

How to Test Data


Collection
Designer Automation Essentials Data Collection

How to Test DC Objects

1. Generate Project to make sure


it’s error-free
2. Test DC through Monitor

The Active property will


test the Activate DC
Function. The Last
Collected Time will test
the Collect Dc Function

The functions tab


allows us to
invoke the DC
functions at will

Define BE as Create a Invoke DC


Test DC
collectable DC Object Functions

• It is highly recommended that before publishing, you monitor


the Rules or Event Handlers that trigger the DC Functions, make
sure they “go on” when expected.
• In order to view real DC Entities values, query the database or
run a Report.
Designer Automation Essentials Data Collection

LIVE DEMO
Testing Data Collection

• Run the RT Client and open the Monitor Application


• Observe the status of the Data Collection object
• Change the ‘Trigger’ value to TRUE
• Verify that the Data Collection object has become
Active
• Change the ‘Trigger’ value to FALSE
• Verify that the Data Collection object has become
Inactive, and that the ‘Last Collected Time’ has been
updated
Designer Automation Essentials Data Collection

DO IT YOURSELF
Testing Data Collection

• Run the RT Client and open the Monitor Application


• Observe the status of the Data Collection object
• Change the ‘Trigger’ value to TRUE
• Verify that the Data Collection object has become
Active
• Change the ‘Trigger’ value to FALSE
• Verify that the Data Collection object has become
Inactive, and that the ‘Last Collected Time’ has been
updated
Designer Automation Essentials Data Collection

Data Collection Reports

• The Data Collection Activity data model represents the various objects
for which RT collects data, such as Rules, Event Handlers and so on

Each branch
represents a
Solution
Designer Automation Essentials Data Collection

Summary
• The goals of Decision Support features

• Defining BEs as collectable

• Creating and defining Data Collection objects

• Using Data Collection Functions at the Business Logic


Layer

• Testing Data Collection logic in the Monitoring

• Designer provides insight and Decision Support based on its


data mining analytics.

• One of these features are Data Collection objects, which enable


specifying the data that RT should collect and store in the RT
database during runtime.

• This data can then be presented in runtime, queried for or


displayed in reports.

• The following cases require creating more than one DC object:


• Different collectable processes use the same Entities.
• Same process may happen more than once in a single
interaction.
Designer Automation Essentials Data Collection
Designer Automation Essentials Reports

REPORTS
Designer Automation Essentials Reports

Lesson By the end of this lesson you will be able to:


Objectives • Create a Report with static and dynamic Data Models

• Produce Robotic Automation Reports

• Produce Server Dashboard Reports


Designer Automation Essentials Reports

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Reports

DO IT YOURSELF
Lesson Preparation

• Publish and Run a solution which contains the


following:
• Composite user defined Type, marked as Collectable
• Callout
• Data Collection Activity for the above items
• Have the callout shown while the data collection is on
• Invoke the Activate and Collect functions from the Monitor
Designer Automation Essentials Reports

High Level Flow

• APA provides a set of useful Cognos-based default reports and also


enables you to define a variety of additional reports. These reports have
different uses such as Attainment of goals and Performance statistics

While RT Server is interacting


Each time a report is run, it
with RT Clients, it is collecting
collects the latest information
data and storing it in the RT
from the database
Database

• Cognos is IBM's Business Intelligence (BI) and performance


management software suite.
• The software is designed to enable business users without
technical knowledge to extract corporate data, analyze it and
assemble reports.
Designer Automation Essentials Reports

Static Data Models

• Static Data Models are permanent data structures, from which you can
drag fields. Every field represents data that the RT Server collects
information on
Callouts Agent
KPI Name
Value
Goal KPIs
Name DC Activity

Process Desktop
Server Dashboard
Monitoring Monitoring

Report Area

Alison Sale Attempt 10 9


Jeff Sale Attempt 7 9

• Each Data Model consists of a hierarchy of data that is collected


by RT.
• Every Data Model has a Users branch.
• Static Data Models means that the type of information collected
by these models is predefined and cannot change.
• All data items within a given data model can be used in a report.
• You cannot create a report that combines data from different
data models.
Designer Automation Essentials Reports

Dimensions and Facts

• The data within each data model is broken down into two data types:
Dimensions and Facts
Facts hold numeric
values, for example:
Appearance Duration

Dimensions hold textual


values, for example:
Callout Skin

• Some items in a data model contain both Dimension branches


and Dimension Code branches. Code-related branches contain
unique identifiers.
• They are more efficient when running internal queries for a
report, since query searches are performed for an entity based
on its index and not on its name.
Designer Automation Essentials Reports

Data Collection Reports

• The Data Collection Activity data model represents the various objects
for which RT collects data, such as Rules, Event Handlers and so on

Each branch
represents a
Solution
Designer Automation Essentials Reports

How to Create a Report

• Reports are accessed via the web using the following URL:
http://localhost/ibmcognos/bi/?perspective=home
Designer Automation Essentials Reports

How to Create a Report

▪Connect to http://localhost/ibmcognos/bi/?perspective=home

2
Select Report

1
Click on New
Designer Automation Essentials Reports

Creating a Report

3
Click on Blank

4
Click OK
Designer Automation Essentials Reports

Creating a Report

5 Click on +

6 Click on “Data
Collection Activity”

7 Click Open
Designer Automation Essentials Reports

How to Create a Report

8 Expand hierarchy tree


to DC Activity

• Expand Data Collection Activity > OLD RTI > eGlueRepository >
Data Collection Activity.
• The different data collection entities will be shown.
Designer Automation Essentials Reports

Creating a Report

11
Run Report

10 Drag the Report


to the Canvas

9 Select the
required Report
Designer Automation Essentials Reports

Business Entities Branch

Process Desktop Server


Alerts KPIs DC Activity
Monitoring Monitoring Dashboard

• In contrast to all other branches


in all Data Models, which are
static, the Business Entities
branch is dynamic
• It is built each time you Publish
a Solution to the server, and is
based on the BE Types defined
for collection in that Solution

• The Data Collection Activity data model represents the various


objects for which the RT Server collects data, such as callouts,
rules, event handlers and so on.
• For each branch in the hierarchy, there will be Dimensions and
Facts.
Designer Automation Essentials Reports

Business Entities Branch

• Every Solution that you Publish is represented as a sub branch under


the Business Entities branch
• In addition, the objects under each Solution also change each time the
Solution is Published
Solution that has BEs
marked as Collectable
BE Type

BE Instances

Appearance of the
Type within other
composite Type
BE Properties

• Offer of Sales Attempt is the “Offer” Type when it appears as


part of “Sales Attempt” Type.
• It is important to remember that there can be multiple
instances of different contexts that are defined for collection
within a given solution, such as Current Offer, Previous Offer,
Last Offer and so on.
• Because of this possibility, all business entity type branches
(such as Offer in our example) have a companion branch that is
named X instances, where X is the name of the business entity
type branch. For example: Offer instances.
Designer Automation Essentials Reports

Business Entities Branch

• All Business Entity Types have the same 3 properties in common:


• Index
• Interaction Instance ID
• Site ID

• For Instances of that Type, the Instance will have its own Index, plus the
Type’s Index to differentiate between different Instances

Offer Current Offer Last Year’s Refused Offer


Offer
Index =10 Index =21 Index =22 Index =23
Offer Index =10 Offer Index =10 Offer Index =10

• Index: The index of the Type/Instance.


• Interaction Instance ID: The ID of the interaction Instance for
which the data was collected.
• User ID: The ID of the site from which the data was collected.
• In order to differentiate between the Instances, you will have to
add the Instance’s Index to the Report as a column.
Designer Automation Essentials Reports

Interactions Branch

Process Desktop Server


Alerts KPIs DC Activity
Monitoring Monitoring Dashboard

The Interactions branch


enables you to report on the
interactions for which data
was collected

• Each time you invoke the Activate and Collect Functions for a
specific Data Collection activity, its data is collected as a
transaction in the database.
• The Activate Function invokes the collection of data and the
Collect Function stops that collection of data. Thus, each start
(Activate) and stop (Collect) pair constitutes an instance of one
interaction.
Designer Automation Essentials Reports

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Reports

DO IT YOURSELF
Creating a Report: Business Entities

• Select the Data Collection data model


• Run Query Studio
• Insert all the fields from the Business Entities branch
into the Report Area
• Create a report based on the callout data collected
Designer Automation Essentials Reports

Robotic
Automation
Reports
Designer Automation Essentials Reports

Robotic Automation Reports

• There are 2 sources for reports:


• Web Portal - Dashboard
• Cognos

• The Robotic Automation solution includes predefined reports.


Some can be accessed through the Automation Portal, and
others through the Cognos.
Designer Automation Essentials Reports

Robotic Automation Reports

• These 3 reports cannot be accessed from the Dashboard

• The Robotic Automation solution includes predefined reports.


Some are used in the Automation Portal, and others can be
generated using Cognos.
• We will now focus on those that can be generated using
Cognos, and elaborate on the insights that can be gained from
each one.
• The Request Details Report for Scheduling can only be
presented using the Web Portal.
Designer Automation Essentials Reports

Robotic Automation Reports

• Inactive Robots Report


Detailed information for
the selected robot

Robot ID (the
VM hostname)

Total duration of the


inactivity for the
selected timeframe
* Drill in by clicking

• The first report is the Inactive Robots Report. The purpose of this report
is to provide targeted information for the IT users/Admins.
• The report can be filtered by date or by Robot, and allows you to view:
• The Robot ID, which is the hostname of the VM on which it is running
• The Total duration of the Robot’s inactivity over the selected
timeframe.
To drill-down into the details of an inactive Robot, click its Inactive
Duration (min) link. The inactive durations are broken down more easily in
a way that is simple to understand.

The main insights from this report include:


• Being able to track malfunctioning Robots
• Being able to obtain information about the length of time during which
a Robot was inactive
Designer Automation Essentials Reports

Robotic Automation Reports


• Request Details Report

Date/Time
Invocation Entered
External
the Queue
(Customer) Error Details
Request ID Request Robot/System Information
NICE Internal
Duration Error
Request ID
Workflow Robot Name =
Priority VM Hostname

Invoked
Workflow Free Text Value Assigned
Name within the Workflow

• The second report is the Request Details Report. The purpose of this
report is to determine which failed requests to rerun.
• The report can be filtered by Date, Error Type, Workflow and Business
Data values, and allows you to view:
• The various request IDs
• The request invocation time and duration
• The Automation Workflow name
• The Robot’s VM hostname
• The Workflow result and other business data values.

Clicking the icon next to each row opens the Request Details Report Drill
window.
Designer Automation Essentials Reports

Robotic Automation Reports


• Request Details Report
General request
Information

XML results for each


internal request ID

Request parameters
as assigned during
invocation

• The report includes the following information:


• Request Information
• XML results for each internal request ID (you can export the
details of each report result to an external file)
• Request parameters (displayed at the bottom of the Request
Details Report Drill window)
Designer Automation Essentials Reports

Robotic Automation Reports


• Request Volume Summary Report

# of successful and
failed workflows
Date

# of requests at % of successful and failed


date workflows

• The Request Volume Summary Report shows a breakdown of


the number and results of workflows requests by date
Designer Automation Essentials Reports

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Reports

DO IT YOURSELF
Reports

• Generate the Robotic Automation reports


Designer Automation Essentials Reports

Server Dashboard
Reports
Designer Automation Essentials Reports

Server Dashboard

• The Server Dashboard consists of reports that provide you with


information across the entire population of users.
Automatic Update
Displays information about recent automatic
update downloads across the users of the current
environment

Logged-in Users
Displays information about users currently logged
in to the current environment

Solution Downloads
Displays information about recent solution
downloads across the users of the current
environment

• The Server Dashboard relies on the availability of the RT reports


server (Cognos). If the reports server is not available, the
automatic update and Solution download auditing data reside
in the database, but is not accessible via the Server Dashboard.
Designer Automation Essentials Reports

Callout Display Report


• Number of Callout instances
• Number of callouts closed within 2 seconds
• Number of callouts moved on screen

This report will be relevant only when the APA


Note license includes use of Callouts
Designer Automation Essentials Reports

Access The RTS Cognos Reports Server

▪Connect to http://localhost/ibmcognos/bi/?perspective=home

2
Select Report

1
Click on New
Designer Automation Essentials Reports

Creating a Report

3
Click on Blank

4
Click OK
Designer Automation Essentials Reports

Creating a Report

5 Click on +

6 Click on “Server
Dashboard”

7 Click Open
Designer Automation Essentials Reports

Creating a Report

10
Run Report

9 Drag the Report


to the Canvas

8 Select the
required Report

• Solution Download Report displays information about recent


solution downloads across the users of the current
environment.
Designer Automation Essentials Reports

Solution Download Report Results


Designer Automation Essentials Reports

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Reports

DO IT YOURSELF
Solution Download Report

• Run the RT Client. The solution you published earlier


should download to the Client.
• Run a Solution Download report with the appropriate
filters to verify the Solution was downloaded.
Designer Automation Essentials Reports

Summary
• Creating a Report with static and dynamic Data
Models

• Producing Robotic Automation Reports

• Producing Server Dashboard Reports

• The Cognos-based reports enable you to define a variety of reports.


• Static Data Models are permanent data structures, from which you can insert
fields.
• The data within each data model is broken down into two data types: Dimensions
and Facts, which represent textual and numeric values of the Entity, respectively.
• In contrast to all other branches in all Data Models, which are static, the Business
Entities branch is dynamic. It is built each time you Publish a Solution to the
server, and is based on the BE Types defined for collection in that Solution.
• The Robotic Automation solution includes predefined reports that allow you
to track malfunctioning Robots, obtain information about the length of time
during which a Robot was inactive, determine which failed requests to rerun
and etc.
• Producing Server Dashboard Reports
• Server Dashboard allows you to produce reports that provide you with
information about automatic updates and Solution downloads across the entire
population of users.
Designer Automation Essentials Reports
Designer Automation Essentials Client to Client

CLIENT-TO-CLIENT
Designer Automation Essentials Client to Client

Lesson By the end of this lesson you will be able to:


Objectives • Describe the Client to Client concept

• Use Client to Client Functions


Designer Automation Essentials Client to Client

Client to Client Concept

• Client to Client feature enables two RT Clients to communicate with


each other, whether or not they are running on the same machine

• Two possible implementations:


Citrix Channel Remote Channel
Citrix Server sends values to Citrix Client and vice Remote machines send values to one another
versa

Citrix Server Session Machine A Machine B

• The RT Client must run on the same machine as the running


application. So when there are different applications running on
two different machines, Clients on these machines must
communicate with each other to send Business Entity values.
Designer Automation Essentials Client to Client

How Does it Work?


1 A channel is defined
between the two
machines, which holds
3 Sender and Receiver
Machine A Machine B 2
The same key is info A key is defined
defined on the at the Receiver’s
Sender’s side, side, assigned to
with a value an Item
assignment

K1 Bilbo Baggins K1 Client BE

4
Upon certain Rules or
Client BE
Events, the Receiver gets
a value from the Sender Bilbo Baggins
and assigns it to the item

• Citrix example - Citrix session provides numerous screens that


trigger the Presentation of Callouts in the RT Client and the
application running in the desktop handles background
processes and communicates with a business application
database server.
• Remote example - when using virtual desktop – one Client will
run on the real desktop and the other on the virtual one.
Another example is when both a bank teller and a supervisor in
another location are using the RT Client. The bank teller can
forward a transaction to the supervisor for authorization,
receive authorization and then proceed.
Designer Automation Essentials Client to Client

How to Create a Citrix Channel

3
Click New
1 Go to the Project Channel
tab 4
On the Citrix Client select
Citrix Client Channel.
On the Citrix Server select
2 Click Client to Citrix Server Channel
Client branch  5 The Channel
Channels
appears. Select
Channel Name

Create
Create aa Create Invoke
Channel
Channel Assignment to Keys Functions

• A Channel must be defined on both machines, the Citrix Server


and the Citrix Client.
• Channel name – Should be the same String on both machines,
Server and Client. It is possible to select a Function, or a BE Text
property, or just type a meaningful name.
Designer Automation Essentials Client to Client

How to Create a Remote Channel


3
Click New
1 Go to the Project Channel
tab 4 Select Remote
Channel
5
2 Select remote machine’s name
Click Client to
or IP address, and its Port
Client branch 
Channels 6
Select local machine’s
Port
8
Check here if you want to open the
channel automatically, or uncheck for 7
Select TCP or HTTP
manually opening it in the project
Protocol

Create
Create aa Create Invoke
Channel
Channel Assignment to Keys Functions

• A Remote channel allows you to define the TCP connection


between 2 Projects residing on different hosts.
• Step 6 notes:
• Single Port: For a pre-defined connection.
• Port Range: For dynamic connections; Will scan the port range
for first free port
Designer Automation Essentials Client to Client

How to Create Assignment to Keys


2
Click New
Assignment
3 Select a Channel you
created in the previous
slide

5 4
Define the key and Click here to add a
1 Click Client to Client the BE it updates key
branch 
Assignments

Create a Create Invoke


Channel Assignment to Keys Functions

• Key Name - must be unique and identical on both sides.


Designer Automation Essentials Client to Client

Client to Client Functions Invoke Assignments


• Citrix Channels have one Function

• Remote Channels have 3 additional Functions

Create a Create Invoke


Channel Assignment to Keys Functions

• Reconnect to host / local port – for fail safe and manually start
connections.
• Send value to key asynchronous – send messages
asynchronously identical on both sides.
Designer Automation Essentials Client to Client

Invoking Functions in the Designer

• Create a Rule or an Event Handler to define when the key is sent and
what its value is.

Create a Create Invoke


Channel Assignment to Keys Functions

• An Integration Expert will create the necessary Business Entities


for storing the values to be sent across / received from the
Client to Client Channel.
Designer Automation Essentials Client to Client

Summary
• The Client to Client concept

• How to use Client to Client Functions

• Client to Client feature enables two RT Clients to communicate


with each other, whether or not they are running on the same
machine
Designer Automation Essentials Client to Client
Designer Automation Essentials Administration

ADMINISTRATION
Designer Automation Essentials Administration

Lesson By the end of this lesson you will be able to:


Objectives • Work with different Environments

• Map different DB connections per Environment

• Map different text variables per Environment


Designer Automation Essentials Administration

Environments
Designer Automation Essentials Administration

Working with Multiple Environments

• The published Solution supports multiple environments. Designer


provides three default environments:
• Development
• Test
Real-Time Designer
• Production

DEV Environment TEST Environment PROD Environment

Settings Solutions Settings Solutions Settings Solutions

RT Server RT Server RT Server

Users Users Users

• Each Environment is associated with its own RT Server. So each


Environment has its own solutions published to it, its own
groups of users, and its own settings.
• Each environment has access only to the display names
database that were defined to it. For example, the Development
environment will only contain display names that were applied
to the Development environment. It will not have access to
display names applied to the Test environment.
Designer Automation Essentials Administration

Working with Multiple Environments

• Default Environnent:
• Chosen at Login…

• The default environment that appears in the Administration tab


is configured at the RTDesigner.exe.config file at the
currentEnvironment property.
• When logging into RT Designer, you must enter the login
credentials for the current environment.
• When you want to change to another environment within the
Administration module, RT Designer automatically attempts to
log into the new environment and perform authentication using
the current credentials.
• If RT Designer cannot log in using these credentials, an error
message is displayed. Click OK and then type in the new
credentials, and click on the Key icon to login.
Designer Automation Essentials Administration

Working with Multiple Environments

• Default Environment:
• Chosen at Login…
… and seen in Designer Settings

• The default environment that appears in the Administration tab


is chosen when logging into the Designer, before entering the
login credentials for a user in that environment.
Designer Automation Essentials Administration

Working with Multiple Environments

• You can also move from one environment to another directly from the
Designer

• When you want to change to another environment within the


Administration module, RT Designer automatically attempts to
log into the new environment and perform authentication using
the current credentials.
• If RT Designer cannot log in using these credentials, an error
message is displayed. Click OK and then type in the new
credentials, and click on the Key icon to login.
Designer Automation Essentials Administration

Working with Multiple Environments

• Existing Environments:
• Configured in RTDesigner.exe.config…
Designer Automation Essentials Administration

Working with Multiple Environments

• Existing Environments:
• Configured in RTDesigner.exe.config…
… and in Designer Settings
Designer Automation Essentials Administration

Working with Multiple Environments

• New Environments:
• Can be added in RTDesigner.exe.config, using the same structure

• You can also define additional environments. In order to add a


new environment, the RT Designer configuration file
(RTDesigner.exe.config) must be changed:
• The new environment entry must be added under
ServerAccess/Environments, and must use the same format as
the existing entries.
• The URL of the services and the repository provider must be
changed, based on the type of server that is being added.
Designer Automation Essentials Administration

Users
Administration
Designer Automation Essentials Administration

Users Import

• Users are imported from Engage, WFM or from Active Directory used in
the organization, by CSV files
• Import/export process is done only once during installation and
scheduled by a task to update the files

• After importing users, the administrator view will hold all teams
and users that were exported from the dedicated destination.
Designer Automation Essentials Administration

Exporting Engage Users; Importing to RT Server

NPexport

1
Users are exported from
NIM to a dedicated location

2
XML file on the RT Server is
updated to the CSV file’s
location

• XML filename is user-management-beans.xml.


• It’s default location on the RT Server is
D:\nice_systems\RTServer\config\spring.
• If the CSV file is stored on NIM FTP:
• Search for bean ID nicePerformUserImporterFtpUserIn to
change FTP host name, username and password.
• Search for bean ID remoteFilePath to change URL to CSV file.
• If the CSV file is stored in the RT Server local file system:
• Search for bean ID remoteFilePath to change URL to CSV file.
• Refer to the System Administration Guide for more details.
Designer Automation Essentials Administration

Designer User Roles

• The role assigned to a user determines which module(s) the user can
access

Integration
Expert
✓ ✓
Business
Analyst ✓ ✓ ✓ ✓ ✓
Technical
Engineer ✓ ✓ ✓ ✓ ✓ ✓ ✓
Administrator
Roles ✓

• Designer User Roles are assigned to power-users.


• Each role indicates which modules are visible to and editable by
the users assigned that role.
• When starting RT Designer, only the modules permitted by the
user’s assigned role are visible. All other modules are loaded,
but are not visible.
Designer Automation Essentials Administration

Designer User Roles: Administrator Roles

• Different Administrator roles can view and edit different branches in the
Administrator module
IT Admin Content System Super User
Admin Admin
Solutions Assignment ✓ ✓ ✓

Roles Assignment ✓ ✓ ✓

System Configuration ✓ ✓ ✓

Automatic Update ✓ ✓ ✓

Environment Value Mapping ✓ ✓ ✓

Server DB Connection Mapping ✓ ✓ ✓

Environment Publishing ✓ ✓ ✓

Server Dashboard ✓ ✓ ✓
Desktop Process Monitor ✓ ✓ ✓

Environment Web Service Proxy Mapping ✓ ✓ ✓

Location Cases Tab ✓ ✓

• The IT Administrator, Content Administrator, System


Administrator and Super User roles can view and edit different
branches in the Administration module, as described in this
table.
• Only the branches/tabs permitted by the user's assigned role
are visible in Real-Time Designer.
Designer Automation Essentials Administration

How to Assign Designer User Roles


2 Go to RT Designer
tab

3
Check the relevant
user

1
Go to Roles Assignment
branch

4 5 Click
Assign a relevant
Role Apply

• The Role selected for a Team applies to all Users in the Team.
Designer Automation Essentials Administration

Assigning User
Roles

17
Designer Automation Essentials Administration

DB Connection Mapping

• Allows you to define a different DB connection value for every


environment used
DEV Environment TEST Environment PROD Environment

Development Testing Production


DB DB DB

• Database connection mappings are used in the Physical Objects


Database module. There, in the Connection object, rather than
defining a concrete connection string, you reference one of the
mappings.
• Therefore, when a Designer user is ready to deploy a solution to
another environment (for example, from Test to Production),
the connection string in the project's DB Connection object
does not need to be changed to specify the database details for
the Production environment, as the database connection strings
for all environments are defined in the database connection
mapping.
Designer Automation Essentials Administration

How to Map a DB Connection

2
Click the +

1
Go to DB
3
Connection Configure the DB
Mapping branch Name and its mappings
URL

4
Click Apply
Changes

• The values that you assign are maintained in separate


databases, with one database per environment. Each row in the
Server DB Connection Mapping area constitutes a record in the
database.
• DB Connection Configuration (Step 3) - Note that the pane on
the right contains four columns: Name, Development, Test and
Production. The Name column specifies the name of the
database connection. The three adjacent columns
(Development, Test and Production) specify the names of the
environment to which the database connection value applies.
• Note that if you have additional environments, the window also
displays a column for each of them as well.
Designer Automation Essentials Administration

Environment Value
Mapping
Designer Automation Essentials Administration

Environment Value Mapping Feature

• Defines parameters that have different values, depending on the


environment in use.
DEV Environment TEST Environment PROD Environment

Website URL Website URL Website URL


www.site.dev.com www.site.test.com www.site.com

• Environment value mapping can be used for any kind of text


value that you want to have distinct values in different
environments.
• In effect, it maps the various values for a parameter that are
used in separate environments. Because you want to be sure to
access the correct URL of the third-party environment, you need
to create a placeholder variable for this URL.
• This variable will get the value defined for the specific
environment in use.
Designer Automation Essentials Administration

How to Add a Variable in the Designer

2 Click the + to
1 Go to Environment
add a text
Publishing branch
variable

3 Name the variable and 4


assign the values per each Click Apply
environment Changes
Designer Automation Essentials Administration

How to Map an Environment Value

• The Environment-dependent value can be used/stored in a


regular business entity.
• The Designer must be connected to the RT Server in order to
use the Get Map Value function.
• During runtime on the Client, the value returned by this
function is determined by the environment in which the Client
is currently running.
Designer Automation Essentials Administration

Notes from Demo

▪ Create a new export process to export all users and


groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Administration

DO IT YOURSELF
Environment Value Mapping

• Create an environment variable and allocate it token


values for each environment.
Designer Automation Essentials Administration

Summary
• Working with different Environments

• Mapping different DB Connections per Environment

• Mapping different text variables per Environment

• The RT Solution supports multiple environments, and provides


three default environments: Development, Test and Production.
• Environment Publishing Feature enables to migrate a ready-for-
production Solution from the testing environment to a
production environment .
• DB Connection mapping allows you to define a separate DB
connection string for every environment used.
• Environment Value mapping allows you to define a variable
that receives different values for every environment used.
Designer Automation Essentials Administration
Designer Automation Essentials Auto Update

AUTOMATIC UPDATE
Designer Automation Essentials Auto Update

Lesson By the end of this lesson you will be able to:


Objectives • Describe what the Auto Update process does

• Define and configure Auto Update

• Run Auto Update on the RT Client

• Verify if the Auto Update was performed successfully


Designer Automation Essentials Auto Update

What is Automatic Update?

• A generic process, which provides a means to update the RT Client


with any file that is required (such as bug fixes, etc), without having to
re-publish the solution or create an installation kit for that purpose
• It distributes files needed for client execution to teams of Agents, such
as images and assemblies (DLLs and Callout skins)

When a user Publishes a


Solution this dialog box
automatically appears, which
lists the DLLs and Callout
skins (*.skn) used by the
solution, that will be uploaded
to the client

• This method automatically uploads files used by a Solution


when publishing a new version of that Solution.
• The Publish process actually scans every file that has a reference
to the Project, compares them with the files in the Automatic
Update folder, and if it finds a file that isn’t updated, it presents
a dialog box, asking the user to confirm the update.
Designer Automation Essentials Auto Update

Automatic Update Folders

• Enables you to specify files to upload to the RT Server for subsequent


upload to the RT Client(s)
• Includes the following steps:

DLL 3 2

Create an Automatic Assign a folder to a Define files to upload


Update folder team to Client

• Automatic Update folders are saved in a folder on the SVN


repository, together with all the Solution files
• For the automatic update mechanism, update files are stored in
a dedicated folder for a team. By default, each team comes with
a predefined folder called Default.
• Typically, each team uses a different folder, but some teams
may use the same folder.
Designer Automation Essentials Auto Update

How to Create an Automatic Update Folder

2 Click Create Automatic Update


Directory

3 Enter folder name

4 Click Apply
1
Go to
Automatic
Update branch

Create
Create an
an Automatic
Automatic Assign a folder to a Define files to upload
Update folder
Update folder team to Client

• You can change the name assigned to a folder at a future point


in time, if necessary. To do so, you must change the parameter
here. You cannot change the folder name directly from the
Administration tree
Designer Automation Essentials Auto Update

Notes from Demo


LIVE DEMO
Creating an Automatic Update Folder
▪ Create a new export process to export all users and
groups:
• Create an Automatic Update Folder and give it a
▪ Useunique
your initials
nameas filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Auto Update

DO IT YOURSELF
Creating an Automatic Update Folder

• Create an Automatic Update Folder and give it a


unique name
Designer Automation Essentials Auto Update

Assigning an Automatic Update Folder to a Team

2 Decide whether to have the


files downloaded to the
Application Data folder or the
3 Check the teams to assign Installation/Program Files
1 Go to a Solution to folder, and then click Apply
Automatic
Update branch 4 Select the folder you
created in the previous slide Click
5
Apply

Create an Automatic Assignaafolder


Assign foldertotoa Define files to upload
Update folder ateam
team to Client

• The folder selected applies to the team, its sub-teams and all
users in them
Designer Automation Essentials Auto Update

Notes from Demo


LIVE DEMO
• Assign your Automatic Update Folder to your team
▪ Create a new export process to export all users and
groups:
▪ Use your initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Auto Update

DO IT YOURSELF
• Assign your Automatic Update Folder to your team
Designer Automation Essentials Auto Update

How to Add Files to an Automatic Update Folder

1 Go to the Automatic 2 Click the +, then


Update folder branch you browse to select
created files to upload to
the Client
4 Add a description about
this update’s reason and 3 Click
click OK Upload

Create an Automatic Assign a folder to a Define


Define filesfiles to
to upload
Update folder team to Client
upload to Client

• You may only upload files that are located under the Designer
installation folder. The auto-update mechanism downloads the
update files located under the RT Client installation folder
• The following information is displayed for each row in the Files
Upload area:
• File: Specifies the file name and path
• Version: For .NET DLL files, specifies the version of the file. For
other file types, this column is blank.
• Modified At: Specifies when the file was last updated
Designer Automation Essentials Auto Update

Notes from Demo


LIVE DEMO
Adding Files to an Automatic Update Folder
▪ Create a new export process to export all users and
groups:
• Create a file (BMP, TXT, DOC, etc.) that you intend to
▪ Useupload
your initials
to theas filenameUpdate Folder
Automatic
▪ Export
• Upload
to a shared
the file network folder Update Folder
to the Automatic
▪ Run the process and open the exported file
Designer Automation Essentials Auto Update

DO IT YOURSELF
Adding Files to an Automatic Update Folder

• Create a file (BMP, TXT, DOC, etc.) that you intend to


upload to the Automatic Update Folder
• Upload the file to the Automatic Update Folder
Designer Automation Essentials Auto Update

Automatic Updater on the RT Client

• Updater is a standalone process that runs automatically on the client


(when enabled), or manually from a command line interface
• The Updater performs the actual downloading of updated files from the
SVN repository and then stores them in the correct location on the local
Client machine

• When the automatic update mechanism is enabled on the


client, the Updater process automatically starts once the client
is logged in
• For the Client to run manually, “enabled” parameter at the
Updater.exe.config and the RTClient.exe.config files must be set
to true
Designer Automation Essentials Auto Update

Running the Updater Manually on the RT Client

• Executing the Updater process standalone involves running it from a


command line or via a scheduled task on the desktop
• Specify the values of the following mandatory parameters:
Updater –BU business_username –U username –P password –Team teamID

Indicates whether or not to


display a progress window that is
accessed from the system tray,
• Enter optional values: which shows the status of the
process

Specifies the location Specifies the


Specifies the Indicates whether to
of the files in the maximum number of
time between restart the client after
repository to be times to retry
two retries, in the automatic update
downloaded to the accessing the
seconds process completes
client repository

• If only mandatory arguments are specified, then all other


parameters are taken from the Updater.exe.config file.
• Default Values:
• Retries: 3
• Interval: 2
• Restart: true
• Progress: true
• If the automatic update succeeds, then after downloading the
updated files to the client, the client restarts. During this restart,
the user is not prompted to re-enter login credentials.
Designer Automation Essentials Auto Update

How to Verify Successful Automatic Update

• When performing an automatic update, data is stored about the process


in a database table. If information for the process cannot be audited, the
automatic update fails
• The RT Solution uses the revision parameter in the
UserPreferences.xml configuration file to determine if the client has the
latest updated files

• Initially, the revision parameter value in this file is set to -1.


When an automatic update is performed successfully, this value
is incremented. This value is a running number that is typically
not reset. It indicates the last loaded revision on the client
• To determine whether the client has the latest version, this
value is compared to a similar value on the server. If you want to
force an automatic update on the client, you must open the
UserPreferences.xml file on the client and edit it to set the
revision number to -1.
Designer Automation Essentials Auto Update

Notes from Demo


LIVE DEMO
Verifying Successful Automatic Update
▪ Create a new export process to export all users and
groups:
• Open the Application Data folder
▪ Use your initials
• Open as filename
the UserPreferences.xml
▪ Export
• Runtothe
a shared network
RT Client folder
and notice:
▪ Run• the
The process
file you uploaded
and open appear in the Application
the exported file Data folder
• The revision parameter update
Designer Automation Essentials Auto Update

DO IT YOURSELF
Verifying Successful Automatic Update

• Open the Application Data folder


• Open the UserPreferences.xml
• Run the RT Client and notice:
• The file you uploaded appear in the Application Data folder
• The revision parameter update
Designer Automation Essentials Auto Update

How to Execute an Automatic Update Report


3 Filter the report by Auto Update
… by Team…
Directory… 4
For each filter, enter a keyword(s)
and search for it

1
Go to Server Dashboard
branch
… by Revisions… … or by Computer Name

5
…then select the 6
relevant Results… …and Insert them as
part of the filter

2
Select
Automatic 8
Update Click
Finish

• Automatic Update Report displays information about recent


automatic update downloads across the users of the current
environment.
• To execute an Automatic Update Report:
1. Click on Server Dashboard Reports
2. Select Automatic Update
3. You can filter the report by Auto-Update Directory, Team,
Revisions or Computer Name
4. For each filter, enter a keyword(s) and search for it, then select
the relevant results and insert them as part of the filter
5. Clicking Finish will run the report, and the results will appear
on your screen.
Designer Automation Essentials Auto Update

Notes from Demo


LIVE DEMO
Automatic Update Report
▪ Create a new export process to export all users and
groups:
• Execute an Automatic Update Report, filtering only on
▪ Useyour
yourTeam
initials as filename
▪ Export to a shared network folder
▪ Run the process and open the exported file
Designer Automation Essentials Auto Update

DO IT YOURSELF
Automatic Update Report

• Execute an Automatic Update Report, filtering only on


your Team
Designer Automation Essentials Auto Update

Auto Update Limitation


• The following core files cannot be pushed through the auto-update
mechanism:

• Direct.AutoUpdate.dll
• Direct.Shared.Controls.dll
• Direct.Configuration.dll
• Direct.ExecutionResources.dll
• Direct.WebServiceProxy.dll
• Direct.Shared.dll
• Direct.Interface.dll
• Direct.Shared.Library.dll
• Updater.exe
• Updater.exe.config
• Userpreferences.xml

• These files are used by the update mechanism itself.


• Since the files being used by the process cannot be updated
themselves by the process that is using them, the only
alternative to updating these files specifically is to create an
MSI, batch file, or any other customized mechanism that
performs the same task.
Designer Automation Essentials Auto Update

Summary In this lesson we covered:


• What the Auto Update process does

• Defining and configuring Auto Update

• Running Auto Update on the RT Client

• Verifying if the Auto Update was performed


successfully

• Automatic Update provides a means to update the RT Software without


having to create an installation kit for that purpose.
• It distributes files needed for client execution to teams of Agents, such
as images and assemblies (DLLs and Callout skins).
• Manual update includes the following steps:
• Create an Automatic Update folder
• Assign a folder to a team
• Define files to upload to Client
• Updater process performs the actual downloading of updated files from
the SVN repository and then stores them in the correct location on the
local Client machine.
• Successful Automatic Update is verified through:
• Auditing in DB
• Revision parameter in UserPreferences.xml configuration file
Designer Automation Essentials Auto Update
NICE Workforce Management Release 4.6

Contact us: [email protected]


Visit us: Technical training on ExtraNICE

PROPRIETARY AND CONFIDENTIAL INFORMATION


Information herein is proprietary information and trade secrets of NICE Systems Ltd (NICE) and/or its affiliated companies
(Affiliates). This document and the information herein is the exclusive property of NICE and its Affiliates and shall not be
disclosed, in whole or in part, to any third party or utilized for any purpose other than the express purpose for which it has been
provided.
IMPORTANT NOTICE
Subject always to any existing terms and conditions agreed between you and NICE or any Affiliate with respect to the products
which are the subject matter of this document, neither NICE nor any of its Affiliates shall bear any responsibility or liability to a
client or to any person or entity with respect to liability, loss or damage caused or alleged to be caused directly or indirectly by
any product supplied or any reliance placed on the content of this document. This includes, but is not limited to, any
interruption of service, loss of business or anticipatory profits or consequential damage resulting from the use or operation of
any products supplied or the content of this
document. Information in this document is subject to change without notice and does not represent a commitment on the part
of NICE or any Affiliate.
All information included in this document, such as text, graphics, photos, logos and images, is the exclusive property of NICE or
in Affiliate and is protected by United States and international copyright laws. Permission is granted to use, view and photocopy
(or print) materials from this document only in connection with the products to which this document relates and subject to the
terms of license applicable to such products. Any other use, copying, distribution, retransmission or modification of the
information in this document without the express prior written permission of NICE or an Affiliate is strictly prohibited. In the
event of any permitted copying, redistribution or
publication of copyrighted material, no changes in, or deletion of, author attribution, trademark legend or copyright notice shall
be made. Products supplied may be protected by one or more of the US patents listed at www.nice.com/Patents. For the full list
of trademarks of NICE and its Affiliates, visit www.nice.com/Nice-Trademarks. All other marks used are the property of their
respective proprietors.
All contents of this document are: Copyright © 2019 NICE Systems Ltd. All rights reserved.

You might also like