I have an interesting issue with saving an embedded canvas app that i need assistance with:
I've got an embedded canvas app within a model driven app. The embedded canvas app contains an edit form displaying fields from the parent record (and related records). I have modified some of the datacards on the edit form to replace boolean dropdowns with toggles instead. I used to following forum posts to help with that:
My issue is that when i save the form using submitForm, these toggles do not get saved 😟.
As a test, i copied the edit form into a standalone canvas app (and updated the data source) and the same toggle saves as expected!
Can anyone suggest what i need to do differently to get toggles working on an edit form within an embedded canvas app? Or if it is a bug
I have added a gif of the bug - I make changes to 2 yes/no fields (one toggle, one dropdown) and a text box and you can see that when i make the second change, the toggle changes back
I have also added screenshots of my toggle configuration.
I made a test on my side, but don't have the issue you mentioned.
Was the Sleep Risk field also changed to 'NO' when the toggle automatically toggled off ?
I can't find any issue with your codes of property. How do you define the Save button?
Could you please create a new embed app and try again?
Could you do me a favour and hit that save button twice? or after you hit save the first time, could you check that the changed value has committed to CDS?
The reason the field changed back to no automatically was because the save operation didn't actually update the field in CDS, so when the form was refreshed, the toggle switched back
My Save button just has a submitForm firing onselect.
The app i posted is actually a sample i created 🙂 The actual app is much larger.
I could try a different instance and see if that makes a difference.
ok so i tried a different tenant and I get the same outcome 😞 I have uploaded a video - https://imgur.com/a/DCfXuoL
However, I did learn that i was wrong about the assumption that the save operation does not get committed to the CDS. From the video, it looks like the save operation is completed, but the toggle still changes back when i modify a different field on the canvas app.
My best assumption now is that there is a property set incorrectly (or not being set) against the data card on the edit form? I have attached screenshots of my datacard and control data properties as well. My toggle control does not have any actions firing against on change,select,check etc - do i need to?
[UPDATE 19-02]: I thought the fix below would work, but i was mistaken. 😞 Still trying to find a solution to this
I tried a couple things to workaround the issue, although its not ideal!
- I updated the onselect property of my save button to refresh the data source, but this didn't do anything. i.e.
- I updated the onselect property of my save button to reset the form after the save. This has resolved my 'toggle flicking back issue', but the form still does a weird flick for a moment when the resetForm is triggered
I have attached a gif for reference. Any help would be appreciated!
Just a quick thought on a workaround for this (if other methods don't fix it):
Have you considered keeping the original dropdown, and then Hiding it? Then have the defaultSelected item for the dropdown based on the value of the toggle? Something like:
If(toggle1.Value, "Yes", "No")
Alternatively if we are looking for a fix to the situation rather than do a workaround, have you looked at what the Update value for the DataCard is, and is it trying to respond with the boolean value of the toggle?
Let me know if either of those help you,
Please 'Mark as Solution' if someone's post answered your question and always 'Thumbs Up' the posts you like or that helped you!
Sorry, been on a bit of a build hold last couple weeks. So I Spent most of yesterday attempting various fixes and sadly no success yet.
I thought i was close with your suggestion about hiding the default control, but no joy either.
Honestly, i'm not actually sure where the problem is:
- it could be the value of the the toggle that is not getting the value from the CDS data source
- it could be the save action that is not pushing data to CDS correctly
maybe something we can chat about over IM?