How to show VIP flag for Scoped Application related Caller field

prasannakumard
Tera Guru

Hi Team,

 

I'm working on Procurement module and working on Procurement Case Management Application. We have some VIP users, those need to show VIP flag. I've tried by using Incident VIP script. But, it is not working. Is there any way to show VIP flag for VIP users in scoped applications.

Please see the Onload Client script for showing VIP flag. 

function onLoad() {
var callerLabel = $('label.sn_spend_psd_procurement_request.u_caller');
var callerField = $('sys_display.sn_spend_psd_procurement_request.u_caller');
if (!callerLabel || !callerField)
return;

g_form.getReference('u_caller', vipCallerCallbackREQ);
}

function vipCallerCallbackREQ(caller) {

var callerLabel = $('label.sn_spend_psd_procurement_request.u_caller').down('label');
var callerField = $('sys_display.sn_spend_psd_procurement_request.u_caller');
if (!callerLabel || !callerField)
return;

//check for VIP status
if (caller.vip == 'true') {
        var bgPosition = "95% 55%";
        if (document.documentElement.getAttribute('data-doctype') == 'true')
            bgPosition = "45% 70%";
           
        callerLabel.setStyle({backgroundImage: "url(images/icons/vip.gif)", backgroundRepeat: "no-repeat", backgroundPosition: bgPosition, paddingLeft: '30px' });
        callerField.setStyle({color: "red"});
    } else {
        callerLabel.setStyle({backgroundImage: ""});
        callerField.setStyle({color: ""});
    }

}
Please provide me the valuable suggestions. 
Thanks & Reagrds,
Prasanna Kumar
4 REPLIES 4

Sanjana8
Kilo Guru

Hi @prasannakumard 

 

You can create a display business rule to check the VIP users

Sanjana8_0-1720602065547.png

 

And then use the g_scratchpad variable in the client script to do further actions.

 

Sanjana8_1-1720602124802.png

 

Please mark helpful if you accept the solution.

 

Thanks 

Sanjana

 

Dnyaneshwaree
Mega Sage

Hello @prasannakumard ,

Update your script to refer below code and make adjustment in it as per your requirement:

function onLoad() {
    var callerLabel = g_form.getLabelOf('u_caller');
    var callerField = g_form.getControl('u_caller');
    if (!callerLabel || !callerField) return;

    g_form.getReference('u_caller', vipCallerCallbackREQ);
}

function vipCallerCallbackREQ(caller) {
    var callerLabel = g_form.getLabelOf('u_caller');
    var callerField = g_form.getControl('u_caller');
    if (!callerLabel || !callerField) return;

    // Check for VIP status
    if (caller.vip == 'true') {
        callerLabel.style.backgroundImage = "url('images/icons/vip.gif')";
        callerLabel.style.backgroundRepeat = "no-repeat";
        callerLabel.style.backgroundPosition = "95% 55%";
        callerLabel.style.paddingLeft = '30px';

        callerField.style.color = "red";
    } else {
        callerLabel.style.backgroundImage = "";
        callerField.style.color = "";
    }
}

 

Please accept my solution if it works for you and thumps up to mark it as helpful.
Thank you!!

Dnyaneshwaree Satpute
Tera Guru

@Dnyaneshwaree  The above script is not working for me on form level. 

For form level, I've used the below script:

function onLoad() {

//Type appropriate comment here, and begin script below

var userGA = new GlideAjax("x_dhmog_human_ca_0.HumanCaptialVIPUtils");

userGA.addParam("sysparm_name", "isVipOf");

userGA.addParam("sysparm_vip", g_form.getValue('u_dh_hr_case_table_caller'));

userGA.getXMLAnswer(checkingVip);

 

function checkingVip(answer) {

if (answer == 'true') {

g_form.showFieldMsg('u_dh_hr_case_table_caller', 'This is a VIP Caller', 'error');

g_form.addDecoration('u_dh_hr_case_table_caller', 'icon-star', 'VIP');

}

}

}

For native List layout level I used styles.

Thank you for your help.

 

Thanks & Regards,

Prasanna Kumar

Hi @prasannakumard 

 

Did you checked my answer, it might help

 

Thanks 

Sanjana