Difference between revisions of "Generate Notifications Only for Employee Comments"
m (New page: __NOTOC__ Category:Customizations Category:Incidents Category:Notifications Category:Problems Category:r6 Category:r11 Category:Requests [[Category:Schema Chang...) |
m (→Step 1. Create the scripts) |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 20: | Line 20: | ||
{{Create Spell Script}} | {{Create Spell Script}} | ||
| − | + | This script is triggered on the Act_Log table and attaches an event to the ticket. The script assumes that the Employee Access Type is associated with the Employee Interface and that it is also set as the default Access Type. | |
| − | <source lang="javascript">alg:: | + | <source lang="javascript">alg::zemp_comment(...) { |
| + | // The following IF STATEMENT assumes that 2405 is the id of the Employee Access Type | ||
| + | // and that the Employee Access Type is the default. | ||
if (analyst.access_type == 2405 || is_null(analyst.access_type)) { | if (analyst.access_type == 2405 || is_null(analyst.access_type)) { | ||
| − | + | object attached_events_table_record, group_leader; | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
string z_evt; | string z_evt; | ||
| − | // | + | // Identify below the id of the event to attach. |
z_evt = "evt:400001"; | z_evt = "evt:400001"; | ||
| − | + | ||
| − | + | if (!is_null(call_req_id.assignee)) { | |
| − | if ( | + | send_wait(0, top_object(), "get_co_group"); |
| − | + | if (msg_error()) { | |
| − | + | logf(ERROR, "%s %s - %s", call_req_id.type.sym, call_req_id.ref_num, msg[0]); | |
| − | + | } | |
| − | + | group_leader = msg[0]; | |
| − | + | send_wait(0, top_object(), "call_attr", "atev", "get_new_dob", NULL, NULL, group_leader); | |
| − | + | if (msg_error()) { | |
| − | + | logf(ERROR, "%s %s - %s", call_req_id.type.sym, call_req_id.ref_num, msg[0]); | |
| − | + | } | |
| − | + | attached_events_table_record = msg[0]; | |
| − | + | attached_events_table_record.obj_id = call_req_id; | |
| − | + | attached_events_table_record.event_tmpl = z_evt; | |
| − | + | send_wait(0, group_leader, "checkin"); | |
| − | + | if (msg_error()) { | |
| − | + | logf(ERROR, "error attaching event %s to %s %s - %s", z_evt, call_req_id.type.sym, call_req_id.ref_num, msg[0]); | |
| − | + | } else { | |
| − | + | logf(SIGNIFICANT, "successfully attached event %s to %s %s", z_evt, call_req_id.type.sym, call_req_id.ref_num); | |
| − | + | } | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
} | } | ||
} | } | ||
| Line 80: | Line 54: | ||
=== Step 2. Create the triggers === | === Step 2. Create the triggers === | ||
| − | This step is to create the | + | This step is to create the trigger that will initiate the script. The methods used to implement the trigger vary based on the Service Desk release. |
''For r11.x releases'' triggers are created via the [[Schema Designer]] utility. Add the following code as a [[Site-Defined Trigger]] to the '''[[Act Log Table|alg (Request Activity Log)]]''' table. | ''For r11.x releases'' triggers are created via the [[Schema Designer]] utility. Add the following code as a [[Site-Defined Trigger]] to the '''[[Act Log Table|alg (Request Activity Log)]]''' table. | ||
| − | <source lang="javascript">POST_VALIDATE | + | <source lang="javascript">POST_VALIDATE zemp_comment() 113 FILTER(type{-> 'LOG'});</source> |
| − | + | ||
| − | + | ||
| − | + | ||
| Line 92: | Line 63: | ||
<source lang="javascript">alg { | <source lang="javascript">alg { | ||
TRIGGERS { | TRIGGERS { | ||
| − | POST_VALIDATE | + | POST_VALIDATE zemp_comment() 113 FILTER(type{-> 'LOG'}); |
}; | }; | ||
| − | }; | + | };</source> |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | </source> | + | |
| − | + | ||
=== Step 3. Publish the Schema changes === | === Step 3. Publish the Schema changes === | ||
{{Publish Schema Change}} | {{Publish Schema Change}} | ||
Latest revision as of 15:11, 6 November 2008
To discuss or ask questions about this article, select the discussion tab above.
Overview
This article provides instructions for generating a notification when an Employee adds a comment to a Request, Incident, or Problem. It requires two sets of triggers and scripts, an event, and at least one Multiple Notification Macro.
If implementing this customization it is recommended that you disable the Log Comment Activity Notification.
Procedures
Step 1. Create the scripts
A script is created as an .spl file and placed in the $NX_ROOT/site/mods/majic directory. When the Service Desk service starts, the contents of the majic directory are processed and cached. You can use any naming scheme you like for your .spl file, but it is recommended that the file be preceded with a 'z' for easy identification as a custom file (eg zMyCompany.spl, zcr_scripts.spl, zMyScripts.spl).
This script is triggered on the Act_Log table and attaches an event to the ticket. The script assumes that the Employee Access Type is associated with the Employee Interface and that it is also set as the default Access Type. <source lang="javascript">alg::zemp_comment(...) { // The following IF STATEMENT assumes that 2405 is the id of the Employee Access Type // and that the Employee Access Type is the default. if (analyst.access_type == 2405 || is_null(analyst.access_type)) { object attached_events_table_record, group_leader; string z_evt; // Identify below the id of the event to attach. z_evt = "evt:400001";
if (!is_null(call_req_id.assignee)) { send_wait(0, top_object(), "get_co_group"); if (msg_error()) { logf(ERROR, "%s %s - %s", call_req_id.type.sym, call_req_id.ref_num, msg[0]); } group_leader = msg[0]; send_wait(0, top_object(), "call_attr", "atev", "get_new_dob", NULL, NULL, group_leader); if (msg_error()) { logf(ERROR, "%s %s - %s", call_req_id.type.sym, call_req_id.ref_num, msg[0]); } attached_events_table_record = msg[0]; attached_events_table_record.obj_id = call_req_id; attached_events_table_record.event_tmpl = z_evt; send_wait(0, group_leader, "checkin"); if (msg_error()) { logf(ERROR, "error attaching event %s to %s %s - %s", z_evt, call_req_id.type.sym, call_req_id.ref_num, msg[0]); } else { logf(SIGNIFICANT, "successfully attached event %s to %s %s", z_evt, call_req_id.type.sym, call_req_id.ref_num); } } } }</source>
Step 2. Create the triggers
This step is to create the trigger that will initiate the script. The methods used to implement the trigger vary based on the Service Desk release.
For r11.x releases triggers are created via the Schema Designer utility. Add the following code as a Site-Defined Trigger to the alg (Request Activity Log) table. <source lang="javascript">POST_VALIDATE zemp_comment() 113 FILTER(type{-> 'LOG'});</source>
For older releases triggers are made by creating a .mod file and placing it in the $NX_ROOT/site/mods/majic directory. Name the .mod anything you like, but it is recommended that it be preceded with a 'z'.
<source lang="javascript">alg {
TRIGGERS {
POST_VALIDATE zemp_comment() 113 FILTER(type{-> 'LOG'});
};
};</source>
Step 3. Publish the Schema changes
The methods used to publish schema changes vary based on the Service Desk release.
For r11.x releases, follow these steps:
- Save your Schema changes
- Stop the Service Desk service
- Run pdm_publish from a command line (Applicable if you made changes via WSP)
- Start the Service Desk service
For older releases recycle the Service Desk service.