Skip to main content
Nintex Community Menu Bar
Question

Conditional Popup/Warning after save

  • July 10, 2024
  • 13 replies
  • 44 views

Forum|alt.badge.img+13

HI,

I’m trying to accomplish the following, and not sure it’s possible with Skuid.

After saving a record I would like for a way to  show a popup/warning if certain conditions are met or not met

Example of my main use:

I have a formula field to validate certain numbers entered. If that formula result does not match a value entered in X field, I want to be able to show that warning/popup

The reason i cannot use SF validations, is that in certain cases, it will not match, but I still want to be able to show the Warning, so they can double check the #s entered.

The problem i’m experiencing is that the condition has to be after Save is executed, as formula field would only calculate after save.

This is the reason i cannot use a custom “save button” with multiple actions and conditional rendering.

Basically the order of actions would be
-Save
-Check 1 or more conditions
-If condition(s) met, to show the popup/warning

if anyone could help me out, i will appreciate it

If need more details do not hesitate to ask

Thank you

This topic has been closed for replies.

13 replies

Forum|alt.badge.img+18

Dave,

This will take a little javascript, but you can do it!

create a javascript snippet in your action framework that looks something like this:

// get your model and row<br>var model = skuid.$M('MyModel'),<br>row = model.getFirstRow();<br>//set your shortcuts and initial variables.<br>returnVal = true;<br>$ = skuid.$;<br>//get the values of the formula fields you're interested in:<br>var value1 = model.getFieldValue(row, 'MyFormulaField1__c'),<br>value2 = model.getFieldValue(row, 'MyFormulaField2__c');<br>//Create your conditional statements<br>if (value1 == 'Some value which should case the popup' || value2 == 'Some other value which should cause the popup') {<br>returnVal = false;<br>}<br>return returnVal;


Your action framework should include this snippet after save, and include the warning popup as an ‘on-error’ action.


Forum|alt.badge.img+18

As an alternative to all of that, you could just build your formula fields as ui-only formula fields in skuid, and then you could do the validation immediately, before save.


Forum|alt.badge.img+13
  • Author
  • Scholar
  • July 10, 2024

Matt,

I tried the UI Only approach quickly but did not seem to work for me but will try again .

But ty very much for javaScript, I’m sure that will be extremely useful if i cannot do it with UI fields (specially that i have no JS knowledge ) 🙂

Thx!



Forum|alt.badge.img+13
  • Author
  • Scholar
  • July 10, 2024

Matt,

I just tried the JS you provided and it was a breeze, thx to Script provided. And ty for comments added, it will allow me to modify this script for different uses 🙂

Now do you know by any chance, how can i get my custom Save button to behave same as the standard Skuid Save Button (greyed out until some field has been changed)?

I see an old post from yrs ago but could not find anything recent
https://community.skuid.com/t/how-do-i-en-dis-able-a-custom-save-button

Thx again






Forum|alt.badge.img+18

Dave,

Try “enable conditions” under rendering when you click on your button in the builder. Se the condition to enable when the model has unsaved changes (model properties).


Forum|alt.badge.img+13
  • Author
  • Scholar
  • July 10, 2024

Oh that’s what the enable condition is used for 🙂 now I know thx

If i can bother you 1 more time, I have a little issue with the JS:



This  JS code works perfectly

 

// get your model and row

var model = skuid.$M(‘BankStatement’),

row = model.getFirstRow();

//set your shortcuts and initial variables.

returnVal = true;

$ = skuid.$;

//get the values of the formula fields you’re interested in:

var value1 = model.getFieldValue(row, ‘Ending_Balance_Calculated__c’),

value2 = model.getFieldValue(row, ‘Ending_Balance__c’);

//Create your conditional statements

if (value1 != value2)  {

returnVal = false;

}

return returnVal;

 

 

But when i try to add a 2nd condition(value 3), it does not work anymore

 

 

// get your model and row

var model = skuid.$M(‘BankStatement’),

row = model.getFirstRow();

//set your shortcuts and initial variables.

returnVal = true;

$ = skuid.$;

