none
Customize Project Server Notifications

    Question

  • Hello,

    I'm having a hard time understanding how to customize the project server notifications according to the techNet article that touches the subject . Please i would really appreciate it if anyone can guide me with a step by step walk through of how i should actually go about this task in project sever 2010. Thanks.

    Monday, November 12, 2012 2:58 PM

All replies

  • thanks for the reply Renke. but this is exactly what i found in the technet  . i already have the 2007 SDK. i really need help especially when it comes to the XSLT Stylesheets.

    http://msdn.microsoft.com/en-us/library/bb968451(v=office.12).aspx#pj12_CustomNotifications_ExtractingXSLTFiles

    Monday, November 12, 2012 5:52 PM
  • Hi,

    the Customizing Notifications.doc describes the steps. What's exactly your question?

    Thanks,

    Renke


    http://www.holert.com

    Monday, November 12, 2012 6:04 PM
  • hey,

    my exact question is what do i do with the 32 XSLT files(text and html) from the sdk and how do i edit them to suit my need. Do i edit the files directly or do i create a copy of the files and then edit.

    thanks.

     

    Monday, November 12, 2012 6:16 PM
  • If you are using Project Server 2010, you don't do anything with the 32 XSLT files in the Project 2007 SDK. You should extract the 2010 version of one or more of the files (which ones depend on what types of email notifications you plan to send).

    The MSDN online article for Project Server 2007 is slightly updated from the blog article, so you should use How to: Customize E-Mail for Project Server Notifications.

    For example, in SQL Server 2008 Management Studio, select the Published db for your installation of Project Server 2010, and then run the following query:

    SELECT     MSP_NOTIFICATION_XSLS.NOTIFICATION_EMAIL_TYPE_UID AS EMAIL_TYPE, 
               MSP_NOTIFICATION_XSLS.NOTIFICATION_EMAIL_LCID AS LCID, 
               MSP_NOTIFICATION_XSLS.NOTIFICATION_EMAIL_MODE_ID AS EMAIL_MODE, 
               MSP_EMAIL_DEFINITION.EMAIL_NAME AS EMAIL_NAME
    FROM       MSP_NOTIFICATION_XSLS INNER JOIN MSP_EMAIL_DEFINITION
                   ON MSP_NOTIFICATION_XSLS.NOTIFICATION_EMAIL_TYPE_UID = 
                       MSP_EMAIL_DEFINITION.EMAIL_TYPE_UID

    You'll get something like the following results (this is from Project Server 2013, but same idea):

    EMAIL_TYPE                              LCID    EMAIL_MODE    EMAIL_NAME

    01CCF525-2CB1-4181-BC80-535A6DB16C05    1033    0    Alert-AssignmentsChanged

    01CCF525-2CB1-4181-BC80-535A6DB16C05    1033    1    Alert-AssignmentsChanged

    7BCECA7D-3503-429E-89AE-1B7BE57E9CF9    1033    0    Alert-EnterpriseResourceToLocalResource

    7BCECA7D-3503-429E-89AE-1B7BE57E9CF9    1033    1    Alert-EnterpriseResourceToLocalResource

    8879CF91-4820-4C5D-812C-53A37148D1BF    1033    0    Alert-ManagerRejectsNewAssignment

    8879CF91-4820-4C5D-812C-53A37148D1BF    1033    1    Alert-ManagerRejectsNewAssignment

    9F083003-0F67-4CB0-BA74-516AF36E328C    1033    0    Alert-ManagerRejectsNewTask

    9F083003-0F67-4CB0-BA74-516AF36E328C    1033    1    Alert-ManagerRejectsNewTask

    15A7A5E6-BC89-416D-9AA6-6C81AA1F6DEA    1033    0    Alert-ManagerRejectsUpdateToAssignment

    15A7A5E6-BC89-416D-9AA6-6C81AA1F6DEA    1033    1    Alert-ManagerRejectsUpdateToAssignment

    84903F8A-9EF8-4523-8B3C-AC6815576521    1033    0    Alert-ManagerRequestsTaskUpdate

    84903F8A-9EF8-4523-8B3C-AC6815576521    1033    1    Alert-ManagerRequestsTaskUpdate

    9D538582-6257-4FF9-AB36-D4F3853AAEA5    1033    0    Alert-QueueJobFailed

    9D538582-6257-4FF9-AB36-D4F3853AAEA5    1033    1    Alert-QueueJobFailed

    FCF1097F-964B-497C-B73A-DF82058E8947    1033    0    Alert-ResourceSubmitsAdminTime

    FCF1097F-964B-497C-B73A-DF82058E8947    1033    1    Alert-ResourceSubmitsAdminTime

    CFBF2655-A87F-4A9A-B0AD-4CED869B1FE7    1033    0    Alert-ResourceSubmitsNewTask

    CFBF2655-A87F-4A9A-B0AD-4CED869B1FE7    1033    1    Alert-ResourceSubmitsNewTask

    648B1E8C-3495-45F5-A4A6-4BC53C44E768    1033    0    Alert-ResourceSubmitsStatusReport

    648B1E8C-3495-45F5-A4A6-4BC53C44E768    1033    1    Alert-ResourceSubmitsStatusReport

    820CDE05-8535-4B5E-8C2F-6B64B2719934    1033    0    Alert-ResourceUpdatesAssignment

    820CDE05-8535-4B5E-8C2F-6B64B2719934    1033    1    Alert-ResourceUpdatesAssignment

    2A0D9F9D-33A2-4BE4-B6C7-39739FA9A7A3    1033    0    Alert-StatusReportRequestChanged

    2A0D9F9D-33A2-4BE4-B6C7-39739FA9A7A3    1033    1    Alert-StatusReportRequestChanged

    56600ECC-7C3D-4039-B1CC-9B4F807DB706    1033    0    Alert-TaskDelegationRequest

    56600ECC-7C3D-4039-B1CC-9B4F807DB706    1033    1    Alert-TaskDelegationRequest

    AB66E16A-BE87-41C4-9811-0E9196437102    1033    0    Reminder-StatusReport

    AB66E16A-BE87-41C4-9811-0E9196437102    1033    1    Reminder-StatusReport

    8F9811E9-D749-4879-9BE4-E7CE5A42C4B5    1033    0    Reminder-Task

    8F9811E9-D749-4879-9BE4-E7CE5A42C4B5    1033    1    Reminder-Task

    8EF254E2-5C56-4100-B03C-80F0B5E30DFB    1033    0    Reminder-Timesheet

    8EF254E2-5C56-4100-B03C-80F0B5E30DFB    1033    1    Reminder-Timesheet

    Then follow the instructions in the SDK article. For example, if you want to send a custom HTML-based Alert-ManagerRequestsTaskUpdate email, you'd run the following query, which gets two records -- with the MODE_ID=0 for a text email and MODE_ID=1 for an HTML email transform:

    SELECT [NOTIFICATION_EMAIL_TYPE_UID]
          ,[NOTIFICATION_EMAIL_LCID]
          ,[NOTIFICATION_EMAIL_MODE_ID]
          ,[NOTIFICATION_EMAIL_XSL]
      FROM [MSP_NOTIFICATION_XSLS]
      WHERE [NOTIFICATION_EMAIL_TYPE_UID] = '84903F8A-9EF8-4523-8B3C-AC6815576521'

    In Visual Studio, create an XSLT file, select and copy the NOTIFICATION_EMAIL_XSL field in the SQL Server query results, and then paste the contents of the field to the XSLT file. Name the file, in this case, Alert-ManagerRequestsTaskUpdate_Html_1033.xslt.

    The rest of the SDK article deals with creating a pre-event handler for notifications, modifying the XSLT file to add the HTML content you want, and then using the modified file to transform a notification, instead of using the default file contents in SQL Server. Oh, and testing the beast.

    --Jim


    Jim Corbin [MSFT]




    Monday, November 12, 2012 10:05 PM
    Moderator
  • Thanks Jim,

    This is a lot more explanatory. I still have a question -

    Please where are the XSLT files for Project Server 2010 located? 

    Tuesday, November 13, 2012 8:15 AM
  • The content for the XSLT files is in the Publshed database of your Project Server installation, in the MSP_NOTIFICATION_XSLS field of the MSP_NOTIFICATION_XSLS table. You create the files you need.

    Jim Corbin [MSFT]

    Tuesday, November 13, 2012 3:18 PM
    Moderator