How to populate Manager field(reference type) and effective date from excel sheet when using Glide Excel Parser.

Rahul Raja Sami
Tera Guru

I am using Glide Excel parser and Cart API to create requests from the excel.

everything works fine but cannot populate Manager and effective date fields from Excel 

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

    var gr = new GlideRecord('sys_attachment');
    gr.addQuery('table_sys_id', current.sys_id);
    gr.query();
    gs.log('request ---------------' + current.sys_id);
    if (gr.next()) {
 
        var parser = new sn_impex.GlideExcelParser();
        var attachment = new GlideSysAttachment();
        // use attachment sys id of an excel file
        var attachmentStream = attachment.getContentStream(gr.sys_id);

        parser.parse(attachmentStream);

        //retrieve the column headers
        var headers = parser.getColumnHeaders();
        var header1 = headers[0];
        var header2 = headers[1];
        var header3 = headers[2];
        var header4 = headers[3];
        var header5 = headers[4];
        var header6 = headers[5];
        var header7 = headers[6];
        var header8 = headers[7];
        var header9 = headers[8];
        var header10 = headers[9];

        while (parser.next()) {
            var row = parser.getRow();
            var message = "";
            var gr1 = GlideRecord('sys_user');
            gr1.addQuery('name', row[header3]);
            gr1.query();
            if (gr1.next()) {

                var success = true;
                var cartId = GlideGuid.generate(null);
                var cart = new Cart(cartId); //calling the cart API  
                var item = cart.addItem('52d4943187b6e810d0d4ca27cebb3521');
                cart.setVariable(item, 'requested_by', gr1.sys_id);
                cart.setVariable(item, 'first_name', row[header2]);
                cart.setVariable(item, 'last_name', row[header3]);
                cart.setVariable(item, 'access', 'AD');
                cart.setVariable(item, 'off_user_email', row[header4]);
                cart.setVariable(item, 'manager', row[header9]);
                cart.setVariable(item, 'effective_date', row[header1]);

                var rc = cart.placeOrder();
             
            }
        }
    } 
})(current, previous);

the excel sheet contains 10 columns. (9th column is Manager and 1st column is Date).

1 ACCEPTED SOLUTION

@Rahul Raja Samineni did you try changing the type of the column ?

also try mapping it in the exact format the system accepts like usually date field accepts the format like 

2022-03-15.

So in your excel try changing the format to 2022-06-14 and try

View solution in original post

31 REPLIES 31

Hi @Ankur Bawiskar 

Hi @Rahul Raja Sami 

I am working on same requirement, date field was not populating correctly.

code:

            var gd = new GlideDate();
                        gd.setDisplayValue(row[datet], "mm-DD-yyyy");
                         var myDate = gd.getByFormat("yyyy/mm/DD");
                   cart.setVariable(item, 'termination_date', myDate);

excel sheet term data:2024-11-12, but its showing incorrect on fileld like:09-13-2024

anitha0887_0-1726243960209.png

anitha0887_1-1726244012047.png

anitha0887_2-1726244149221.png

 

 

anitha0887
Tera Contributor

Hi @Rahul Raja Sami 

 

may i know on which table you wrote above business rule.

 

3rd line you wrote like :

 gr.addQuery('table_sys_id', current.sys_id);

current which table object is referring.