Hello, I have built a custom page to compliment our Model App. This application launches from the Main form or from a project record within our model application.
The Architecture of the custom page (Canvas app) application requires the use of several screens and based upon a value on the Parent model app form (Project Record) a specific canvas page should load. From all the documentation I have read the integration seems to be passing the model app recordid of the current record over to the canvas app and this makes a lot of sense. Within your appstart once you have the record id you could in-turn perform a lookup of this record providing the values of the record resulting in additional logic such as if statements to determine the appropriate screen navigation.
Now if one were to switch over to the newer app.startscreen this seems to take on a different approach where if I can pass the parameter of the value that I would use for logic to drive the screen navigation we can achieve much quicker app loading times.
So what I am looking to do here is grab a value from the model app form, this form may not be saved yet, pass this value over to the custom page (Canvas App) which would allow for better use of the app.startscreen method for improved performance.
I was playing around with the javascript used for custom pages and it seems like you can hijack the record id however this is now the only value you are returning
recordId: Xrm.Page.data.entity.getId() - Default
recordId: Xrm.Page.getControl(parameter).getName() - Tested and works
My goal here is to continue returning the recordid however return an additional parameter from the form without having to perform a lookup on the record id from the canvas app as it's highly possible the model form is not yet saved.