How to replace a model-driven form with a custom page 🚀

Sdílet
Vložit
  • čas přidán 9. 07. 2024
  • I partnered with Microsoft Canada on this video to show you how to replace a model-driven form with a custom page. There is a fantastic roadmap for custom pages in model-driven apps and in this video, I will show how you can use them instead of a standard model-driven form in combination with the creator kit.
    Join Scott on the Microsoft Canada Developer Digital Meetup Tour: 👉aka.ms/scottpp
    ✨Using the creator kit to create a custom page that looks similar to a model-driven form.
    ✨Using the Ribbon Workbench to replace the out-of-the-box grid behaviour.
    ✨Using the Ribbon Workbench to replace the add new button behaviour.
    ✨Creating JavaScript to open a custom page.
    ✨Reading the record id parameters from inside a custom page.
    Links:
    🔗Using containers inside custom pages - learn.microsoft.com/en-us/pow...
    🔗Override default open behaviour - learn.microsoft.com/en-us/pow...
    🔗Creator Kit - aka.ms/creatorkit
    🔗Creator Kit Playlist - • Creator Kit
    🔗Free course on building JavaScript webresources using TypeScript - learn.develop1.net/courses/bu...
    🔗Information about the Ribbon Workbench - ribbonworkbench.uservoice.com/
    Contents:
    00:00 Introduction
    00:23 Classic vs Modern Commanding
    00:57 Demonstration of custom pages instead of model-driven forms
    01:52 Overview of custom pages with the creator kit
    03:59 Adding Custom Page to Model Driven Form
    04:47 Opening the Ribbon Workbench and customizing Mscrm.OpenRecordItem
    09:28 Using VSCode to build the JavaScript
    15:09 Replacing the Add New Button behaviour
    16:56 OnVisible event using Param function to retrieve record id
    20:49 Join Scott on the Microsoft Developer Digital Meetup Tour!
    Huge thank you to Microsoft Canada for sponsoring and collaborating on this video!
    #powerplatform #powerapps #sponsored
  • Jak na to + styl

