cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Applicable88
Helper II
Helper II

When going into edit form then delete the record that is in datacardvalue1

Hello,

I've entcountered the problem that I don't want to let users submit duplicate ID's of a record.

It works for new form, but not for edit form. Because when I open an item in the customized sharepoint form, and save it without 

even changing the records, the duplicate search via lookup function already regard this very entry as the duplicate. Even though I just open it for changing other records. On the other hand if I remove the duplicate search for the edit mode, then everybody can open a item a place a duplicate in the edit mode. That would be a huge loophole.

 

So I just thought of one solution: When I open an entry in edit mode, the OnEdit has to delete that ID, if I save it with the same ID everythin will be fine because the ID is deleted. In case I change to another ID it still will proceed to search for a duplicate:

 

I tried with many variations of Remove() but it didn't work out. Someone has an idea?

if ( Form.Mode= Edit.form...., then delete the ID from the record you just opened...

Thank you very much in advance. 

Best. 

 

1 ACCEPTED SOLUTION

Accepted Solutions

@Applicable88 ,

You simply need to change the LookUp to refer to Product, not ProductID and make sure it does not match the input field for that.

If(
   IsBlank(
      LookUp(
         ProductsTable; 
         Product=YourProductInput.Text
      )
   ) && SharePointForm1.Mode = FormMode.Edit;
   SubmitForm(SharePointForm1);
   Notify(
      "Duplicate Entry on Product " & YourProductInput.Text);
      Error
   )
)

 

Please click Accept as solution 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 giving it Thumbs Up.

Visit my blog Practical Power Apps

View solution in original post

11 REPLIES 11
Applicable88
Helper II
Helper II

