FMPerception Saved My Butt

,

It happens. You’re moving quickly, jammin’ on your favorite FileMaker custom app. Laying down some insane custom business logic in the form of one awesome, totally badass FileMaker Script. Then you notice that other script. The one you need to get rid of. No time like the present. So you pop over to it, hit “delete”, crush the popup confirmation before you have time to read it and… Whoops, something went very wrong!

NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!

You deleted the wrong script.  Your awesome, badass script with the insane logic is nothing but a memory. There is no undo. It’s gone. It’s not in the backup because you were just working on it.  It’s too new.  You are totally f#%@ed! You weep, you rage, you even try mediation. Nothing works. The script is still gone.

Then you remember. “Wait I just made a fresh DDR for FMPerception“. A smile creeps across your face. Yeah, you’re gonna be OK.  FMPerception is going to save your butt.

True Story

The above scenario happened to me this week. I deleted the wrong script. For a moment, it was bad. But then I remembered that FMPerception had the script. I could easily restore it, and reconnect it the other scripts that were using it. Just 2 minutes later I was done.

Phew!  Watch the video above for exactly how to recover a deleted script using FMPerception.

Need For Speed

FMPerception is so fast that it doesn’t get in the way of your workflow. As a result, you’ll use it all the time. You will be much more likely to have a recent analysis than if you are using an analysis tool that forces you to wait minutes or hours. Most FMPerception users know all about that, but what they might not know is that your analysis is also a backup, and can be used to restore code that you deleted or broken. And that can save your butt!

 

 

San Diego FileMaker User Group October Meeting

,

The San Diego FileMaker User Group is meeting Monday, October 16th at 5:30 PM at our office (address below). There will be pizza, other appetizers, beer, and soft drinks available. We’ll have some time to mingle a bit before the presentations begin. If you are in the area and you use FileMaker Pro or are interested in learning about what FileMaker Pro can do, please come by.

Topics

We are continuing our exploration of the new features in FileMaker 16 and how they change how you might design a FileMaker Custom app. We have a couple of topics on tap, but there is also some time for general Q and A.

LiveCode for FileMaker

Presented by Kevin Miller, CEO of LiveCode

LiveCode for FM brings the world’s only native app building platform for everyone to FileMaker. Drag-drop to create a full user interface experience, include rich graphics and multimedia, write code in English to crunch data from any source, or integrate your FileMaker app with the operating system or web APIs. The combination of LiveCode and FileMaker brings infinite possibilities to your FileMaker apps.

Error Trapping

Presented by Todd Geist

Let’s face it. Bad things happen. When that happens in your Custom FileMaker Application you want to make sure you catch and handle those errors in a graceful way.  The first part of that strategy is trapping errors in your script. We’ll take a look at some simple Error Trapping strategies that can use to make your FileMaker Applications better able to handle the unexpected.  We’ll see how FileMaker 16’s Native JSON function once again prove to be critical in how we solve this problem.

Server Side PDF Generation

Presented by Dave Graham

FileMaker 16 brings with it the ability to generate PDFs on the server. We’ll take a look at this new feature and how it can be used with Server-Side Scripting and Web Direct. You’ll see how you can email beautiful PDF reports from the server on a schedule without having to run a robot machine. We’ll also see exactly how to make this work on Web Direct.

Location

Geist Interactive, San Diego
1855 1st Street, San Diego, CA 92101

Meetup Group

Check out our Meetup Group. Join up if you’d like to get notified when we the meetings are happening.


San Diego FileMaker Pro User Group

San Diego, CA
28 Members

This group is for anyone interested in developing or deploying FileMaker solutions. Developers of all skill levels are welcome. Customers, potential customers and end-users lo…

Next Meetup

October Meeting

Monday, Oct 16, 2017, 5:30 PM
10 Attending

Check out this Meetup Group →

FileMaker Testing, Part 1 – Your First Test

,

With the release of FileMaker 16 and native JSON functions, the ability to create a testable solution has been vastly improved. In this blog post, I will walk you through a simple example of what testing is, and how it can improve your solutions. Most developers have had situations where they need to alter some existing logic, and are concerned that they might alter something with unforeseen consequences. Wouldn’t it be nice if you could ensure that your changes didn’t break existing code? Welcome to FileMaker Testing.

Automated Software Testing

Software testing has a lot of different variations and buzzwords associated with it. You’ll hear all sorts of phrases and acronyms thrown about like TDD, BDD, Unit Testing, Regression Testing, etc. It’s worth a learning a little something about these at some point. But at the heart of all of them is a simple concept; write some code to automatically test some other code.  If you do, your code will be less fragile, and easier to maintain.

What is FileMaker Testing?

A test is a FileMaker just script used to ensure that other scripts are working properly. Tests ensure that scripts are not only accomplishing their goal but also producing the desired result when they fail. While there are many ways to perform FileMaker testing, we test using the following assumptions:

  1. Each script to be tested accepts & returns JSON as a parameter
  2. We will be using custom functions for handling errors, testing JSON objects, and validating a JSON payload

Writing Testable Scripts

