Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Ankur Bawiskar
Tera Patron

Many a times there is a need to add some delay in your script in server side.

Below script will work in both global + scoped app. The value passed is duration value. I passed 10 seconds in duration format. It can be customized as per your requirement.

Script:

gs.info('Before delay->' + new GlideDateTime().getValue());

var now = new GlideDateTime();
while(GlideDateTime.subtract(now, new GlideDateTime()) < "1970-01-01 00:00:10") {
// loop for 10 seconds}

gs.info('After delay->' + new GlideDateTime().getValue());

Output: Global scope

AnkurBawiskar_0-1735380954481.png

 

Output: Scoped app

AnkurBawiskar_1-1735381021258.png

 

Comments
khandelwal2
Tera Contributor

Hi @Ankur Bawiskar ,

 

I tried this in my script but it didn't work. I want the workflow to trigger after few seconds. Can you please let me know what am i doing wrong here?

 

createTransferOrderLines: function(transferOrderGr, recordProducer) {

        var assets = recordProducer.assets + '';

        var assetsArr = assets.split(",");
        var assetsArrLength = assetsArr.length;
        if (assetsArrLength === 0) {
            return false;
        } else {
            for (var i = 0; i < assetsArrLength; i++) {
                //create order lines
                var assetGR = new GlideRecord('alm_asset');
                if (assetGR.get(assetsArr[i])) {
                    var transferAsset = new GlideRecord('alm_transfer_order_line');

                    transferAsset.initialize();

                    transferAsset.setValue('transfer_order', transferOrderGr);
                    transferAsset.setValue('asset', assetsArr[i]);
                    transferAsset.setValue('quantity_requested', '1');
                    transferAsset.setValue('model', assetGR.model);
                    transferAsset.setValue('stage', 'draft');

                    transferAsset.setWorkflow(false);

                    var transferOrderLine = transferAsset.insert();

                    //  transferAsset.setWorkflow(true);
                    if (transferOrderLine) {
                        gs.info('Before delay->' + new GlideDateTime().getValue());

                        var now = new GlideDateTime();
                        while (GlideDateTime.subtract(now, new GlideDateTime()) < "1970-01-01 00:00:10") {
                            // loop for 10 seconds
                        }

                        gs.info('After delay->' + new GlideDateTime().getValue());


                        var wflw = new Workflow();
                        var wfId = wflw.getWorkflowFromName('Transfer Order Line');
                        if (wfId) {
                            wflw.startFlow(wfId, transferAsset, 'insert');
                        }
                    }
                }
            }
        }
    },
Ankur Bawiskar
Tera Patron

@khandelwal2 

can you post this as a separate question, share all the details and tag me there

Version history
Last update:
‎12-28-2024 02:17 AM
Updated by:
Contributors