Q:

how to change the actionsave to just be able to save the new record

I have entry screen to manage the confirmation data, when changing the data the data will be saved as a new record.
is there any other solution, sorry my English is bad, thanks.

A:

I updated my answer after re-reading your question.
I would override Persist. Copy the current record you want to copy, remove the updated record from the cache, then insert the new row (changing the keys as needed). See example...
public override void Persist()
{
    //Get your current row to copy from
    MyDAC rowCopy = PXCache<MyDAC>.CreateCopy(myGraph.MyView.Current)

    //If not saving the updated row you need to remove it from the cache
    MyView.Cache.Remove(MyView.Cache.Current);
    //  If removing more than one just do a foreach on MyView.Cache.Updated

    //Change the key fields as needed...
    rowCopy.SomeKey = someNewValue;
    //Change any other fields as needed...
    //Insert into the cache your new row
    rowCopy = myGraph.MyView.Insert(rowCopy);

    base.Persist();

    //Set copy row as current
    myGraph.MyView.Current = rowCopy;
}

