Escalations [Web Page URL]

  • 21 March 2006
  • 8 replies
  • 2 views

Badge +1
Hello,
How can I get the Web Page URL that is specified in the default client SMTP notification as [Web Page URL] to be included in the body of an escalation notification e-mail?

Basically, I want the same URL sent in the original message to be included in the body of the Escalation e-mail.

Thanks

8 replies

Badge +3
Hi,

I think you can put your url page in a string table. then edit the escalation code and in the body add something like :

 + ") and confirm the note is called.";


Aude
Badge +6
You can get the URL form the code-behind of the client event. (This will include the serialnumber for the event.)

Save this to a hidden process datafield (because you cannot get to the Activity datafields from EscalationContext)

In the Email escalation add the datafield containing the URL as part of the body.

You might have to make sure that this user is either the destination users' manager OR you must redirect to another user. This is needed otherwise the user will not be able to access the item...
Badge
This is an interesting one, because one would I imagine, on a regular basis want to provide the link to the client page if you remind a user in an escalation that he has some stuff to finish, as you know, the url to the client page means nothing without the event serial number, and unfortunately for some strange reason you can't get to it because there is no Serial number property exposed for example: ActivityInstanceDestination.EventInstance.??SerialNumber?? although the EventInstance of course does have a serial number.
So in my mind there is basically two ways of doing this:
1) Create an Activity Data Field to store the Activity Instance serial number for the client event (there will be an instance for each Destination User and the Serial Number for each destination user's client event WILL BE different)
Then in the Escalation you get the serial number with C#:ActivityInstanceDestination.DataFields["savedSerial"].Value.ToString();
Something like this:

.Value.ToString();
objMsg.From = strFrom.ToString();
objMsg.Subject = strSubject.ToString();
objMsg.Body = strBody.ToString();
objMsg.To = strEmail.ToString();
objMsg.Subject = strSubject.ToString();
objMsg.Body = strBody.ToString();
System.Web.Mail.SmtpMail.Send(objMsg);
}


Note: The default code just appends the destination user e-mail address to the strEmail string and sends out ONE e-mail to everybody in the string, because the serial # is unique for each destination, you have to send one e-mail to each destination user seperately.

2) You have the ServerName, you have the Process Instance ID, you have the EventInstance ID, so just build the serial number string - The folks at SC would NOT recommend this 'cause they do not gaurantee the format of a serial #.
Badge +1
Thanks guys,
I decided to store the data in a data field, which works fine.
Badge
That's all good, but remember it will only work if you can gaurantee that you will always only have one destination user for that Activity

:roll:
Badge +1
Deon,
From your post, I understood that that should work fine for multiple destination users as
"there will be an [activity] instance for each Destination User."
Did I misunderstand?
Badge +8
Sorry, no, I mean you can not use a Process Data Field if you have more than one Destination, I would recommend that you use an Activity Data Field to store the Serial Number, even if you have only one destination user at this time.
Badge +1
Thanks for the help,
Everything works. :lol:

Reply