Understanding Alerts in Oracle Fusion Learning Cloud 1.6

Download as pdf or txt
Download as pdf or txt
You are on page 1of 55

Business / Technical Brief

Understanding Alerts in Oracle


Learning

Oracle Learning

May, 2022, Version 1.1


Copyright © 2022, Oracle and/or its affiliates
Public

1 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Purpose statement
This document provides an overview of Alerts and their configuration in Oracle
Learning.

Disclaimer
This document in any form, software or printed matter, contains proprietary
information that is the exclusive property of Oracle. Your access to and use of
this confidential material is subject to the terms and conditions of your Oracle
software license and service agreement, which has been executed and with
which you agree to comply. This document and information contained herein
may not be disclosed, copied, reproduced or distributed to anyone outside
Oracle without prior written consent of Oracle. This document is not part of your
license agreement nor can it be incorporated into any contractual agreement
with Oracle or its subsidiaries or affiliates.

This document is for informational purposes only and is intended solely to assist
you in planning for the implementation and upgrade of the product features
described. It is not a commitment to deliver any material, code, or functionality,
and should not be relied upon in making purchasing decisions. The
development, release, and timing of any features or functionality described in
this document remains at the sole discretion of Oracle. Due to the nature of the
product architecture, it may not be possible to safely include all features
described in this document without risking significant destabilization of the code.

The revenue recognition disclaimer on this page is required for any business
brief that addresses future functionality or for products that are not yet generally
available (GA). If you are unsure whether your statement of direction needs the
disclaimer, read the revenue recognition policy. If you have further questions
about your content and the disclaimer requirements, e-mail
[email protected]. If you do not need the disclaimer, you may delete it
and the page that it appears. First, display hidden characters by clicking on the
Paragraph icon on the Home toolbar. It is a small, square icon that appears to the
left of the Quick Style Gallery. Then, highlight all the text on this page and press
the Delete key. Notice that there is a section break displayed as a double-dotted
line at the bottom of this page. Continue to press Delete until the page
disappears and your cursor is on the Table of Contents page. Be sure not to
remove the section break, or the formatting of the title page will be incorrect.
Delete this note before publishing.

The testing disclaimer in the TM block on the last page (highlighted in yellow) is
provided by the FCC for hardware products. It must appear in the TM block.

2 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Contents

Purpose statement 2
Disclaimer 2
Document Control 6
Introduction 7
Prerequisite Documentation 7
Event Alerts 7
Enabling Alerts in Learning Cloud 7
Process Learning Alerts Scheduled Job 8
Learning Cloud Alerts 8
Event Alerts Configuration Overview 8
Available Learning Cloud Alerts 9
Resource Alerts based on REST 14
learnerLearningRecords REST API 14
Building an Oracle Learning Resource Alert 14
Creating a Basic Oracle Learning Learner Learning Records Resource
Alert 15
Create the Resource Alert 15
Define the Filter 15
Create a Message for the Resource Alert 17
Run a Simulation to Test the Alert 17
Learner Learning Records Resource Alert Configuration Details 18
Key LearnerLearningRecord Lookups 18
Filter Examples 19
Recipient Examples 20
Message and Group by Examples 20
Messages 21
Expressions 21
Attachments & Links 22
Group By 23
Performance Considerations when Creating Resource Alerts 25
Working Examples 26
General Considerations 40
Resource Alert Digests 40
Troubleshooting Alerts 42
WLF-00004 Special Case 43
Frequently Asked Questions 47

3 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
List of Images

Image 1. Configure Alerts 7


Image 2. Create Resource Alert 15
Image 3. Add Filter 16
Image 4. Edit Expression 16
Image 5. Edit Template 17
Image 6. Run Simulation Test 18
Image 7. Message and Group By 21
Image 8. Insert Expression 22
Image 9. Working Example 1.0 30
Image 10. Working Example 1.1 30
Image 11. Working Example 2 33
Image 12. Working Example 3 37
Image 13. Working Example 4 40
Image 14. Manage Configuration Package 41
Image 15. Click Upload 42
Image 16. Upload Confirmation 42
Image 17. Import Setup Data 42
Image 18. Access Administration 48
Image 19. Application Preferences 49
Image 20. Update Preferences 49
Image 21. Save the changes 49
Image 22. Email Driver 50
Image 23. Associated Drivers 50
Image 24: Configure Driver 51
Image 25: Default Sender Address 51
Image 26: End User Worklist and Email #1 52
Image 27: End User Worklist and Email #2 52
Image 28: End User Worklist and Email #3 52
Image 29: Default Language 53

4 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
List of Tables

Table 1. Learning Cloud Alerts 9


Table 2. Valid Tokens 13
Table 3. LearnerLearningRecords Lookups 19
Table 4. Filter Examples 20
Table 5. Recipient Examples 20
Table 6. Group By Examples 23
Table 7. Message Example with Group By 24
Table 8. Date Formatting Examples 24
Table 9. Groovy Expression Examples 48
Table 10. Translation Support 53

5 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Document Control
Change Record

Date Version Changes Reference


30-Mar-21 1.1 Added Attachments & Links, Performance Considerations when Creating
Resource Alerts, General Considerations and Use cases under
Troubleshooting.
14-April-21 1.2
4-Aug-21 1.3 Minor verbiage update.
1-Dec-21 1.4 Corrections to doc based on customer feedback. Added Resource Alerts
Digest topic.
19-Jan-22 1.5 Updated Event Alerts with Valid Tokens Information.
21-Jul22 1.6 Updated Resource Alerts based on REST Section.

6 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Introduction
Oracle Learning uses the Alerts Composer tool within HCM to send informational notifications to users by email and
worklist. Notifications are triggered based on conditions for two types of alerts.
• Event Alerts: They're triggered when a specific event occurs in the application.
• Resource Alerts: They are based on Oracle HCM Cloud REST API resources.
• This technical brief is updated on release 21A

Note: In the images or examples included in this document regarding: user details, company names, addresses,
emails, and/or telephone numbers represent a fictitious sample of data (based upon made up data used in a demo
environment). Any similarity to actual persons, living or dead, is purely coincidental and not intended in any
manner.

Prerequisite Documentation
It is recommended that you read the following documents, located on the Oracle Help Center.
• LearnerLearningRecords REST API Documentation
• Alerts Composer User Documentation

Event Alerts
Event alerts are based on the context provided by the calling client. They're triggered when a specific event occurs in
the application. Event alerts are preconfigured in Oracle Learning. The event that triggers the alert is hardcoded in
the system, but the recipient’s notification body templates can be customized in the alert settings.

Enabling Alerts in Learning Cloud


Once you have set up the alert templates in the Alerts Composer, enable the alerts you want to use in Learning Cloud.
1. In the My Client Group area, click Learning.
2. Click Setup.
3. Click Manage Alerts.
4. Click Edit.
5. Select the following check boxes to enable them.

Image 1. Configure Alerts

7 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
• Enable alerts to assignees for classroom changes. When enabled, if an Administrator updates an instructor-led
activity classroom, the Offering Definition has Changed alert is sent to the recipients defined in the alert.
• Enable alerts to assignees for changes to activity dates. When enabled, if an Administrator updates an instructor-
led activity date or time, the Offering Definition has Changed alert is sent to the recipients defined in the alert.
• Enable alerts to instructors when instructor led activities change. When enabled, if an Administrator updates an
instructor-led activity, the Offering Activity Definition has changed for an Instructor alert is sent to the recipient
defined in the alert.
1. In the Days before the start of training to send instructors an alert reminder field, enter the number of
days prior to the training start date to send the Upcoming ILT Activity to Instructors Reminder alert.
When a value is entered in this field the alert is enabled. If you leave this field empty, the alert is disabled.
If you enter 0, the alert is sent on the day of the activity.
2. Click Save and Close.

Process Learning Alerts Scheduled Job


To ensure alerts are being processed, you can view the results of the Process Learning Alerts job in the from the
Scheduled Processes work area. Oracle recommends that you set up this job to run at least twice daily.

Refer to the following two documents on docs.oracle.com for additional information:


• The Alerts Composer chapter of the guide called “Oracle Global Human Resources Cloud Implementing Global
Human Resources"
• The Processes in Oracle Learning chapter of the guide called “Oracle Talent Management Cloud Implementing
Learning”

Learning Cloud Alerts


You can send informational alert notifications to Learning Cloud users to notify them of specific learning events, such
as upcoming activity reminders, or changes to offerings. Configure Learning Cloud alerts in the Alerts Composer tool
and enable the ones you want to use in the Learning Cloud setup.

Notifications are triggered based on predefined conditions for two types of alerts:
• Event Alerts: Event Alerts are based on the context provided by the calling client. They're triggered when a
specific event occurs in the application. You can't modify the triggering criteria for notifications. For example,
you can notify a learner when an offering that they are assigned to has changed.
• Resource Alerts: Resource Alerts are based on Oracle Cloud REST API resources. The resources must be
deployed in the environment. You can modify the triggering criteria for notifications by defining filters on the
resource attributes if you have the required privileges to access the REST resources. The REST endpoints are
delivered by Oracle, and you build the alerts. For example, you can send out alerts to all the learners that have
required learning within the last 24-hour period.

Event Alerts Configuration Overview


The following are the high-level steps you need to follow to enable alerts and make them available to users in
Learning Cloud.
1. Create the alert templates in the Alerts Composer.
2. Enable the alerts you want to use in Learning Cloud.
3. Schedule the Process Learning Alerts Job.

8 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Available Learning Cloud Alerts
You can search for Learning Cloud alerts by Alert Name or Alert Code. All learning notifications start with "WLF". For
example, WLF-00009 is the Learning Cloud Instructor Booking Event Removal alert.

ALERT NAME ALERT CODE DESCRIPTION

Learn Custom Alert WLF-00003 This is a custom-defined alert that is initiated by an Administrator when
viewing assignments. You can configure this alert to be used as an action
from the Manage Learners area. When users click Send Alert Action, they
can select the template they want to use to send an alert to learners. The
alert templates include message text, the recipient, and the
communication method (email or worklist).

Learning Cloud Instructor WLF-00009 Alerts instructors when an Administrator removes one of their instructor-
Booking Event Removal led activities.

Learning Payment WLF-00007 Indicates payment for a learning item was successfully processed.
Successfully Processed

Offering Activity Definition WLF-00008 Alerts an instructor when an Administrator has changed the details to an
has Changed for an instructor-led activity.
Instructor

Offering Definition has WLF-00002 Alerts learners when an Administrator changes the details to an
Changed instructor-led activity.

Pay for Learning Item WLF-00006 Sends a message to the assignment creator to request that they pay for
an offering.

Upcoming ILT Activity to WLF-00004 Reminds learning instructors when the start date to one of their upcoming
Instructors Reminder 1 instructor led activities is approaching.
Table 1. Learning Cloud Alerts

