Difference between revisions of "Make a Field Conditionally Required"
(→Step 2. Create the trigger) |
(→Step 2. Create the trigger) |
||
| Line 14: | Line 14: | ||
r11.x triggers are created via the Schema Designer utility. Simply add a Site-Defined Trigger to the desired table. | r11.x triggers are created via the Schema Designer utility. Simply add a Site-Defined Trigger to the desired table. | ||
| − | + | <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->PRE_VALIDATE zmyscript() 113 FILTER(active == 0);<!--c2--></div><!--ec2--> | |
| − | '''PRE_VALIDATE zmyscript | + | |
pre-r11.x triggers are made by creating a .mod file and placing it in the site/mods/majic directory. | pre-r11.x triggers are made by creating a .mod file and placing it in the site/mods/majic directory. | ||
| − | + | <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->MODIFY cr PRE_VALIDATE zmyscript() 113 FILTER(active == 0);<!--c2--></div><!--ec2--> | |
| − | '''MODIFY cr PRE_VALIDATE zmyscript | + | |
== Step 3. Publish the Schema changes == | == Step 3. Publish the Schema changes == | ||
Revision as of 02:35, 13 January 2008
This article provides instructions for making a field conditionally required.
In the steps that follow, the example code is used to ensure the Assignee is the only only able to close a ticket. Other examples are displayed at the bottom of this article.
Contents
Step 1. Create the script
The script is created as a .spl file and placed in the site/mods/majic directory.
string zmsg;
if(assignee.userid != cst.userid) {
zmsg=format(" Assignee must be the same as the logged in user in order to close %s", ref_num);
set_error(1);
set_return_data(zmsg);
return;
}
}
Step 2. Create the trigger
The trigger is responsible for "triggering" the script.
r11.x triggers are created via the Schema Designer utility. Simply add a Site-Defined Trigger to the desired table.
pre-r11.x triggers are made by creating a .mod file and placing it in the site/mods/majic directory.
Step 3. Publish the Schema changes
r11.x 1. Save your Schema changes 2. Stop the Service Desk service 3. Run pdm_publish from a command line 4. Start the Service Desk service
pre-r11.x Recycle the Service Desk service
Note: This logic can be used to greatly expand system functionality by ensuring that data gets collected when any number of conditions exist.
Another Example
Root Cause required when a Request is closed
string zmsg;
if(is_null(rootcause)) {
zmsg=format("Root Cause is required to close Request %s",ref_num);
set_error(1);
set_return_data(zmsg);
return;
}
}
Trigger: PRE_VALIDATE zmyscript() 113 FILTER(status == "CL");
Tips
String statements together using && Example (is_null(anyfield1) && is_null(anyfield2))
For not null add an ! Example (!is_null(anyfield))