web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Save as draft in power...
Power Apps
Suggested Answer

Save as draft in powerapps form

(2) ShareShare
ReportReport
Posted on by 96
I have a powerapps new form. I need to implement save as draft functionality which should bypass required fields and allow to save. 
 
In below form, ChoiceFinanceType and ChoiceFinancePo is required field. If i click on Save Draft button, it should allow me to save even though the required fields are blank. 
 
May i know how to achieve this using SubmitForm function? I dont want to use Patch as there are lot of fields in the form. 
 
I have the same question (0)
  • Haque Profile Picture
    2,543 on at
     

    You won’t be able to make SubmitForm() bypass required fields directly—that function always respects the form and data source validation rules. So if a field is marked Required (either in the data source or the card), SubmitForm() will block submission.

    What alternative approach we have is manually handle the status and mainpuate requried fields on demand basis, let's breakdown on approach in three steps:
     
    Approach-1:
    1. Step 1 → decides the mode - we will control the mode (Draft vs Submit)
    2. Step 2 → changes validation behavior - let's make required fields dynamic ( so that we can make it optionsal on demand)
    3. Step 3 → updates the saved record accordingly - Set Status after save (Optional but important)
    Step 1: Explained: We will define a variable (let's say varIsDraft) that tells the form what kind of save is happening.
     
    Save Draft  (button event) Submit (button event)
    Set(varIsDraft, true);
    SubmitForm(Form1);
    Set(varIsDraft, false);
    SubmitForm(Form1);
    Note: This is the switch that drives everything.
     
     
    Step-2: Explanend: We will mke required fields dynamic - meaning, instead of hardcoding fields as required, let's tie them to the variable. For example, in your DataCard Required property:
     
    !varIsDraft

    Note: What will this toggle here:

    • When varIsDraft = true → NOT required → allows draft save
    • When varIsDraft = false → required → enforces validation
    Step-3: Explanend:  Set Status after save, this step ensures data reflects whether it's a draft or final submission.
     

    In Form OnSuccess

    If(
       varIsDraft,
       Patch(DataSource, LastSubmit, {Status: "Draft"}),
       Patch(DataSource, LastSubmit, {Status: "Submitted"})
    )
     
    Please note that LastSubmit is a property of the form control (e.g., Form1.LastSubmit). It represents the last successfully submitted record from that form.
     
    Approach-2: Though you are not interested to have patch - what's wrong if the solution is behind you? We will use Patch() for Draft, SubmitForm() for Final. This is the most common enterprise pattern when:
    • Backend fields are required
    • We need more control over draft behavior

    Step-1: We will use save draft → use Patch()

    Set(varIsDraft, true);
    
    Patch(
        DataSource,
        Defaults(DataSource),
        {
            Title: DataCardValue_Title.Text,
            ChoiceFinanceType: Blank(),
            ChoiceFinancePo: Blank(),
            Status: "Draft"
        }
    );
    What this code chunk does:
    • Ignores required UI validation
    • Bypasses form constraints
    • Saves partial data
     
    Step-2: We will use submit the form using SubmitForm()
    Set(varIsDraft, false);
    SubmitForm(Form1);
     
  • Suggested answer
    11manish Profile Picture
    2,126 on at
    You cannot bypass required fields in SubmitForm() directly.

    The correct approach is to dynamically control the Required property using a variable (e.g., varIsDraft) so that fields are not required during draft save and

    required during final  submission.
  • Suggested answer
    oyepanky Profile Picture
    527 on at

    Hi Bro,

    SubmitForm()
    can’t bypass required fields directly. Use a variable to control validation.
     

    Save Draft Button

    Set(varIsDraft, true); SubmitForm(Form1);


    Submit Button

    Set(varIsDraft, false); SubmitForm(Form1);
    


    Required Property (DataCards)

    If(varIsDraft, false, true)
     

    ✔ Draft → skips required validation
    ✔ Submit → enforces required fields
    ✔ No Patch needed 



    Best Regards,
    Pankaj Jangid (OyePanky)
    Power Platform Developer
    Website: https://dialforit.com
    YouTube: https://www.youtube.com/@Oyepanky

     
  • Vish WR Profile Picture
    2,292 on at
     

    If a SharePoint column is marked Required, Power Apps can’t bypass it even in Draft mode. SubmitForm() will fail because SharePoint enforces it on the server side.

    Options you have:

    * Best option: Make the SharePoint field not required and control validation in Power Apps using a Draft/Submitted status as mentioned by @Haque

    * Workaround (not ideal): Send placeholder values for draft (like “TBD”), but this can pollute data.

    Vishnu WR
     
    Please  Does this answer your question if my post helped you solve your issue. This will help others find it more readily. It also closes the item. If the content was useful in other ways, please consider answering Yes to Was this reply helpful? or give it a Like 

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Apps

#1
Vish WR Profile Picture

Vish WR 936

#2
11manish Profile Picture

11manish 628

#3
Valantis Profile Picture

Valantis 604

Last 30 days Overall leaderboard