Custom Function Database - Part 1

Developing software is simply a matter of solving a problem by organizing and collecting data in a manner which makes the data useful to the end user. So, we’re just a bunch of data organizers and presenters.

One of the biggest benefits to a software developer is their known resources. There are tons of resources available to us every day. Sometimes, it’s a matter of knowing where those resources are and others it’s a matter of taking advantage of what we already have.

In this video, I start a brand new project which will be a Custom Function database. Along the way, while coding the solution, we’ll be taking a look at a lot of features present within the current FileMaker development environment. Learning how decisions are made and what influences them is a great way to learn how to ask questions about your own creation process.

AttachmentSize
CustomFunctions01.zip195.49 KB

Comments

FYI:

I encountered errors with each video file link. On a hunch (based on previous file naming conventions), I changed trailing '1119.mp4' to '119.mp4' and it downloaded the HD-1920x1080 file.

I assume the problem with each of these is they have that extra preceding '1'.

Best regards,
- - Scott

I've not been able to replicate the issue. When I try downloading the video it downloads. There is certainly some edge cases that happens which causes some people not being able to download. I'm still collecting information and trying to resolve the issue.

-- Matt Petrowsky - ISO FileMaker Magazine Editor

I just spent quite a bit of time implementing Vim on windows and making Matt's approach work, I thought I'd share what I did with anyone, who is not real familiar with these kinds of tools (as I am not), so you can hopefully save many many hours. I initially spent quite a bit of time, deciding on the proper downloads and trying to set environmental paths etc. The approach below is very simple and quick.

I choose to use the GUI version of Vim and choose the Self-Extracting file.
http://www.vim.org/download.php

Download cURL
http://www.paehl.com/open_source/?CURL_7.52.1
After unzipping copy curl.exe to the C:\Program Files (x86)\Vim\vim80 sub-directory, after the Vim install.

Download UnxUtils
http://unxutils.sourceforge.net/
Go to the wbin subdirectory, \UnxUtils\usr\local\wbin, after you unzip the file, Copy grep.exe and uniq.exe to the C:\Program Files (x86)\Vim\vim80 sub-directory. I noticed after the fact, that egrep is also inculded in the UnxUtils file, I didn't try it but assume it works.

To get %!egrep -o '\/cf\/[0-9]+' to work I had to change it to %!grep -o "\/cf\/[0-9]\+"
Note I changed ' to " and escaped the + with \+

Hope it helps.

Thanks for posting the links and info!

Also, to anyone on Windows, there is a very nice method of setting up a lot of unix-like tools. It's called Cygwin. Here's a link. You can install all kinds of useful tools. In particular, there's a command line tool called rsync which has been around for ages. I personally use it for making offsite backups of FileMaker server backups.

https://www.cygwin.com

-- Matt Petrowsky - ISO FileMaker Magazine Editor

Hi Matt,
thank you for this great series full of great stuff. Unfortunately I cannot download any of the videos for parts 1 - 6 in any size. Part 7 downloaded fine,
All the best

Currently, there is an issue with the site which caches older download links that expire. I'm trying to find the time to fix the bug. For now, if you let me know I can manually flush the cache.

-- Matt Petrowsky - ISO FileMaker Magazine Editor

Thank you -It's working now ;-)

Hi Matt,

in this video you touch on an interesting point. When using Get(UUID) in an auto enter calculation you leave "Do not replace existing value of field (if any)" selected, As you point out this means that if the duplicate record command is used the id will be duplicated. This is then "trapped" by the "unique value" validation. This is an issue that has bothered me for a while, if I want to allow the duplicate records command what is the problem with leaving "Do not replace existing value of field (if any)" unchecked - I understand that as there is no calculation as such and no other fields are referenced the id field should never change anyway after initial record creation, but this does allow using the duplicate records command with a new unique id being created. How (and why)
do you deal with this issue yourself?

All the best
Ben

This one comes down to personal preference. If you don't reference any other fields and only Get ( UUID ), then you're probably just fine leaving it unchecked.

Personally, however, I like the constraint in place if only for the "peace of mind" aspect. If I really do need to support the ability to duplicate a record, then doing so via a script provides full control.

You can use the duplicate record script step and then follow that with a set field and then a commit. This essentially does the same thing as leaving the box unchecked, but by having the box checked you can't ever accidentally get a duplicate id. You're forced to script the duplicate process. Which tends to help when you also need to duplicate related records.

Not that accidental duplicates would necessarily happen. But, for the paranoid of us, it's just one more level of ensured programmatic control. :)

-- Matt Petrowsky - ISO FileMaker Magazine Editor

Thank again for sharing your knowledge and experience. In the past I have left it unchecked but I always had a queasy feeling in case the id might somehow get changed, which would be a bad thing.

I'll follow your suggestion from now on - it's easy to implement and feels safer. I belong to the paranoid when it come to primary key integrity and security.

When I go to the list »» http://www.briandunning.com/filemaker-custom-functions/list.php and show source it shows just a handful of custom functions, back to about May 14th, instead of the entire list. Seems he has changed the format maybe to prevent mining? Maybe some PHP trick.

Probably an alternative available.

+--------------------------------------------------------+
Michael A Clasen
macc@mclasen.com
Filemaker/Lasso
FSA Associate
http://www.mclasen.com
+--------------------------------------------------------+

Hi. I just started watching the Custom Functions DB series and am unable to download any of the videos. I am running windows 10, latest version of Firefox browser.

Greg

Well, I went back and pasted the video url into a new window and was able to download it.

Greg

When I run the scrip Get page data, I get into the html field a very short text from any briandunning webpage, with a message that it has moved permanently. But when I look for that URL in a web browser it still exists.
I believe it is a security issue to prevent massive data mining.