Hi, @WarrenBelz maybe you know a solution? Why a duplicate search lik :

 if (isblank(lookup(table, ID=DataCardValue1.Text) ; SubmitFrom(Sharepoint1); Notify ......Error)

will regard the ID in the edit customized sharepoint form as a duplicate? I cannot submit because the 

form regard the ID like a duplicate, even though I didn't change anything, I just click "edit" and right after without changing any records "save". 

 

 

I tried to add a Remove( ) commad in the OnEdit action, so that I can resave that entry again,  but nothing happens or I just jump right no the next item and then the item is lost, which isn't what I want. 

 

Best regards. 

 

 

HI @Applicable88 ,

If you are using SharePoint here, the ID is a unique number and is not re-used if deleted, so your test will always fail. If you are entering an ID in that text control and checking for its existence, then

 

If(
   IsBlank(
      Lookup(
         Table;
         ID = Value(DataCardValue1.Text)
      )
   ); 
   SubmitFrom(Sharepoint1); 
   Notify ......Error
)

 

Please click Accept as solution 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 giving it Thumbs Up.

Visit my blog Practical Power Apps

@WarrenBelz thanks for the clarification. It was very  unfortunate that I use the colum "ID" as an example since apparently it is a automatic created identifier. The colum I'm talking about is actually a self created ProductID colum. In that case edit and duplicate check shouldn't work in edit form? But since the record is already as an entry in the datasource when I want to edit it, duplicate check confuse it's own  entry in edit mode as an duplicate and doesn't let me save it once opened. Deactivating duplicate lookup would mean that everybody could manually write as many duplicates in edit mode they want which is not the purpose of that customizer form. Is there any solution to this?

Hi @Applicable88 ,

If you are using a created value ProductID column, then you can certainly use

If(
   IsBlank(
      Lookup(
         Table;
         ProductID = DataCardValue1.Text
      )
   ); 
   SubmitFrom(Sharepoint1); 
   Notify ......Error

Also in SharePoint, you can "Enforce Unique Values" but if you do, also ensure there must be input or you cannot have two blank values

WarrenBelz_0-1653549373419.png

 

Please click Accept as solution 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 giving it Thumbs Up.

Visit my blog Practical Power Apps

@WarrenBelz thank you very much for reminding that "enforce unique values" unfortunately in Sharepoint when using item-level permission you cannot force unique values in column. I do that so in my case user permission group can see everything and another only their own item inputs, so in case they can update their entries, if needed.

 

Yes as already in use I'm using that in OnNew when making new items :

If(
   IsBlank(
      Lookup(
         Table;
         ProductID = DataCardValue1.Text
      )
   ); 
   SubmitFrom(Sharepoint1); 
   Notify ......Error

 

But as I stated doing the same in OnEdit, it regards that entry which I selected for "Edit" in sharepoint as the duplicate value itself.

 

I'm doing the following:

In SharepointIntegration I'm setting global variables for OnNew and OnEdit

NewForm(SharePointForm1);; Set(Name;"NEW")

EditForm(SharePointForm1);;Set(Name;"EDIT")

 

In OnSave I have to deactivate the duplicate check for OnEdit otherwise I cannot save the entry after open it for editing:

If(IsBlank(LookUp(ProductsTable; ProductID=DataCardValue3.Text)) And Name="NEW" ;
SubmitForm(SharePointForm1);
If(!IsBlank(LookUp(ProductsTable; ProductID=DataCardValue3.Text)) And Name="EDIT" ;
SubmitForm(SharePointForm1);
Notify("ProductID is already on the list!";NotificationType.Error)));;

 

If I would reactivate duplicate check in Form Edit Mode (removing the exclamation sign), I woulnd't be able to save back the record and would get the duplicate Notifier:

 

If(IsBlank(LookUp(ProductsTable; ProductID=DataCardValue3.Text)) And Name="NEW" ;
SubmitForm(SharePointForm1);
If(IsBlank(LookUp(ProductsTable; ProductID=DataCardValue3.Text)) And Name="EDIT" ;
SubmitForm(SharePointForm1);
Notify("ProductID is already on the list!";NotificationType.Error)));;

 

Is there a way to still make duplication test in edit mode possible? 

 

The disadvantage with using "enforce uniqe values" is that I cannot use item - level permission. And second issue is that when I'm editing the ProductID in the form into a ProductID which is already on that SharePoint List it let me save the entry, but it automatically change the ProductID back to the number it was before open it for editing. There was no notification. 

Hi @Applicable88 ,

A couple of things - setting Variables with the built-in controls in integrated forms I have found to not have consistent controls. I tend to "keep it simple" if using integrated forms and reference SharePointIntegration.Selected whenever I need to refer to the current record or SharePointIntegration.SelectedListItemID for the ID of this. I also refer directly to the Form Modes

If(
   IsBlank(
      LookUp(
         ProductsTable; 
         ProductID=DataCardValue3.Text
      )
   ) && SharePointForm1.Mode = FormMode.Edit;
   SubmitForm(SharePointForm1);
   Notify(
      "Duplicate Entry on Product ID " & DataCardValue3.Text);
      Error
   )
)

You might see if this works for you.

 

Please click Accept as solution 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 giving it Thumbs Up.

Visit my blog Practical Power Apps

 

Hi @Applicable88 ,

A couple of things - setting Variables with the built-in controls in integrated forms I have found to not have consistent controls. I tend to "keep it simple" if using integrated forms and reference SharePointIntegration.Selected whenever I need to refer to the current record or SharePointIntegration.SelectedListItemID for the ID of this. I also refer directly to the Form Modes

If(
   IsBlank(
      LookUp(
         ProductsTable; 
         ProductID=DataCardValue3.Text
      )
   ) && SharePointForm1.Mode = FormMode.Edit;
   SubmitForm(SharePointForm1);
   Notify(
      "Duplicate Entry on Product ID " & DataCardValue3.Text);
      Error
   )
)

You might see if this works for you.

 

Please click Accept as solution 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 giving it Thumbs Up.

Visit my blog Practical Power Apps

 

@WarrenBelz thats a great tip to write shorter without extra global variables, thank you.

 

Unfortunately it doesn't solve the problem of the duplicate search in the FormMode.Edit. It's really a 

mess that the lookup search consider the item that I just open for edit as the duplicate  and not letting me save the item. I tried to extend the syntax saying it should remove that record and submit, but of course it instead will jump to the next item. It would be easier, if that very item which is in FormMode.Edit is temporarily out of the datasource, but that might come with other dangers like losing data.

Hi @Applicable88 ,

I must admit I am a little lost here exactly what you are trying to do. The code I gave checks for duplicates and will not save if the current record has another "twin" in the data source. What is it exactly you are trying to achieve ?

Helpful resources

Announcements
Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Power Platform Call June 2022 768x460.png

Power Platform Community Call

Join us for the next call on June 15, 2022 at 8am PDT.

PA Virtual Workshop Carousel 768x460.png

Register for a Free Workshop

This training provides practical hands-on experience in creating Power Apps solutions in a full-day of instructor-led App creation workshop.

PA.JPG

New Release Planning Portal (Preview)

Check out our new release planning portal, an interactive way to plan and prepare for upcoming features in Power Platform.

Top Solution Authors
Top Kudoed Authors
Users online (3,210)