Contact Picker – Modular FileMaker
I am currently developing a FileMaker solution that will be cloud based and will have hundreds of thousands of contact records. There is a need for isolating a specific contact record quickly and then associating that record to the current record. Drop down and popup menus don’t work well in this environment–the lists are too long and take a while to load and respond to changes. I needed a better solution, so I looked at Modular FileMaker for a solution. I found one called Contact Picker, written by Dave Graham, and decided to give it a try:
The Contact Picker Module’s goal is to abstract the activity of searching for existing contacts, as well as adding new contacts. In most CRM solutions, it can be called from many different contexts. The first example (see Contacts Demo) is used when creating a new contact. In this scenario the picker is used to search the database first to prevent users from adding a duplicate contact. The second example (see Contacts Demo) is adding a related contact, which creates join records relating the contacts to each other. Dig in and have a look at each of the handlers to get a sense of what’s possible.
Other potential use cases is to pick a contact to attach to an email, note, or other activity record. There are an infinite amount of use cases for this picker!
This sounded good, so I downloaded and started the setup.
Contact Picker setup.
There are several steps to install Contact Picker–copy some scripts over to the main database, fill in some fields on some scripts and layouts, and do some fine tuning. It’s not truly modular due to the necessity of changing the field names, scripts, and layouts, but it is much easier that building one yourself.
The basic built in function of Contact Picker is to pop a new window and allow the user to start typing in a name. Typing in letters auto filters records that match the typed letters in all of the search fields you set up–first name, last name, company, e-mail, address, etc. If you find the record you are looking for, you can click to open it in the detail layout. If you don’t find a matching record, you can add a new contact record by clicking a button. Or you can cancel, closing the popup window.
This worked well on the cloud and with thousands of records, but my solution required WebDirect capability.
And because the popup picker window was, by design, in a separate file, the popup did not work in WebDirect. To make it work entailed moving the Picker file into the solution, something Graham advised against in the setup instructions. A good bit of work, and a lot of fixing fields in the scripts to point to the proper fields, and the picker now resides in the main file.
Finally, my solution called for a way to link a contact record back to another contact record in a different way than Contact Picker envisioned: I wanted specific information showing and restricted options available to the user, which required duplicating the picker layout, duplicating several scripts, and some extensive testing to make it work properly. But work it did, and now the solution has two implementations of the Contact Picker that work in FileMaker and with WebDirect.
I have more testing to do, but I like it.
Overall, I like the solution. It’s medium difficulty to install, and more than that to extend, but it works on the cloud and with WebDirect. On the negative side, Contact Picker uses a lot of OnTimer Scripts that are designed to wait for user input. Debugging scripts when script timers are running is difficult. For example, the OnTimer script would not allow input on the Contact Picker window when script debugger was running, so I had to learn to pause it at the right times to work around the problem.
But now that I know how to modify it, I plan to use it in more solutions in the future.
Check it out and download the test file at the link.