//get the values of the formula fields you’re interested in:

var value1 = model.getFieldValue(row, ‘Ending_Balance_Calculated__c’),

value2 = model.getFieldValue(row, ‘Ending_Balance__c’),

Value3 = model.getFieldValue(row, ‘Warning_Acknowledged__c’);

//Create your conditional statements

if (value1 != value2 && value3 === ’ ')  {

returnVal = false;

}

return returnVal;

 

 The field ‘Warning_Acknowledged__c’ is a data/time type of field.


I tried making into a checkbox, and same issue


As it’s probably a syntax error: I tried all those below, but still not working


if (value1 != value2 && value3 === ’ ') 

if (value1 != value2 && value3 === ‘Null’) 

if (value1 != value2 && value3 === Null) 

if (value1 != value2 && !value3 ) 

if (value1 != value2 && !Date.parse(value3) ) 



Any idea what I’m doing wrong?









Forum|alt.badge.img+18

Could just be a typo. You’re setting the var as ‘Value3’ and the evaluating ‘value3’.

I think value3 === null and value3 === ‘’ should both work.


Forum|alt.badge.img+13
  • Author
  • Scholar
  • July 10, 2024

Hi Matt , thx, but unfortunately  that did not change anything. I’m still experiencing the same issue.

am I suppose to use model.getFieldValue(row, ‘Warning_Acknowledged__c’); for a Date/time type of field?

If you cannot help me figure it out, do you advise me to create a separate post for it?

Kind of new, so not sure doing this is a recommended practice.


Thank you again



Forum|alt.badge.img+18

Dave,

What exactly is the issue that you’re experiencing?

.getFieldValue() is always the way to get the field value. Check out the skuid api documentation if you haven’t yet.


Forum|alt.badge.img+13
  • Author
  • Scholar
  • July 10, 2024

Matt,

I Actually did check it out and saw something for .getfield(field) and even tried that, but to no avail, so wondered if i missed something.

The issue I’m experiencing is that it saves the record and does not show popup even though conditions are met (value1 and value2 are not equal & value3 is null)

When i try with only Value1 != Value2 it works fine and i get popup as expected

For same record I no longer get the popup once i add the condition value3 is null.

Thx


Forum|alt.badge.img+18

have you tried (value1 !== value2 && !value3) ?


Forum|alt.badge.img+13
  • Author
  • Scholar
  • July 10, 2024

Yes , just and same result, popup not triggering :(


For testing purposes, I just removed first condition and first 2 values and only tried the value3 condition and it worked....

So I left it as condition, and added the other ones after and it worked.

No idea why, but it works lol :)

// get your model and row
var model = skuid.$M('BankStatement'),
row = model.getFirstRow();
//set your shortcuts and initial variables.
returnVal = true;
$ = skuid.$;
//get the values of the formula fields you're interested in:
var value1 = model.getFieldValue(row, 'Warning_Acknowledged__c');
value2 = model.getFieldValue(row, 'Ending_Balance_Calculated__c');
value3 = model.getFieldValue(row, 'Ending_Balance__c');
//Create your conditional statements
if (value1 === null && value2 != value3)  {
returnVal = false;
}
return returnVal;

Thank you for all your help and if you do understand the reason reverse works, I'm curious to know :)



Forum|alt.badge.img+13
  • Author
  • Scholar
  • July 10, 2024

I would like to correct my previous post.

The issue was not the order, I must have refreshed too fast...

I finally found it I have to bracket the second condition:      && (value2 != value3 ) )




// get your model and row
var model = skuid.$M('BankStatement'),
row = model.getFirstRow();
//set your shortcuts and initial variables.
returnVal = true;
$ = skuid.$;
//get the values of the formula fields you're interested in:
var value1 = model.getFieldValue(row, 'Warning_Acknowledged__c'),
value2 = model.getFieldValue(row, 'Ending_Balance_Calculated__c'),
value3 = model.getFieldValue(row, 'Ending_Balance__c');
//Create your conditional statements
if (value1 === null && (value2 != value3))  {
returnVal = false;
}
return returnVal;