locked
Send a notification the Affected User of a Work Item when a containing Activity is updated RRS feed

  • Question

  • Hi Everyone,

    I am using SCSM 2012 R2 and I have read widely about how to send am email notification to the affected user of a parent service request or incident when an activity is updated or created, with no success.

    Most of the info I have read is years old and I am wondering if it no longer applies to SCSM 2012 R2.

    One example of something I have tried is this: http://www.scsm.se/?p=948

    This is a perfect example of what I am trying to achieve but when I try and import the management pack after applying the changes in the above listed blog it will not import because of errors.

    Am I doing it wrong or is it because R2 does not support the changes outlined in the blog linked to above.

    Thanks in advance.

    Friday, October 17, 2014 6:50 AM

All replies

  • The blog above is suggesting creating a new notification targeted at ACTIVITIES, that notifies the ACTIVITY'S PARENT'S AFFECTED USER. is this what your are doing? it sounds like you are attempting to create a notification targeted at SERVICE REQUESTS, that triggers when A CHILD'S STATUS is changed, which is a much harder select, since there can only ever be one parent, but there can be many children. 
    Friday, October 17, 2014 2:38 PM
  • Thanks for your reply.

    Yes what I want to do is notify the affected user and assigned to user of the parent incident or service request, when an activity is updated or closed.

    I have successfully created a notification that will show all of the content including the affected user details, as well as the ID and title of the parent service request or incident, but it is just not being sent to the affected user or assigned to user.

    Following is the management pack xml file that is not working, when I make the modifications suggested by the blog I listed above I get different import errors:

    <ManagementPack ContentReadable="true" SchemaVersion="2.0" OriginalSchemaVersion="1.1" xmlns:xsd="" xmlns:xsl="">
      <Manifest>
        <Identity>
          <ID>ManagementPack.4ed50994ea2c429b90c35ce575497978</ID>
          <Version>7.5.3079.0</Version>
        </Identity>
        <Name>CSG Activity Configuration Library</Name>
        <References>
          <Reference Alias="EnterpriseManagement">
            <ID>Microsoft.EnterpriseManagement.ServiceManager.UI.Console</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="CustomSystem_Notifications_Library">
            <ID>System.Notifications.Library</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="CustomSystem_WorkItem_Library">
            <ID>System.WorkItem.Library</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="WorkItem">
            <ID>System.WorkItem.Activity.Library</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="CustomSystem_Library">
            <ID>System.Library</ID>
            <Version>7.5.8501.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="SystemCenter">
            <ID>Microsoft.SystemCenter.Library</ID>
            <Version>7.0.8433.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="SystemCenter1">
            <ID>Microsoft.SystemCenter.Subscriptions</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="EnterpriseManagement1">
            <ID>Microsoft.EnterpriseManagement.ServiceManager.UI.Administration</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
        </References>
      </Manifest>
      <TypeDefinitions>
        <EntityTypes>
          <EnumerationTypes>
            <EnumerationValue ID="Enum.0310a1967d4f45fda23ea464a60b1ef2" Accessibility="Public" Parent="WorkItem!ActivityStatusEnum.OnHold" Ordinal="0" />
            <EnumerationValue ID="Enum.1a178a8e99424d5aa802d8cf11c5a2e6" Accessibility="Public" Parent="WorkItem!ActivityStatusEnum.OnHold" Ordinal="1" />
            <EnumerationValue ID="Enum.68058de61b104017a4d178194de3e488" Accessibility="Public" Parent="WorkItem!ActivityStatusEnum.OnHold" Ordinal="2" />
            <EnumerationValue ID="Enum.283f7ddd56634128830734de08c73640" Accessibility="Public" Parent="WorkItem!ActivityStatusEnum.Cancelled" Ordinal="0" />
            <EnumerationValue ID="Enum.100aa0a706714eec8b7b5c7b990d1e65" Accessibility="Public" Parent="WorkItem!ActivityStatusEnum.Cancelled" Ordinal="1" />
          </EnumerationTypes>
        </EntityTypes>
      </TypeDefinitions>
      <Categories>
        <Category ID="Category.cd3bac78d7554867a0d2ece6caae3924" Value="EnterpriseManagement!Microsoft.EnterpriseManagement.ServiceManager.ManagementPack">
          <ManagementPackName>ManagementPack.4ed50994ea2c429b90c35ce575497978</ManagementPackName>
          <ManagementPackVersion>7.5.3079.0</ManagementPackVersion>
        </Category>
        <Category ID="ServiceManager.Console.NotificationManagement.NotificationTemplates.Enumeration4337717a_fe4d_4c35_92d1_9f311386c4dc.Category" Target="Template_3eb58722beb54dcb8355a5f2c1b90618" Value="EnterpriseManagement1!ServiceManager.Console.NotificationManagement.NotificationTemplates.Enumeration" />
        <Category ID="Category.c2ae1029246d49aabe06c911e9823189" Target="NotificationSubscription_de9f5679_379c_49bf_9d62_ea4a4dc75fb0" Value="EnterpriseManagement1!Microsoft.EnterpriseManagement.ServiceManager.Rules.WorkflowSubscriptions" />
        <Category ID="Category.d7c2355de06a46bda88616c9e15532f8" Target="ObjectTemplate.bf0ef767d6ab49cda47f63183c5ee924" Value="EnterpriseManagement1!ServiceManager.Console.NotificationManagement.NotificationTemplates.Enumeration" />
      </Categories>
      <Monitoring>
        <Rules>
          <Rule ID="NotificationSubscription_de9f5679_379c_49bf_9d62_ea4a4dc75fb0" Enabled="true" Target="SystemCenter!Microsoft.SystemCenter.SubscriptionWorkflowTarget" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
            <Category>System</Category>
            <DataSources>
              <DataSource ID="DS" TypeID="SystemCenter1!Microsoft.SystemCenter.CmdbInstanceSubscription.DataSourceModule">
                <Subscription>
                  <InstanceSubscription Type="7ac62bd4-8fce-a150-3b40-16a39a61383d">
                    <UpdateInstance>
                      <Criteria>
                        <Expression>
                          <SimpleExpression>
                            <ValueExpression>
                              <Property State="Post">$Context/Property[Type='WorkItem!System.WorkItem.Activity']/Status$</Property>
                            </ValueExpression>
                            <Operator>NotEqual</Operator>
                            <ValueExpression>
                              <Value>{50c667cf-84e5-97f8-f6f8-d8acd99f181c}</Value>
                            </ValueExpression>
                          </SimpleExpression>
                        </Expression>
                      </Criteria>
                    </UpdateInstance>
                  </InstanceSubscription>
                  <PollingIntervalInSeconds>60</PollingIntervalInSeconds>
                  <BatchSize>100</BatchSize>
                </Subscription>
              </DataSource>
            </DataSources>
            <WriteActions>
              <WriteAction ID="WA" TypeID="SystemCenter1!Microsoft.EnterpriseManagement.SystemCenter.Subscription.WindowsWorkflowTaskWriteAction">
                <Subscription>
                  <VisibleWorkflowStatusUi>true</VisibleWorkflowStatusUi>
                  <EnableBatchProcessing>true</EnableBatchProcessing>
                  <WindowsWorkflowConfiguration>
                    <AssemblyName>Microsoft.EnterpriseManagement.Notifications.Workflows</AssemblyName>
                    <WorkflowTypeName>Microsoft.EnterpriseManagement.Notifications.Workflows.SendNotificationsActivity</WorkflowTypeName>
                    <WorkflowParameters>
                      <WorkflowParameter Name="SubscriptionId" Type="guid">$MPElement$</WorkflowParameter>
                      <WorkflowArrayParameter Name="DataItems" Type="string">
                        <Item>$Data/.$</Item>
                      </WorkflowArrayParameter>
                      <WorkflowArrayParameter Name="InstanceIds" Type="string">
                        <Item>$Data/BaseManagedEntityId$</Item>
                      </WorkflowArrayParameter>
                      <WorkflowArrayParameter Name="TemplateIds" Type="string">
                        <Item>8b923d68-66e1-6008-c566-803e26cf4707</Item>
                      </WorkflowArrayParameter>
                      <WorkflowArrayParameter Name="PrimaryUserList" Type="string">
                        <Item>6b633364-514a-8e5d-2857-29784d526367</Item>
                      </WorkflowArrayParameter>
                      <WorkflowArrayParameter Name="PrimaryUserRelationships" Type="string">
                        <Item>$Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='WorkItem!System.WorkItem.Activity']/Path[Relationship='CustomSystem_WorkItem_Library!System.WorkItemAffectedUser' TypeConstraint='CustomSystem_Library!System.User']$</Item>
                        <Item>$Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='WorkItem!System.WorkItem.Activity']/Path[Relationship='CustomSystem_WorkItem_Library!System.WorkItemAssignedToUser' TypeConstraint='CustomSystem_Library!System.User']$</Item>
                      </WorkflowArrayParameter>
                    </WorkflowParameters>
                    <RetryExceptions />
                    <RetryDelaySeconds>60</RetryDelaySeconds>
                    <MaximumRunningTimeSeconds>7200</MaximumRunningTimeSeconds>
                  </WindowsWorkflowConfiguration>
                </Subscription>
              </WriteAction>
            </WriteActions>
          </Rule>
        </Rules>
      </Monitoring>
      <Templates>
        <ObjectTemplate ID="Template_3eb58722beb54dcb8355a5f2c1b90618" TypeID="CustomSystem_Notifications_Library!System.Notification.Template.SMTP">
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template.SMTP']/Subject$">&lt;3081&gt;Manual Activity Work Item ID: [$Context/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Id$] - Related SR ID: [$Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='CustomSystem_WorkItem_Library!System.WorkItem']/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Id$] - An activity related to your service request has been updated&lt;/3081&gt;</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template.SMTP']/Priority$">2</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template.SMTP']/IsBodyHtml$">True</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template']/Content$">&lt;3081&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ";
    &amp;lt;html xmlns="" xmlns:m="" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"&amp;gt;

    &amp;lt;head&amp;gt;
    &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&amp;gt;
    &amp;lt;style&amp;gt;&amp;lt;!--
    * { padding: 2; margin: 2; }
    body p {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em; color: #333;} 
    .contentTable td { ; margin: 0; padding: 3px 7px 4px 7px; border-bottom: 1px solid #E9E9E9;;}   /* TOP, RIGHT , BOTTOM, LEFT   */
    .formHeader td { font-family: Verdana, Arial, Helvetica, sans-serif; font-size:10pt; font-weight:bold}
    .formlabel { background-color:#E9E9E9; width: 200px; font-family: Verdana, Arial, Helvetica, sans-serif;   font-size:10pt;  color: #616a76; font-weight: bold;}
    .formBody { font-family: Verdana, Arial, Helvetica, sans-serif;   font-size:10pt;    color: #000; }
    .HeaderText { padding: 3px; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; font-size: 1.2em; }
    .redTextBig {color: #990000; font-weight: bold; font-size: 1.2em;}
    .redTextSmall {color: #990000; font-weight: bold;}
    .greenText {color:#009933; font-weight: bold; font-size: .8em; }
    .lightGreyText {color:#999999 }

    --&amp;gt;&amp;lt;/style&amp;gt;
    &amp;lt;title&amp;gt;SR-Created - User&amp;lt;/title&amp;gt;
    &amp;lt;/head&amp;gt;

    &amp;lt;body&amp;gt;

    &amp;lt;table  class="contentTable" style="width: 100%" cellspacing="0" cellpadding="0"&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style="background-color:#E9E9E9; padding: 5px 5px 5px 20px;"  class="HeaderText"&amp;gt;An activity related to your service request has been updated&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style="background-color:#FFFFCC; padding: 15px 10px 15px 20px;" &amp;gt;&amp;lt;p class="redTextBig"&amp;gt;** Please note the Support request system has changed **&amp;lt;/p&amp;gt;
      &amp;lt;p class="greenText"&amp;gt;All communication related to this request must now be done via email.&amp;lt;br/&amp;gt;
       You can update this support request with comments by &amp;lt;span class="redTextSmall"&amp;gt;replying to this email&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;
       For this to work you &amp;lt;span class="redTextSmall"&amp;gt;MUST NOT edit the subject of the email.&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
      &amp;lt;p&amp;gt;If you have any questions please contact us at &amp;lt;strong&amp;gt;support@csgroup.org.au&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;
     &amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
    &amp;lt;/table&amp;gt;
    &amp;lt;table class="formHeader" style="width: 100%; background-color:#ECF0FF; border-bottom: 1px #C0C0C0 solid" cellpadding="7px" cellspacing="0"&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style="width:300px; padding: 7px;"&amp;gt;&amp;lt;p&amp;gt;Activity Priority:

    $Context/Property[Type='WorkItem!System.WorkItem.Activity']/Priority$

     &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style="width:360px; padding: 7px;"&amp;gt;&amp;amp;nbsp;  &amp;lt;/td&amp;gt;
      &amp;lt;td style="padding: 7px;"&amp;gt;&amp;amp;nbsp;  &amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
    &amp;lt;/table&amp;gt;
    &amp;lt;table style="width: 100%" class="contentTable" cellspacing="0" cellpadding="0"&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;Assigned Technician&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Path[Relationship='CustomSystem_WorkItem_Library!System.WorkItemAssignedToUser' TypeConstraint='CustomSystem_Library!System.User']$?$DisplayName$?

    &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;Activity Title&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Title$

    &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;Activity description&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Description$

     &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt; Activity Category&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Property[Type='WorkItem!System.WorkItem.Activity']/Area$

     &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;Created Date:&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='CustomSystem_WorkItem_Library!System.WorkItem']/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/CreatedDate$

    &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt; Organisation: &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" background-color:#FFFFCC; padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;Status:&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;

    $Context/Property[Type='WorkItem!System.WorkItem.Activity']/Stage$

    &amp;lt;/strong&amp;gt; &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 9px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;
      Service Request Title:&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='CustomSystem_WorkItem_Library!System.WorkItem']/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Title$

     &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;
      Service Request Details:&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='CustomSystem_WorkItem_Library!System.WorkItem']/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Description$

    &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td class="formlabel" colspan="3" style="padding: 7px;"&amp;gt;&amp;lt;p class="lightGreyText"&amp;gt;Last Modified: $Context/?$LastModified$?&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
    &amp;lt;/table&amp;gt;

    &amp;lt;/body&amp;gt;

    &amp;lt;/html&amp;gt;
    &lt;/3081&gt;</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template']/Encoding$">utf-8</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template']/SeedClass$">System.WorkItem.Activity.ManualActivity$7ac62bd4-8fce-a150-3b40-16a39a61383d</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template']/Protocol$">SMTP</Property>
        </ObjectTemplate>
        <ObjectTemplate ID="ObjectTemplate.bf0ef767d6ab49cda47f63183c5ee924" TypeID="CustomSystem_Notifications_Library!System.Notification.Template.SMTP">
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template.SMTP']/Subject$">&lt;3081&gt;FROM WORKFLOW - Manual Activity Work Item ID: [$Context/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Id$] - Related SR ID: [$Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='CustomSystem_WorkItem_Library!System.WorkItem']/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Id$] - An activity related to your service request has been updated&lt;/3081&gt;</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template.SMTP']/Priority$">2</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template.SMTP']/IsBodyHtml$">True</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template']/Content$">&lt;3081&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ";
    &amp;lt;html xmlns="" xmlns:m="" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"&amp;gt;

    &amp;lt;head&amp;gt;
    &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&amp;gt;
    &amp;lt;style&amp;gt;&amp;lt;!--
    * { padding: 2; margin: 2; }
    body p {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em; color: #333;} 
    .contentTable td { ; margin: 0; padding: 3px 7px 4px 7px; border-bottom: 1px solid #E9E9E9;;}   /* TOP, RIGHT , BOTTOM, LEFT   */
    .formHeader td { font-family: Verdana, Arial, Helvetica, sans-serif; font-size:10pt; font-weight:bold}
    .formlabel { background-color:#E9E9E9; width: 200px; font-family: Verdana, Arial, Helvetica, sans-serif;   font-size:10pt;  color: #616a76; font-weight: bold;}
    .formBody { font-family: Verdana, Arial, Helvetica, sans-serif;   font-size:10pt;    color: #000; }
    .HeaderText { padding: 3px; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; font-size: 1.2em; }
    .redTextBig {color: #990000; font-weight: bold; font-size: 1.2em;}
    .redTextSmall {color: #990000; font-weight: bold;}
    .greenText {color:#009933; font-weight: bold; font-size: .8em; }
    .lightGreyText {color:#999999 }

    --&amp;gt;&amp;lt;/style&amp;gt;
    &amp;lt;title&amp;gt;SR-Created - User&amp;lt;/title&amp;gt;
    &amp;lt;/head&amp;gt;

    &amp;lt;body&amp;gt;

    &amp;lt;table  class="contentTable" style="width: 100%" cellspacing="0" cellpadding="0"&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style="background-color:#E9E9E9; padding: 5px 5px 5px 20px;"  class="HeaderText"&amp;gt;An activity related to your service request has been updated&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style="background-color:#FFFFCC; padding: 15px 10px 15px 20px;" &amp;gt;&amp;lt;p class="redTextBig"&amp;gt;** Please note the Support request system has changed **&amp;lt;/p&amp;gt;
      &amp;lt;p class="greenText"&amp;gt;All communication related to this request must now be done via email.&amp;lt;br/&amp;gt;
       You can update this support request with comments by &amp;lt;span class="redTextSmall"&amp;gt;replying to this email&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;
       For this to work you &amp;lt;span class="redTextSmall"&amp;gt;MUST NOT edit the subject of the email.&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;
      &amp;lt;p&amp;gt;If you have any questions please contact us at &amp;lt;strong&amp;gt;support@csgroup.org.au&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;
     &amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
    &amp;lt;/table&amp;gt;
    &amp;lt;table class="formHeader" style="width: 100%; background-color:#ECF0FF; border-bottom: 1px #C0C0C0 solid" cellpadding="7px" cellspacing="0"&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style="width:300px; padding: 7px;"&amp;gt;&amp;lt;p&amp;gt;Activity Priority:

    $Context/Property[Type='WorkItem!System.WorkItem.Activity']/Priority$

     &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style="width:360px; padding: 7px;"&amp;gt;&amp;amp;nbsp;  &amp;lt;/td&amp;gt;
      &amp;lt;td style="padding: 7px;"&amp;gt;&amp;amp;nbsp;  &amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
    &amp;lt;/table&amp;gt;
    &amp;lt;table style="width: 100%" class="contentTable" cellspacing="0" cellpadding="0"&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;Assigned Technician&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Path[Relationship='CustomSystem_WorkItem_Library!System.WorkItemAssignedToUser' TypeConstraint='CustomSystem_Library!System.User']$?$DisplayName$?

    &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;Activity Title&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Title$

    &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;Activity description&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Description$

     &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt; Activity Category&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Property[Type='WorkItem!System.WorkItem.Activity']/Area$

     &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;Created Date:&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='CustomSystem_WorkItem_Library!System.WorkItem']/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/CreatedDate$

    &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt; Organisation: &amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" background-color:#FFFFCC; padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;Status:&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;

    $Context/Property[Type='WorkItem!System.WorkItem.Activity']/Stage$

    &amp;lt;/strong&amp;gt; &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 9px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;
      Service Request Title:&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='CustomSystem_WorkItem_Library!System.WorkItem']/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Title$

     &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #C0C0C0 solid" class="formlabel" valign="top"&amp;gt;&amp;lt;p&amp;gt;
      Service Request Details:&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px; border-bottom: 1px #E9E9E9 solid" class="formBody" valign="top"&amp;gt;&amp;lt;p&amp;gt;

    $Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='CustomSystem_WorkItem_Library!System.WorkItem']/Property[Type='CustomSystem_WorkItem_Library!System.WorkItem']/Description$

    &amp;lt;/p&amp;gt; &amp;lt;/td&amp;gt;
      &amp;lt;td style=" padding: 7px;" class="formBody"&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
      &amp;lt;td class="formlabel" colspan="3" style="padding: 7px;"&amp;gt;&amp;lt;p class="lightGreyText"&amp;gt;Last Modified: $Context/?$LastModified$?&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
    &amp;lt;/table&amp;gt;

    &amp;lt;/body&amp;gt;

    &amp;lt;/html&amp;gt;
    &lt;/3081&gt;</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template']/Encoding$">utf-8</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template']/SeedClass$">System.WorkItem.Activity.ManualActivity$7ac62bd4-8fce-a150-3b40-16a39a61383d</Property>
          <Property Path="$Context/Property[Type='CustomSystem_Notifications_Library!System.Notification.Template']/Protocol$">SMTP</Property>
        </ObjectTemplate>
      </Templates>
      <LanguagePacks>
        <LanguagePack ID="ENU" IsDefault="false">
          <DisplayStrings>
            <DisplayString ElementID="ManagementPack.4ed50994ea2c429b90c35ce575497978">
              <Name>CSG Activity Configuration Library</Name>
              <Description>Use this one the other one is corrupt</Description>
            </DisplayString>
            <DisplayString ElementID="Enum.0310a1967d4f45fda23ea464a60b1ef2">
              <Name>On Hold Customer</Name>
              <Description>Waiting for the customer</Description>
            </DisplayString>
            <DisplayString ElementID="Enum.1a178a8e99424d5aa802d8cf11c5a2e6">
              <Name>On Hold IT</Name>
              <Description>Waiting for IT</Description>
            </DisplayString>
            <DisplayString ElementID="Enum.68058de61b104017a4d178194de3e488">
              <Name>On Hold Supplier</Name>
              <Description>Waiting for Supplier</Description>
            </DisplayString>
            <DisplayString ElementID="Enum.283f7ddd56634128830734de08c73640">
              <Name>Cancelled No Response from Client</Name>
              <Description>If we are waiting for something from the client and they do not respond in time.</Description>
            </DisplayString>
            <DisplayString ElementID="Enum.100aa0a706714eec8b7b5c7b990d1e65">
              <Name>Cancelled Duplicate Activity</Name>
            </DisplayString>
            <DisplayString ElementID="Template_3eb58722beb54dcb8355a5f2c1b90618">
              <Name>CSG MA: Updated</Name>
              <Description>Email for updates to a Manual Activity
    MUST add SeedRole='Target' after WorkItemContainsActivity' with spaces around it
    Must type it in manually
    Related SR info comes from Contains Activity</Description>
            </DisplayString>
            <DisplayString ElementID="NotificationSubscription_de9f5679_379c_49bf_9d62_ea4a4dc75fb0">
              <Name>CSG MA: Updated</Name>
              <Description>Sent to Stephen, Assigned to &amp; Affected User
    Affected user not receiving
    Needds MP XML edit see blog
    No Queue
    Status Does Not = Pending</Description>
            </DisplayString>
            <DisplayString ElementID="ObjectTemplate.bf0ef767d6ab49cda47f63183c5ee924">
              <Name>CSG MA: Updated - for workflow</Name>
              <Description>Email for updates to a Manual Activity
    MUST add SeedRole='Target' after WorkItemContainsActivity' with spaces around it
    Must type it in manually
    Related SR info comes from Contains Activity</Description>
            </DisplayString>
          </DisplayStrings>
        </LanguagePack>
        <LanguagePack ID="ENA" IsDefault="false">
          <DisplayStrings>
            <DisplayString ElementID="Enum.0310a1967d4f45fda23ea464a60b1ef2">
              <Name>On Hold Customer</Name>
              <Description>Waiting for the customer</Description>
            </DisplayString>
            <DisplayString ElementID="Enum.1a178a8e99424d5aa802d8cf11c5a2e6">
              <Name>On Hold IT</Name>
              <Description>Waiting for IT</Description>
            </DisplayString>
            <DisplayString ElementID="Enum.68058de61b104017a4d178194de3e488">
              <Name>On Hold Supplier</Name>
              <Description>Waiting for Supplier</Description>
            </DisplayString>
            <DisplayString ElementID="Enum.283f7ddd56634128830734de08c73640">
              <Name>Cancelled No Response from Client</Name>
              <Description>If we are waiting for something from the client and they do not respond in time.</Description>
            </DisplayString>
            <DisplayString ElementID="Enum.100aa0a706714eec8b7b5c7b990d1e65">
              <Name>Cancelled Duplicate Activity</Name>
            </DisplayString>
            <DisplayString ElementID="NotificationSubscription_de9f5679_379c_49bf_9d62_ea4a4dc75fb0">
              <Name>CSG MA: Updated</Name>
              <Description>Sent to Stephen, Assigned to &amp; Affected User
    Affected user not receiving
    Needds MP XML edit see blog
    No Queue
    Status Does Not = Pending</Description>
            </DisplayString>
          </DisplayStrings>
        </LanguagePack>
      </LanguagePacks>
    </ManagementPack>

    Monday, October 20, 2014 6:27 AM
  • Thanks for your reply.

    Yes what I want to do is notify the affected user and assigned to user of the parent incident or service request, when an activity is updated or closed.

    I have successfully created a notification that will show all of the content including the affected user details, as well as the ID and title of the parent service request or incident, but it is just not being sent to the affected user or assigned to user.

    Following is the management pack xml file that is not working, when I make the modifications suggested by the blog I listed above I get different import errors. The site won't let me post the whole management pack, but some of the bits I have changed are below:

        <References>
          <Reference Alias="EnterpriseManagement">
            <ID>Microsoft.EnterpriseManagement.ServiceManager.UI.Console</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="CustomSystem_Notifications_Library">
            <ID>System.Notifications.Library</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="CustomSystem_WorkItem_Library">
            <ID>System.WorkItem.Library</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="WorkItem">
            <ID>System.WorkItem.Activity.Library</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="CustomSystem_Library">
            <ID>System.Library</ID>
            <Version>7.5.8501.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="SystemCenter">
            <ID>Microsoft.SystemCenter.Library</ID>
            <Version>7.0.8433.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="SystemCenter1">
            <ID>Microsoft.SystemCenter.Subscriptions</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
          <Reference Alias="EnterpriseManagement1">
            <ID>Microsoft.EnterpriseManagement.ServiceManager.UI.Administration</ID>
            <Version>7.5.3079.0</Version>
            <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
          </Reference>
        </References>

    and

    <WorkflowArrayParameter Name="PrimaryUserRelationships" Type="string">

    <Item>$Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='WorkItem!System.WorkItem.Activity']/Path[Relationship='CustomSystem_WorkItem_Library!System.WorkItemAffectedUser' TypeConstraint='CustomSystem_Library!System.User']$</Item>

    <Item>$Context/Path[Relationship='WorkItem!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='WorkItem!System.WorkItem.Activity']/Path[Relationship='CustomSystem_WorkItem_Library!System.WorkItemAssignedToUser' TypeConstraint='CustomSystem_Library!System.User']$</Item>

    </WorkflowArrayParameter>

    The blog listed above asks me to change the code directly above to this:

    <WorkflowArrayParameterName="PrimaryUserRelationships"Type="string">

    <Item>$Context/Path[Relationship='CustomSystem_WorkItem_Activity_Library!System.WorkItemContainsActivity' SeedRole='Target' TypeConstraint='CustomSystem_WorkItem_Library!System.WorkItem']/Path[Relationship='CustomSystem_WorkItem_Library!System.WorkItemAffectedUser' TypeConstraint='CustomSystem_Library!System.User']$</Item>

    </WorkflowArrayParameter>

    When I do I get this error:

    The management pack import failed.
    Errors (1):
    The configuration specified for Module WA is not valid.
    : Cannot resolve identifier CustomSystem_WorkItem_Activity_Library!System.WorkItemContainsActivity in the context of management pack ManagementPack.4ed50994ea2c429b90c35ce575497978. Unknown alias: CustomSystem_WorkItem_Activity_Library

    Thanks in advance


    • Edited by Stephen Marsden Monday, October 20, 2014 7:01 AM too hard to read, making it easier
    Monday, October 20, 2014 6:56 AM