Create JWT token calling api using rest.

Create a JSON web token using suite script and calling rest API using jwt token.

/**
 * @NApiVersion 2.x
 * @NScriptType ScheduledScript
 */
define(['N/https', 'N/search', 'N/runtime', 'N/record', 'N/file'],
    function(https, search, runtime, record, file) {
        var main = {

            execute: function(scriptContext) {
                try {

                    /*cryptojS library for creating token*/
                    /*
                    CryptoJS v3.1.2
                    code.google.com/p/crypto-js
                    (c) 2009-2013 by Jeff Mott. All rights reserved.
                    code.google.com/p/crypto-js/wiki/License
                    */
                    var CryptoJS = CryptoJS || function(g, l) {
                        var e = {},
                            d = e.lib = {},
                            m = function() {},
                            k = d.Base = {
                                extend: function(a) {
                                    m.prototype = this;
                                    var c = new m;
                                    a && c.mixIn(a);
                                    c.hasOwnProperty("init") || (c.init = function() { c.$super.init.apply(this, arguments) });
                                    c.init.prototype = c;
                                    c.$super = this;
                                    return c
                                },
                                create: function() {
                                    var a = this.extend();
                                    a.init.apply(a, arguments);
                                    return a
                                },
                                init: function() {},
                                mixIn: function(a) {
                                    for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]);
                                    a.hasOwnProperty("toString") && (this.toString = a.toString)
                                },
                                clone: function() { return this.init.prototype.extend(this) }
                            },
                            p = d.WordArray = k.extend({
                                init: function(a, c) {
                                    a = this.words = a || [];
                                    this.sigBytes = c != l ? c : 4 * a.length
                                },
                                toString: function(a) { return (a || n).stringify(this) },
                                concat: function(a) {
                                    var c = this.words,
                                        q = a.words,
                                        f = this.sigBytes;
                                    a = a.sigBytes;
                                    this.clamp();
                                    if (f % 4)
                                        for (var b = 0; b < a; b++) c[f + b >>> 2] |= (q[b >>> 2] >>> 24 - 8 * (b % 4) & 255) << 24 - 8 * ((f + b) % 4);
                                    else if (65535 < q.length)
                                        for (b = 0; b < a; b += 4) c[f + b >>> 2] = q[b >>> 2];
                                    else c.push.apply(c, q);
                                    this.sigBytes += a;
                                    return this
                                },
                                clamp: function() {
                                    var a = this.words,
                                        c = this.sigBytes;
                                    a[c >>> 2] &= 4294967295 <<
                                        32 - 8 * (c % 4);
                                    a.length = g.ceil(c / 4)
                                },
                                clone: function() {
                                    var a = k.clone.call(this);
                                    a.words = this.words.slice(0);
                                    return a
                                },
                                random: function(a) { for (var c = [], b = 0; b < a; b += 4) c.push(4294967296 * g.random() | 0); return new p.init(c, a) }
                            }),
                            b = e.enc = {},
                            n = b.Hex = {
                                stringify: function(a) {
                                    var c = a.words;
                                    a = a.sigBytes;
                                    for (var b = [], f = 0; f < a; f++) {
                                        var d = c[f >>> 2] >>> 24 - 8 * (f % 4) & 255;
                                        b.push((d >>> 4).toString(16));
                                        b.push((d & 15).toString(16))
                                    }
                                    return b.join("")
                                },
                                parse: function(a) {
                                    for (var c = a.length, b = [], f = 0; f < c; f += 2) b[f >>> 3] |= parseInt(a.substr(f,
                                        2), 16) << 24 - 4 * (f % 8);
                                    return new p.init(b, c / 2)
                                }
                            },
                            j = b.Latin1 = {
                                stringify: function(a) {
                                    var c = a.words;
                                    a = a.sigBytes;
                                    for (var b = [], f = 0; f < a; f++) b.push(String.fromCharCode(c[f >>> 2] >>> 24 - 8 * (f % 4) & 255));
                                    return b.join("")
                                },
                                parse: function(a) { for (var c = a.length, b = [], f = 0; f < c; f++) b[f >>> 2] |= (a.charCodeAt(f) & 255) << 24 - 8 * (f % 4); return new p.init(b, c) }
                            },
                            h = b.Utf8 = { stringify: function(a) { try { return decodeURIComponent(escape(j.stringify(a))) } catch (c) { throw Error("Malformed UTF-8 data"); } }, parse: function(a) { return j.parse(unescape(encodeURIComponent(a))) } },
                            r = d.BufferedBlockAlgorithm = k.extend({
                                reset: function() {
                                    this._data = new p.init;
                                    this._nDataBytes = 0
                                },
                                _append: function(a) {
                                    "string" == typeof a && (a = h.parse(a));
                                    this._data.concat(a);
                                    this._nDataBytes += a.sigBytes
                                },
                                _process: function(a) {
                                    var c = this._data,
                                        b = c.words,
                                        f = c.sigBytes,
                                        d = this.blockSize,
                                        e = f / (4 * d),
                                        e = a ? g.ceil(e) : g.max((e | 0) - this._minBufferSize, 0);
                                    a = e * d;
                                    f = g.min(4 * a, f);
                                    if (a) {
                                        for (var k = 0; k < a; k += d) this._doProcessBlock(b, k);
                                        k = b.splice(0, a);
                                        c.sigBytes -= f
                                    }
                                    return new p.init(k, f)
                                },
                                clone: function() {
                                    var a = k.clone.call(this);
                                    a._data = this._data.clone();
                                    return a
                                },
                                _minBufferSize: 0
                            });
                        d.Hasher = r.extend({
                            cfg: k.extend(),
                            init: function(a) {
                                this.cfg = this.cfg.extend(a);
                                this.reset()
                            },
                            reset: function() {
                                r.reset.call(this);
                                this._doReset()
                            },
                            update: function(a) {
                                this._append(a);
                                this._process();
                                return this
                            },
                            finalize: function(a) { a && this._append(a); return this._doFinalize() },
                            blockSize: 16,
                            _createHelper: function(a) { return function(b, d) { return (new a.init(d)).finalize(b) } },
                            _createHmacHelper: function(a) {
                                return function(b, d) {
                                    return (new s.HMAC.init(a,
                                        d)).finalize(b)
                                }
                            }
                        });
                        var s = e.algo = {};
                        return e
                    }(Math);
                    (function() {
                        var g = CryptoJS,
                            l = g.lib,
                            e = l.WordArray,
                            d = l.Hasher,
                            m = [],
                            l = g.algo.SHA1 = d.extend({
                                _doReset: function() { this._hash = new e.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) },
                                _doProcessBlock: function(d, e) {
                                    for (var b = this._hash.words, n = b[0], j = b[1], h = b[2], g = b[3], l = b[4], a = 0; 80 > a; a++) {
                                        if (16 > a) m[a] = d[e + a] | 0;
                                        else {
                                            var c = m[a - 3] ^ m[a - 8] ^ m[a - 14] ^ m[a - 16];
                                            m[a] = c << 1 | c >>> 31
                                        }
                                        c = (n << 5 | n >>> 27) + l + m[a];
                                        c = 20 > a ? c + ((j & h | ~j & g) + 1518500249) : 40 > a ? c + ((j ^ h ^ g) + 1859775393) : 60 > a ? c + ((j & h | j & g | h & g) - 1894007588) : c + ((j ^ h ^
                                            g) - 899497514);
                                        l = g;
                                        g = h;
                                        h = j << 30 | j >>> 2;
                                        j = n;
                                        n = c
                                    }
                                    b[0] = b[0] + n | 0;
                                    b[1] = b[1] + j | 0;
                                    b[2] = b[2] + h | 0;
                                    b[3] = b[3] + g | 0;
                                    b[4] = b[4] + l | 0
                                },
                                _doFinalize: function() {
                                    var d = this._data,
                                        e = d.words,
                                        b = 8 * this._nDataBytes,
                                        g = 8 * d.sigBytes;
                                    e[g >>> 5] |= 128 << 24 - g % 32;
                                    e[(g + 64 >>> 9 << 4) + 14] = Math.floor(b / 4294967296);
                                    e[(g + 64 >>> 9 << 4) + 15] = b;
                                    d.sigBytes = 4 * e.length;
                                    this._process();
                                    return this._hash
                                },
                                clone: function() {
                                    var e = d.clone.call(this);
                                    e._hash = this._hash.clone();
                                    return e
                                }
                            });
                        g.SHA1 = d._createHelper(l);
                        g.HmacSHA1 = d._createHmacHelper(l)
                    })();
                    (function() {
                        var g = CryptoJS,
                            l = g.enc.Utf8;
                        g.algo.HMAC = g.lib.Base.extend({
                            init: function(e, d) {
                                e = this._hasher = new e.init;
                                "string" == typeof d && (d = l.parse(d));
                                var g = e.blockSize,
                                    k = 4 * g;
                                d.sigBytes > k && (d = e.finalize(d));
                                d.clamp();
                                for (var p = this._oKey = d.clone(), b = this._iKey = d.clone(), n = p.words, j = b.words, h = 0; h < g; h++) n[h] ^= 1549556828, j[h] ^= 909522486;
                                p.sigBytes = b.sigBytes = k;
                                this.reset()
                            },
                            reset: function() {
                                var e = this._hasher;
                                e.reset();
                                e.update(this._iKey)
                            },
                            update: function(e) { this._hasher.update(e); return this },
                            finalize: function(e) {
                                var d =
                                    this._hasher;
                                e = d.finalize(e);
                                d.reset();
                                return d.finalize(this._oKey.clone().concat(e))
                            }
                        })
                    })();

                    /*
                    CryptoJS v3.0.2
                    code.google.com/p/crypto-js
                    (c) 2009-2012 by Jeff Mott. All rights reserved.
                    code.google.com/p/crypto-js/wiki/License
                    */
                    (function() {
                        var h = CryptoJS,
                            i = h.lib.WordArray;
                        h.enc.Base64 = {
                            stringify: function(b) {
                                var e = b.words,
                                    f = b.sigBytes,
                                    c = this._map;
                                b.clamp();
                                for (var b = [], a = 0; a < f; a += 3)
                                    for (var d = (e[a >>> 2] >>> 24 - 8 * (a % 4) & 255) << 16 | (e[a + 1 >>> 2] >>> 24 - 8 * ((a + 1) % 4) & 255) << 8 | e[a + 2 >>> 2] >>> 24 - 8 * ((a + 2) % 4) & 255, g = 0; 4 > g && a + 0.75 * g < f; g++) b.push(c.charAt(d >>> 6 * (3 - g) & 63));
                                if (e = c.charAt(64))
                                    for (; b.length % 4;) b.push(e);
                                return b.join("")
                            },
                            parse: function(b) {
                                var b = b.replace(/\s/g, ""),
                                    e = b.length,
                                    f = this._map,
                                    c = f.charAt(64);
                                c && (c = b.indexOf(c), -1 != c && (e = c));
                                for (var c = [], a = 0, d = 0; d < e; d++)
                                    if (d % 4) {
                                        var g = f.indexOf(b.charAt(d - 1)) << 2 * (d % 4),
                                            h = f.indexOf(b.charAt(d)) >>> 6 - 2 * (d % 4);
                                        c[a >>> 2] |= (g | h) << 24 - 8 * (a % 4);
                                        a++
                                    } return i.create(c, a)
                            },
                            _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
                        }
                    })();
                    /*
                    CryptoJS v3.1.2
                    code.google.com/p/crypto-js
                    (c) 2009-2013 by Jeff Mott. All rights reserved.
                    code.google.com/p/crypto-js/wiki/License
                    */
                    var CryptoJS = CryptoJS || function(h, s) {
                        var f = {},
                            g = f.lib = {},
                            q = function() {},
                            m = g.Base = {
                                extend: function(a) {
                                    q.prototype = this;
                                    var c = new q;
                                    a && c.mixIn(a);
                                    c.hasOwnProperty("init") || (c.init = function() { c.$super.init.apply(this, arguments) });
                                    c.init.prototype = c;
                                    c.$super = this;
                                    return c
                                },
                                create: function() {
                                    var a = this.extend();
                                    a.init.apply(a, arguments);
                                    return a
                                },
                                init: function() {},
                                mixIn: function(a) {
                                    for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]);
                                    a.hasOwnProperty("toString") && (this.toString = a.toString)
                                },
                                clone: function() { return this.init.prototype.extend(this) }
                            },
                            r = g.WordArray = m.extend({
                                init: function(a, c) {
                                    a = this.words = a || [];
                                    this.sigBytes = c != s ? c : 4 * a.length
                                },
                                toString: function(a) { return (a || k).stringify(this) },
                                concat: function(a) {
                                    var c = this.words,
                                        d = a.words,
                                        b = this.sigBytes;
                                    a = a.sigBytes;
                                    this.clamp();
                                    if (b % 4)
                                        for (var e = 0; e < a; e++) c[b + e >>> 2] |= (d[e >>> 2] >>> 24 - 8 * (e % 4) & 255) << 24 - 8 * ((b + e) % 4);
                                    else if (65535 < d.length)
                                        for (e = 0; e < a; e += 4) c[b + e >>> 2] = d[e >>> 2];
                                    else c.push.apply(c, d);
                                    this.sigBytes += a;
                                    return this
                                },
                                clamp: function() {
                                    var a = this.words,
                                        c = this.sigBytes;
                                    a[c >>> 2] &= 4294967295 <<
                                        32 - 8 * (c % 4);
                                    a.length = h.ceil(c / 4)
                                },
                                clone: function() {
                                    var a = m.clone.call(this);
                                    a.words = this.words.slice(0);
                                    return a
                                },
                                random: function(a) { for (var c = [], d = 0; d < a; d += 4) c.push(4294967296 * h.random() | 0); return new r.init(c, a) }
                            }),
                            l = f.enc = {},
                            k = l.Hex = {
                                stringify: function(a) {
                                    var c = a.words;
                                    a = a.sigBytes;
                                    for (var d = [], b = 0; b < a; b++) {
                                        var e = c[b >>> 2] >>> 24 - 8 * (b % 4) & 255;
                                        d.push((e >>> 4).toString(16));
                                        d.push((e & 15).toString(16))
                                    }
                                    return d.join("")
                                },
                                parse: function(a) {
                                    for (var c = a.length, d = [], b = 0; b < c; b += 2) d[b >>> 3] |= parseInt(a.substr(b,
                                        2), 16) << 24 - 4 * (b % 8);
                                    return new r.init(d, c / 2)
                                }
                            },
                            n = l.Latin1 = {
                                stringify: function(a) {
                                    var c = a.words;
                                    a = a.sigBytes;
                                    for (var d = [], b = 0; b < a; b++) d.push(String.fromCharCode(c[b >>> 2] >>> 24 - 8 * (b % 4) & 255));
                                    return d.join("")
                                },
                                parse: function(a) { for (var c = a.length, d = [], b = 0; b < c; b++) d[b >>> 2] |= (a.charCodeAt(b) & 255) << 24 - 8 * (b % 4); return new r.init(d, c) }
                            },
                            j = l.Utf8 = { stringify: function(a) { try { return decodeURIComponent(escape(n.stringify(a))) } catch (c) { throw Error("Malformed UTF-8 data"); } }, parse: function(a) { return n.parse(unescape(encodeURIComponent(a))) } },
                            u = g.BufferedBlockAlgorithm = m.extend({
                                reset: function() {
                                    this._data = new r.init;
                                    this._nDataBytes = 0
                                },
                                _append: function(a) {
                                    "string" == typeof a && (a = j.parse(a));
                                    this._data.concat(a);
                                    this._nDataBytes += a.sigBytes
                                },
                                _process: function(a) {
                                    var c = this._data,
                                        d = c.words,
                                        b = c.sigBytes,
                                        e = this.blockSize,
                                        f = b / (4 * e),
                                        f = a ? h.ceil(f) : h.max((f | 0) - this._minBufferSize, 0);
                                    a = f * e;
                                    b = h.min(4 * a, b);
                                    if (a) {
                                        for (var g = 0; g < a; g += e) this._doProcessBlock(d, g);
                                        g = d.splice(0, a);
                                        c.sigBytes -= b
                                    }
                                    return new r.init(g, b)
                                },
                                clone: function() {
                                    var a = m.clone.call(this);
                                    a._data = this._data.clone();
                                    return a
                                },
                                _minBufferSize: 0
                            });
                        g.Hasher = u.extend({
                            cfg: m.extend(),
                            init: function(a) {
                                this.cfg = this.cfg.extend(a);
                                this.reset()
                            },
                            reset: function() {
                                u.reset.call(this);
                                this._doReset()
                            },
                            update: function(a) {
                                this._append(a);
                                this._process();
                                return this
                            },
                            finalize: function(a) { a && this._append(a); return this._doFinalize() },
                            blockSize: 16,
                            _createHelper: function(a) { return function(c, d) { return (new a.init(d)).finalize(c) } },
                            _createHmacHelper: function(a) {
                                return function(c, d) {
                                    return (new t.HMAC.init(a,
                                        d)).finalize(c)
                                }
                            }
                        });
                        var t = f.algo = {};
                        return f
                    }(Math);
                    (function(h) {
                        for (var s = CryptoJS, f = s.lib, g = f.WordArray, q = f.Hasher, f = s.algo, m = [], r = [], l = function(a) { return 4294967296 * (a - (a | 0)) | 0 }, k = 2, n = 0; 64 > n;) {
                            var j;
                            a: {
                                j = k;
                                for (var u = h.sqrt(j), t = 2; t <= u; t++)
                                    if (!(j % t)) { j = !1; break a } j = !0
                            }
                            j && (8 > n && (m[n] = l(h.pow(k, 0.5))), r[n] = l(h.pow(k, 1 / 3)), n++);
                            k++
                        }
                        var a = [],
                            f = f.SHA256 = q.extend({
                                _doReset: function() { this._hash = new g.init(m.slice(0)) },
                                _doProcessBlock: function(c, d) {
                                    for (var b = this._hash.words, e = b[0], f = b[1], g = b[2], j = b[3], h = b[4], m = b[5], n = b[6], q = b[7], p = 0; 64 > p; p++) {
                                        if (16 > p) a[p] =
                                            c[d + p] | 0;
                                        else {
                                            var k = a[p - 15],
                                                l = a[p - 2];
                                            a[p] = ((k << 25 | k >>> 7) ^ (k << 14 | k >>> 18) ^ k >>> 3) + a[p - 7] + ((l << 15 | l >>> 17) ^ (l << 13 | l >>> 19) ^ l >>> 10) + a[p - 16]
                                        }
                                        k = q + ((h << 26 | h >>> 6) ^ (h << 21 | h >>> 11) ^ (h << 7 | h >>> 25)) + (h & m ^ ~h & n) + r[p] + a[p];
                                        l = ((e << 30 | e >>> 2) ^ (e << 19 | e >>> 13) ^ (e << 10 | e >>> 22)) + (e & f ^ e & g ^ f & g);
                                        q = n;
                                        n = m;
                                        m = h;
                                        h = j + k | 0;
                                        j = g;
                                        g = f;
                                        f = e;
                                        e = k + l | 0
                                    }
                                    b[0] = b[0] + e | 0;
                                    b[1] = b[1] + f | 0;
                                    b[2] = b[2] + g | 0;
                                    b[3] = b[3] + j | 0;
                                    b[4] = b[4] + h | 0;
                                    b[5] = b[5] + m | 0;
                                    b[6] = b[6] + n | 0;
                                    b[7] = b[7] + q | 0
                                },
                                _doFinalize: function() {
                                    var a = this._data,
                                        d = a.words,
                                        b = 8 * this._nDataBytes,
                                        e = 8 * a.sigBytes;
                                    d[e >>> 5] |= 128 << 24 - e % 32;
                                    d[(e + 64 >>> 9 << 4) + 14] = h.floor(b / 4294967296);
                                    d[(e + 64 >>> 9 << 4) + 15] = b;
                                    a.sigBytes = 4 * d.length;
                                    this._process();
                                    return this._hash
                                },
                                clone: function() {
                                    var a = q.clone.call(this);
                                    a._hash = this._hash.clone();
                                    return a
                                }
                            });
                        s.SHA256 = q._createHelper(f);
                        s.HmacSHA256 = q._createHmacHelper(f)
                    })(Math);
                    (function() {
                        var h = CryptoJS,
                            s = h.enc.Utf8;
                        h.algo.HMAC = h.lib.Base.extend({
                            init: function(f, g) {
                                f = this._hasher = new f.init;
                                "string" == typeof g && (g = s.parse(g));
                                var h = f.blockSize,
                                    m = 4 * h;
                                g.sigBytes > m && (g = f.finalize(g));
                                g.clamp();
                                for (var r = this._oKey = g.clone(), l = this._iKey = g.clone(), k = r.words, n = l.words, j = 0; j < h; j++) k[j] ^= 1549556828, n[j] ^= 909522486;
                                r.sigBytes = l.sigBytes = m;
                                this.reset()
                            },
                            reset: function() {
                                var f = this._hasher;
                                f.reset();
                                f.update(this._iKey)
                            },
                            update: function(f) { this._hasher.update(f); return this },
                            finalize: function(f) {
                                var g =
                                    this._hasher;
                                f = g.finalize(f);
                                g.reset();
                                return g.finalize(this._oKey.clone().concat(f))
                            }
                        })
                    })();

                    // Defining our token parts

                    var header = {
                        "alg": "HS256",
                        "typ": "JWT"
                    };
                    var time_now = Math.floor(new Date().getTime() / 1000);
                    var exp = time_now + 300000

                    var data = {
                        "partnerid": "7CA6D2AEDAB1DD92886450A02D295A2AD0E0B073",
                        "companydomain": "1838F4F6E7ED9E2B269A7C4D4256DBBCEF2B8E1A",
                        "companyhash": "5B200B709EC4CEA52BD036A0A059F9A0D5810FE4",
                        "iat": time_now,
                        "exp": exp
                    };

                    var secret = "1838F4F6E7ED9E2B269A7C4D4256DBBCEF2B8E1A";

                    function base64url(source) {
                        encodedSource = CryptoJS.enc.Base64.stringify(source);
                        encodedSource = encodedSource.replace(/=+$/, '');
                        encodedSource = encodedSource.replace(/\+/g, '-');
                        encodedSource = encodedSource.replace(/\//g, '_');
                        return encodedSource;
                    }

                    var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));
                    var encodedHeader = base64url(stringifiedHeader);

                    var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));
                    var encodedData = base64url(stringifiedData);

                    var signature = encodedHeader + "." + encodedData;
                    signature = CryptoJS.HmacSHA256(signature, secret);
                    signature = base64url(signature);
                    var token = ("token " + encodedHeader + "." + encodedData + "." + signature);
                    log.debug("token", token);

                    // serch for getting employees detail

                    var arr = [];
                    var finalArr = [];
                    var employeeSearchObj = search.create({
                        type: "employee",
                        filters: [
                            ["custentity_employee_unique_value", "isnotempty", ""]
                        ],
                        columns: [
                            search.createColumn({ name: "altname", label: "Name" }),
                            search.createColumn({ name: "email", label: "Email" }),
                            search.createColumn({ name: "custentity_employee_unique_value", label: "employee unique value" })
                        ]
                    });

                    var searchResultCount = employeeSearchObj.runPaged().count;
                    log.debug("employeeSearchObj result count", searchResultCount);
                    employeeSearchObj.run().each(function(result) {
                        var obj = {};
                        obj.name = result.getValue(employeeSearchObj.columns[0]);
                        obj.email = result.getValue(employeeSearchObj.columns[1]);
                        obj.uniqueID = result.getValue(employeeSearchObj.columns[2]);
                        arr.push(obj);
                        return true;
                    });
                    log.debug("mani", arr);

                    // calling http method dynamically

                    for (var i = 0; i < arr.length; i++) {

                        var mani = arr[i].uniqueID

                        //log.debug("manikandan", mani);


                        var Item_response = https.get({
                            url: 'https://mailapi.paybooks.in/v1/company/JAJ/getemployeedetails?code=' + mani,
                            headers: {
                                "Authorization": token,
                                "Content-Type": "application/json"
                            }
                        });
                        //store response data into the variable
                        var Item_content = JSON.parse(Item_response.body);
                        log.debug("Item_content", Item_content);
                        // create an object for getting required data from response
                        var employeeEssential = { "name": Item_content.name, "gender": Item_content.gender, "emaiId": Item_content.emaiId, "birthDate": Item_content.birthDate, "CTC": Item_content.annualCTC };
                        // store required value into final array
                        finalArr.push(employeeEssential);
                    }
                    log.debug("finalArr", finalArr);



                    var objRecord = record.create({
                        type: record.Type.JOURNAL_ENTRY,
                        //isDynamic: true
                    });
                    //write the body field
                    objRecord.setValue({ fieldId: 'currency', value: 1 });
                    objRecord.setValue({ fieldId: 'exchangerate', value: '1.00' });
                    objRecord.setValue({ fieldId: 'subsidiary', value: 1 });

                    var j = 0;
                    // finding total of the ctc
                    var ctcTotal = 0;
                    for (var i = 0; i < arr.length; i++) {
                        ctcTotal = ctcTotal + finalArr[i].CTC;
                    }
                    log.debug("ctcTotal", ctcTotal);
                    // set first lne in static
                    objRecord.setSublistValue({ sublistId: 'line', fieldId: 'account', line: 0, value: 1 });
                    objRecord.setSublistValue({ sublistId: 'line', fieldId: 'debit', line: 0, value: ctcTotal });

                    // for creating Dr side of the journal entry
                    for (var i = 1; i < (finalArr.length) + 1; i++) {
                        var employeeCtc = finalArr[i - 1].CTC;
                        log.debug("employeeCtc", employeeCtc);
                        objRecord.setSublistValue({ sublistId: 'line', fieldId: 'account', line: i, value: 3 });
                        objRecord.setSublistValue({ sublistId: 'line', fieldId: 'credit', line: i, value: employeeCtc });
                        objRecord.setSublistValue({ sublistId: 'line', fieldId: 'entity', line: i, value: 442 });




                    }
                    //objRecord.commitLine({ sublistId: 'line' });
                    var recordId = objRecord.save({
                        enableSource: true,
                        ignoreMandatoryFields: true
                    });
                    log.debug("recordid", recordId);

                } catch (er) {
                    log.debug('er', er.message)
                    return;
                }
            }
        }
        return main;
    });

Leave a comment

Your email address will not be published. Required fields are marked *