Article Tags
Click or tap one of the article tags to filter down to a smaller selection.
- Accounts
- Add-ons
- AI
- Alerts
- Analysis
- APIs
- Apple Maps
- Auto-Enter
- Barcodes
- Base64
- BaseElements Plugin
- bBox
- Breadcrumbs
- Button Bars
- Caching
- Calculations
- Calendars
- Card Windows
- Charting
- Checkboxes
- Code Editing
- Code testing
- Coding
- Color Picker
- Colors
- Conditional Formatting
- Containers
- Context Management
- Cropping
- Crypto
- CSV
- cURL
- Custom Functions
- Custom Menus
- Data API
- Data Capture
- Data processing
- Data structure
- Data Viewer
- Date Ranges
- Dates
- Debugging
- Deployment
- Developer Tools
- Dialog Boxes
- Docker
- Drag-n-Drop
- Drop-down List
- Dropbox
- Duplicates
- Duplicating records
- Encryption
- Error handling
- Events
- Excel
- ExecuteSQL
- Exporting
- External Authentication
- External Files
- Field Formatting
- Field Storage
- Fields
- File IO
- File Management
- File Sharing
- FileMaker Go
- FileMaker Server
- FileMaker Settings
- Filtering
- Find & Replace
- Find Mode
- Found Sets
- Functions
- Fundamentals
- Global Fields
- Global Variables
- Google Maps
- Google Services
- Graphics
- Grid
- Grouping
- Hierarchies
- Highlighting
- Icons
- Images
- Importing
- Indicators
- Inspector palette
- iOS
- Java/Groovy
- JavaScript
- Join Tables
- JSON
- Key fields
- Layout Design
- Layout Mode
- Layout Parts
- List function
- Logging
- Looping
- Mapping
- Marking Records
- Media Storage
- Menus
- Merge fields
- Messaging
- Microsoft Surface
- Mobile design
- MonkeyBread plug-in
- Multi-key fields
- Multi-option fields
- Naming Conventions
- Navigation
- New Release
- Node-RED
- Notifications
- Oauth
- Object management
- OCR
- OnGestureTap
- OnLayoutKeystroke
- OnObjectKeystroke
- Parsing HTML
- Perform Script on Server
- Performance
- Permissions
- Photo manipulation
- Pickers
- Pivot tables
- Pop-ups
- Popovers
- Portals
- Preferences
- Printing
- Privilege sets
- Product review
- Productivity
- Progress Bars
- PSOS
- Python
- Quick Find
- Record Locking
- Regex
- Relationship Graph
- Reporting
- REST
- Sankey
- Schema
- Script Parameters
- Script Triggers
- Scripting
- ScriptMaster
- SDK
- Searching
- Security
- Separation Model
- Set Variable
- Settings
- Shortcuts
- Sliders
- Snapshot Links
- Sorting
- Spelling
- Spreadsheets
- Startup
- Summary Fields
- SVG
- Syntax
- Syntax Highlighting
- Tab Controls
- Table View
- Tagging
- Terminology
- Text Parsing
- Themes
- Time fields
- Time Savings
- Tips
- Tools
- Transactions
- Tricks
- Twilio
- UI
- Updating
- User Interface
- Validations
- Value Lists
- vCalendar
- Virtual list
- Web Forms
- Web Scraping
- Web Services
- Web Viewers
- Windows
- XML
Our Library of Videos
Over the years, I've met a wide range of developers. Just like the variety of clothing styles you'll see at any popular concert, there are potentially just as many different programming styles. The usefulness, however, of development standards is equivalent to the simplicity of a stoplight. If we can all agree on one thing, then that one thing can benefit everyone who uses it.
When you consider this statement in light of FileMaker's available Global Variables, it's hard to agree on the decision of whether to use them or not. Maybe you like using a global variable temporarily across scripts — even though some might consider that approach problematic. Maybe you avoid using Global Variables because a trusted source once told you never to use them. Or perhaps you're one of those tidy developers who just can't stand the sight of them within the Data Viewer.
Whatever your stance, there are definitely times when using a Global Variable is beneficial. The scope of a variable is a concept familiar to pretty much every programming language. A globally scoped variable is valuable only as long as you can trust it. In this video, I present a method for using FileMaker's Global Variables that provides an extremely high degree of confidence in their use. We create a system where the variable is modified in one place only, making for a solution which is much easier to modify and maintain.
One of FileMaker's most advantageous tools added in recent years is the Button Bar. It was the first way to present dynamic, calculated content directly on the screen. This removed the need for the decades-long practice of adding "yet another unstored calculation field." You can calculate something and render it right on the screen.
Then, in FileMaker 20, we got a new layout object called Layout Calculations. While these now provide the same functionality as a Button Bar, they do so without the overhead of unnecessary behind-the-scenes CSS and other extras. However, they are not fully implemented; they don't update any of their calculation references. While this will eventually be fixed, there are unique uses for Layout Calculations that allow for some really cool features—like Render Fields.
In this video, we take a look at generating temporary images for the purpose of PDF generation, which then cease to exist after the script finishes running. These Render Fields can be 100% dynamic on a record-by-record basis and can display whatever you want using an unstored field to show the result. This allows you to multi-purpose a field for multiple layouts. Let's take a look at what Render Fields can provide for your FileMaker solution.
FileMaker's script triggers can be problematic if you don't properly test and debug the user interaction flow. Some developers, perhaps even yourself, avoid script triggers for this reason.
However, script triggers can be incredibly useful. Unlike JavaScript in the Web Viewer or other environments (anyone remember HyperCard or Adobe Flash?), which have numerous possible events, FileMaker offers a limited set of events called Script Triggers.
One of the best aspects of Script Triggers is that they are linked to specific objects, areas, or actions. This differs from writing scripts that must handle various conditions and situations. With Script Triggers, you can make a particular area of FileMaker function autonomously, handling its own tasks. The first step to feeling comfortable with Script Triggers is learning how to manage them when you don't want them to execute.
In this video, I revisit a database created in 2010, which remains valuable for learning what Script Triggers can do. Let's walk through a concrete example of how you can rethink your use of Script Triggers.
Our world of software development is changing rapidly! With AI influencing the way we develop, it becomes increasingly important for developers to become informed about the tools which help them become more efficient.
Fortunately, we still live in a world where people have to coordinate and organize code. Even if AI can create near-flawless code in some cases, it doesn't create the ideas. Humans are the creative force. Whether you're using a simple Find & Replace to refactor some functions, or having AI create your next powerful JavaScript for your killer Web Viewer interactions, you still need to know about your available tools.
In this video, I walk you through a recent revision to an older tool I had been using to ease the amount of typing I have to do when using JSON as the parameter passing method within FileMaker scripts or when interacting with an API or anything else that uses JSON. No joke, the content in this video and the associated technique file can save you literally hundreds of hours when used effectively. I'll show you how.
Expanding on a recently released article about Incredibly Easy Menus, which used a Card Window and showcased minimal use of popovers, I've now created a new dedicated setup specifically for use with popovers. Using this method, you can implement the technique and manage your solution-wide popovers from a single location for code. Solution maintenance becomes vastly simplified with this approach.
Remember, our goal as developers is to create DRY (Don't Repeat Yourself) code. This is exactly what this technique achieves. It creates DRY code for the various popovers you'll be using within your solution.
While some degree of context may apply to your popover menus, you can always account for context within the code and adjust as needed. If all the code is in one place, then your job just got easier.
JSON, JSON, JSON! If you haven't gotten used to it yet, you'd better start. It's the way you communicate with the web. It's the structure that's winning. XML is too verbose, and .tab and .csv aren't always clear enough.
So, what are some of the ways you can create JSON within FileMaker? Here are just a few:
1. Create a calculated field of it.
2. Use ExecuteSQL() to return it.
3. Use Execute FileMaker Data API [ ].
4. Write a looping script.
5. Or... you can just export it.
This last method is often the most optimal for getting your data into the JSON format to meet whatever requirements you may have. You can further modify this JSON using a variety of tools to achieve the perfect result.
In this video, and the associated technique file, I provide the knowledge and code necessary to simply export your data as JSON and be done with it. No matter what you need and where you need it, you can use multiple exports from however many tables desired to end up with the needed JSON result.
While some of the excitement around AI deals with using the technology within your FileMaker solution, it's likely that, as a developer, you should be more excited about how AI changes what you do as a developer.
In fact, it's theorized that the occupation of being a developer will be one of the careers most affected by AI. So, what do you do while we wait and see if this is truly the case? Well, you use AI, of course!
If you haven't yet dipped your toes into the world of using AI to compose some of the code you need, then make sure not to get left behind. You ABSOLUTELY need to investigate how AI changes how you develop. In my own personal experience, I've likely saved a ton of time by having AI write my code for me. The advantage of a developer who already knows code and can take advantage of AI is that they are better developers than those just starting out with no background in coding.
Yes, maybe AI results will eventually become nearly perfect, such that dictating a prompt to create a solution requires no existing knowledge of code. However, any existing knowledge makes you a better composing developer than someone with no knowledge at all.
Here's the trick: You need to know how to take advantage of the tools available, and this video is going to provide the introduction you need in order to make things much faster when coding your FileMaker solution.
If there's one thing you shouldn't ignore from the start of any FileMaker solution, it's the way security is going to factor into your creation. You need to know who the users and groups are and what their access rights are. These access rights are called privilege sets within FileMaker.
All too often, security may be an afterthought because most of the fun typically lies in creating solutions to the problems. The real trick is to create the solution to the problem while simultaneously considering how security wraps around that problem.
Unfortunately, with FileMaker being such a flexible platform, testing those access rights is not obviously easy. We have one simple way of testing one privilege set versus another: logging out of the system and then logging back in as another user. This process, while critical, can seem like a hassle, so it's often deferred. With the information in the associated video and technique file, you'll enjoy learning about a very easy-to-use system that allows for testing things quite easily. The solution simply takes advantage of part of how FileMaker works after the authentication process. Need to up your security game within FileMaker? You're sure to find some answers within this solution.
Companies release new versions of software all the time. One of the issues we may face as developers is that not everything is documented and the "marketing spin" might not provide all the technical details. In this video I showcase how I go about the process by performing and ad hoc discover of some of the new features in the Claris FileMaker 2024 release.
Over one's development career, you'll come across a number of people who "think" they know how something really works. You then proceed to show them some of the cool things they can really do, like a "context jump" within FileMaker. You then smile at their surprise, because what they thought was possible isn't even the start of it.
If you don't even know about, or truly understand, FileMaker's ability to jump from one context to another, then you're missing a critical piece to the FileMaker puzzle. It's one of the ways you break down a complex solution into a more digestible division of smaller parts. This not only makes the Relationship Graph potentially more understandable, but may make your solution more performant.
There are, however, a few big issues you must address as your FileMaker solution becomes more and more complex. One of these is protecting your code against itself. Certain script steps like Delete Record, Delete All Records and Replace Field Contents can have severe consequences. Especially, if performed without confirmation. And even then, accidental clicks is certainly a thing! In order feel really comfortable about using these types of actions you can always "protect" your code from doing the wrong thing in the wrong place. This where you implement either Layout or Context specific checking. This can easily be done when you know how to use FileMaker's internal ID values.