Skip to main content

Email scripting - catalog variables and styling

today, some email notification scripting fun (in this case on the sc_req_item table)

message HTML - pull in a notification email script:

${mail_script:retail_sc_req_item_variables}



notification email script:
- set background of variables section to 'LightGray' color using a div
- call a script include to pull in some variables, passing in the current RITM object


(function runMailScript(current, template, email, email_action, event) {
   
    //--pull in some variable values
    var si= new servicerequest_funcs();
    template.print('<div style="background-color:LightGray">');
    template.print(si.retrieve_variables_email(current));
    template.print('<br/>');
    template.print('<b>Total cost:</b>' + current.variables.retail_grand_total);
    template.print('</div>');
   
})(current, template, email, email_action, event);



script include snippet:

retrieve_variables_email: function(ritm){
        //--build up a string of variable values for the email notification script to template.print out
       
        var sReturn='';
        sReturn=sReturn+ '<b>Equipment:</b><br/> ' + this._get_datalookup_name(ritm.variables.retail_kit) + ', quantity: ' + ritm.variables.retail_quantity;
        sReturn=sReturn+'<br/>';
        if (ritm.variables.retail_additional_flag=='true'){
            sReturn=sReturn+ '<b>Additional Equipment:</b><br/>';
            for (iCount=1;iCount<9;iCount++){
                var kit=this._get_variable('retail_kit_' + iCount, ritm);
                if (!gs.nil(kit)){
                    sReturn=sReturn + this._get_datalookup_name(kit) + ', quantity: ' + this._get_variable('retail_quantity_' + iCount, ritm) +  '<br/>';
                }
            }
        }
        return sReturn;
       
    },
   
    _get_variable: function(variable_name, grRITM){
        //--retrieve a variable value where the variable name is passed in as a string
        var sReturn='';
        var varGR=new GlideRecord('sc_item_option_mtom');
        varGR.addQuery('request_item', grRITM.sys_id);   //--sys id of the sc_req_item
    varGR.addQuery('sc_item_option.item_option_new.name='+variable_name);
        varGR.query();
        if(varGR.next()){
            var gr= new GlideRecord ('sc_item_option');
            gr.addQuery('sys_id', varGR.sc_item_option.toString());
            gr.query();
            if(gr.next()){
                sReturn=gr.value; //--sys id, typically for this search. or string value if not a ref field
            }
        }
        return sReturn;
    }

Comments

Post a Comment

Popular posts from this blog

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }

ServiceNow - script include: build up the results as a JSON object (array) - example 2

function call var sCurrentGroupMembers = new <script_include> (). getGroupMembers ( group_sysid ); gs . print ( 'sCurrentGroupMembers:' + sCurrentGroupMembers ); var oGroupMembers = JSON . parse ( sCurrentGroupMembers ); gs . print ( JSON . stringify ( oGroupMembers . users )); oNewGroupMember = JSON . parse ( group_members ); var oGroupConfig = getGroupDeltas ( oGroupMembers . users , oNewGroupMember ); gs . print ( JSON . stringify ( oGroupConfig . remove )); gs . print ( JSON . stringify ( oGroupConfig . add )) output : *** Script: sCurrentGroupMembers: {"manager":"3b2649efdb0f8c10cc0652f3f39xxxxx", "email":"", "type":"33a2226edb99c340edfc7cbdae96xxxx", "description":"Created for xyz", "users":[{"user":"3b2649efdb0f8c10cc0652f3f396xxxx"},{"user":"856a8f71db3d73041b4ffc45ae96196a"},{"user":"3752771