Komentáře • 39

  • @R2Power
    @R2Power Před 4 měsíci

    Easy 47 step process to make that happen - great job Scott!
    Like you said, hopefully they will make this a PowerFX One-Liner in the future, because the possibilities here are really really cool!

  • @jamsden
    @jamsden Před rokem +1

    Amazing video Scott! Any pointers on how to make clicking on the lookup go to the custom page? I’ve replaced the form and it works from the main grid but when the record is referenced in a lookup, it goes to the old form.

  • @TheMichelor
    @TheMichelor Před rokem

    Amazing work! Thanks for the detailed guidance and the additional resources provided. As “just” a low-code or citizen developer, it took quite some time to catch up. But it was quite possible with the provided information. “pro-code” sounds like a good wording. From my perspective, the differentiation between developing applications in a secured environment, like the power platform, and working with pro-code where you have to be very aware of what you are doing, is critical for the security of the company.

    • @ScottDurow
      @ScottDurow  Před rokem +1

      Thank you and thank you for watching ☺️ I am really glad you found it helpful. The Power Platform is awesome for governing who has access to what - if done right, it should always be a safe place to make! 🚀 Thank you again!

  • @hevenlee12327
    @hevenlee12327 Před rokem

    Thank you so much. Its really helpful. My question is i have custome page to create from related table subgrid, so how can i pass the parent lookup value in the custom page? When the subgrid didn't have value?

  • @reivaxmik9058
    @reivaxmik9058 Před 11 měsíci

    awesome video, Scott as always!. just want to clarify, can we use modern commanding to open custom pages? or we should still use the classic commanding/your ribbon workbench? thanks in advance!

  • @MattPiper-xj8gp
    @MattPiper-xj8gp Před 4 měsíci

    Hey @ScottDurow,
    Great video, and something I'm about to use in an upcoming project. The only question I have is what happens if the form I am replacing is for an Activity record? I can update the button for 'New' record in the Form and Grid command bars for the record, but does that also apply for creating an activity right out of the timeline? Or do I need to also update elsewhere?

  • @srinuv4118
    @srinuv4118 Před 11 měsíci

    Hi Scott,
    Thanks for the amazing video. I am trying to build a custom page with my own controls and structure. If you don’t mind, can you please share the vs code solution with the functions to open the new and existing records.
    Thanks

  • @ginowadakekalam
    @ginowadakekalam Před rokem +1

    Very useful video. Thank you.
    Is it possible to embed custom page in a tab inside the form? Like the older embedded canvas app

    • @ScottDurow
      @ScottDurow  Před rokem +1

      Thank you and thanks for watching! It’s only supported to use canvas apps embedded - but please vote up this idea to support it for custom pages 👍 ideas.powerapps.com/d365community/idea/f4881258-5a2c-47e8-ae65-a8062e7e5f91

    • @ginowadakekalam
      @ginowadakekalam Před rokem

      @@ScottDurow Upvoted!

  • @AshishGupta-wk4ts
    @AshishGupta-wk4ts Před rokem

    Amazing video ! I think it should be somewhere between "low code" & "pro code" ,as most of the things are already implemented but also Power FX is kind of another programming language (for me atleast)...

  • @MattPiper-xj8gp
    @MattPiper-xj8gp Před 3 měsíci

    I've loved using this and it really works well..but I think there is one gap that isn't covered here (not sure if it is possible). If the record that I have replaced the default form with a custom page is added as a column in a view for related records. Then clicking on the link in the view will still open the default form...
    For example, if my custom page is replacing the default Account form, then we can replace the experience for the New Account form / Open an Account from a subgrid of Accounts with this method. But if we have a view of Contacts, that contains the 'Company name' field (lookup to Account), then from within the Contacts view, clicking on the name of the Account record will still open the default form.
    Is there a way to solve this - or is it a gap that we can't cater for?

  • @maksymkyian4920
    @maksymkyian4920 Před rokem

    Cool video. FYI pure Javascript supports async await (the same way/syntax as a Typescript) for several years already

    • @ScottDurow
      @ScottDurow  Před rokem

      Hi! Thanks for watching! ☺️Thanks for pointing that out about ES6 and async. I love that TypeScript allows use of the richer language features of the more recent versions of JavaScript.

  • @juansepowerplatform
    @juansepowerplatform Před rokem

    Thank you for this. Although I consider myself to be an advanced low code developer, the above seems like a huge mountain to climb to get this functionality to work. Would you consider creating a video showing the plain Java script function, without type script to get this to work?

    • @ScottDurow
      @ScottDurow  Před rokem +1

      Hi Juan - thanks for watching and subscribing 😊That's a great idea - perhaps this video from Matt might help? czcams.com/video/q1-wciv9jOA/video.html

    • @juansepowerplatform
      @juansepowerplatform Před rokem

      @@ScottDurow thanks, I am ok with embedding the custom page into a model driven app and opening the custom page as a side dialog or pop up. It is the code to make it pop up as the default form that's puzzling to me. Maybe MS will make this easier to do in the future. Replace the standard form with a custom page form :)

  • @jenniferz4228
    @jenniferz4228 Před rokem

    Thank you for this video! I have used it for a couple projects already. This time, I need to go a bit further and pull in the Id of the subgrid parent record as a secondary parameter in the page. Can you point me in the right direction?

    • @ScottDurow
      @ScottDurow  Před rokem +1

      Hi Jennifer -glad that you found it helpful ☺️ once you have the record Id in the page - could you query inside the custom page to get the parent record via the lookup column rather than passing it as a parameter?

    • @jenniferz4228
      @jenniferz4228 Před rokem

      @Scott Durow Since the record has not been saved yet on the 'new from subgrid' path, I was not sure if it would auto relate to the parent like it does with the standard form. In any case, for this project, I went ahead and added another function to create the subrecord with the parent link and some basic info and then forwarded the user on to the custom page to continue editing. Thanks again!

  • @TheMichelor
    @TheMichelor Před rokem

    One additional question: Working with your incredible drag and drop solution, I wonder if the other way round is also possible. Can the model-driven-form be called from the canvas app?
    The use case is simple: The progress of a prospect is managed with the drag and drop solution. For a detailed view of the prospect, the model-driven-form would be the ideal option, as it provides the full dataset. For any hints on how to achieve this, I would be deeply grateful.

    • @ScottDurow
      @ScottDurow  Před rokem +1

      That’s an excellent question and I would love to have model driven forms embeddable in a custom page - it would make those edit panes much easier! Let’s hope that this is in the roadmap!

    • @TheMichelor
      @TheMichelor Před rokem

      @@ScottDurow Thanks for the clarification. Pressing thumps that this will come!

  • @dannyrodriguesalves8289

    Nice use of custom page!
    The only thing missing for custom pages is an integration within a model-driven form as soon as the onLoad.

    • @ScottDurow
      @ScottDurow  Před rokem

      Thank you 😊 Do you mean embedding a model driven form in a custom page or the other way around? Thank you again for watching!

    • @dannyrodriguesalves8289
      @dannyrodriguesalves8289 Před rokem

      @@ScottDurow Embedding a custom page in a model driven, a bit similar to what we can do with Canvas App, but with a better native integration. As far as I know, not possible for the moment

    • @ScottDurow
      @ScottDurow  Před rokem +2

      @@dannyrodriguesalves8289 Ah yes - it would awesome! I created an idea a while back - please vote up everyone!! 🙏🙏ideas.powerapps.com/d365community/idea/f4881258-5a2c-47e8-ae65-a8062e7e5f91

  • @saurabhtalele1537
    @saurabhtalele1537 Před rokem

    🎉🎉🎉🎉

  • @MV-us8lw
    @MV-us8lw Před rokem

    Shall we just use High Code as the opposite of Low Code?

    • @ScottDurow
      @ScottDurow  Před rokem

      Like Hi-Fi and Low-Fi ☺️ Thank you for watching!

  • @bjornz569
    @bjornz569 Před rokem

    #ProCodeNoCodeUnite
    amazing video, thanks a lot! :)

    • @ScottDurow
      @ScottDurow  Před rokem

      Thank you so much 🤩 #ProCodeNoCodeUnite 💪

  • @shomari169
    @shomari169 Před rokem

    where can i find the free course please

    • @ScottDurow
      @ScottDurow  Před rokem +1

      Thanks for watching! 😊The link to the course is in the video description 👍

  • @m-cos
    @m-cos Před rokem

    Pro code sounds like a good counter to low code. Anybody should be able to start with low/no code stuff and either eventually work their way up to Pro code, or hire a professional as needed.

    • @ScottDurow
      @ScottDurow  Před rokem +1

      Thanks for watching Mark 😊I love it when I see pro-coders using more low-code and also the opposite. Thank you for sharing🤩

  • @YelenaSgt44
    @YelenaSgt44 Před rokem

    don't show my junior developers this 😮