Highlighted
Honored Contributor.
Honored Contributor.
1511 views

Configuring Email Alerts/Notifications

Jump to solution

We are using Service Manager 9.33 and I need to configure our alerts. I have tried using the documentation from HP and have even had a ticket open with HP for almost 4 months now with no success.

Here is what I am trying to setup:

1. A html email to be sent to the assignee of a RFC that is in the Registration Phase at 8am every Friday.

2. A html email to go to the Assignee of a RFC that has passed the planned.start

I was able to trigger an alert for the planned.start however, the notification that is triggered is not what I am looking for. All I receive is the following notification:

HP Service Manager Operator: alert

SCenter_cc: smithJ

 

Line Item C000012374 is almost due.

0 Likes
1 Solution

Accepted Solutions
Highlighted
Honored Contributor.
Honored Contributor.

Re: Configuring Email Alerts/Notifications

Jump to solution

The trick here was the Calc Expression. SM calculates Monday as 1, Tuesday as 2, etc. By adding one for each day of the week, the alert will always be sent on the day/time that we need.

Alert Condition: open in $L.file=true and current.phase in $L.file="Registration and Categorization"

Calc Expression: if (dayofweek(tod())=1) then ($L.alert.time=date(tod())+'4 10:00:00');if (dayofweek(tod())=2) then ($L.alert.time=date(tod())+'3 10:00:00');if (dayofweek(tod())=3) then ($L.alert.time=date(tod())+'2 10:00:00');if (dayofweek(tod())=4) then ($L.alert.time=date(tod())+'1 10:00:00');if (dayofweek(tod())=5 and time(tod())>='10:00:00') then ($L.alert.time=date(tod())+'7 10:00:00')

View solution in original post

6 Replies
Highlighted
Honored Contributor.
Honored Contributor.

Re: Configuring Email Alerts/Notifications

Jump to solution

The trick here was the Calc Expression. SM calculates Monday as 1, Tuesday as 2, etc. By adding one for each day of the week, the alert will always be sent on the day/time that we need.

Alert Condition: open in $L.file=true and current.phase in $L.file="Registration and Categorization"

Calc Expression: if (dayofweek(tod())=1) then ($L.alert.time=date(tod())+'4 10:00:00');if (dayofweek(tod())=2) then ($L.alert.time=date(tod())+'3 10:00:00');if (dayofweek(tod())=3) then ($L.alert.time=date(tod())+'2 10:00:00');if (dayofweek(tod())=4) then ($L.alert.time=date(tod())+'1 10:00:00');if (dayofweek(tod())=5 and time(tod())>='10:00:00') then ($L.alert.time=date(tod())+'7 10:00:00')

View solution in original post

Highlighted
Outstanding Contributor.
Outstanding Contributor.

Re: Configuring Email Alerts/Notifications

Jump to solution

@a2drew,

I need to configure 90% of time for difference between two dates tod() and some time in the future.

I have put this formula:
$L.alert.time=date(next.update in $L.file) - date(major.incident.update in $L.file)*0.1

major.incident.update has stored tod() value when incident is updated.
Do you have some recommendation?
Best regards,
Dino

0 Likes
Highlighted
Honored Contributor.
Honored Contributor.

Re: Configuring Email Alerts/Notifications

Jump to solution

Sorry, I haven't had to figure any percentages out. Have you tried using SLAs?

Highlighted
Acclaimed Contributor.
Acclaimed Contributor.

Re: Configuring Email Alerts/Notifications

Jump to solution

If you still need a solution.

A common scheme:

1) Start trigger (condition - in Registration Phase or any more you need) - for the initial launch

2) In trigger start schedule with time to start near Friday

3) Schedule start IOACTION

4) IOACTION send email notification (after check status or any other fields you need to check) and reschedule for next near friday same schedule

Highlighted
Outstanding Contributor.
Outstanding Contributor.

Re: Configuring Email Alerts/Notifications

Jump to solution

@ALARMus,
I have solved it with this:

// Function to calculate percentage between to dates:
function calculateInterval(date, futureDate, percentage){
var date2 = new Date(date);
var date1 = new Date(futureDate);
var timeDiff = Math.abs(date2.getTime() - date1.getTime()) * 0.10; // Calculate 90% of time!
var date = new Date(timeDiff);
var date3 = new Date(date1);
var timeDiff2 = Math.abs(date3.getTime() - date.getTime());
var date4 = new Date(timeDiff2);
print("Datum 4: " + date4);
return date4;
}

Best regards,
Dino

Highlighted
Acclaimed Contributor.
Acclaimed Contributor.

Re: Configuring Email Alerts/Notifications

Jump to solution

Hello.

The better way to get solution that is to make new own topic.

About your need, i have some code for 50% and 75% for OCML:

Trigger for ocml (line item) 

....
// TemplateBreach contain time duration for LineItem (take it from ocml tamplate)

var TemplateBreach_50 = system.functions.val(((system.functions.val(TemplateBreach, 1))/2),3); var TemplateBreach_75 = system.functions.val(((system.functions.val(TemplateBreach, 1))*3/4),3); var dDate = lib.MYFunc.CalcDate(CurrDate, TemplateBreach, "MSK", tplsch); record.my_target_completion = dDate //Lines to set data in ocml about of SLA time - 50% and 75% var dDate50 = lib.MYFunc.CalcDate(CurrDate, TemplateBreach_50, "MSK", tplsch); record.my_target_50 = dDate50 var dDate75 = lib.MYFunc.CalcDate(CurrDate, TemplateBreach_75, "MSK", tplsch); record.my_target_75 = dDate75

And SL=MYFunc

function CalcDate(start,interval,tz,duty)
{
	//function returns date equals start+interval with "thinking" about timezone (tz) and Duty hours (duty)
	vars.$my_calc_date_start=start
	vars.$my_calc_date_interval=interval
	vars.$my_calc_date_tz=tz
	vars.$my_calc_date_duty_table=duty
	
	lib.MYFunc.CallProcess("my.calc.date")

	var ret=vars.$my_calc_date_ret
	
	//Clean variables
	vars.$my_calc_date_start=null
	vars.$my_calc_date_interval=null
	vars.$my_calc_date_duty_table=null
	vars.$my_calc_date_tz=null
	vars.$my_calc_date_ret=null
		
	return ret;
}

function CallProcess(name)
{
//Function start process with name - name
var rteReturnValue = new SCDatum();
var rteNames = new SCDatum();
var rteValues = new SCDatum();

rteNames.setType(8);
rteNames.push("name");

rteValues.setType(8);
rteValues=system.functions.insert(rteValues, 0, 1, name);

system.functions.rtecall("callrad",
rteReturnValue,
"se.call.process",
rteNames,
rteValues,
false); //false to run in same thread, true to run in new thread
}

Process:

Spoiler
RAD app: calendar.calc.date
times,1   -   $my.calc.date.start
times,2   -  $my.calc.date.interval
prompt   -  $my.calc.date.duty.table
name      -  $my.calc.date.tz
times,3    -  $my.calc.date.ret

 

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.