To prepare your script that needs to be tested, it should always return JSON to the script that called it. This means that if the script fails, it should return an error JSON object. If it succeeds, it should return an object representing the data that was changed. See the example script called “Create a Project” in FileToTest. You will notice that it returns verbose errors on all failures, and returns a JSON object when successful.

Writing The Test Script

To prepare your test script, you need to do three things in karbon_tester:

  1. Create a JSON Object to pass the script using the layout “Edit Test Data”
  2. Create a script in the Folder “Project Testing” (Copy the existing scripts…you’ll get the idea!)
  3. Add the script you created to the script “Test – Project”

Do We Test Every Script?

There is no reason to test each & every script. We only write tests for those scripts that play a critical role in the solution. Once you are comfortable with testing, it will become clear what you should test. It’s up to you.

Benefits of FileMaker Testing

The benefits of creating test scripts are compelling. First, it provides any solution with a level of stability that is difficult to achieve in a timely fashion. If multiple developers are collaborating on the same solution, the test file enables everyone to run common tests on core business logic, and see if they have produced any unforeseen fatal errors.

Second, it provides a level of clarity for you, the developer. Once you begin writing tests, you will take on an alternate persona, where you are actively poking holes in your own code. This may seem like a small difference, but we believe you’ll be surprised once you try it. You become much more critical, which improves your focus & clarity.

Third, the readability of your code will improve. One thing that makes JSON difficult to handle is that there is not a repository for JSON objects within a FileMaker solution. When a script is designed to handle records in multiple tables, karbon_tester serves as a clear, contextual example of how to create & pass JSON objects to work within a solution.

Is it Worth It?

The first question many people seem to ask when introduced to testing is “is this worth it?” Our answer would be that it depends on the solution. If you have a complex system, multiple developers, and a need for stable solutions, it’s not just worth it, it should be the standard.

Download

To start, download our sample files here. Open “FileToTest”, and create a project. Review the script “Create a Project” to see how the file works. Then open the file “Karbon_Tester” and run the existing test. See how easy that was? Now you should create your own scripts to test creating a status.

What About Editing Data & Managing Test Data?

We will be releasing part 2 in this series in the future. We will walk through options for loading test data, & managing records that are used only for testing. The testing in this sample is intentionally simple to grasp and does not confront some of the nuanced issues involved in testing.

What about Karbon?

We know some have you have been waiting for us to release some of internal tools and frameworks that we group under something we call “Karbon”.  This is the piece piece of that puzzle.  More coming soon.

JavaScript is Eating the FileMaker World Video

,

My presentation, “JavaScript is Eating the World” was released last week along with the rest of the Web Track presentations.

Read more

v1.5 of Barcode Creator Released

,

We rolled out a new version of Barcode Creator over the weekend. We added support for another symbology bringing the total to 19, and we added one improvement to the QR Code generation. This upgrade is free for all owners of Barcode Creator. You can download it from your account at Geist Interactive

New Symbology

Added the “GS1 DataBar Expanded” symbology. This is the same as DataBar Expanded, but with strict GS1 validation. (DataBar Expanded behaves the same: it will still encode data as GS1 if the input follows GS1 formatting rules, but will also tolerate non-GS1 data, as before.)

Improvements

Improved QR Code compatibility with scanners that do not use the default configuration from the QR Code 2005 specification (including FileMaker Go).

Upgrading

It is always best to start over. Delete the old Barcode Creator module folder and copy and paste or import the new one into your file. Then reconnect your scripts.

FileMaker DevCon 2016

,

I am back! Last year, I took the year off from speaking. But this year I am back. I have two presentations on totally awesome fun topics; building native iOS apps, and JavaScript.

Read more

FileMaker QuickBooks Mac Integration

, ,

We love FileMaker. We love QuickBooks Online. We also love Macs, and that proved to be a problem. The existing solutions for connecting FileMaker to Quickbooks Online required a Windows PC. The combination of FileMaker QuickBooks Mac was a problem. We decided to solve it. Read more

What Can WordPress Teach FileMaker?

, ,

WordPress is the dominant web platform on the planet.  It’s ecosystem is orders of magnitude larger than FileMaker’s. Clearly they are doing something right.  Is there anything that FileMaker and FileMaker Developers can learn from WordPress’s success? Read more

Announcing GoSign v3, Scriptable, FileMaker Signature Capture

,

FileMaker Signature Capture

Newbury Park, California, Feb 5th, 2014 – Geist Interactive is pleased to introduce GoSign 3.0 for FileMaker Go and FileMaker Pro. GoSign 3.0 is a major rewrite of the popular FileMaker Signature Capture add-on for FileMaker Go. GoSign allows FileMaker Signature Capture to happen anywhere in the layout, including in new FileMaker 13 PopOver Controls and Slide Panels. Read more

Looping Through and Filtering Lists with FileMaker

Looping through and filtering lists of values turns out to be a common task in FileMaker.  Having a few different techniques at your disposal is quite useful. In this post, we are going to look at a set of related techniques for processing lists.  First we look at how to loop through each item and perform some function or task on each item.  Then we will move on to a custom function for filtering lists by any valid FileMaker expression.  Finally we will use another Custom Function to easily parse Layout Object Names from a layout and use them in a dynamic slide navigation scheme.

Read more