Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

capture the changes done in the Related lists on a form in Activity Formatter

YoungwooC
Tera Contributor

Hi community,


I am trying to capture changes made in the 'Contract CI' field, a related list field in the Contract (ast_contract) table. By default, additions to this related field are not tracked in the Activity History.

To address this, I created a Business Rule to generate a record in sys_history_line whenever a new entry is created in the Contract CI (contract_rel_ci) table. Although the Business Rule successfully creates entries in the sys_history_line table, these entries still do not appear in the Activity Formatter on the Contract form.

Is it possible to generate an Activity History log entry using a Business Rule when there is an addition to a related list field? If not, are there any recommended methods to ensure that changes in the Contract CI field are tracked and displayed in the Activity Formatter? or somewhere else?


(
function executeRule(current, previous /*null when async*/) {

    gs.log("Contract sys_id: "+current.contract);
    var fieldName = "work_notes";
    var contract = new GlideRecord('ast_contract');
    contract.addQuery("sys_id",current.contract);
    contract.query();
    if(contract.next()){
        var historySet = new GlideRecord('sys_history_set');
        historySet.addQuery("id",current.contract);
        historySet.query();
        if(historySet.next()){
            var historyLine = new GlideRecord('sys_history_line');
            var gdt = new GlideDateTime();
            historyLine.set = historySet.sys_id;
            historyLine.audit_sysid = '0';
            historyLine.field = 'relation';
            historyLine.label = 'relation';
            historyLine.type = 'relation';
            historyLine.update = -1;
            historyLine.user_id = 'admin';
            historyLine.old = 'Contract CI';
            historyLine.relation = 'Computer *DAVIN-IBM removed';
            historyLine.internal_checkpoint = 0;
            historyLine.update_time = gdt.getDisplayValueInternal();
            historyLine.user = admin's sys id;
            historyLine.user_name = 'System Administrator';
            historyLine.insert();
        }
})(current, previous);
0 REPLIES 0