Just a question regarding the exact location and order that variable data is saved in. I have noticed that saving a variable in a child interface that was passed into it as a rule input also changes the related local variable in the parent interface, which is normal functionality that is explained in several tutorials. However I also noticed that saving a set of identical SAIL code into a local variable and then changing another local variable results in no change. For example if a dropdown option like this were selected it immediately resets the variable, local!madeFromCDT, back to the default:local!madeFromCDT: cast( typeof(type!("arbitraryType"), {abitraryField: null}))),
local!sailInterfaceDropdown: a!sideBySideLayout( item: rule!nestedDropdownfield( choiceLabels: local!listOfYesNo choiceValues: local!listOfYesNo value: index( local!madeFromCDT, "arbitraryField" saveInto: a!save( local!madeFromCDT, updatedictionary( dictionary: local!madeFromCDT, fieldsAndValues: {arbitraryField: save!value} ) ) ))However, using a expression rule does permanently change the local variable, local!madeFromCDT:local!madeFromCDT: cast( typeof(type!("arbitraryType"), {abitraryField: null}))),rule!sameSAILDropDownButInExpressionRule( madeFromCDT: local!madeFromCDT)
Discussion posts and replies are publicly visible
Sorry, but I do not understand what you are doing here. Please help me.
Why do you store a UI component into a local?
Instead of updatedictionary(), I suggest to use a!update().
Oh, I'm just trying to figure out more about the variable storage process (what order variables are stored and initialized etc). I couldn't find that info in the documentation, but it exists for other functionalities. But yeah, I realize that storing a UI component in a rule expression is best, but I wasn't sure why storing the UI component into a local wouldn't work too. I'll use a!update() for the other part though.
Some references:
https://appian.rocks/2022/07/05/data-in-interfaces/
https://docs.appian.com/suite/help/24.4/SAIL_Performance.html
Thank you!