Hi @Vishal2 :
Could you tell me:
Do you want to use canvas app to update the checklist?
Do you want the user ’s selection in the app to be saved so that you can do it again in a few hours?
Are the relevant fields in the checklist all Yes / No types?
I assume my above guess is correct.
Firstly,Let me explain my thoughts to you.
- About keeping the user's choice: After the app is closed, the variables will be cleared. Therefore, you must first save the user's choice in the data source.
- About submit the record:Because when the user made the first choice, the record was already submitted, so there is no need to submit a new record at the end. But the question is how to update the record accurately. My idea is to filter out the latest record created by the user based on the user's mail and record's latest creation time.
Secondly,I've made a test for your reference:
My data source:
checklist
Column (click to edit) Type
1\set the app's OnStart preperty to:
Set(useremail,User().Email)
2\Add 3 check box controls(Checkbox1/Checkbox1_1/Checkbox1_2)
Checkbox1
OnCheck:
If(IsBlank(LookUp(checklist,'Created By'.Email=useremail && checkfield1 && !(checkfield2) && !(checkfield3))),Patch(checklist,Defaults(checklist),{Title:Text(Now()),checkfield1:true}))/*If there is no record that the user has not edited, create a new record*/
OnUncheck
Remove(checklist,LookUp(Sort(checklist,Created,Descending),'Created By'.Email=useremail))/*If the user unchecks, delete the new record*/
Defult:
!(IsBlank(LookUp(checklist,'Created By'.Email=useremail && checkfield1 && !(checkfield3)))) /*Check if there are any unedited records*/
Checkbox1_1
OnCheck:
Patch(checklist,LookUp(Sort(checklist,Created,Descending),'Created By'.Email=useremail),{checkfield2:true})/*Find a record recently created by the user, update checkfield2*/
OnUncheck:
Patch(checklist,LookUp(Sort(checklist,Created,Descending),'Created By'.Email=useremail),{checkfield2:false})
Default:
!(IsBlank(LookUp(checklist,'Created By'.Email=useremail && checkfield1 && checkfield2 && !(checkfield3))))
Checkbox1_2
No adjustment.
3\Add a button(Submit)
OnSelect:
Patch(checklist,LookUp(Sort(checklist,Created,Descending),'Created By'.Email=User().Email),{checkfield1:Checkbox1.Value,checkfield2:Checkbox1_1.Value,checkfield3:Checkbox1_2.Value});Refresh(checklist);Reset(Checkbox1);Reset(Checkbox1_1);Reset(Checkbox1_2);
4\Add a label control
Text:
If(Checkbox1.Value,"you are editing the record created by "&User().FullName & " at " & LookUp(Sort(checklist,Created,Descending),'Created By'.Email=User().Email).Created)

Best Regards,
Bof