Ga naar inhoud
  • 0

Contacts


TheKingofBooks

Vraag

Ik heb een database met "contacts" waarin de velden staan "First Name", "Last Name", "Address", "City", "Postal Code" en "Country".

Elke dag heb ik orders. De meeste orders zijn nieuwe klanten (Contacts), maar af en toe heb ik terugkerende kopers (contacts). Om nu te vermijden dat ik al een bestaande "contact" als "nieuw contact" toevoeg, doe ik bij veelvoorkomende achternamen een "find" en als deze geen resultaat geeft, dan voer ik die naam als "nieuw contact" in.

Ik zou echter graag gewoon willen dat als ik een naam toevoeg (First Name en Last Name) en deze al bestaat in "Contacts" dat Filemaker mij deze naam niet laat toevoegen en dat daarbij de nieuwe "ID" die gepaard gaat met het creëren van een nieuw "contact" ook dan niet gebruikt.

Iemand een idee hoe dit te doen?

Screenshot 2018-12-13 at 00.01.33.png

Link naar reactie

15 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Ik ken meerdere mensen met dezelfde naam. Alleen zoeken op voor- en achternaam zal een keer fout gaan. Je zult op zijn minst ook bv postcode mee moeten nemen in de zoekopdracht.

Ik zou gewoon blijven zoeken. De manier waarop je het nu doet zorgt ervoor dat de validatie plaatsvindt nadat je een nieuw record hebt aangemaakt en voor- en achternaam hebt ingevoerd. Als de persoon al in het bestand voorkomt moet dat record weer verwijderd worden? Ik weet niet of je auto-enters hebt voor klantnummer, maar dat zal dan ook gaten vertonen.

Even zoeken op postcode en kijken wat de resultaten zijn is de meest handige optie lijkt mij.

Link naar reactie
  • 0

Waterdichte controle is sowieso niet haalbaar: elke typefout zal worden beloond met een nieuwe unieke registratie. Als je deze functionaliteit serieus wilt vormgeven moet je denken aan soort validatiescript dat een mogelijk duplicaat detecteert en presenteert. Met de optie om deze te negeren.

aangepast door Marsau
Link naar reactie
  • 0

Ik heb ooit een dergelijk iets gemaakt.

In een dialoog voert de user voornaam en achternaam in. Daarnaar wordt in de database gezocht.

Wanneer deze naam bestaat, dan wordt dat getoond en de user kan kiezen tussen deze klant te gebruiken, of een nieuwe aan te maken. Het zou immers kunnen dat twee klanten dezelfde naam hebben (laten we zeggen Jan Janssen). Buttons: 'deze klant', 'nieuw' en 'annuleer'.

Wanneer de naam nog niet bestaat, dan komt daarover een melding met de buttons 'nieuw' en 'annuleer'. Niet automatisch aanmaken, er kan immers een typfout zijn.

Wanneer Jan Janssen wordt ingevoerd, dan verschijnen de twee (of meer) Jan Janssens en de user kan kiezen tussen de twee (of weer 'nieuw' of 'annuleer').

I.v.m. met die gelijkluidende namen is het inderdaad handig om meer gegevens te tonen, bijv. adres en/of postcode.

Link naar reactie
  • 0

Zie mijn opmerking: hoe exacter je het maakt, des te groter de kans op duplicaat invoer. Gebruik van deze operator "==" ondergraaft dus de kwaliteit van je eigen aanpak. Je moet het juist een beetje fuzzy bepalen bij de namen, en exact op mogelijk andere onderdelen waar de eenduidigheid van invoer groot is, zoals bijvoorbeeld postcode/nr combinatie. 

Een leuke interface zou zijn dat je bij invoer niet direct een nieuwe record aanmaakt maar in een portaaltje eventuele matchende records ziet passeren, met de mogelijkheid:

- deze aan te klikken en daarin verder te werken, 

- op basis van de invoer direct een nieuwe aan te maken.