ALERT TITLE TOKEN ${}

WLF-00002: OfferingDefinitionHasChanged LearningItemName


assignmentSubType
FirstName
LastName
LearnerEmail
LearningItemType
learningItemTypeKey
ImageTag
AttributedAssigner
DueDate
notificationUserName
LearnerDisplayName
AssignmentStartDate
LearningItemDescription
LearningItemName
learningItemLink
offeringCoordinatorName
offeringCoordinatorEmailAddress
offeringCoordinatorPhoneNumber
Learning Item FlexFields
Offering FlexFields
Course FlexFields
Spec FlexFields
isClassroomChanged -> ClassRooms

9 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
ALERT TITLE TOKEN ${}

isVirtualClassRoomUrlChanged -> VirtualClassRoom


isDateChanged -> ActivityStartDate,ActivityEndDate
ChangeDetails
ActivityName

WLF-00003: CustomAlert FirstName


LastName
LearnerEmail
notificationUserName
LearnerDisplayName
ManagerEmail
ManagerUserName
LearningItemDescription
LearningItemName
learningItemLink
ImageTag
ThumbnailUrl
LearningItemType
LearningItemStartDate
LearningItemEndDate
LearningItemShortDescription
OfferingStartDate
OfferingEndDate
offeringCoordinatorName
offeringCoordinatorEmailAddress
offeringCoordinatorPhoneNumber
Learning Item FlexFields
Offering FlexFields
Course FlexFields
Spec FlexFields
assignmentSubType
assignmentType
attributedAssigner
AssignmentStartDate
DueDate
AssignmentStatus
AssignmentSubStatus

WLF-00004: activityName
UpcomingILTActivityReminderToInstructors activityDescription
activityStartTime
activityStartDate
activityTimezone
activityEndTime
activityNumber
activityVirtualURL
classroomList
instructors
resources
offeringName
learningItemLink
Learning Item FlexFields
Offering FlexFields

WLF-00006: PayforLearningItem FirstName


LastName
LearnerEmail
notificationUserName
LearnerDisplayName

10 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
ALERT TITLE TOKEN ${}

ManagerEmail
ManagerUserName
LearningItemDescription
LearningItemName
learningItemLink
ImageTag
ThumbnailUrl
LearningItemType
LearningItemStartDate
LearningItemEndDate
LearningItemShortDescription
OfferingStartDate
OfferingEndDate
offeringCoordinatorName
offeringCoordinatorEmailAddress
offeringCoordinatorPhoneNumber
Learning Item FlexFields
Offering FlexFields
Course FlexFields
Spec FlexFields
assignmentSubType
assignmentType
attributedAssigner
AssignmentStartDate
DueDate
AssignmentStatus
AssignmentSubStatus
assignerFirstName
assignerLastName
assignerEmail
assignerWorklistUser
assignerDisplayName
assignerManagerEmail
assignerManagerUserName
selfServicePrice
selfServiceCurrency
numberOfDaysToPay

WLF-00007: FirstName
LearningPaymentSuccessfullyProcessed LastName
LearnerEmail
notificationUserName
LearnerDisplayName
ManagerEmail
ManagerUserName
LearningItemDescription
LearningItemName
learningItemLink
ImageTag
ThumbnailUrl
LearningItemType
LearningItemStartDate
LearningItemEndDate
LearningItemShortDescription
OfferingStartDate
OfferingEndDate
offeringCoordinatorName
offeringCoordinatorEmailAddress
offeringCoordinatorPhoneNumber

11 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
ALERT TITLE TOKEN ${}

Learning Item FlexFields


Offering FlexFields
Course FlexFields
Spec FlexFields
assignmentSubType
assignmentType
attributedAssigner
AssignmentStartDate
DueDate
AssignmentStatus
AssignmentSubStatus
assignerFirstName
assignerLastName
assignerEmail
assignerWorklistUser
assignerDisplayName
assignerManagerEmail
assignerManagerUserName
numberOfDaysToPay
pricePaidAmount
pricePaidCurrency
learningActivityLocation
learningActivityURL

WLF-00008: learningActivityDate
OfferingActivitydefinitionhaschangedforanIn learningActivityStartTime
structor learningActivityEndTime
learningActivityTimezone
learningActivityTitle
learningActivityDescription
learningActivityExpectedEffort
learningActivityClassroom
learningActivityVirtualClassroom
learningActivitVirtualClassroomLink
learningActivityInstructors
learningActivityLocation
learningActivityResources
learningActivityAdhocResources
learningActivityAddToCalendar
OfferingTitle
OfferingDescription
learningItemLink
Learning Item FlexFields
Offering FlexFields
offeringFlexFieldMap
courseTitle
CourseTitle
CourseSyllabus
thumbnailURL
thumbnail
Course FlexFields
ChangeDetails
bookingEventType
learningItemType
offeringCoordinatorName
offeringCoordinatorEmailAddress
offeringCoordinatorPhoneNumber
isRemoved
InstructorWorklistUser

12 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
ALERT TITLE TOKEN ${}

notificationUserName
InstructorFirstName
InstructorLastName
InstructorEmail
InstructorLineManagerUser
InstructorLineManagerEmail

WLF-00009: learningActivityDate
LearningCloudInstructorBookingEventRemov learningActivityStartTime
al learningActivityEndTime
learningActivityTimezone
learningActivityTitle
learningActivityDescription
learningActivityExpectedEffort
learningActivityClassroom
learningActivityVirtualClassroom
learningActivitVirtualClassroomLink
learningActivityInstructors
learningActivityLocation
learningActivityResources
learningActivityAdhocResources
learningActivityAddToCalendar
OfferingTitle
OfferingDescription
learningItemLink
Learning Item FlexFields
Offering FlexFields
offeringFlexFieldMap
courseTitle
CourseTitle
CourseSyllabus
thumbnailURL
thumbnail
Course FlexFields
ChangeDetails
bookingEventType
learningItemType
offeringCoordinatorName
offeringCoordinatorEmailAddress
offeringCoordinatorPhoneNumber
isRemoved
InstructorWorklistUser
notificationUserName
InstructorFirstName
InstructorLastName
InstructorEmail
InstructorLineManagerUser
InstructorLineManagerEmail
Table 2. Valid Tokens

13 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Resource Alerts based on REST
Resource alerts let you configure when and how alerts are sent to users based on Oracle Learning resources. Unlike
the pre-defined event alerts, you define events that trigger a resource alert. Resource alerts use the Oracle Learning
REST endpoints in Fusion.

learnerLearningRecords REST API


The learnerLearningRecords resource includes a collection of assignment records, or a single assignment record
when queried with assignment record ID for a learner. This is a functional user REST resource and applies to a learner,
and not a learning specialist. The assignment records are included for learning item types: Course, Specialization,
Video and Tutorial. The assignment records include Voluntary and Required assignments, and not Recommended.
This resource returns a JSON document with collections or individual learning records and filters can be applied. It
contains the following top-level child resources: (Review the learnerLearningRecords REST API

Documentation for the detail levels under these top-level child resources.)
• ……/Completion Details
• ……/Completion Summary
• ……/Learning Outcomes
• ……/Learning prerequisites
• ……/Selected Course Offerings

Note: Resource Alerts do not support DFF.

Sometimes the REST response data needs manipulation or transformation when creating an alert.
• Dates: “2019-02-23T23:16:05.410+00:00” = “23rd February”
• Lookup values: “ORA_ASSN_REC_INPROGRESS” = “In Progress”
• Username: “100000008153818” = “john.smith”
• Recipient email address of the Learner’s Manager =
${AlertUtils.empManager(learnerLearningRecords.assignedToId).WorkEmail}

Building an Oracle Learning Resource Alert


The following are the high-level steps you need to follow to create a resource alert. Within each step are questions to
consider.
1. Create the alert.
2. Define the filter. Filters enable you to specify the triggering criteria for alert notifications. What data should be
used in the alert? For example, “find me all of the required assignments that have occurred within the last 24
hour period.” Does the data need any transformation to execute the filter? For example, are you using a date
format that needs manipulation in the filter?
3. Define which recipients should receive the alert. Who should receive this alert and by what alert method? For
example, “send the learner and the learner’s manager a notification alert and an email alert when the learner
has required learning within the last 24 hour period.” Ensure that the recipient being used is following the
correct string tokens.
4. Define the message. What is the message subject and body of the message? What are the tokens that are
going to be used in the body of the message? For example, you would want to create a message that tells the
recipient (the recipient’s name would be a token in the message) that they have received a list of required
learning (also a token in the message) in the last 24-hour period. When adding the token, you may also need
to transform it to a correctly formatted value that looks good to the end user.
5. Run a simulation to test the alert

Note: For example on Resource Alert Digests, refer to


https://community.oracle.com/customerconnect/discussion/588473/example-oracle-learning-cloud-resource-alert-digests

14 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Creating a Basic Oracle Learning Learner Learning Records Resource Alert
Using the high level steps above, let’s create a basic resource alert that can be sent to users that have required
assignments that were assigned in the last 24 hours.

Create the Resource Alert


1. Click Navigator > Alerts Composer.
2. On the Alerts page, select Add > Resource Alert.
3. On the Add Resource Alert page, enter the name and description for the alert.
4. The character limit for name is 80 and description is 2000.
5. In the Resource field, select the REST resource for which you want to create the alert. Use
learnerLearningRecords.

Image 2. Create Resource Alert

Define the Filter


Create a filter for learning records with required assignments that were created in the last 24 hours. To define the
filter:
1. On the Filters tab, click Add Filter.
2. On the Add Filter page, in the Resource field, select learnerLearningRecords resource
3. Click Add Expression to define filter expressions on specific attributes of the resource.

15 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Image 3. Add Filter

4. In the Edit Expression dialog box, select the parameters to build the filter expression.
- Enter a name for the expression.
- Use the Prefix With option to specify any prefix operators on the expression.
- In the Attribute field, select the resource name and the attribute that you want to specify the filter condition
on.
- In the Operator field, select the logical operator.
- In the Value field, specify the value for the condition.
- Click Insert into Expression.
- Click Apply. The expression appears on the Add Filter page.
- Repeat steps 3 and 4 to add more filter expressions.
- Click Apply to return to the Add Resource Alert page.
- Repeat steps 1 to 4 to define more filters on the Resource alert.

Image 4. Edit Expression

In this example, notice that a filter has been created that includes required assignments that have occurred within the
past 24 hour period.
Define Who Receives the Alert and How They Receive It

Send the alert to learners via an email message and via a worklist notification.
1. On the Add Resource Alert page, click the Templates tab and then click Add Template.
2. Enter a name for the template and select the default language. The character limit for template name is 80.
By default, the template is enabled.
3. Click Edit and select Manage Recipients and Message.
4. On the Edit Template page, click Add Recipient.

