bzLocalFile-FM
Designed and built by
With additional contributions from
Local File is a technique designed for FileMaker developers seeking to enhance performance, ensure data integrity, and elevate user experience within their solutions. bzLocalFile demonstrates the techniques presented by Andrew Witschonke in “User’s Sandbox: Opening New Performance, Data, and UI/UX Possibilities.”
After refining this approach to prioritize user experience and security, at Beezwax we’ve used it for years, adapting it to build more performant, more accurate, better looking, and more functional Claris FileMaker applications.
Frequently Asked Questions
Isn’t maintaining two separate FileMaker files a challenge?
Maintaining a local file is simpler than it seems. The local file only needs essential tables and fields to support specific functionalities. Most data and logic remain in the hosted file, minimizing duplication and maintenance efforts.
How do you handle record conflicts?
The simple way to handle record conflicts is by using a “last-in-wins” approach. For more critical data, methods such as marking records as checked out or comparing states before committing changes can be employed.
Does this technique work in FileMaker Go?
Yes, the local file technique works seamlessly in FileMaker Go, leveraging the temp directory for local storage.
Can this technique be used in WebDirect?
No, it’s not compatible with WebDirect as it relies on local storage, which isn’t feasible in a web-rendered environment.
Why use a sandbox file versus other techniques?
The sandbox file provides a near-native way to enhance capabilities in FileMaker. It offers greater flexibility and control compared to traditional global fields.
When should you use the local file technique over global fields?
The local file technique is ideal for manipulating multiple records or fields simultaneously, or when you need session-specific data that doesn’t interfere with other users’ sessions.
What are the key advantages of this technique for UI enhancements?
The technique allows for filter and selection states per user and window, providing a more personalized and robust user experience. Since layout information can be record-based data, it also supports complex UI states that are difficult to manage with traditional methods.
Boost FileMaker Performance
BzLocalFile enhances FileMaker applications by reducing server load and boosting performance through efficient localized data handling. It facilitates a reliable user experience and enhances data integrity and security by providing a controlled environment for safe data manipulation. This tool empowers developers to innovate within their applications, offering significant performance enhancements and new interaction possibilities.
Built as a FileMaker Add-on, this streamlined solution is designed to integrate with your applications seamlessly.
Local Data Manipulation
Users can manipulate data locally, reducing network traffic and latency, which is ideal for remote workers or those with unreliable internet connections.
Enhanced User Interfaces
Store UI states (such as filter and selection states) locally, allowing for a more dynamic and responsive user experience that doesn’t depend on global variables.
Data Integrity
By batching changes and validating them locally before committing to the server, the technique improves data integrity.
Unique Per-Window Interactions
Allows different windows in the same application to maintain unique data states, perfect for users who need to view and compare different data sets simultaneously.
Features
Since the sandboxed data can be tailored to individual user sessions, developers can create more dynamic and interactive applications, offering customized experiences based on user-specific interactions.
Reduce server calls and latency by interacting directly with the bzLocalFile-FM. This efficient approach enhances responsiveness, especially crucial for users experiencing high latency.
It enhances data integrity by isolating user interactions to session-bound files, reducing the risk of unwanted changes to the main database, and allowing for data validation before committing changes to the server.
Enable users to maintain individualized states for each record, including unique filters and selection states specific to the hosted record.
Leverage locally cached data to optimize performance.
Data is bound to a user's session, ensuring a personalized interaction experience without affecting the overall database or other users.
Enable users to edit records locally within a controlled environment, ensuring data integrity and separations of concerns. This feature enables users to experiment with edits and revert changes if necessary.
Although the technique involves session-bound data manipulation, it maintains data security by isolating changes to the local file with no direct impact on the main database.