I have a requirement to insert an Task Event when TASK.PLAN_START_DATE is changed in mobile DebriefOverview screen.
I have tried to achieve it by:
- Create a custom.old_plan_start_date field.
- In DebriefOverview Refresh event, I set a client script which will also set this:
// 405789 START
var planStartDttm = getControlValue("task", "plan_start_dttm");
setControlValue("custom", "old_plan_start_dttm", planStartDttm);
// 405789 FINISH
- In task.plan_start_date, on “Value Changed” event I set a client script which look like this:
var taskId = getCurrentKeys("task", "task_id");
var oldPlanStartDttm = getControlValue("custom","old_plan_start_dttm");
var newPlanStartDttm = getControlValue("task","plan_start_dttm");
if (oldPlanStartDttm != newPlanStartDttm)
{
var eventTaskKey = generatePrimaryKey("task_event");
var eventTaskKey = generateDataTransaction("task_event", "INSERT","");
eventTaskKey = addToDataTransaction(eventTaskKey, "event_sequence", eventTaskKey);
eventTaskKey = addToDataTransaction(eventTaskKey, "task_id", taskId);
eventTaskKey = addToDataTransaction(eventTaskKey, "user_def_dttm1", oldPlanStartDttm);
eventTaskKey = addToDataTransaction(eventTaskKey, "user_def_dttm2", newPlanStartDttm);
eventTaskKey = addToDataTransaction(eventTaskKey, "event_type", "CHANGE");
eventTaskKey = addToDataTransaction(eventTaskKey, "description", "Plan Start Date has changed");
saveDataTransaction(eventTaskKey, getMessage("Task Event", "Plan Start Date has changed"));
saveChanges();
// saveChanges(false,false,false);
// saveChanges(true,false,false);
setControlValue("custom","old_plan_start_dttm",newPlanStartDttm);
alert("The Plan Start Date is changed, an event will be created.");
}This script can create the expected Task Event, but unfortunately the NEXT and SAVE buttons are not responsive anymore.
Anything I have to add in above script to be able to make those buttons active again?
What I observed, when no change in the task.plan_start_date, the buttons are responsive (work normally).
Is it not possible to have INSERT statement in change event of mobile?
I am trying to avoid creating Business Rules for this action, as the requirement is only necessary for modification in mobile app. I am trying to achieve it only using client script if possible.