If it helps, I ended up using "Call Status" as Gytis suggested and it's working really well. I created two new Call Statuses for "Forwarded to Individual" and "Forwarded to Group". However, rather than using a sql trigger, I customised InCallInternal.js to apply the new statuses to the calls.
e.g. in Custom_InCallInternal.js I created this:
function setForwardedCallStatus(item) {
var da = document.all;
var element = da.CALL_STATUS_REF;
var DB = FindNavWindow().document.all.DB;
var localRS;
DB.ClearParam();
if (item == "IN_GROUPS")
DB.AddParam("CALL_STATUS_NAME", "Forwarded to Group");
else
DB.AddParam("CALL_STATUS_NAME", "Forwarded to Individual");
localRS = DB.GetRecordSet("CustomGetCallStatusRef");
if (localRS != null && localRS.RecordCount >= 1)
element.value = localRS('REF');
}
...and added a call to this towards the end of the OfficerGroupSelect function:
if (selNode != null)
selNode.select();
}
selTree.TreeFocus();
setForwardedCallStatus(item);
}
return true;
And in infra_custom.sql:
! CustomGetCallStatusRef
CustomGetCallStatusRef
SELECT REF FROM CL_CALL_STATUS WHERE NAME = :sCALL_STATUS_NAME AND STATUS <> 'D'
As an extra, I also did some changes to InCallDefer.js which checks the Call Status on Defer and if its been left as one of the "Forwarded to..." statuses then it automatically changes it to a "Work in Progress" status. We have a problem with officers not always updating the status, so this just helps keep this a little bit tidier. If you are interested in this I'll post these changes as well.
Hope this helps,
Ian