How to control/restrict action framework not to go to next action while current action's snippet is running/not done ?

  • 1
  • Question
  • Updated 2 years ago
  • Answered
Hi,

I have a button which has multiple actions to run on click.

Action 1: Run a Snippet
Action 2: Another snippet
Action 3: Run 3rd Snippet

Here , what I am trying to achieve is - only after finishing the first snippet which saves my record and then start running other ones

But currently, what is happening is - I observed that 3rd snippet is running before the first action in list.

This is how my action framework looks like:




Here is my first snippet looks like:

// Get references to our Models//Define Variables required

var $ = skuid.$;
var mainDFD = $.Deferred();
var models = skuid.model.map();
var bpModel = models.BillingProfile;

//Save Billing Profile

var saving = skuid.model.save([bpModel],{callback: function(result){
    if (result.totalsuccess){
        
        //alert('Billing Profile Id: ' + bpModel.getFirstRow().Id); // should be a real SF Id now
        //console.log('Billing Profile - ID ',bpModel.getFirstRow().Id);
        //$.unblockUI();
        //mainDFD.resolve();
    
    } 
    else {
        // There was a problem. Let's see what went wrong.
        
        alert('Billing Profile Save Error: \n' + result.insertResults[0]);
        console.log('Billing Profile - Save Error',result.insertResults[0]);
        
        //mainDFD.reject();
        //$.unblockUI();

        }
} //close-Clallback
    
});

///************* 
 saving.done(function(result){
    if(result.totalsuccess){
        
        console.log('Billing Profile - ID - From Saving.done',bpModel.getFirstRow().Id);
        //bpModel.doQuery = true;
        
        $.unblockUI();
        mainDFD.resolve();
    }
    else{
        mainDFD.reject();
        $.unblockUI();
    }
});
//*****************/



The main issue is without having this record id which is being saved by first snippet, the 3rd snippet is failing and always throwing an error.

How can we keep action framework wait until we finish this first action (first snippet) and go on when done.


 
Photo of KVin

KVin

  • 1,158 Points 1k badge 2x thumb

Posted 2 years ago

  • 1
Photo of mB Pat Vachon

mB Pat Vachon, Champion

  • 42,714 Points 20k badge 2x thumb
Do you know that the first snippet is working.

Also, looks like first snippet is missing "return dfd.promise();" as last line.

Lastly, why not use "Show Message and Block UI" error option on first snippet?
Photo of KVin

KVin

  • 1,158 Points 1k badge 2x thumb
Yah - My bad. I missed the - return dfd.promise();  at the end of snippet.

That resolves the issue.

Thanks Pat!