Sterk is dan ook om te beginnen op eenduidige sleutels: postcode en huisnr... (kan je meteen een adres lookup doen...)

 

 

 

Link naar reactie
  • 0

He bedankt allemaal voor jullie input.

Als ik het goed begrijp dan is er geen sluitende, veilige manier en zal het altijd via zoeken moeten gaan alvorens ik een nieuw record (contact) aanmaak. Maar da's best intensief want ik heb meer dan 11.000 klanten op dit moment. En er komen er elke dag bij.

Ik verkoop nl via Amazon en bol.com en de klanten zijn in feite klanten van die platformen. Omdat ik voor mezelf de verkopen die ik op die platformen realiseer wil bijhouden heb ik dit met een database programma FM Starting Point. Ik zou dit probleem niet hebben moesten de klanten via mijn webwinkel kopen ipv via Amazon en bol.com. 

Ik zoek nl. een manier dat als ik een naam zou invoeren Filemaker mij zou informeren of die naam er al in staat of niet. Staat deze naam er al in dan zou ik automatisch geen nieuwe contact id kunnen maken. En zoals hierboven gezegd zou de naam tesamen moeten lopen met het postn° omdat inderdaad een naam zoals "Peeters of Janssens" veel voorkomt.

Op dit moment ga ik elke keer ik een order krijg de naam intikken en vergelijk ik of deze er al in staat of niet.

Link naar reactie
  • 0

Volgens mij kan je wel heel dichtbij komen als je invoerschermpje maakt (of laat maken) zoals ik heb geschetst. Kleine moeite en veel gebruiksgemak. 

Waterdicht is onmogelijk tenzij je met DNA-profielen gaat werken :-) :mensen maken typefouten, verhuizen, wisselen van mailadres, etc. Door fuzzy mogelijke duplicaten zichtbaar te maken kan je zelf beoordelen of je met echte nieuwe persoon te maken hebt, terwijl eenmalige invoer mogelijk blijft.

Succes!

 

 

 

Link naar reactie
  • 0
8 uur geleden zei Marsau:

Zie mijn opmerking: hoe exacter je het maakt, des te groter de kans op duplicaat invoer. Gebruik van deze operator "==" ondergraaft dus de kwaliteit van je eigen aanpak.

Niet mee eens. Zie mijn beschrijving waarom je deze operator moet gebruiken.

 

8 uur geleden zei Marsau:

Een leuke interface zou zijn dat je bij invoer niet direct een nieuwe record aanmaakt maar in een portaaltje eventuele matchende records ziet passeren, met de mogelijkheid:

- deze aan te klikken en daarin verder te werken, 

- op basis van de invoer direct een nieuwe aan te maken.

Hier heb je mijn omschrijving kennelijk wel goed gelezen...

Link naar reactie
  • 0

Opmerkelijk dat je twijfelt aan mijn leesvaardigheid, en ook niet zo aardig. 

Jouw "beschrijving", die ik heb gelezen, gaat niet in op mijn advies voor een fuzzy aanpak. Ben benieuwd waarom jij de exacte benadering voorstaat in dit geval, om mogelijke duplicaten te identificeren. 

4 uur geleden zei hbrendel:
   12 uur geleden zei  Marsau: 

Een leuke interface zou zijn dat je bij invoer niet direct een nieuwe record aanmaakt maar in een portaaltje eventuele matchende records ziet passeren, met de mogelijkheid:

- deze aan te klikken en daarin verder te werken, 

- op basis van de invoer direct een nieuwe aan te maken.

Hier heb je mijn omschrijving kennelijk wel goed gelezen...

Wat wil je hier eigenlijk suggereren? Probeer je vrije gedachtenvorming op dit forum een beetje te beteugelen?

 

 

Link naar reactie
  • 0
7 uur geleden zei Marsau:

