Thanks to Schwerzmann for his link but this were not answering my needs.
So I post my solution:
Scenario: I want to duplicate the form but not instantly publish it, just a fresh form with the same values.
The "Item" property of my form is a variable (varForm) which contains the record to show.
Form1.Item=varForm
On the duplicate button I set the variable varDupe to true, remove the ID from the varForm and start a new form.
BtnDuplicate.OnSelect=Set(varDupe,true);
NewForm(Form1);
Patch(varForm, {ID: Blank()})
Then, on each DataCard of the form, I set the Default as conditionnal, if varDupe then put the info to duplicate, else put the usual default value.
Title_DataCard1.Default=If(varDupe,varForm.Title,ThisItem.Title)
Now every fields is filled with the previous form values.
On submit form I remove the "true" from the variable varDupe.
BtnSubmit.OnSuccess=Set(varDupe,false);Set(varForm,Self.LastSubmit);Notify("Success",NotificationType.Success) Hope my explanation is clear enough.