I'm building a model driven app which links a person record to multiple contact address records (1:N)
However there should only ever be one current address for each person, which is a Yes/No choice field on the Contact record
I tried using business rules to enforce this validation but it doesn't seem flexible enough to do this, is it possible to use Power Automate or something else to enforce this kind of validation?
It needs to include validation for both changes made from the form and via Excel import
Maybe I'm missing something obvious, any help is appreciated
Solved! Go to Solution.
In the end I had to use Power Automate for this app and had a flow which triggered on setting the Current Address flag to Yes, it sets Current Address to No for all other address records for that person if they have more than one address
hi @Spikyface what does your data looks like? you have a person record which have a current address - i assume that these do not allow duplicate current addresses. Are you then try to see from the other datasources whether mor e than one address exists for a person?
Hi @rubin_boer
It's even simpler than that, I only want the user to be able to select a single address as current for a person
The person record has person id, title, forename, surname, membership cost
The contact record has a lookup to the person record Address Line 1, Address Line 2, Town, Zip code and a yes/no field for current address
At the moment, there's nothing stopping a user from creating 3 contact records which are related to the same person and marking the current address field as Yes for all of them (which makes no sense, how can a person have 3 current addresses?!)
hi @Spikyface ok lets see if i get you. i assume the lookup is done by person id. based on your last paragraph your problem is as such:
Button OnSelect
ClearCollect(_Person,{person_id:0 ,title: "Mr", forename: "Jack", surname:"Black", membership_cost: 50});
The user can then add contact, but the problem is they can add it more than once and the yes representing the current address. they can add many
on the contained will button a check is added to see if the user can add an enntry, iof theuser already have a current address they wont be allowed to add a record.
Set(_CanUpdate,If(CountRows(Filter(_Contact,And(person_id=0,CurrentAddress = "yes")))=0,true,false));
If(_CanUpdate, Collect(_Contact,{person_id: 0, AddressLine1:"Here" , AddressLine2: "There", Town: "Some Town", ZipCode: 5555, CurrentAddress: "yes"}));
I hope that help
@rubin_boer would that work even on a model driven app?
I've not used any validation like that so far, I thought that kind of functionality was limited to canvas apps
hi @Spikyface yes it will
Sorry @rubin_boer I've tried for a long time to wrap my head around where to put this code but I can't figure it out. I know it's example code and I need to take the idea and implement it appropriately in my app but I don't know where to put it or exactly what I'm looking at. Is it an event handler? Is it a custom script I need to reference? Or something else entirely?
Set(_CanUpdate,If(CountRows(Filter(_Contact,And(person_id=0,CurrentAddress = "yes")))=0,true,false));
If(_CanUpdate, Collect(_Contact,{person_id: 0, AddressLine1:"Here" , AddressLine2: "There", Town: "Some Town", ZipCode: 5555, CurrentAddress: "yes"}));
To give you an idea of my level of experience in this area, I'm not even sure which form library to use to add an event handler to a form or control, or how to work out which form library is appropriate (assuming it's even code for an event handler)
Also, if it's on a form or control, it won't prevent validate or prevent changes that are made using Excel import right?
The form I have looks like this if it's any help, for some reason the Current Address toggle looks a bit strange in the editor but it renders fine when the app is run
In the end I had to use Power Automate for this app and had a flow which triggered on setting the Current Address flag to Yes, it sets Current Address to No for all other address records for that person if they have more than one address
User | Count |
---|---|
257 | |
110 | |
97 | |
52 | |
39 |