16 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
5. In the Communication Method column, select email or worklist from the list of values.
In the Expression field:
- Add the expression for the email address or user name of the recipient.
- Add comma-delimited expressions for email addresses or user names of multiple recipients.
Or

- Click the Expression icon to build the expression.


In the Edit Expression dialog box, follow one of these steps:
- In the Literal field, enter the expression directly, for example, [email protected].
- Select the parameters to build the expression, for example, ${emps.WorkEmail}. See Alerts Composer
Functions and Groovy Expressions: Explained for more examples.
- Click Apply. The expression appears on the Edit Template page.

Image 5. Edit Template

In the above example, two recipient lists were created: One to send learner alerts to the worklist, and another to send
alerts to the email address on learner person records.

Create a Message for the Resource Alert


Indicate to learners in the message that they have required learning that has been assigned in the last 24 hours. To
configure the message subject and body of the message:
1. In the Message section, set up the notification format.
2. Select the HTML or Text format for the message text.
3. Enter the message subject. You can also insert expressions in the subject using the Expression icon, which
we will cover more below.
4. Use the rich text editor to format the message text. You can select options such as font, size, style, and so on.
Enter the message text. You can also include expressions in the text. For example: “Hello, World. You have Required
Learning”

Run a Simulation to Test the Alert


The alert can be run on-demand, or scheduled on the Run Options tab. For testing purposes, use the on-demand
option and select Yes from the Simulate Run drop-down list.

17 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Image 6. Run Simulation Test

This simulates how the alert is run, and how it appears to end users. You can see the results of the run in Alerts
History. Once you are satisfied with how the message works and looks to end users, the next step is to run the alert in
live mode. You can do this by selecting No from the Simulate Run drop-down list. You can then validate that
learners that had required assignments in the last 24 hours received the email and worklist notification on the Alerts
History page.

Learner Learning Records Resource Alert Configuration Details


Now that you know how to configure a basic alert, let’s go into the details of each of the alert configuration steps to
discuss the details and show some more examples.

Key LearnerLearningRecord Lookups


The table below defines lookup values that are used in the Learner Learning Record Resource. These are common
attributes that could be used when building alert filters. The lookup values displayed in the table are the out of the box
values, and may change over time. It is important to view the most up to date values that are in you pod by accessing
the lookup values in your system.

Note: refer to the Lookup Values chapter of the Implementing Oracle Learning guide on docs.oracle.com for
instructions on how to do this.

LOOKUP ATTRIBUTE LOOKUP ITEMS

AssignedLearningItemTypeLOV ORA_COURSE – Course


ORA_CLASS - Class
"href" : "https://hcym- ORA_SPECIALIZATION - Specialization
test.fa.us2.oraclecloud.com:443/hcmRestApi/reso ORA_LEGACY – Inactive Item
urces/11.13.18.05/learnerLearningRecords/{id}/l
ov/AssignedLearningItemTypeLOV"

ASSIGNMENT TYPE ORA_RECOMMEND_ASSIGNMENT – Recommend


"https://hcym- Assignment.
test.fa.us2.oraclecloud.com:443/hcmRestApi/reso ORA_REQUIRE_ASSIGNMENT – Required
urces/11.13.18.05/learnerLearningRecords/{id}/l Assignment
ov/AssignmentTypeLOV" ORA_JOIN_ASSIGNMENT – Voluntary Assignment
or Self Joined Assignment

18 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
LOOKUP ATTRIBUTE LOOKUP ITEMS

Learning Record Status ORA_ASSN_REC_COMPLETE


"href" : "https://hcym- ORA_ASSN_REC_ACTIVE
test.fa.us2.oraclecloud.com:443/hcmRestApi/reso ORA_ASSN_REC_WITHDRAWN
urces/11.13.18.05/learnerLearningRecords/{id}/l ORA_ASSN_REC_CONTENT_COMPLETE
ov/AssignmentStatusLOV" ORA_ASSN_REC_PENDING_ACTIVE
ORA_ASSN_REC_REQ_APPROVED
ORA_ASSN_REC_REQ_REJECTED
ORA_ASSN_REC_DELETED

Assigned to ORA_PERSON
"href" : "https://hcym- ORA_SPECIALIST
test.fa.us2.oraclecloud.com:443/hcmRestApi/reso
urces/11.13.18.05/learnerLearningRecords/{id}/l
ov/AssignedToTypeLOV",

Assigner ORA_WLF_LEGAL – Legal attribution code on


"href" : "https://hcym- who made the assignment.
test.fa.us2.oraclecloud.com:443/hcmRestApi/reso ORA_WLF_CEO_OFFICE – CEO attribution code on who made
urces/11.13.18.05/learnerLearningRecords/{id}/l the assignment.
ov/AssignerToAttributionTypeLOV" ORA_WLF_SECURITY – Security attribution code on who made
the assignment.
Table 3. LearnerLearningRecords Lookups

Filter Examples
The table below provides some additional common filter examples that you can use.

FILTER EXAMPLE DEFINITION

Current Assignments

${assignmentCreatedDate} >= sysdate-1 All assignments created in the last 24 hours

${assignmentCreatedDate} >= sysdate-1 All assignments created in the last 24 hours that are
${assignmentType} = ‘ORA_REQUIRE_ASSIGNMENT' required assignments.

${assignmentCreatedDate} <= sysdate All open active status Required assignments


${assignmentStatus} = ‘ORA_ASSN_REC_ACTIVE’
${assignmentStatus} = ‘ORA_ASSN_REC_CONTENT_COMPLETE'
${assignmentType} = 'ORA_REQUIRE_ASSIGNMENT'
${assignmentType} = 'ORA_ASSN_REC_WITHDRAW_PENDING'

Assignments Completed

${assignmentCompleteDate} >= sysdate-7 All assignments completed this week. Can create the alert
${assignmentStatus} = ‘ORA_ASSN_REC_COMPLETE’ to be run weekly.

Assignments Past Due

${assignmentDueDate} <= sysdate All assignments past due.


${assignmentStatus} = ‘ORA_ASSN_REC_ACTIVE’
${assignmentStatus} = ‘ORA_ASSN_REC_CONTENT_COMPLETE'
${assignmentType} = 'ORA_ASSN_REC_WITHDRAW_PENDING'

19 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
FILTER EXAMPLE DEFINITION

${assignmentDueDate} >= sysdate+7 All Specialization assignments past due for more than 1
${learningItemType} = 'ORA_SPECIALIZATION' week.
${assignmentStatus} = ‘ORA_ASSN_REC_ACTIVE’
${assignmentStatus} = ‘ORA_ASSN_REC_CONTENT_COMPLETE'
${assignmentType} = 'ORA_ASSN_REC_WITHDRAW_PENDING'

${assignmentDueDate} >= sysdate All assignments due in the next 24 hours (two expressions
${assignmentDueDate} <= sysdate+1 in one filter)
${assignmentStatus} = ‘ORA_ASSN_REC_ACTIVE’
${assignmentStatus} = ‘ORA_ASSN_REC_CONTENT_COMPLETE'
${assignmentType} = 'ORA_ASSN_REC_WITHDRAW_PENDING'

My Team(Note: Group by function will be needed)

${assignmentDueDate} >= sysdate+7 All my teams assignments past due for more than 1 week.
${assignmentStatus} = ‘ORA_ASSN_REC_ACTIVE’
${assignmentStatus} = ‘ORA_ASSN_REC_CONTENT_COMPLETE'
${assignmentType} = 'ORA_ASSN_REC_WITHDRAW_PENDING'

${assignmentStatus} = ‘ORA_ASSN_REC_PENDING_ACTIVE‘ All my teams’ assignments that need approval.

${assignmentStatus} = ‘ORA_ASSN_REC_REQ_REJECTED‘ All my teams’ assignments that have been rejected.


Table 4. Filter Examples

Recipient Examples
In this example, there are two recipient lists; one to send to learners (the alert to their worklist), and another to send to
the email address on their person records.

RECIPIENT EXAMPLES DEFINITION

${AlertUtils.person(learnerLearningRecords.assignedToId).UserName} When you need employee’s username (worklist) and only


have a Person ID.

${AlertUtils.person(learnerLearningRecords.assignedToId).WorkEmail} When you need employee’s Email and only have a Person
ID.

${AlertUtils.empManager(learnerLearningRecords.assignedToId).UserName} When you need the Manager’s Username.

${AlertUtils.empManager(learnerLearningRecords.assignedToId).WorkEmail} When you need the Manager’s Email.


Table 5. Recipient Examples

Message and Group by Examples


There is a preconfigured, sample resource alert called Learner Notification of Learning in Oracle Learning that will
help you to create your own messages and groups.

20 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Image 7. Message and Group By

This preconfigured resource alert contains example content, such as example assignment filter expressions, message
text with tokens, and communication method expressions that you can change to suit your organization’s needs.

Out of the box, this message is set to do the following:


• Filter out all assignments created since the last time the alert appeared.
• Use the learner who has received the assignment as the recipient.
• Use tokens to pull in values that are specific to the learning assignment.
• Use conditional messages so that certain text is displayed depending on whether the assignment is required
or voluntary.
• Use examples for conditional messages on assignment type and sub status.
• Use a looping mechanism that enables looping through an offering in an activity on a specialization.

Messages
When creating a message, you will need to do the following:

1. In the Message section, set up the notification format, select the HTML or Text format for the message text.
2. Enter the message subject. You can also insert expressions in the subject using the Expression icon.
3. In the Group By field, specify an expression for the attribute that the message should be grouped by.
4. Enter the message text. You can also include expressions in the text.
5. Use the rich text editor to format the message text. You can select options such as font, size, style, and so on.

Expressions
When you create a subject or message you can use expressions. Expressions in resource alerts are similar to tokens
found in word processing software.

21 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Image 8. Insert Expression

You select an attribute/token that exists in the learnerLearningRecord REST resource, and add it to the subject or
message. At run time, the appropriate value is placed in this attribute/token. Select the Insert Expression option to
build expressions and insert them into the message text or subject text.

Attachments & Links


Attachments/related materials can be enclosed in a resource alert notification by mail. They can either be icalendar
attachments or the attachments that are on offerings/activities.

For activity attachments we can use,

https://HOST/hcmRestApi/resources/latest/learnerLearningRecords?q=learningItemNumber='OLC153792'&expan
d=completionDetails.relatedMaterials

learningRecords/completionDetails/relatedMaterials.

For Calendar Links we have an addToCalenderLink though in the completionDetails.

https://HOST/hcmRestApi/resources/latest/learnerLearningRecords?q=learningItemNumber='OLC153792'&expan
d=completionDetails

