Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


OlgerDiekstra last won the day on August 8

OlgerDiekstra had the most liked content!

Community Reputation

29 Excellent

About OlgerDiekstra

  • Rank

Profile Information

  • Title
    FileMaker Developer
  • Gender
  • Location
    Gold Coast, Australia

Contact Methods

  • Website URL

FileMaker Experience

  • Skill Level
  • FM Application
    16 Advanced

Platform Environment

  • OS Platform
  • OS Version

FileMaker Partner

  • Certification

Recent Profile Visitors

8,746 profile views
  1. OlgerDiekstra

    Missing Data

    An easier approach would be to filter records that have missing data, then use conditional formatting for those fields to highlight them. Showing only fields that have missing data might result in important context for those fields missing as well. Ie, consider if you have an address list, and have records missing the city. How would you know what city to enter if all you see is a list of empty city fields? You need context around it, ie customer, street info, state, country etc.
  2. I've got a FMSv16 (can't upgrade yet due to Windows 2k8R2), and am using CWP to send data to the server using php. The server sends out SMS's via an online SMS Gateway and gets results back via php. This happens sometimes in a burst where hundreds of SMS's are send out, and the incoming results can overwhelm the server (in terms of connections, not CPU or memory resources). I've set the allowed CWP sessions to 1000, but I'd like to be able to terminate a session after the script has run. I've tried calling a FM script with 'close database' and 'exit application' at the end of the php script, and unsetting the $fm variable in the php script, but it doesn't terminate the session to FM. The sessions automatically terminate after 3 mins or so, but that is sometimes too long. Does anyone know how to end a session from either a FM script or within the php script?
  3. Install a Windows virtual machine (best to use the same version Windows as your client) and install FMv10 in the VM. Even if it's just for the purpose of printing. Or get a secondhand laptop on ebay with the same version Windows as your client. I didn't know this was possible with MacOS, but you may even be able to run an older version of MacOS: https://www.parallels.com/blogs/older-versions-mac-os-x-with-macos-sierra/
  4. This is for v17 but should apply similarly to v18: https://filemakertoday.com/how-to-use-the-filemaker-17-data-api-video-tutorial/
  5. I'm still running a v16 server due to the underlying operating system, and therefore haven't had a chance to play with the API, but it's supposed to be pretty standard. This https://dbservices.com/articles/integrating-filemaker-with-rest-apis/ might provide a start. Others on this forum might be able to provide some pointers as well. If your digital signs are linux based you can use the curl command to send data to the FMS server.
  6. You can only hold one file in a container, so the insert PDF step requires a filename with path, not just a path. If you leave the source file empty, FM will display a dialog where you can select the PDF file to import, which is probably what you want. From the help: When Insert PDF is performed, unless a file is specified with the Specify source file option, FileMaker Pro Advanced displays a dialog box where the user can select and preview the file to be imported. A path is not a file, therefore FM displays an error. You could do a mass import by importing a list of PDF names in a folder into a value list, and then loop through each list item and create a new record for each, and import each PDF individually.
  7. Have a look at this post: If you have FMSv17 or 18 you can use the API instead of the PHP webserver. I would suggest using PHP instead of WebDirect if your FMS is v16 or older.
  8. I do something similar with my RPi's. Below is the PHP script I use for this purpose. I have a Windows server that runs FMS, and the scripts are located in "C:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf", your Mac will have a similar folder somewhere. RPiLayout is the layout that is invoked, and RPiStats is the script that is run. <?php if ( substr($_SERVER['REMOTE_ADDR'],0,8) != '192.168.' ) { exit; } require_once ('FileMaker.php'); $RPi_Start = isset( $_GET['start'] ) ? preg_replace('/[^0-9]/', '', $_GET['start'] ) : ""; $RPi_Finish = isset( $_GET['finish'] ) ? preg_replace('/[^0-9]/', '', $_GET['finish'] ) : ""; $RPi_Count = isset( $_GET['imagecount'] ) ? preg_replace('/[^0-9]/', '', $_GET['imagecount'] ) : ""; $RPi_Case = isset( $_GET['case'] ) ? preg_replace('/[^a-zA-Z0-9]/', '', $_GET['case'] ) : ""; $RPi_Studio = isset( $_GET['studio'] ) ? preg_replace('/[^a-zA-Z0-9]/', '', $_GET['studio'] ) : ""; $RPi_Folder = isset( $_GET['folder'] ) ? preg_replace('/[^a-zA-Z0-9-]/', '', $_GET['folder'] ) : ""; $fm = new FileMaker(); $fm->setProperty('database', 'DatabaseName'); $fm->setProperty('hostspec', 'http://localhost'); $fm->setProperty('username', 'username'); $fm->setProperty('password', 'password'); $param = ''; foreach( $_GET as $key => $value) { if( $param === "" ) { $param = $param . $key . "=" . $value; } else { $param = $param . "&" . $key . "=" . $value; } } echo $param."<br>"; if( $RPi_Start === "" or $RPi_Finish === "" or $RPi_Count === "" or $RPi_Case === "" ) { if( $RPi_Start === "" ) echo 'missing Start time/date<br>'; if( $RPi_Finish === "" ) echo 'missing Finish time/date<br>'; if( $RPi_Count === "" ) echo 'missing Image Count<br>'; if( $RPi_Case === "" ) echo 'missing Case Name<br>'; if( $RPi_Studio === "" ) echo 'missing Studio Code<br>'; if( $RPi_Folder === "" ) echo 'missing Folder Name<br>'; } else { $newPerformScript = $fm->newPerformScriptCommand('RPiLayout', 'RPiStats', $param); $result = $newPerformScript->execute(); echo 'OK'; } ?> RPiStats processes the provided parameters ($param) and creates a new record, populating the fields with values from $param. Nowadays I built a JSON string in PHP and pass that on to FM, which is easier to process. But the above works nonetheless, it's just a bit more work in the script. Make sure you assign the correct permissions for the username, and enable PHP on the server. On the RPi I send data to FMS using the below curl command: curl -f ''$START'&finish='$FINISH'&imagecount='$IMAGECOUNT'&case='$CASE'&studio='$STUDIO'&folder='$FOLDER
  9. I'm not sure about v18 as I'm not using that yet, but both v17 and v16 autosort JSON arrays. Which means it's kinda pointless inserting data at a specific location as FM will autosort the JSON data? When would an insert be useful?
  10. Haven't read the entire article, but it's something that would need to be implemented on a low OS level. I suppose FM would be able to take advantage of something like this if the OS supports it, but as a FM developer, you wouldn't be able to control any of it. Best case, if it's there, FM would use it if possible (if FileMaker/Claris includes this in the code). The only control an enduser would have over this is to install such memory modules.
  11. Can you open the database on the server itself with Filemaker Pro (client)? (when it's failing). Have you tried re-installing the OS itself? On other hardware? 8GB memory is about the recommended (not minimum) requirement for Windows, you're running FMS on top of that so adding memory might help. It's possible the system is running out of resources. Memory is a cheap resource to add, and database servers need lots of it. 80GB diskspace is also minimal.
  12. It looks like you don't have access to the external location from the clients. I haven't worked much with external storage on FM, but assume the FileMaker client retrieves the external location where the files are stored and then tries to access it itself.
  13. I do something similar with MD5 hashes. I read a list of MD5 hashes in one variable ($LIST1), and another list of MD5 hashes in another variable ($LIST2) Then I loop through $LIST1 and do a patterncount match with $LIST2 Set Variable [$LIST1] Set Variable [$LIST2] Set Variable [$COUNT; Value: 1] Loop If [PatternCount( $LIST1; GetValue( $LIST2; $COUNT ) )] Do Something End If Set Variable [$COUNT; Value: $COUNT + 1] Exit Loop If [$COUNT > ValueCount( $LIST2 )] End Loop
  14. That looks more like an accidental text field with the letter "C".
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.