Jouw "beschrijving", die ik heb gelezen, gaat niet in op mijn advies voor een fuzzy aanpak. Ben benieuwd waarom jij de exacte benadering voorstaat in dit geval, om mogelijke duplicaten te identificeren.

Data invoer moet zorgvuldig gebeuren. Users die dat niet doen eindigen onherroepelijk met een baggersysteem. Vaak gezien.

7 uur geleden zei Marsau:

Wat wil je hier eigenlijk suggereren? Probeer je vrije gedachtenvorming op dit forum een beetje te beteugelen?

Ik suggereer niets. Constateer alleen dat je hetzelfde beschrijft als ik daarvoor had gedaan.

Maar wat mij betreft gaan we hier niet verder mee.

Link naar reactie
  • 0

Daar ging deze vraag over. Zorgvuldige data-invoer. Suggestie was om bij invoer alle potentiële duplicaten te laten zien, en dan de gebruiker laten beslissen. Dan moet je 'fuzzy' zoeken was mijn stelling. Jij weerspreekt dit en komt nog steeds niet met een antwoord. Wel met een drogredenering waarvan ik de naam nog niet ken (..terugverwijzen naar het reeds gedeelde, gemeenschappelijke uitgangspunt, maar dan als suggestieve tegenwerping...)

Verder visualiseerde ik een oplossing op één scherm. Ik geloof niet dat jij dat eerder deed, maar begrijp dat jij meent van wel. Excuses dat ik je niet alle credits heb gegeven, of dat je dat gevoel hebt, kennelijk belangrijk, maar eerlijk gezegd heb ik dit idee ook als eens uitgewerkt. Moet je ook zeggen dat veel van de kennisuitwisseling in forums gebaseerd moet zijn vrije associatie op elkaars input. Dialoog heet dat dan.

Link naar reactie
  • 0

Je kunt ook de auto complete functie van FM hiervoor gebruiken. Helaas zal deze naar verwachting met 11.000 records niet al te vlot werken. Vanwege de simpele manier van opzetten kan je dit wel uitproberen. Ook kun je een berekend veld maken dat een aantal invoervelden combineert waarvan het resultaat naar verwachting uniek is. Denk dan aan b.v postcode + huisnummer + voorletters + achternaam. Geef bij de velddefinitie aan dat dit veld uniek moet zijn en vang e.e.a af wanneer dat niet het geval is.

Voor wat betreft 'fuzzy' tegenover 'exact' ben ik persoonlijk meer geneigd naar het standpunt van hbrendel. Het hangt natuurlijk af van de omgeving waarin het gebruikt wordt maar mijn ervaring is dat wanneer je meer keuzemogelijkheden aanbiedt er veel meer fout gaat. Correcte invoer afdwingen met behulp van eenvoudig te bevatten regels werkt in de praktijk beter dan de gebruiker verschillende mogelijkheden aanbieden; veel 'casual' gebruikers raken al snel de draad kwijt en doen vervolgens maar wat. 'fuzzy' is m.i. alleen interessant voor power users met een goed begrip van de onderliggende structuren. Helaas kom ik die vrijwel nooit tegen.

Wel is het belangrijk om een goed duidelijke melding te geven wanneer invoer niet geaccepteerd wordt. Geef daarbij ook altijd een mogelijkheid om de hele actie te annuleren zonder dat dit welke gevolgen dan ook heeft voor volgnummers of andere data.

Link naar reactie
  • 0

Ben het zeker met je eens dat een correcte, eenduidige invoer veel problemen voorkomt. En is ook een design-opgave.

Maar het probleem was hier niet zozeer eenduidige invoer, maar het voorkomen van duplicaten.

Autocomplete werkt in de exacte modus. Als je een match hebt, hoef je dus niet verder te gaan met de invoer, maar kan je de betreffende record tonen. Als je geen match hebt, kan je onterecht alsnog invoeren. Een typefout, een zelfde naam maar ander adres, etc.: daar heb je iets aanvullends voor nodig. 

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...