cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
tagustin2020
Impactful Individual
Impactful Individual

Copy a Record

@RandyHayes 

 

Hello Randy,

 

I'm trying to get the OnSelect formula for my copy icon right, but am failing thus far. I've tried several variations of a Patch formula without success. I was wondering if you could help me nail it down. I'm including the working formulas for my Gallery Edit icon and Truck icon OnSelect formulas for reference.

 

CopyErrorSS.png

 

Edit Icon:

Set(varRecord, LookUp('Domestic Shipping Requests', ID = ThisItem.ID));Navigate('Edit Screen', ScreenTransition.None)

Truck Icon:

Set(varRecord, LookUp('Domestic Shipping Requests', ID = ThisItem.ID));Navigate('Logistics Screen',ScreenTransition.None)

 

Failed Copy Icon OnSelect Formula:

Set(varRecord, LookUp('Domestic Shipping Requests', ID = ThisItem.ID, Patch(ThisItem,{ID:Blank})));Navigate('Requestor Screen',ScreenTransition.None)

 

The error messages are:

 

  1. The function 'LookUp' has some invalid arguments.
  2. Incompatible type. We can't evaluate your formula because the context variable types are incompatible with the types of values in other places in your ap.
  3. The function 'Patch' has some invalid arguments. 

 

Thanks in advance for your help - Teresa

1 ACCEPTED SOLUTION

Accepted Solutions
RandyHayes
Super User
Super User

@tagustin2020 

Go with this one:

Set(varRecord, 
    Patch(LookUp('Domestic Shipping Requests', ID = ThisItem.ID), {ID:Blank})
);
Navigate('Requestor Screen',ScreenTransition.None)

 

Should do the trick!

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

View solution in original post

7 REPLIES 7
RandyHayes
Super User
Super User

@tagustin2020 

Go with this one:

Set(varRecord, 
    Patch(LookUp('Domestic Shipping Requests', ID = ThisItem.ID), {ID:Blank})
);
Navigate('Requestor Screen',ScreenTransition.None)

 

Should do the trick!

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

@RandyHayes 

 

Hi Randy,

 

Thank you for the reply. Unfortunately I am still getting error messages:

 

  1. Invalid argument type (Record). Expecting a Table value instead.
  2. Incompatible type. We can't evaluate your formula because the context variable types are incompatible with the types of values in other places in your app.
  3. The function 'Patch' has some invalid arguments.

 

Do you think this is happening because I have a split screen app? I notice that when the copy formula is on the Copy icon OnSelect, the New Request button and Edit button stop working in the sense that when I click them, I am taken to the correct screen, but both read "no item to display". The other thing I should mention is that I only want to make a copy of the form, not the contents of the previous shipment that are added via a Collection, not a form. Sorry to make it so complicated, but I figure these are all important things for you to know if you are going to help me troubleshoot.

 

Thanks!

Teresa

RandyHayes
Super User
Super User

@tagustin2020 

Always check for those little typos 😁

Set(varRecord, 
    Patch(LookUp('Domestic Shipping Requests', ID = ThisItem.ID), {ID:Blank()})
);
Navigate('Requestor Screen',ScreenTransition.None)

I believe I had copied and pasted from your original formula and forgot to correct.

 

 

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

@RandyHayes 

 

Hi Randy,

 

Thank you so much Randy. This formula is working great to make a copy. The Shipping Crew is going to be so excited to see this working! I have a couple questions from the UX perspective. When the user clicks the Copy icon they are taken to this Requestor screen. Other than the Requestor Phone Number being already filled in there isn't a lot to give them a visual confirmation that they have successfully made a copy of an existing record. Is there a formula I can put in the Visible property to display a copy label on this first screen? The Recipient screen is much more obvious because all of the Ship To form fields are filled in. Second, I noticed that the copy does not retain what was selected in the Cost Center and Project Number dropdowns even though the Project Number preference was retained (Yes is not the default). How can I get the Cost Center and Project Number to stick as well? The Department and Project Name fields autofill based on what is selected in the Cost Center dropdowns so I will eventually make those view only. Lastly, if I flip flop Department and Cost Center, can I have the Department dropdown default to the user's Department using the Office365 Users connector? The Departments and Cost Centers come from a separate SharePoint list. Thank you again! Teresa

CopyLabelSS.png

RandyHayes
Super User
Super User

@tagustin2020 

So, if there is some data that would always have a value (i.e. a required field), then you can have a label show based on looking at that and the required field value.  For example, a label that display "Copy" and has a Visible property of IsBlank(varRecord.ID) && !IsBlank(varRecord.someRequiredField)  This would then imply that if the ID is empty and some other field is not empty, then it must be a copy.

 

As for the other values...they should already be in your record.  If they are not displaying in the form, then there is something wrong with the Default properties of those datacards and/or controls.

 

As for the department part, yes, you can get the Department from the O365 connector.  As long as it is there and it will compare to a department value in your list, then it will be matched and shown.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
NOTE: My normal response times will be Mon to Fri from 1 PM to 10 PM UTC (and lots of other times too!)
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

@RandyHayes 

 

Hi Randy,

 

I was able to get the COPY label working using your advice from above. Both the Default and DefaultSelectedItems properties of my comboboxes are empty which would explain why the info isn't being retained. In the TDC App we entered the following formula into the DefaultSelectedItems property of the combobox for the form that was on the Edit screen.

 

First(AddColumns(Table(LookUp('Project List','Project Number'=Parent.Default)),"NumberandName",'Project Number' & " - " & 'Project Name'))

 

As you might recall, the New Form was on a different screen and was it's own entity. The DefaultMode was always New while the DefaultMode of the form on the Edit Screen was View and users had the option to edit the form. We didn't have anything entered into either the Default or DefaultSelectedItems on the New Request screen. I'm not sure how to write the formula for New versus Copy using the same form control.

 

To recap...

 

The OnSelect for my NEW REQUEST button is:

Set(varRecord, Defaults('Domestic Shipping Requests'));ResetForm(frmMaster);Navigate('Requestor Screen',ScreenTransition.None);

 

The Onselect for my COPY REQUEST icon is:

Set(varRecord, 
    Patch(LookUp('Domestic Shipping Requests', ID = ThisItem.ID), {ID:Blank()})
);
Navigate('Requestor Screen',ScreenTransition.None)

 

The Item property for both is varRecord, same form. The DefaultMode for both is frmMaster.Mode. The DefaultMode for frmMaster is FormMode.Edit.

 

Thank you Randy!

Teresa

@RandyHayes 

 

Hi Randy,

 

Thank you so much for helping me to get the Copy functionality going. I'm sure I will use it in many more request type apps to come. Such a fantastic time saver!

 

Kind regards,

Teresa

Helpful resources

Announcements
Power Apps News & Annoucements carousel

Power Apps News & Announcements

Keep up to date with current events and community announcements in the Power Apps community.

Community Call Conversations

Introducing the Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Apps Community Blog Carousel

Power Apps Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Top Kudoed Authors
Users online (1,743)