"completionDetails": {

"items": [

"activityId": 300100189347364,

"activityNumber": "OLC153797",

"activityType": "ORA_ONLINE_IL",

"activityTitle": "activ",

"activityDescription": null,

"activityShortDescription": null,

"activityDisplayOrder": 1,

"activitySectionId": null,

"activitySectionNumber": null,

"activitySectionTitle": null,

"activitySectionDescription": null,

"activitySectionDisplayOrder": null,

"activitySecComplRequired": null,
22 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1
Copyright © 2022, Oracle and/or its affiliates / Public
"activitySectionTotalActivities": null,

"activitySectionAttemptStatus": null,

"activitySectionAttemptStatusMeaning": null,

"activitySectionAttemptCompletionProgress": null,

"activityPassingScore": null,

"activityExpectedEffort": null,

"activityEffortUnits": "ORA_DUR_HOUR",

"activityComplRequirement": "ORA_REQUIRED",

"activityLearnerMarkCompl": "N",

"activityDate": "2020-06-19",

"activityStartTime": "3:00 PM",

"activityEndTime": "6:00 PM",

"activityTimeZone": "America/Los_Angeles",

"virtualClassroomJoinLink": "https://oracle.com",

"virtualClassroomInformation": "https://oracle.com",

"addToCalendarLink": "https://HOST/hcmUI/rest/v2/learn/activity/300100189347364”, <———

When the user clicks on this, they can download the ICS attachment.

Group By
The Group By functionality is used to arrange data results into groups based on some defined attribute in the
learnerLearningRecord REST resource. For example, in the table below, there are two “group by” examples listed. One
allows grouping by the learners’ assignments (learning assigned to), and one groups by the manager’s direct reports
assignments (learning assigned to). You can use the expression builder to define the “group by”. Note that to group
by the manager directs you will need to manipulate the expression as shown in the table below. This can’t be
configured via the group by expression builder.

GROUP BY DEFINITION

${learnerLearningRecords.assignedToId} Groups by the learning records (assignments) by the


Learner (assigned to)

${AlertUtils.empManager(learnerLearningRecords.assignedToId).UserName} Group by the Managers directs’ learning.


Table 6. Group By Examples

EXAMPLES DEFINITION OUTPUT

Group By: Loops through Learner’s


${learnerLearningRecords.assignedToId} assignments in the template
Message: body

${AlertUtils.write("<table
border=\"1\"><tr><th>Learning Item Title</th>
<th>Assigner Name</th></tr>")}

23 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
EXAMPLES DEFINITION OUTPUT

${AlertUtils.loop('learnerLearningRecords','<tr><td>${l
earningItemTitle}</td><td>${assignerDisplayName}<
/td></tr>')}
${AlertUtils.write("</table>")}

Group By: Loops through the directs’


${AlertUtils.empManager(learnerLearningRecords.assi assignments in the template
gnedToId).UserName} body.

Message:
${AlertUtils.write("<table
border=\"1\"><tr><th>Name</th> <th>Learning
Item Title</th></tr>")}
${AlertUtils.loop('learnerLearningRecords','<tr><td>${
assignedToDisplayName}</td><td>${learningItemTitl
e}</td></tr>')}
${AlertUtils.write("</table>")}

Conditional Statements on Assignment sub status in Example of additional


Message conditional statements that
can be added to display
<% if (assignmentSubStatus additional message text.
== 'ORA_ASSN_REC_NO_OFFR') { %>
Please select an offering
<% } else { %>
The activities of the selected offering are:
<% } %>

Using Deep Links in Message: Use a deep link on a learning


to display a link in the
Click <a message.
${href}="${assignmentDetailsDeepLink}">here</a> to
start learning!

You have been assigned <a


${href}="${learningItemDeepLink}">${learningItemTit
le}</a>

${AlertUtils.loop('learnerLearningRecords','<tr><td><a
${href}="${learningItemDeepLink}">${learningItemTit
le}</a></td><td>${assignerDisplayName}</td></tr>'
)}

Table 7. Message Example with Group By

DATE FORMATTING DEFINITION OUTPUT

${AlertUtils.formatDate(learnerLearningRecords.assignm Will take currently


entDueDate)} configured user
preference date
format.

${AlertUtils.loop('learnerLearningRecords','<tr><td>${lea With a specific


rningItemTitle}</td><td>${assignerDisplayName}</td> format and inside
<td>${AlertUtils.formatDate(assignmentDueDate,\'dd- of a loop.
MMM-yyyy\')}</td></tr>')}

Table 8. Date Formatting Examples

24 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Performance Considerations when Creating Resource Alerts
When a resource alert runs, it first evaluates the filters associated to the alert to derive the data that matches the alert
and who should the alert be sent to. The alert then takes all the data and loops through it to create the notification
based on the HTML represented in the resource alert.

Filter Recommendations:
• Be smart with your filters, it is imperative to ensure that filters are used in a way to only bring in a subset of
enrollment data. For example, use assigned on date to only evaluate enrollments since a certain time vs.
assignments over the entire life of the product.
Example - ${assignedDate}>=sysdate-7 AND ${assignedDate}<=sysdate
• Always use the Learning Item type field to evaluate enrollments. We recommend using this filter always:
Learning Type: ${learningItemType} = 'ORA_COURSE' OR 'ORA_SPECIALIZATION'
• When a child resource is being used as a filter the name of the filter should be structured in the following format:
<ParentResource Name>__<FilterName>. The __ are two underscores. <Parent
ResourceName>”_””_”<FilterName>
- Filter Name: learnerLearningRecord__DeliveryMode
- Filter Value: ${offeringDeliveryMode} = 'ORA_ILT’
- By using this format, you are telling the resource alert engine to use the sub resource as an exist clause.
Then, it only pulls in records where this child resources is met, therefore improving the performance because
fewer results will be returned.
• Use Fields that have indexes: Here are a list of learnerLearningRecord fields that have indexes on them:
- SUB_STATUS
- STATUS
- REQUEST_DETAIL_ID
- EFFECTIVE_START_DATE
- EFFECTIVE_END_DATE
- LEARNER_ID
- EVENT_TYPE
- ATTRIBUTION_ID
- ATTRIBUTION_TYPE
- ASSIGNED_ON_DATE
- LEARNING_ITEM_TYPE
- LEARNING_ITEM_SUB_TYPE
- ORIGINAL_EVENT_TYPE
- EVENT_ASSIGNMENT_ID
- ASSIGNMENT_RECORD_NUMBER
- LEARNING_ITEM_ID
- ASSIGNMENT_RECORD_ID
- EVENT_CREATED_BY_ID
- COMPLETION_DATE
- NOTIFICATION_STATUS
- ACCESS_PERMISSION_ID
- ASSIGNMENT_RECORD_ID
- CREATION_DATE
- ASSIGNMENT_DUE_DATE
- OFFERING_DELIVERY_MODE
- OFFERING_START_DATE
- LAST_MODIFIED_DATE
- ASSIGNMENT_CREATE_DATE

25 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Working Examples
Working Example #1:
Alert Title and New Required Course Assignment - since last time alert ran
Description This notification will target all required learning assignments created on courses since the
last time the same alert ran. The Run Options Schedule will determine the span between
each alert run. Set it to 1 hour and it will run every hour, taking all assignments created
during that span.
The template is not "grouped" so it will send an email for each assignment happening.
The template will account for the case where learner is assigned to an offering or not, and
will adapt accordingly
Filters Cumulative filters (Match All)

${assignmentType} = 'ORA_REQUIRE_ASSIGNMENT'
${learningItemType} = 'ORA_COURSE'
${assignmentStatus} = 'ORA_ASSN_REC_ACTIVE'

exists (SELECT 'x' from dual where ${assignmentCreatedDate} >= (select


nvl(max(runs.run_end),sysdate-1) from hrc_alert_runs runs, hrc_alerts_b alerts where
runs.alert_id = alerts.alert_id and alerts.alert_code = 'PUT_ALERT_CODE_HERE'))
Template Title New Required Course Assignment - To Learners - No Grouping
Template Mail : Mail : ${AlertUtils.person(learnerLearningRecords.assignedToId).WorkEmail}
Recipient (s) Worklist : ${AlertUtils.person(learnerLearningRecords.assignedToId).UserName}
Template None
Group by
Template You are required to take the following training: ${learnerLearningRecords.learningItemTitle}.
Subject

26 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Template Code <style>
.NotificationTextContent,.NotificationTableContent,.NotificationHeaderContent,.Notification
FooterContent,.NotificationCoverStyle,.CoverTransparentDiv,.NotificationLink {font-family:
Helvetica;}
.NotificationTextContent {color: #000000;}
.NotificationTextContent h3 {font-family: Helvetica;font-size:16px;font-style: normal;}
.NotificationCoverStyle {border-radius:8px; width:600px; height:150px;background:linear-
gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)),
url(${learnerLearningRecords.learningItemCoverArtLink});background-repeat: no-repeat;
background-size: 615px auto;}
.NotificationTableContent {color: #000000; width:100%;}
.NotificationFooterContent {color:#666666; font-size:12px;}
.NotificationHeaderContent {background-color: #FF0000;}
a.NotificationLink:link {font-family:Helvetica; color: #FF0000; font-style: italic; font-
size:12px;}
a.NotificationLink:hover {font-family:Helvetica; color: #000000; font-style: italic;font-
size:12px;}
a.NotificationLink:visited {font-family:Helvetica; color: #666666; font-style: italic;font-
size:12px;}
.CoverTransparentDiv {width:600px; height:150px; position: relative;}
.CoverTransparentDiv p {position: absolute; top: 50%; left: 50%; transform: translate(-50%, -
50%); color:#FFFFFF;font-size:18px;}
</style>

<table border="0" width="615" cellspacing="0" bgcolor="#EFEFEF">


<tbody>
<tr>
<td class="NotificationHeaderContent"><a class="NotificationLink"
href="http://www.oracle.com/" target="_blank" rel="noopener"> <img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/30
2715.gif" alt="Oracle Corporation" width="123" height="30" border="0"
hspace="33"></a></td>
</tr>
<tr>
<td>
<p class="NotificationTextContent"><h3>Dear
${AlertUtils.person(learnerLearningRecords.assignedToId).FirstName},</h3>You are
required to take the following training course</p>
</td>
</tr>
<tr>
<td>
<table class="NotificationCoverStyle">
<tbody><tr>
<td>
<div class="CoverTransparentDiv">
<p> ${learnerLearningRecords.learningItemTitle}</p>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
27 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1
Copyright © 2022, Oracle and/or its affiliates / Public
<tr>
<td>
<div class="NotificationTextContent">
<h3>Why do I see this </h3>
<p>You have been assigned this training by
${learnerLearningRecords.assignerDisplayName} on
${AlertUtils.formatDate(learnerLearningRecords.assignmentCreatedDate, 'dd-MMM-yyyy')}.
It is due on ${AlertUtils.formatDate(learnerLearningRecords.assignmentDueDate, 'dd-MMM-
yyyy')}</p>
<p>Description : ${learnerLearningRecords.liShortDescription}</p>
<h3>Actions </h3>
<p>Your status on this training is currently
${learnerLearningRecords.assignmentStatusMeaning} -
${learnerLearningRecords.assignmentSubStatusMeaning} </p>

<div><br>&lt;% if (assignmentSubStatus == 'ORA_ASSN_REC_NO_OFFR') { %&gt;


<br><a class="NotificationLink"
${href}="${learnerLearningRecords.assignmentDetailsDeepLink}" ;target="_blank">Click
here for more information and select an offering.</a>
<br>&lt;% } else { %&gt;
<br>

<p>Here is the program for your confirmed offering :


${learnerLearningRecords.selectedCourseOfferings[0].learningItemTitle}</p>
<br>

<table>

${AlertUtils.loop('selectedCourseOfferings,completionDetails','','<tr><td>${activityTitle}</td
><td>${activityTypeMeaning}</td><td>${AlertUtils.formatDate(activityDate,\'dd-MMM-
yyyy\')}</td><td>${activityStartTime}</td><td>${activityEndTime}</td><td>${activityTim
eZone}</td><td><a class="NotificationLink" ${href}="${addToCalendarLink}"
;target="_blank">Add to Calendar</a></td></tr>')}

</table>

<br>&lt;% } %&gt;
</div>

<p class="NotificationFooterContent"> For any additional question, please contact your HR


representative. <br> The Learning and Development Team</p>
</div>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td><img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/19
6877.gif" alt="Hardware and Software Engineered to Work
Together" border="0"></td>
<td width="20"><img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/18
9995.gif" alt="" width="20" height="65" border="0"></td>
28 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1
Copyright © 2022, Oracle and/or its affiliates / Public
</tr>
<tr>
<td>
<table>
<tbody>
<tr class="NotificationFooterContent">
<td class="NotificationFooterContent">Copyright &copy; 2020, Oracle. All rights
reserved.</td>
<td class="NotificationFooterContent"><a class="NotificationLink"
href="http://www.oracle.com/us/corporate/contact/index.html" target="_blank"
rel="noopener"> <u>Contact Us</u></a> | <a class="NotificationLink"
href="http://www.oracle.com/html/copyright.html" target="_blank"
rel="noopener"><u>Legal Notices and Terms of Use</u></a> | <a class="NotificationLink"
href="http://my.oracle.com/content/idcplg/cnt337893.pdf?IdcService=GET_FILE&amp;noS
aveAs=1&amp;Rendition=Web&amp;RevisionSelectionMethod=LatestReleased&amp;allowI
nterrupt=1&amp;dDocName=cnt337893" target="_blank" rel="noopener"> <u>Privacy
Statement</u></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>

29 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Screenshots

Image 9. Working Example 1.0

Image 10. Working Example 1.1


Note: Copy paste the code into the code version of the email body, not the rich text version.

30 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Working Example #2
Alert Title and All Overdue Learning Assignment - Group by Learner
Description This notification will target all required learning assignments which are overdue. The Run
Options Schedule will determine the span between each alert run. Set it to 1 day and it will
run every day.
The template is Grouped by Learner ID, meaning all assignments fitting the criteria at the
time the alert is generated will be part of the same notification.
Filters Cumulative filters (Match All)
${assignmentDueDate} <= sysdate
${assignmentStatus} = 'ORA_ASSN_REC_ACTIVE'
${assignmentType} = 'ORA_REQUIRE_ASSIGNMENT'
Template Title All Overdue Learning Assignment - To Learners - Group by Learner
Template Mail : ${AlertUtils.person(learnerLearningRecords.assignedToId).WorkEmail}
Recipient (s) Worklist : ${AlertUtils.person(learnerLearningRecords.assignedToId).UserName}
Template ${learnerLearningRecords.assignedToId}
Group by
Template Urgent - You Still Have Overdue Learning Assignments.
Subject
Template Code <style>
.NotificationTextContent,.NotificationTableContent,.NotificationHeaderContent,.Notification
FooterContent,.NotificationCoverStyle,.CoverTransparentDiv,.NotificationLink {font-family:
Helvetica;}
.NotificationTextContent {color: #000000;}
.NotificationTextContent h3 {font-family: Helvetica;font-size:16px;font-style: normal;}
.NotificationCoverStyle {border-radius:8px; width:600px; height:150px;background:linear-
gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)),
url(${learnerLearningRecords.learningItemCoverArtLink});background-repeat: no-repeat;
background-size: 615px auto;}
.NotificationTableContent {color: #000000; width:100%;}
.NotificationFooterContent {color:#666666; font-size:12px;}
.NotificationHeaderContent {background-color: #FF0000;}
a.NotificationLink:link {font-family:Helvetica; color: #FF0000; font-style: italic; font-
size:12px;}
a.NotificationLink:hover {font-family:Helvetica; color: #000000; font-style: italic;font-
size:12px;}
a.NotificationLink:visited {font-family:Helvetica; color: #666666; font-style: italic;font-
size:12px;}
.CoverTransparentDiv {width:600px; height:150px; position: relative;}
.CoverTransparentDiv p {position: absolute; top: 50%; left: 50%; transform: translate(-50%, -
50%); color:#FFFFFF;font-size:18px;}

</style>

<table border="0" width="615" cellspacing="0" bgcolor="#EFEFEF">


<tbody>
<tr>
<td class="NotificationHeaderContent"><a class="NotificationLink"
href="http://www.oracle.com/" target="_blank" rel="noopener"> <img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/30
31 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1
Copyright © 2022, Oracle and/or its affiliates / Public
2715.gif" alt="Oracle Corporation" width="123" height="30" border="0"
hspace="33"></a></td>
</tr>
<tr>
<td>
<p class="NotificationTextContent"><h3>Dear
${AlertUtils.person(learnerLearningRecords[0].assignedToId).FirstName},</h3> You still
have some overdue Learning Assignments</p>
</td>
</tr>

<tr>
<td>
<div class="NotificationTextContent">
<h3>Why do I see this </h3>
<p>You still have some overdue Learning Assignments. Please see the summary
below:</p>
<table>
${AlertUtils.loop('learnerLearningRecords','<tr><td><img
${src}="${learnerLearningRecords.learningItemThumbnailLink}" alt="Missing cover art"
width="200" height="100"></td><td><a class="NotificationLink"
${href}="${learningItemDeepLink}"
target="_blank">${learningItemTitle}</a></td><td>${learningItemTypeMeaning}</td><td>
Assigned on ${AlertUtils.formatDate(assignmentCreatedDate,\'dd-MMM-
yyyy\')}</td><td>Due since <b>${AlertUtils.formatDate(assignmentDueDate,\'dd-MMM-
yyyy\')}</b></td></tr>')}
</table>
<p><h3>Actions </h3>For more information, please go here. </p>
<p class="NotificationFooterContent"> For any additional question, please contact your HR
representative. <br> The Learning and Development Team</p>
</div>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td><img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/19
6877.gif" alt="Hardware and Software Engineered to Work
Together" border="0"></td>
<td width="20"><img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/18
9995.gif" alt="" width="20" height="65" border="0"></td>
</tr>
<tr>
<td>
<table>
<tbody>
<tr class="NotificationFooterContent">
<td class="NotificationFooterContent">Copyright &copy; 2020, Oracle. All rights
reserved.</td>
<td class="NotificationFooterContent"><a class="NotificationLink"
href="http://www.oracle.com/us/corporate/contact/index.html" target="_blank"
rel="noopener"> <u>Contact Us</u></a> | <a class="NotificationLink"
href="http://www.oracle.com/html/copyright.html" target="_blank"
rel="noopener"><u>Legal Notices and Terms of Use</u></a> | <a class="NotificationLink"
32 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1
Copyright © 2022, Oracle and/or its affiliates / Public
href="http://my.oracle.com/content/idcplg/cnt337893.pdf?IdcService=GET_FILE&amp;noS
aveAs=1&amp;Rendition=Web&amp;RevisionSelectionMethod=LatestReleased&amp;allowI
nterrupt=1&amp;dDocName=cnt337893" target="_blank" rel="noopener"> <u>Privacy
Statement</u></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
Screenshot

Image 11. Working Example 2


Note: Copy paste the code into the code version of the email body, not the rich text version.

Working Example #3:


Alert Title and Required Learning is due soon (7 days) - daily
Description This notification will target all required learning assignments which will be overdue in the
next 7 days. The Run Options Schedule will determine the span between each alert run. Set it
to 1 day and it will run every day, taking all assignments soon due in that timespan.
The template is not "grouped" so it will send an email for each assignment overdue
happening.
Filters Cumulative filters (Match All)

${assignmentDueDate} >= sysdate+7


${assignmentDueDate} <= sysdate+8
${assignmentStatus} = 'ORA_ASSN_REC_ACTIVE'
${assignmentType} = 'ORA_REQUIRED_ASSIGNMENT'

AND Alternative filters (Match Any)


${learningItemType} = 'ORA_COURSE'

33 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
${learningItemType} = 'ORA_SPECIALIZATION'
Template Title Learning Assignments Due Soon (7 Days) - To Learners - No Grouping
Template Mail : ${AlertUtils.person(learnerLearningRecords.assignedToId).WorkEmail}
Recipient (s) Worklist : ${AlertUtils.person(learnerLearningRecords.assignedToId).UserName}
Template None
Group by
Template Your Required Learning assignment on ${learnerLearningRecords.learningItemTitle} is due
Subject very soon (7 days).
Template Code <style>
.NotificationTextContent,.NotificationTableContent,.NotificationHeaderContent,.Notification
FooterContent,.NotificationCoverStyle,.CoverTransparentDiv,.NotificationLink {font-family:
Helvetica;}
.NotificationTextContent {color: #000000;}
.NotificationTextContent h3 {font-family: Helvetica;font-size:16px;font-style: normal;}
.NotificationCoverStyle {border-radius:8px; width:600px; height:150px;background:linear-
gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)),
url(${learnerLearningRecords.learningItemCoverArtLink});background-repeat: no-repeat;
background-size: 615px auto;}
.NotificationTableContent {color: #000000; width:100%;}
.NotificationFooterContent {color:#666666; font-size:12px;}
.NotificationHeaderContent {background-color: #FF0000;}
a.NotificationLink:link {font-family:Helvetica; color: #FF0000; font-style: italic; font-
size:12px;}
a.NotificationLink:hover {font-family:Helvetica; color: #000000; font-style: italic;font-
size:12px;}
a.NotificationLink:visited {font-family:Helvetica; color: #666666; font-style: italic;font-
size:12px;}
.CoverTransparentDiv {width:600px; height:150px; position: relative;}
.CoverTransparentDiv p {position: absolute; top: 50%; left: 50%; transform: translate(-50%, -
50%); color:#FFFFFF;font-size:18px;}
</style>

<table border="0" width="615" cellspacing="0" bgcolor="#EFEFEF">


<tbody>
<tr>
<td class="NotificationHeaderContent"><a class="NotificationLink"
href="http://www.oracle.com/" target="_blank" rel="noopener"> <img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/30
2715.gif" alt="Oracle Corporation" width="123" height="30" border="0"
hspace="33"></a></td>
</tr>
<tr>
<td>
<p class="NotificationTextContent"><h3>Dear
${AlertUtils.person(learnerLearningRecords.assignedToId).FirstName},</h3>You are almost
overdue on the following training:</p>
</td>
</tr>
<tr>
<td>
<table class="NotificationCoverStyle">
<tbody><tr>
<td>

34 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
<div class="CoverTransparentDiv">
<p> ${learnerLearningRecords.learningItemTitle}</p>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>

<tr>
<td>
<div class="NotificationTextContent">
<h3>Why do I see this </h3>
<p>You have been assigned this training by
${learnerLearningRecords.assignerDisplayName} on
${AlertUtils.formatDate(learnerLearningRecords.assignmentCreatedDate, 'dd-MMM-yyyy')}.
It is due on ${AlertUtils.formatDate(learnerLearningRecords.assignmentDueDate, 'dd-MMM-
yyyy')}</p>
<p>Description : ${learnerLearningRecords.liShortDescription}</p>
<h3>Actions </h3>
<p>Your status on this training is currently
${learnerLearningRecords.assignmentStatusMeaning} -
${learnerLearningRecords.assignmentSubStatusMeaning} </p>

<div><br>&lt;% if (learningItemType == 'ORA_SPECIALIZATION') { %&gt;


<br> <div><p>Please see the program summary below:</p>

<table>
${AlertUtils.loop('learnerLearningRecords,completionDetails','','<tr><td>${activitySectionTitl
e}</td><td><img ${src}="${activityCoverArtLink}" alt="Missing cover art" width="200"
height="100"></td><td>${activityTitle}</td><td>${activityShortDescription}</td></tr>')}
</table></div>

<br>&lt;% } else { %&gt;


<br>

<div><br>&lt;% if (assignmentSubStatus == 'ORA_ASSN_REC_NO_OFFR') { %&gt;


<br><a class="NotificationLink"
${href}="${learnerLearningRecords.assignmentDetailsDeepLink}" ;target="_blank">Click
here for more information and select an offering.</a>
<br>&lt;% } else { %&gt;
<br>

<p>Here is the program for your confirmed offering :


${learnerLearningRecords.selectedCourseOfferings[0].learningItemTitle}</p>
<br>

<table>

${AlertUtils.loop('selectedCourseOfferings,completionDetails','','<tr><td>${activityTitle}</td
><td>${activityTypeMeaning}</td><td>${AlertUtils.formatDate(activityDate,\'dd-MMM-
yyyy\')}</td><td>${activityStartTime}</td><td>${activityEndTime}</td><td>${activityTim

35 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
eZone}</td><td><a class="NotificationLink" ${href}="${addToCalendarLink}"
;target="_blank">Add to Calendar</a></td></tr>')}

</table>

<br>&lt;% } %&gt;
</div>

<br>&lt;% } %&gt;
</div>

<p class="NotificationFooterContent"> For any additional question, please contact your HR


representative. <br> The Learning and Development Team</p>
</div>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td><img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/19
6877.gif" alt="Hardware and Software Engineered to Work
Together" border="0"></td>
<td width="20"><img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/18
9995.gif" alt="" width="20" height="65" border="0"></td>
</tr>
<tr>
<td>
<table>
<tbody>
<tr class="NotificationFooterContent">
<td class="NotificationFooterContent">Copyright &copy; 2020, Oracle. All rights
reserved.</td>
<td class="NotificationFooterContent"><a class="NotificationLink"
href="http://www.oracle.com/us/corporate/contact/index.html" target="_blank"
rel="noopener"> <u>Contact Us</u></a> | <a class="NotificationLink"
href="http://www.oracle.com/html/copyright.html" target="_blank"
rel="noopener"><u>Legal Notices and Terms of Use</u></a> | <a class="NotificationLink"
href="http://my.oracle.com/content/idcplg/cnt337893.pdf?IdcService=GET_FILE&amp;noS
aveAs=1&amp;Rendition=Web&amp;RevisionSelectionMethod=LatestReleased&amp;allowI
nterrupt=1&amp;dDocName=cnt337893" target="_blank" rel="noopener"> <u>Privacy
Statement</u></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>

36 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Screenshot

Image 12. Working Example 3


Note: Copy paste the code into the code version of the email body, not the rich text version.

Working Example #4:


Alert Title and Expiry approaching
Description
Filters Alternative filters (Match Any)
${learningItemType} = 'ORA_COURSE'
${learningItemType} = 'ORA_SPECIALIZATION'

AND Cumulative filters (Match All)


${assignmentType} = 'ORA_REQUIRED_ASSIGNMENT'
${assignmentStatus} = 'ORA_ASSN_REC_COMPLETED'
${expirationDate} > sysdate + 30
${expirationDate} < sysdate + 31
Template Title Learning Assignments Near Expiry - To Learners - No Grouping
Template Mail : ${AlertUtils.person(learnerLearningRecords.assignedToId).WorkEmail}
Recipient (s) Worklist : ${AlertUtils.person(learnerLearningRecords.assignedToId).UserName}
Template None
Group by
Template Your Training on ${learnerLearningRecords.learningItemTitle} is Approaching Expiry.
Subject
Template Code <style>

37 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
.NotificationTextContent,.NotificationTableContent,.NotificationHeaderContent,.Notification
FooterContent,.NotificationCoverStyle,.CoverTransparentDiv,.NotificationLink {font-family:
Helvetica;}
.NotificationTextContent {color: #000000;}
.NotificationTextContent h3 {font-family: Helvetica;font-size:16px;font-style: normal;}
.NotificationCoverStyle {border-radius:8px; width:600px; height:150px;background:linear-
gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)),
url(${learnerLearningRecords.learningItemCoverArtLink});background-repeat: no-repeat;
background-size: 615px auto;}
.NotificationTableContent {color: #000000; width:100%;}
.NotificationFooterContent {color:#666666; font-size:12px;}
.NotificationHeaderContent {background-color: #FF0000;}
a.NotificationLink:link {font-family:Helvetica; color: #FF0000; font-style: italic; font-
size:12px;}
a.NotificationLink:hover {font-family:Helvetica; color: #000000; font-style: italic;font-
size:12px;}
a.NotificationLink:visited {font-family:Helvetica; color: #666666; font-style: italic;font-
size:12px;}
.CoverTransparentDiv {width:600px; height:150px; position: relative;}
.CoverTransparentDiv p {position: absolute; top: 50%; left: 50%; transform: translate(-50%, -
50%); color:#FFFFFF;font-size:18px;}
</style>
<table border="0" width="615" cellspacing="0" bgcolor="#EFEFEF">
<tbody>
<tr>
<td class="NotificationHeaderContent"><a class="NotificationLink"
href="http://www.oracle.com/" target="_blank" rel="noopener"> <img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/30
2715.gif" alt="Oracle Corporation" width="123" height="30" border="0"
hspace="33"></a></td>
</tr>
<tr>
<td>
<p class="NotificationTextContent"><h3>Dear
${AlertUtils.person(learnerLearningRecords.assignedToId).FirstName},</h3>you are almost
expired on the following training.</p>
</td>
</tr>
<tr>
<td>
<table class="NotificationCoverStyle">
<tbody><tr>
<td>
<div class="CoverTransparentDiv">
<p> ${learnerLearningRecords.learningItemTitle}</p>
</div>
</td>
</tr>
</tbody></table>
</td>
</tr>
<tr>
<td>
<div class="NotificationTextContent">
38 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1
Copyright © 2022, Oracle and/or its affiliates / Public
<h3>Why do I see this </h3>
<p>You completed this training on
${AlertUtils.formatDate(learnerLearningRecords.completedDate, 'dd-MMM-yyyy')}. </p>
<p>You check on more details here: <a class="NotificationLink"
${href}="${learnerLearningRecords.assignmentDetailsDeepLink}"
target="_blank">${learnerLearningRecords.learningItemTitle}</a>
</p>
<h3>Actions </h3>
<p>You can already go to your renewal assignment <br>or <a class="NotificationLink"
${href}="${learnerLearningRecords.nextRenewalAssignmentDeepLink}"
;target="_blank">here</a> and pick up an offering if already available. </p>
<p class="NotificationFooterContent"> For any additional question, please contact your HR
representative. <br> The Learning and Development Team</p>
</div>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td><img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/19
6877.gif" alt="Hardware and Software Engineered to Work
Together" border="0"></td>
<td width="20"><img
src="http://www.oracleimg.com/ocom/groups/public/@ocom/documents/digitalasset/18
9995.gif" alt="" width="20" height="65" border="0"></td>
</tr>
<tr>
<td>
<table>
<tbody>
<tr class="NotificationFooterContent">
<td class="NotificationFooterContent">Copyright &copy; 2020, Oracle. All rights
reserved.</td>
<td class="NotificationFooterContent"><a class="NotificationLink"
href="http://www.oracle.com/us/corporate/contact/index.html" target="_blank"
rel="noopener"> <u>Contact Us</u></a> | <a class="NotificationLink"
href="http://www.oracle.com/html/copyright.html" target="_blank"
rel="noopener"><u>Legal Notices and Terms of Use</u></a> | <a class="NotificationLink"
href="http://my.oracle.com/content/idcplg/cnt337893.pdf?IdcService=GET_FILE&amp;noS
aveAs=1&amp;Rendition=Web&amp;RevisionSelectionMethod=LatestReleased&amp;allowI
nterrupt=1&amp;dDocName=cnt337893" target="_blank" rel="noopener"> <u>Privacy
Statement</u></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>

39 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Screenshot

Image 13. Working Example 4

Note: Copy paste the code into the code version of the email body, not the rich text version.

General Considerations
(For both Event and Resource Alerts)

You can use the working examples listed above, but if you need to build a new alert, do it through iterative process:
- Make sure the alert will only run for reduced amount of people, and only on your staging pod, to avoid
blasting unwanted test emails.
- Start small, make sure you nail down the filters you want to use and that they work properly.
- Then you can start working on more complex features like formatting and loop/group by functionalities.

Resource Alert Digests

Oracle Learning uses the Alerts Composer tool within HCM to send informational notifications to users by email and
worklist. Notifications are triggered based on conditions for two types of alerts.

• Event Alerts: They're triggered when a specific event occurs in the application and the filter on when to
trigger the event alert are not configurable.
• Resource Alerts: They are based on Oracle HCM Cloud REST API resources and are highly configurable.

In 21B the HCM Resource Alerts tool will now have the ability to Export and Import resource alerts. We have attached
two example resource alerts in a zip file attached that can be imported into your environment, if you are on update
21B or higher.

40 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
1) Digest for New Weekly Enrollments - This will provide customers with a seeded template out of the box so
that they can use or modify to fit their existing requirements.
2) Digest for Overdue Weekly Enrollments - This will provide customers with a seeded template out of the box
so that they can use or modify to fit their existing requirements.

STEPS FOR IMPORT:

1) Download the zip file that is associated to this post:


WLF_RESOURCE_ALERTS_CONFIGURATION_V1_20210318_0636

2) Login with an Administrator Account

3) Select the Settings and Actions dropdown arrow in the upper right-hand corner of the screen and select the
option: 'Setup and Maintenance'.

4) Navigate to Manage Configuration packages under setup and maintenance home page. → Setup and
Maintenance → Manage Configuration Package

Image 14. Manage Configuration Package

5) In the search results table, click on upload button.

41 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Image 15. Click Upload

6) In upload configuration package screen - choose the zip file


(WLF_RESOURCE_ALERTS_CONFIGURATION_V1_20210318_0636) for importing and get details and then, click
on Get Details and then Submit button.

Image 16. Upload Confirmation

7) Now in Manage Configuration Package screen - Export and Import Processes table, user can see a row with Type
'Upload' and status = 'Completed'.

8) Now select the Uploaded row and click on 'Import setup data' button in the same table.

Image 17. Import Setup Data

9) Click on Next in the first screen of the new pop up, then check the checkbox for Alert on "Select Pauses for
External Import" screen and then, click on Submit button.

10) Wait for few minutes and refresh to verify the status of Import. The status should update to Completed.

NOTE: If the status shows warning/error saying 'User Action Required', select the row again and click on Resume.
Then again follow same steps and Submit. This time status should go to Complete.
Once the import is done you can then access the weekly enrollment digest and weekly enrollment overdue examples
resource alerts in alert composer

Troubleshooting Alerts

42 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
All preconfigured Learning Alerts, up to release 19B, have an "Alert Code" of format WLF-0000X.

All preconfigured Learning Alerts are "Event Alerts", and will trigger when the relevant event occurs in OLC (e.g. an
offering activity is updated). The one exception is "WLF-00004: Upcoming ILT Activity to Instructors Reminder 1",
which is detailed below.

Most preconfigured alerts must be enabled and/or configured from Manage Learn Setup > Manage Alerts, in addition
to ensuring they're enabled and configured in Tools > Alert Composer.

WLF-00004 Special Case


Although alert "WLF-00004: Upcoming ILT Activity to Instructors Reminder 1" is an event alert, there is no “event”
that occurs n days before an ILT activity. While this alert would have been more appropriate as a Resource Alert, it
was not possible to create it as such at the time the alert was built. It was built as an event alert. To have that alert
triggered, you must run the Process Learning Alerts job. This job queries for “instructors designated to an ILT offering
activity starting in n days” and triggers the alert for those instructors. This job doesn’t need to be run for any of the
other preconfigured learning alerts.

I am getting some UI error while typing the notification email body in the alert composer.

- ISSUE 1: This could be due to formatting problems. You might have wanted to try some conditional formatting
or specific groovy expression that is not supported.
- SOLUTION:
o Make sure to only restrict yourself to supported expressions. The error will tell you at which point there is
a problem in what you were typing
o If anything, else than this, try discarding the template, and create a brand new one.
o If even this does not work, then it is likely an Alert related problem, not Learning, so route the SR to
appropriate team.

My Template is saved, but NOBODY is receiving any email.

First, make sure that in your alert setup that the template you’re trying to send is active, and whether or not the
“Simulate run” in the run option is set to yes or no. If it is, then people will NOT receive any email.

Also make sure the “Log Activity History” checkbox is active in the run option to troubleshoot properly.
- ISSUE 1: This could be due to alert not sending anything at all.
- SOLUTION: Verify on Alert History if the event actually triggered at all. You should see an entry with the title of
your Alert in there.
- If you see an entry, but it has a red cross, it means the event triggered, but there is an error running it.
o It means there is a problem with the template content or the recipients.
o Make absolutely sure the keywords you are using are supported by that specific Event alert. Remember,
Resource Alert keywords will NOT work on Event Alerts, and some keywords from an Event alerts might
not work on another one.
o If all seems correct and working on a pod but not on another one of similar patch level, then it is likely an
Alert issue, not a learning issue. Please route the SR to appropriate Alert team to get some help.
- If you see an entry that has a green mark, but no message sent in the message count, it means no-one was
actually targeted.
o This is a pretty uncommon situation for an alert, but it could be due to customer using anything else than
work email for communication.

43 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
o Make sure some users should indeed be sent the notification in regard to what the triggering event is
supposed to pick up, and that your templates are enabled.
- If you see an entry that has a green mark, and has a message count, then drill into the message to see who was
specifically targeted.
o If you don’t see anything, it probably means you haven’t checked on the “Log activity history” in the alert
run options. Go and check it on, then trigger that alert again.
o Once you check on the detailed activity history, each email sent will be logged in there, so you can check
who the recipient is and what’s in the email content.
▪ If in the recipient of an entry you do not see any username or any email address, then there is
something wrong with your recipients. Make sure you use the supported keywords without any
additional groovy expression in the recipient’s fields.
▪ If it contains an email and it is the correct ones, then:
• Check on your email client side if you have any blocking or any spam procedure that
evacuates the mails sent by Oracle HCM Cloud
• Make sure you haven’t activated the Test email on the BPM general settings.

- ISSUE 2: This could be due to alert not being active.


- SOLUTION: go into the Learning Specialist UI:
o My Client Group/Learning/Global Settings/Alerts subtab – verify the alert you want to use is active and
has the right options if any.
o Also make sure you understood very well the covered functional use case and filters for that alert.

- ISSUE 3: The alert might simply not be running. In the Alert History you do not see any entry for your alert
at all
- SOLUTION:
o Verify the ESS jobs for some of the specific alerts have run. Some of the Event alerts need this to happen
so it is even considered being sent by the Alert system. Event alerts also have a setup area for the OLC
Administrator, these event configurations should be reviewed and set.
▪ If it did run, have a look at the logs and see if it failed and why, make sure to document that in
the SR.
▪ If it did not run even if it was scheduled, have support and development looking into it.
o If EVERYTHING else above was verified and supposed to be working, then there could be a problem with
the triggering the alert itself.
▪ In this case, try reproducing it on a different pod.
▪ Support can open a bug to development.

I am getting some UI error while trying to save filters in my alert.


- ISSUE 1: This could be due to wrong keyword problems. (If there is an error there should be explicit about it).
- SOLUTION:
o Make sure you are using the right keywords, or keywords that are actually supported by the selected
resource’s payload (that keyword needs to exist)
o For this, use of expression builder will definitely help you figuring out what exists and what does not.
o Remember, one typo is enough to cause an error, so we highly recommend using the expression builder
until you become confident with typing the filters in manually.
- ISSUE 2: This could be due to wrong formatting problem. (If there is an error there should be explicit about it).
44 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1
Copyright © 2022, Oracle and/or its affiliates / Public
- SOLUTION:
o Make sure you haven’t put any special character in there from a weird copy paste.
o As a general statement:
▪ Any string format data should be designated between single quotes, such as
${learnerLearningRecords.assigmentType} = ‘ORA_JOIN_ASSIGNMENT’
▪ Any numeric or date format data should not have single quotes such as
${learnerLearningRecords.withdrawnRequestedDate}> sysdate-1
o In general, the expression builder will help you overcoming these formatting problems most of the time

The filters do not seem to work and I am getting emails I should not, or I’m not getting the ones I want
- ISSUE 1: this could be due to filters not being used properly.
- SOLUTION:
o Make sure you do not have contradicting filters.
▪ For example, you cannot have a filters looking at both Required AND Voluntary assignments at
the same time, because an assignment is either one OR the other.
▪ In this case make sure that for alternative cases, you have the set of filters with “Any” and not
“All” while setting it up.
o Make sure you are filtering on the correct resource/sub-resource.
▪ For example, you cannot send information based on an offering assignment creation date and
have filters set up on course assignment creation date. You need to make your resource filtering
to the use case you want to set up.
o Make sure you are not cumulating several filters inside a single expression.
▪ Having a complex AND/ OR inside a single filter expression usually does not work very well.
▪ Best practice is to separate these different pieces into distinct filters, at least when
troubleshooting, to understand what works and what does not.

- ISSUE 2: The keywords in filters might not retrieve the expected data.
- SOLUTION:
o If everything above has been thoroughly checked, then you might suspect the keywords used in the
filters are not retrieving the right data.
o In this case, put these keyword(s) directly in the email body and perform a safe test just to see how that
keyword looks like and what data it renders and in which format. This will tell you if it retrieves what you
expect.
o If it retrieves the wrong value or Null for no explainable reason, then Support can log a bug to
Development

The notification message does not render the way I want.


- ISSUE 1: You might see some expression results between squared brackets [ and ]
- SOLUTION: This means the alert generator is expecting an array of value and not just a single one.
o You are using a Group By option in your template?
▪ If yes, it means the system expects several entries in the database to be put into the same
notification (like several course assignments for the same user in a single notification).
▪ Make sure you are using a “Loop” functionality, so the system understands what to do with all
these potential values.
o This does NOT seem related to a group by option.

45 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
▪ It means the system is still expecting potentially several data at the same time for the same entry
(Like potentially several offering titles for a single course assignment)
▪ Make sure you are using a “loop functionality” so the system understands what to do with all
these potential values.
▪ If you are certain only one value could only be retrieved, then you need to suffix the resource
with [0] inside the keyword: ${learnerLearningRecords.selectedCourseOfferings[0].offeringTitle}
→ this should retrieve only the first and only supposed value in the array of potential data.

- ISSUE 2: The table you have created with loop functionality or conditional statements does not render well
o This could be due to the HTML code somewhat losing the proper formatting
o Make sure when you have complex groovy expressions or conditional statements and formatting that
you always do them in the CODE version of your notification body and avoid switching back and forth
between rich text editor and code version. Otherwise the HTML code gets re-generated and you will lose
your pieces of codes.
o Do the modifications in HTML code and save the HTML code.

My Alert is taking a very long time to process and ends up being timed out / errored after a while
- ISSUE 1: This could be due to filtering not being precise enough, and query being too big.
- SOLUTION:
o If you are creating a notification on a sub resource (offering assignments), only putting some offering
related resource will be very taxing on the system, because the system needs to first look into the entire
parent resource table (all assignments).
o So, make sure to always put some filters also on the parent resource to evacuate useless querying.
▪ Example: if you want some notifications about offerings, also put a filter on parent resource to
isolate the course assignment first, and probably another one to evacuate the course assignment
statuses that are useless
▪ So, if you want a notification on any offering assignment entering waitlist, you should also have
a set of filters as follows:
• Cumulative filters (Match all) on learnerLearningRecords.selectedCourseOfferings
o ${assignmentStatus} = 'ORA_ASSN_REC_WAITLISTED'
o exists (SELECT 'x' from dual where ${enteredWaitlistDate} >= (select
nvl(max(runs.run_end),sysdate-1) from hrc_alert_runs runs, hrc_alerts_b alerts
where runs.alert_id = alerts.alert_id and alerts.alert_code =
'PUT_ALERT_CODE_HERE'))
• Cumulative filters (Match All) on learnerLearningRecords
o ${learningItemType} = 'ORA_COURSE'
o ${assignmentType} <> 'ORA_RECOMMEND_ASSIGNMENT'

46 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Frequently Asked Questions
Q1) How do I know if my alert is triggering and not sending messages, or not triggering?

Check Alert Composer > Alert History.


Q2) Why isn’t my alert triggering?

Did you enable it in Manage Learn Setup?


Q3) Why is my alert triggering, but nobody gets the email or worklist notification?

Check that the alert is not configured with "Simulate = Yes" (in Alert Composer → Alert → Run Options), which runs the
alerts, but does not actually send the notifications.
Q4) Why are recipients getting two copies or duplicate emails?

The worklist can be configured to send email messages to recipients. If the alert is sending to both email and worklist,
and the worklist is configured to send email, then there will be two emails sent.
Q5) Why are there [] brackets appearing around every attribute in the template?

When you use the Group By function, it groups all the records that have matching <whatever attribute you specified>.
So, if you say in the template "give me ${learningItemTitle}", it will give you an array, surrounded by [] brackets, of the
values of that attribute for all records in the group. If you're using Group By and you don't want these brackets, and
you just want to specify one record in the group, use ${learnerLearningRecords[0].learningItemTitle}, instead of the
above expression to specify the first record in the array.
Examples of other Groovy Expressions

HCM Alerts engine supports expressions to substitute variables, add conditions based on input data at runtime. Below
are few examples -
GROOVY EXPRESSION OUTPUT
${FirstName} your ${visas[0].Country} visa is expiring within 2 weeks.The John your GB visa is expiring within 2 weeks. The
Expiration Date is ${visas[0].ExpirationDate} Expiration Date is 2016-05-28

Hi ${FirstName} Hi John,

<%

asgStr ="";

for(visa in visas) Multiple Visas for

{ Employee: US IN

asgStr = asgStr + visa.VisaPermitCountry+" ";

print("Multiple Visas for Employee : "+asgStr); Regards,

%>

Regards, Admin

Admin

47 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
GROOVY EXPRESSION OUTPUT

Hi ${FirstName} Hi John

<% Country is

if(Country.equals("US")){ NON USA,

print("Country is USA, National ID is

SSN is "+NationalId); 600-00-9115

} Regards,

else{ Admin

print("Country is NON USA,

National ID is "+NationalId);

%>

Regards,

Admin

Table 9. Groovy Expression Examples

Q6) How do I update the Email From address for the alert’s notifications sent?

1. Alerts Worklist Channel: HWF Email Notification

Note

We now have self-service UI, any FA User with 'BPMWorkflowAdmin' role can configure HWF Email
notification Email "From:" Display Name

Steps:

1. Access 'BPM Worklist' Administrator screen:

Navigation: Login into Fusion Apps HomePage->Bell Icon->More Details -> Access 'Administration' menu
item (see screen shot below).

Image 18. Access Administration

48 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
2. Scroll down to access 'Email "From:" Display Name' under 'Application Preferences' .

Image 19. Application Preferences

3. Update/Modify (first choice) with the user preferred 'alias' for the from address of the email notification

Valid format: Sender Name (Alias Name) should not contain <,> or comma (,)

Sample:

Image 20. Update Preferences

4. Click 'Save' button to save the configuration change.

Image 21. Save the changes

49 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
5. Bounce FADomain SOA server to activate the changes.

2. Alerts Email Channel: UMS Email Driver

Configuring the Email Driver

To configure a driver:
i. Log in to Oracle Enterprise Manager Fusion Middleware Control as an administrator.
ii. Expand the Fusion Middleware folder.
iii. Navigate to the User Messaging Service home page.

Image 22. Email Driver

• Click usermessagingserver(soa_server1). The Associated Drivers page appears.

Image 23. Associated Drivers

50 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
i. Select the Local tab to access the drivers collocated with the UMS server instance. These drivers may
or may not be registered with the UMS server depending on whether they are properly configured.
The ALL tab lists all drivers that are deployed in the domain and registered to all the UMS server
instances.
ii. Find the email driver in the list, and then click the adjacent Configure Driver icon.

The configuration page is displayed.

Image 24: Configure Driver

iii. Modify/Update the 'Default Sender Address' and 'OutgoingDefaultFromAddr' -


o alias_name <email_id> , e.g. alias_name <[email protected]>
o Note: alias_name should not contain <,> or comma(,)

Image 25: Default Sender Address

51 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Sample screen shot as received by the end user for Worklist and Email channels with 'alias'

Image 26: End User Worklist and Email #1

Image 27: End User Worklist and Email #2

Image 28: End User Worklist and Email #3

Q7) What are the security privileges required to access Alerts Composer UI?

HCM Alerts Composer is secured with privilege -


Technical Name: HRC_ACCESS_ALERTS_COMPOSER
Display name: Access Alerts Composer
Description: Allows access to Alerts Composer

Q8) What privilege and user will be used for running the Alert?

1) The Alert REST resource will be run with FUSION_APPS_HCM_ESS_APPID user.


2) The Async Alerts will also use FUSION_APPS_HCM_ESS_APPID user for submitting the alert notification.
3) The REST resource should be granted with get and describe privileges to FUSION_APPS_HCM_ESS_APPID user.

Q9) What is the default language for the template and how are multiple languages supported in alert
templates?

• Default language is configured when the template is created in alerts UI.


• Multiple language support -
52 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1
Copyright © 2022, Oracle and/or its affiliates / Public
• When the template is saved, language specific templates are created in the system based on the
installed languages.
• During runtime, based on worklist recipient user language preference, corresponding language template
will be used to send the notifications.
However, if corresponding language template is not found, then either site/template default/base
language template will be used.

Image 29: Default Language

Q10) What fields have translation support in alerts and templates?

ALERTS TEMPLATES

• Name • Name
• Description • Short Message
• Subject
• Body
Table 10. Translation Support

Q11) How are multiple recipients for both worklist and emails supported in alerts?

Multiple recipients can be supported in couple of ways -

1. Add individual recipients email or username.


OR
2. Add comma delimited email addresses or usernames.

Q12) Can the messages be grouped i.e. group and send manager directs messages in one message to manager?

Yes. use the GroupBy expression field in alert template.

53 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Q13) How do I do dry run of my alert but not actually send notifications?

Use the simulate run field under Run Options tab in alerts UI.
Also, System does not send emails in non-production environment.

Q14) How do I debug my alert run issues?

1. Enable the logging under the Run Options tab in alerts UI.
2. Use the alerts history tab, to review the success, warnings and error message.
3. View the alert log for any error in processing of template/filters.
4. You may need to check the diagnostic logs of ESS in case of resource alerts.
5. You may need to check application logs in case of events alerts.

Q15) How do I open a link in an Alert Notification in a new window?

Use target="_blank" attribute for the anchor link in the Alert message body in code view of the RTE.

e.g., <a ${href}="https://docs.oracle.com/en/cloud/saas/human-resources/21a/faigh/alerts-


composer.html#FAIGH3017275" target="_blank"> Alerts Composer</a>

Q16) Resource Alerts does not support automatic lookup of lookup code meaning

Alerts composer does not support automatic lookup of lookup code meaning.

Customer must specify transformation as follows, per Alerts documentation:


https://docs.oracle.com/en/cloud/saas/human-resources/20d/faigh/alerts-composer.html#FAIGH3091791

Q17) How to Exclude Terminated Employees from Receiving Alert Notification

This is the expression that you can used based on the KM article Oracle Fusion Learning Cloud: How To Exclude
Terminated Employees From Receiving Alert Notification (Doc ID 2727552.1)

EXISTS (SELECT 'X' FROM PER_PERIODS_OF_SERVICE PS where SYSDATE between PS.DATE_START and SYSDATE
and ACTUAL_TERMINATION_DATE IS NULL and primary_flag='Y' and PS.PERSON_ID = ${assignedToId})

Q18) How do you send out alert notifications to different types of people associated to the learning enrollment
(i.e. Learner Learning Record)?

Currently we support only certain functions to send to predefined workers with specific areas of responsibility such as
HR Rep, etc (full list can be found here). If the other roles such as administrators etc have a person id associated with
them and can be retrieved from the resource (assuming you are asking for resource alerts), you should be able to use
the person utility.

54 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public
Connect with us

Call +1.800.ORACLE1 or visit oracle.com. Outside North America, find your local office at: oracle.com/contact.

blogs.oracle.com facebook.com/oracle twitter.com/oracle

Copyright © 2022, Oracle and/or its affiliates. All rights reserved. This document is Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be
provided for information purposes only, and the contents hereof are subject to change trademarks of their respective owners.
without notice. This document is not warranted to be error-free, nor subject to any other
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC
warranties or conditions, whether expressed orally or implied in law, including implied
trademarks are used under license and are trademarks or registered trademarks of SPARC
warranties and conditions of merchantability or fitness for a particular purpose. We
International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or
specifically disclaim any liability with respect to this document, and no contractual
registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open
obligations are formed either directly or indirectly by this document. This document
Group. 0120
may not be reproduced or transmitted in any form or by any means, electronic or
mechanical, for any purpose, without our prior written permission. Disclaimer: If you are unsure whether your data sheet needs a disclaimer, read the revenue
recognition policy. If you have further questions about your content and the disclaimer
This device has not been authorized as required by the rules of the Federal
requirements, e-mail [email protected].
Communications Commission. This device is not, and may not be, offered for sale or
lease, or sold or leased, until authorization is obtained.

55 Business / Technical Brief / Understanding Alerts in Oracle Learning / Version 1.1


Copyright © 2022, Oracle and/or its affiliates / Public