Jump to content


  • Content Count

  • Joined

  • Last visited


About MainSpring

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Breaking down FileMaker’s new (and really easy) way to implement machine learning. With the release of FileMaker 19, an extremely easy way to implement very complex machine learning has been made available to MacOS and iOS FileMaker custom apps. Machine Learning offers the ability to automate “identification and analysis” processes by using trained machine learning “models”. With FileMaker, it’s now easy to script an entire decision tree with both machine learning and human interaction; Leading to very powerful workflows that can ensure a high quality of data. These models can be implemented to replace tasks that usually require human interaction to complete. One example of this is Sentiment Analysis, which can be used to gauge the tone of an email and automatically escalate it if the tone is determined to be angry. Another use case would be the identification of an uploaded picture, to determine if the content is likely to match the requested picture content. There are many use cases that can lead to significant savings in time for human interaction. Since FileMaker’s CoreML functionality takes advantage of recent iOS 11+ and MacOS 10.13+ updates that introduced the CoreML framework, FileMaker’s CoreML functionality is limited to iOS and MacOS as well. This should especially be taken into consideration for Windows and Linux FileMaker servers, as server-side scripts (Schedules and “Perform Script on Server”) will not be able to load CoreML functions). So just how easy is it to implement these machine learning models with FileMaker? It’s just three easy steps: Step 1: The Configure Machine Learning Model script step. You will utilize this script step to “install” a machine learning model, stored in a container field, into a named session object that can be used in Step 2. The script step has a number of parameters: Operation determines what action you are using to setup your model. The Vision option specifies that you will load a model that is designed to interact with images. The General option is used for non-image-based machine learning models, such as sentiment analysis of price estimation. The Unload option is used to unload the model from session memory when you are finished using it. This is important to do, as it frees up the resources that were being used by your custom app (like memory) to process the model. CoreML can potentially be resource-intensive, so be sure to unload the model when you are done with it. Name is the name of the model you are loading. This will be used in Step 2 to reference the loaded model by name. I recommend using a simple text name without special characters, spaces or numbers. For example: “checkImage” or “estimatePrice”. From indicates the container field that you are loading the trained machine learning model from. You can load container contents manually, or scripting it by using the Insert From URL script step. Step 2: The ComputeModel() function. This new function is used to take a loaded machine learning model (by name) and passing it specific contents for machine learning processing. The first parameter to this function is modelName, which is provided from Step 1 above. Other parameters to this function are flexible by using [Key;Value] pair parameters (same as with other functions like Substitute() that support flexible parameters). So a ComputeModel() function that passes three parameters for estimating the cost of a house may look like this: ComputeModel( “estimatePrice” ; [ “zipCode” ; “43215” ] ; [ “bedrooms” ; 3 ] ; [ “bathrooms” ; 2 ] ) Or a function that passes an image for analysis may look something like this: ComputeModel( “isThisAToaster” ; “image” ; MyTable::ImageField ) An additional note for Vision type CoreML models is that they also support two additional features that can limit the number of results returned. This is important as some machine learning models for image analysis can return thousands of results (for instance, if you had a vision model that returned the coordinates of all the green pixels in an image). These two additional parameters are: confidenceLowerLimit: A numeric value between 0 and 1.0. Confidence is a percent measurement of how sure the machine learning model is of the request. For example, you might get a confidence value of .98 when you pass a picture of a toaster to the above calculation. If you made this parameter 1.0, you may not get any results back, as most machine learning models will not return a 100% accurate match depending on the training methodology. This is extremely useful for filtering out low level matches though, saving you processing time later. returnAtLeastOne: This is a boolean (1 or zero). This parameter is only useful in conjunction with the above parameter. Just in case you set a high confidence filter and no results match, then the result with the highest confidence will be returned if this parameter is enabled. Step 3: Evaluate the model results. For the majority of use cases, the above ComputeModel() function will be used in a Set Variable or Set Field script step so that the results of the machine learning analysis can be checked. Results from most machine learning models are returned as JSON, so it’s quite easy with FileMaker’s native JSON functions to process the model results. For example, if I passed this calculation with my vision model to identify toasters in an image: ComputeModel( “locateToasters” ; [“image” ; MyTable::ImageField] ; [“confidenceLowerLimit” ; 1] ; [“returnAtLeastOne” ; 1] ) I would get the result with the highest confidence similar to this: [{“location”:”upper-left”,”confidence”:0.920526770564}] And I would be able to create a simple script that marks the toaster location in my record: Set Variable [ $result ; JSONGetElement( ComputeModel ( etc…) ; 0 ) ] If [ JSONGetElement( $result ; “confidence” ) > .75 ] Set Field [ MyTable::ToasterDetails ; “There is a toaster located in the “ & JSONGetElement( $result ; “location” ) & “ of the picture.” ] End If That’s it! Easy machine learning integration with just a few steps in FileMaker 19! Do you have ideas for how you would use machine learning? Please comment below. Afficher la totalité du billet
  2. Overview of the new Add-ons feature in FileMaker 19 With FileMaker 19 comes several new tools that bolster the toolkit we have access to as developers. Among them is the Add-ons feature which allows you to simply select pre-developed features to quickly add and remove from an existing app. This affords us an order of magnitude leap in our ability to iterate when working on our apps. If we consider what the process looked like before we can recognize the substantial benefits in terms of the amount of time saved for implementing features. So before Add-ons, to integrate some new functionality the process looked something like this depending on your feature’s dependencies: Import Tables Import Custom Functions Configure the ERD Update field definitions Add Layouts Import Scripts Copy over Value Lists Import Themes Copy over layout objects. Add Script Triggers Add Accounts/Privilege Sets Add Custom Menus Quite the process just to add something you’ve already spent the time developing. So, let’s look at the new addon feature process for some comparison. Go into layout mode and select the Add-ons pane Click the plus button Select the Add-on you want to add Click Choose From here FileMaker will now add all of the supporting infrastructure including layouts, layout objects, relationships, scripts etc. This is a big deal! It affords us the ability to quickly add functionality in a fraction of the time it previously did. Not only that we can just as easily remove the feature should we decide it doesn’t meet our particular need. That process looks like: In layout mode, select the add-on you’d like to remove Right-click it and select Uninstall Add-on From the dialogue select Uninstall Add-on That’s the whole process. Any schema, custom functions, layouts, scripts are removed as if they were never even there! This is an incredible step forward for FileMaker development and I am personally grateful the team over at Claris recognized the need that we have to make our code more portable. What is it that you’re are looking forward to with Add-ons and how it can impact your development? Please comment below. Afficher la totalité du billet
  3. As FileMaker developers, it’s common practice to need to contact the client records stored in the database, often scheduled daily, or weekly, or by a specific event. Without FileMaker’s ability to automate emails, this could become very time consuming. This blog post will cover the essential scripting techniques required to save time by automating emails and optimize communication with clients by attaching files. The Send Mail script step Right off the bat, the most important thing to understand is the Send Mail script step. Make sure to read all of the documentation for the FileMaker 18 version of this script step. There were no big changes to this script step, with the recent release of 18, but an important change to this script step was introduced with FileMaker 17, and that is the ability to attach multiple attachments to an email. There is a great deal of options that come along with this script step. The first option is specified on the same line as the script step, the option to leave dialog on or off. Leaving dialog on will bring up the default email application, and leave it open for review, rather than sending it. In some email applications, the new message is left in the Drafts folder. If With Dialog is left off, the email is composed and placed in the email applications Outbox, ready to be sent. Opening the options dialog, presents you with much more choices that you will need to understand to be able to use this script step properly. The first option being Send Via:, with the options of Email Client, or SMTP Server. SMTP server The Simple Mail Transfer Protocol, also known as SMTP, is a communication protocol for email transmission. SMTP is used for sending, not receiving mail. At this point, you may still be wondering why you would choose SMTP. SMTP is one less layer of complexity that your application must deal with. Using the mail client introduces additional points of failure over sending via SMTP directly. You can avoid issues you would otherwise need to consider, such as, is FileMaker compatible with the mail client? and is the mail client configured correctly? To send emails through SMTP with FileMaker, you must provide sender information, as well as SMTP Server information. When you choose SMTP Server in the Send Mail Options dialog, a new dialog box opens for the SMTP options. Explanations of each field within this dialog can be found in the chart below. Send Mail script step options Once you’ve decided if you will be sending mail through the E-Mail Client or an SMTP Server, the next option to consider is if you want to send one email using data from the current record or, send multiple emails (one for each client in the found set). Sometimes, all emails generated need to be sent to one static email address, but things are not always that simple. You will often need to specify the destination emailfield with a field name, or a calculation. Keep in mind that when utilizing scripting, you can send emails to multiple recipients, while the send email using data from the current record is selected. For the To, CC, BCC and Subject fields, you will have the options to Specify by Field, Or Specify by Calculation. For situations where each record has one field per record, storing one email address each, all you need to do is specify that field. In situations where you need to send the email to multiple emails stored on one record, you need to make sure that the emails are separated properly, using carriage returns (¶). This can still be done either through a field, or a calculation, just make sure, if using specify by field that the field is formatted correctly. You may want to use a calculation field that cannot be edited by users, to concatenate the list of emails. The body Unlike the previously covered email fields, the Body presents a third option, to Insert Text from a File. Selecting this option will open a dialog that asks you to choose a file. Note that to be able to select a file, it must be a .txt file. A useful technique for creating a longer and/or more dynamic Body is using a Let statement to set a variable. You may also need to use a Let statement to specify a To, CC, or BCC, or Subject, but I use it almost every time I specify the calculation for a Body. Below is an example of a calculation I would use for a $body variable in a script to send an email to a client. Using a Let statement like this will make the calculation easier to read and make changes to, if you need to come back to it. Also, this will help anyone else who needs to make changes to the calculation. When you don’t make your Body calculation dynamic like this, you will likely soon be overwhelmed by the amount of concatenations you need to read to make what could be a simple change. The following calculation displays the same output, but is much harder to read and change: No matter how many indents and carriage returns you add to this calculation, it will never be easy for a human to read. So, help your coworkers out by using Let statements and variables to construct your email options. Attachments The last option on the Send Mail [] options dialogue is to Attach Files. The button is found at the bottom left of the Send Mail dialog box and it opens up its own dialog box. If you need to just attach one file, the Add File… button at the top right will pull up the Finder or File Explorer. Selecting a file from this window will properly assemble the path needed. You still have the ability to construct these paths manually, but it is recommended to use variables for the construction. As mentioned earlier, FileMaker 17 introduced the ability to add multiple attachments to an email. This can be done in many ways, the first being to simply select multiple files using Command/Control or Shift. Doing this will format the multiple paths correctly, using carriage returns. This correct file path should be noted if you plan on attaching multiple files by constructing the paths yourself with a variable. The carriage returns will need to be included either within the variable, if you will be building or multiple paths within one variable (done using list function in the first image below), or in the specify file box, if you have a different variable for each path. (second image below) Conclusion Understanding the Send Mail script step is absolutely necessary in FileMaker development. Without FileMaker’s ability to automate emails, you could end up needing an employee whose entire job is writing emails to clients, or users of a file. It’s important to understand how to set up email automation in a modular fashion so that other developers can understand and modify the scripts, if need be. Hopefully this blog post helped you understand the essential scripting techniques required to save time by automating emails and optimize communication with clients by attaching files. Afficher la totalité du billet
  4. FREDERICK, MD—MainSpring, a FileMaker Business Alliance Platinum member and four-time North American FileMaker Partner of the Year, recently announced its exclusive letter of supply on the GSA Schedule, making it simpler and more affordable for government entities to purchase FileMaker licenses. This is the most recent addition over the span of their 20-year Schedule. The FileMaker licensing offering will serve as a complement to MainSpring’s existing FileMaker development and FileMaker training offerings. “With the addition of FileMaker licensing [to our Schedule], we are confident that we will be able to provide our clients with a ‘one-stop-shop’ for all things FileMaker,” said MainSpring Chief Executive Officer Marshall Micheals. “As a leader in FileMaker solutions, this [addition] will allow us to provide seamless, end-to-end customer service that our clients have come to expect from our firm.” MainSpring has previously developed FileMaker systems for the government, including a purchase request tracking system for the National Institute of Health (NIH), inventory tracking systems for the Food and Drug Administration (FDA), and an exhibit system for the Smithsonian Institute. FileMaker is a service offering of Claris International, Inc., formerly known as FileMaker, Inc. and is a subsidiary of Apple, Inc. For more information on MainSpring’s FileMaker GSA Schedule offerings, please contact FileMaker Coordinator Maria Melendez-Salas at msalas@gomainspring.com. About MainSpring As a FileMaker Business Alliance platinum member since 1996 and a regular presenter at developer conferences around the world, MainSpring has worked directly with Claris International to streamline the licensing process in order to simplify the experience for FileMaker users. It’s this streamlined, customer-service-first approach that has allowed MainSpring to help thousands of FileMaker users adopt the FileMaker platform to build simple, effective, beautiful apps that help business owners worldwide. MainSpring is headquartered in Frederick, Md., with offices in Florida, Ohio, Washington and Wisconsin. The firm supports a wide range of clients including businesses, nonprofits and government agencies such as the Department of Defense. Afficher la totalité du billet
  5. The reincarnation decision Whether it’s from age, functionality or neglect, all software eventually reaches its end of life. When we approach custom software with a client, we normally will evaluate several factors before deciding whether our engagement will be simple support, light rebuild or even a complete ground up reincarnation. Here are some of the factors we consider: Cost Cost is the factor that clients are interested in hearing our thoughts on; But it’s also one of the most difficult things to estimate. We’re firm believers in continuous improvement, but in order to get to a minimum viable product to be able to improve on, sometimes it will cost more to fix an existing app versus starting again from scratch. Our considerations on cost then steer towards: Is it going to cost more in the long run to get to where we want to be if we must tread through an existing legacy application first? Knowing what we know now about the necessary functionality, how difficult would it be to start over? Is there an opportunity to improve the quality of all features and the database contents through a ground-up rebuild? Age Age is the next factor we look at. This can lead to numerous issues in custom software, as the older an app gets, the higher likelihood that it has somehow been fragmented in some way from the original design and vision. When was the app first developed? Who developed it? Has it been converted from very early versions of platform software, like FileMaker version 7 or older? When was the last time the app received minor and major updates? Who developed those changes? How were those updates requested and documented? Has the software been updated by many developers over time, or just one? Functionality Functionality assessment is an important part of the decision as well. If there are many functions of the software that are not working properly, then it may be an easy choice to start fresh and develop new functions that work. Unused functions can clutter the app and also become dangerous dependencies during future changes. Do users frequently complain that functions don’t work properly? Do users complain that performance is slow? Does analysis show a lot of items in the UI and schema that are broken? Is there a lot of functionality that sits there being unused? Data Data is one of the last things we consider, but also the most important. After all, most of the apps we develop have a pretty major database component underlying the interface. What are the current backup and record archiving strategies? Are there orphaned records in sub tables where parent records were deleted? Does the data schema represent performance minded design (reducing index, calculation and summary fields)? Are there tables that are not in use (zero records). Are there fields that are duplicated, redundant, poorly named? When was the last time the app was compacted? After considering factors like these, it’s time to make the choice! Sometimes it’s ok to choose to just provide basic support to keep things up and running. Other times it makes sense to approach a new project. It’s an exciting prospect that can also make many people nervous. Documenting and researching a system to make an informed decision on how to proceed is a great first step. Afficher la totalité du billet
  6. An API (application program interface) is a set of routines, protocols, and tools that specify how software components should interact. The purpose of the FileMaker Data API is to allow web services to access data in hosted databases. The FileMaker Data API conforms to Representational State Transfer (REST) architecture, so you may hear it referred to as a REST API. Your web service or application can make calls to the FileMaker Data API in order to get a token that authenticates the connection and grants access to the hosted database. This token needs to be included in the header of all subsequent calls to the hosted. The token will be valid until you log out of the database session, or for 15 minutes. This connection is referred to as a session. The calls to the FileMaker Data API can be used to create, update, delete, and find records, view data of specific records, perform scripts and more. The FileMaker Data API returns data in JSON, which is a notation designed to be easily read by humans. Preparing your database for data API access In order to prepare your database for Data API access, it needs to be hosted. The server name is essential in writing calls to the FileMaker Data API, as you will see in a later section. Along with all the standard techniques for protecting a hosted database, a requirement for using the FileMaker Data API is to have a password protected account. It is recommended to designate a specific account solely for the purpose of interacting with the FileMaker Data API. When creating that account, you can satisfy the last requirement of prepping your FileMaker which is enabling the fmrest extended privilege. To assign this extended privilege to a privilege set, Click File > Manage > Security…, then click advanced settings in the bottom left corner, go the Extended Privileges tab, double click the desired keyword, then assign it to the privilege sets that you want to grant FileMaker Data API access to. Something to keep in mind when prepping your databases for FileMaker Data API access is that, when retrieving data, the FileMaker Data API will grab every field on a specific LAYOUT. So, if you want the API to have access to more fields than the layouts do, you will need to make specific layouts, that include all of the desired fields, to direct the API calls to. Write FileMaker data API calls A FileMaker Data API calls consist of the following components: An HTTP Method (HTTP verb) HTTP Headers A call URL Parameter data in JSON format These components should look familiar to developers experienced in using the Insert From URL script steps. You can dive deeper into the capabilities and uses of each of these components inside the FileMaker 18 Data API Guide. To demonstrate FileMaker Data API calls in this blog I will be using an API development application called Postman. One of the features of Postman is that it allows you to create and manage “collections” which are organized groups of “requests”, which will FileMaker Data API calls in this example. FileMaker Data API Calls can be used to: Connect/Disconnect from a Database Get metadata (pertaining to host and hosted databases) Create/Edit/Delete records Duplicate records Get a single record Get a range of records Upload container data Perform a find request Set global field values Run FileMaker Scripts Authenticate a database session No matter what your end goal in using the FileMaker Data API is, your first call will remain the same: authenticate. As you will see in the guide, you use an HTTP POST method with the sessions API endpoint specifying the name of the desired hosted database. The password protected account credentials must be specified in the header Authorization string. If the account name and password are valid & have the necessary extended privilege enabled, the generated response will contain the previously mentioned token, and the session is opened. This token will be needed in all subsequent calls. Below is a screenshot of my Postman app, after completing an Authentication call. The URL is near the top, between the HTTP method dropdown and the blue Send button. It will take the format of: /fmi/data/version/databases/database-name/sessions. It is completely essential to make sure the HTTP method dropdown is set to POST for authentication. The guide will tell you the necessary data needed in each component of the call. For example, to login to a database session requires 2 pieces of data in the HTTP header. To edit the components Params, Authorization Headers, Headers, Body, Pre-request Script, or Tests with Postman, use the tab control, below the URL bar. Once all the components are set, clicking the blue Send button will generate a response, which in the case of authentication, contains the token needed for all other calls. Getting records Once you have the authentication, your session is open and you can use that token to make calls that allow you to get or send information to your database, through the FileMaker Data API. Let’s break down a simple GET record API call. The URL structure for getting a record is: /fmi/data/version/databases/database-name/layouts/layout-name/records/record-id When setting up a call like this, remember that when getting record data using the FileMaker Data API, the API can only retrieve data from fields that are on the layout you point it to. Also, keep in mind that there is an additional format for GET, for when you need to retrieve portal data. As you can see in the guide’s info to get a single record, the HTTP heard requires Authorization, of the type: Bearer session-token. So, go to the authorization portion of the tab control, and select Bearer Token as the TYPE. Once you do that, you are provided a textbox for the token, shown below, where you can enter the token you were given in the response of your authentication call. Along with the authorization, an additional header is required, and that is setting the Content-Type. To do that, click the headers section of the tab control, begin typing in the empty KEY field and select the keyword, Content-Type. Go to the corresponding VALUE field and enter the keyword application/json. Once you have both the Authorization & the Content-Type set, click send, and you will receive all of the data on the specified layout for the record you specified in the URL. My example GET single record call is posted below. Creating records The last example call I will cover in this blog is creating records. To create a record use an HTTP POST call with the structure provided by the guide: /fmi/data/version/databases/database-name/layouts/layout-name/records As always, make sure you have a designated layout in mind, or create one if necessary. The layout specified in the end point must contain every field you want to put data in. As far as headers, you need the typical Authorization data, as well as the same Content-Type header as the previous Get Records example. What is new with this call is the essential Body section, where you will store the data of the record you want to create. The Body is expecting data in JSON format containing field-and-value pairs that specify values for fields that are in the target layout. The JSON object must be named “fieldData”. To create an empty record, send in the following “empty” JSON object: But for records where you know the data you would like to enter, compose key-value pairs based on the fields on your layout. I’ve included a very simple example JSON below, with the corresponding layout. I think it’s important to notice the use of commas instead of semicolons. When you send the call with these correct headers, you will generate a “response” that includes the recordId of your newly created record. The response also includes a message, which will say “OK” if all goes well, and it will provide details of the error, if the record is not created. In conclusion… It is important to recognize that the examples in this blog just scratch the surface of the capabilities and uses of the FileMaker Data API. We did not even touch running scripts or creating or getting portal data. The purpose of this blog was to learn to prepare your databases for access through the Data API, as well as learn how the Postman app can help you save time, stay organized and understand the pieces of a call. Afficher la totalité du billet
  7. With the release of the latest generation of FileMaker Cloud, Claris has taken a big leap into cloud-based infrastructure on the FileMaker platform. However, using the name FileMaker Cloud, when there is another legacy version of FileMaker Cloud, as well as FileMaker Server on the cloud, things start to get confusing. I’ll try and outline some of the key differences in this article. FileMaker hosting products There are three FileMaker products to consider when hosting your FileMaker apps: 1. FileMaker Server Available as an installer for both Mac and Windows operating systems, FileMaker Server is considered the “on premises” (on prem) version of the hosting software. While you can install this on an in-house physical server, it also easily transitions to being installed on the cloud in a virtual cloud server environment. Cloud providers like Amazon AWS and Microsoft Azure both have virtual server versions of Windows Server 2016 that can run the latest FileMaker Server software. FileMaker has noted that the on-prem version of FileMaker server is important and will continue to be developed in the future. It is the product that allows for the most control over your hosting environment. MainSpring offers a managed hosting option for cloud-based FileMaker Servers. 2. FileMaker Cloud 1.x Released as versions 1.15, 1.16, 1.17 and 1.18, this version of FileMaker Cloud was built as a Linux services offering on top of the Amazon AWS Marketplace. While this was a good stepping stone into a version of FileMaker Server that could run by coupling together different Linux Cloud services, it was limited by a complicated setup structure through the AWS Marketplace and Orbitera for distribution. Claris knew they could do better, so they focused on building the next version of FileMaker Cloud. While FileMaker Cloud 1.x has officially been deprecated (see roadmap), FileMaker will be releasing 1.19 next year, as well as continuing support for all 1.x versions until January 1, 2022. 3. FileMaker Cloud 2.x Released with version 2.18, the next gen FileMaker Cloud product is almost completely different than the predecessor. Rather than focus on trying to create a “FileMaker Server” experience on the cloud to replace the on-prem offering, Claris has focused on creating a new “one stop shop” that makes it incredibly easy to setup and deploy custom apps. This one-stop-shop will include cloud instance fees, FileMaker user licensing, drive storage all in one accessible portal. The portal becomes an easy to use tool to manage your organization’s apps, user accounts with the new FileMaker federated ID and hosting settings. The convenience does trade away some features though. For that we’ll cover key differences in the next section. Key differences in FileMaker Cloud 2.0 There are several limitations and differences between FileMaker Cloud 2.0 and the other two products. Since it’s a new product, we are happy to advise developers and users on what would be the best option for them. Here are some high-level bullet points to consider: Licensing – There is a major difference here. Since licensing is included in the cost of FileMaker Cloud 2.x and it is a separate product, it does not support “byol” licensing. Meaning that if you already had purchased licensing for FileMaker Server, or FileMaker Cloud 1.x, it will not convert over to FileMaker cloud 2.x. Custom web publishing – There is no ability to run the legacy XML or PHP custom web publishing features. This continues to be a feature in FileMaker Server, but you will need to rewrite all custom web publishing code to use the Data API here. Plugins – Plain and simple, they are not supported. Both FileMaker Cloud 1.x and FileMaker Server still support plugins, so if your apps depend on plugins to get the job done, you will need to use one of those products. Remote desktop – Since it’s Linux based and very automated, you will not have a server desktop to log into like you do for on-prem. This means people running third party utilities like MirrorSync, or hosting web files in their FileMaker web server, will need to host a second server to run those third-party configurations. External authentication – If you use LDAP or OAuth for authenticating users, FileMaker Cloud 2.x is not for you. Since it uses the FileMaker Federated ID for authentication, it will not support other External Authentication options. Anonymous users – If you have an existing license for concurrent/anonymous users, those will not convert to FileMaker Cloud 2.x since pricing for it is heavily based on your actual user count. FileMaker 18 – Your users must have the latest version of FileMaker Pro Advanced 18 or FileMaker Go 18 in order to connect to FileMaker Cloud 2.x. Any older versions of FileMaker cannot support connecting to this new product. Key tip – The FileMaker ID features in FileMaker 18.0.3 are activated by adding a FileMaker Cloud 2.x server to your hosts under the File > Hosts > Show Hosts dialog. Custom domains – Since FileMaker Cloud 2.x includes an SSL secured domain, custom domains and custom SSL certificates are not supported. Data retention policy – Custom app data is held for 45 days after cancellation. Auto-reboot – Your FileMaker Cloud 2.x host will be rebooted once per day automatically for maintenance. Key benefits of FileMaker Cloud 2.x Even with some differences and sacrifices, FileMaker Cloud 2.x comes with several benefits that make it a great addition to the FileMaker platform. Since Claris has announced they are “cloud-first”, you can expect to see new features in FileMaker Cloud 2.x + in the years to come before they are released in corresponding FileMaker Server versions. Claris takes care of the security.Multi Factor AuthenticationIncluded SSL CertificatesEnd to end encryptionNetwork security (whitelisting, HSM & firewall with DDoS protection)Data security (auto backup) Scalability is easily accomplished at all levels. User licensing, server hardware and capacity is all instantly scalable without complicated rebuilding or waiting on licensing quotes. Support comes with a 1 year included support plan via a “success team”. In addition to this, monitoring and alerts are already setup by default to help keep you informed. Still undecided? As a Claris Platinum Partner, we’re experts in Hosting, Licensing, Development and Training. Contact us today if you have any questions. Afficher la totalité du billet
  8. If I were to mention MVP vs MVP, what would be the first thing that comes to mind? For most people, they would be envisioning the greatest rivalries and epic battles in sports history. Perhaps Larry Bird vs Magic Johnson, or Peyton Manning vs Tom Brady, or Sidney Crosby vs Alexander Ovechkin. After all, the acronym MVP is mostly associated with Most Valuable Player. Within the agile development community, however, the acronym MVP represents something entirely different… The Minimum (or Most) Viable Product (MVP), as defined by Eric Ries, is a version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort. It’s a strategy to avoid developing products that our clients do not need or want by maximizing our learning of what is truly valuable to the client. By developing in MVP iterations, we are able to deliver deployable products in the quickest way possible. We’re able to quickly get feedback and keep our client engaged. In this way, we develop what our client needs and not what we think they need. Based on my experiences, this is the only proven formula for saving our clients’ money and keeping them happy throughout the entire development process. Developing in Minimum Viable Product iterations has been so well-received and liked by our clients, some of them have lost focus on maintaining the Most Valuable Product. Through client collaboration, a Minimum Viable Product is determined at some point in time. A series of Minimum Viable Product, in theory, will lead to a final product that is most valuable to the client at that point in time. Once the final product is released, clients are euphorically happy because they have a product they exactly want and didn’t spend any extra money on it. It is understandable to think that they have the Most Valuable Product. In fact, that is far from the case… Whereas the Minimum Viable Product is based on a point in time, the Most Valuable Product is more fluid. The Most Valuable Product will change along with a client’s business & industry. It must keep you operating at maximum efficiency and keep you ahead of your competitors. In order to ensure the euphoria at project completion last and that you have the Most Valuable Product, one must always practice Continuous Improvement principles. I hope this blog clarifies that the Minimum Viable Product ≠ Most Valuable Product. If you need help obtaining your Most Valuable Product, through Continuous Improvement principles, don’t hesitate to contact us. Afficher la totalité du billet
  9. The last two times the FileMaker certification test was released, I found out from my friends in Japan on Facebook that the test was available before I saw the community announcement for it. So, I jumped right in to schedule my certification test. This time, I was excited to see a new testing option: “take test using your own computer.” Could it be? Excited about the prospect of this newfound convenience, I booked it right away. Having just finished up taking the test though, there’s some things to consider here that may put you off from taking the test from home yourself… Preparing to take the test A red message in the online portal will “highly encourage” you to take a test before taking your test. This sample test familiarizes you with what will be required to take the actual test. You’ll be sent a link via text message that will launch a browser app on your smartphone. This will require you to take 4 pictures of your “testing room” from the front, back, and both sides of your computer. Also required is a picture of the front and back side of your ID (photo ID with signature–I used my state driver’s license). (Side note… Uploading photos through a browser app might not seem secure to some people. I also couldn’t find any documentation that says what Pearson VUE’s retention policy is for those photos. If they’re not destroyed after completing a test, then they’re vulnerable to data breaches of people getting your personal data AND a high res photo of your official ID.) After uploading, pressing a refresh button in the browser portal will greet you with a download for OnVUE, the third-party app installed locally on your machine to deliver the test. After installing (and on OSX, bypassing the security warning about installing an app downloaded from the internet), you will take a simple test with a few introduction slides and questions before completing the readiness test. From here, you’re ready to take the exam. Taking the exam On test day, 30 minutes before your scheduled exam, a “begin exam” link will become available in your Pearson web portal. You will repeat the exact same process described above (get link, upload photos, etc..). This time after the refresh button, a chat window will pop open and a “proctor,” who you never actually see visually or hear audio from, will confirm with your webcam that it is you taking the exam and you are taking it in the same place based on the photos you uploaded. Once confirmed, your test will start without any other confirmation and the timer will immediately run. From here, the test is pretty much the same as usual. In OSX, I noticed there was a black lock icon for a “browser block” app, which, I assume, logs keystrokes along with blocking certain keystrokes that could be used for cheating or taking screenshots of the test. I completed the test in 105 of 120 allowed minutes, but read on for the rest of the story! Experientia Interruptio So, let’s get to the reasons why I probably wouldn’t take the test again from home: 1. Midway through my test, the chat window disruptively popped open while I was reading a question. It was my proctor, and he demanded that I rotate my computer screen so he could view a 360-degree view of my room. I have a 27″ iMac tied down with cable organizers, so this took a few minutes to even accomplish. After this, the chat message told me to “keep my eyes on the screen.” Ok, why would they say that since I was already? I realized that because I sit close enough to my 27″ iMac, that the eye travel between the top left corner (reading questions and marking responses) and the lower corner (clicking next to navigate to the next question) was really significant. Apparently, this was enough to make them think that I was looking beyond my screen or down at my desk to an invisible piece of paper that I snuck in. 2. If you like looking at yourself, great. There’s a toolbar that sits in the top middle of the screen with a little video of your webcam showing during the entire process. It’s distracting, but a necessary evil of the “home exam.” The toolbar also contains the buttons to open the chat dialog with the proctor (unless it’s automatically launched as noted above), and a “notepad” function that takes the place of the small dry erase board and marker I normally get for notes at my local test center. 3. That notepad? Kind of a joke. Anyone that’s familiar with FMEasyCanvas–it’s the same exact thing. Also, your notes persist from question to question, so you need to erase your previous scratch work (with an eraser tool) to reset the surface. For me, the dry erase board is better; But, I understand the need, and at least something is offered. 4. Pearson’s software crashed my computer. After completing the test, I got the standard “you passed” page. I then clicked the “end exam” button. A blue scroll wheel spun for a minute, then OSX’s beach ball spun for a minute. I managed to open the chat window and ask the proctor if my score was recorded. I was then instructed it was ok to force quit the app. However, due to the “screen lock” utility that was being run, I didn’t have any access to menus, and all keyboard shortcuts were seemingly nonfunctional. I used the physical power button on my iMac to force a shutdown of my entire machine. After reboot, I was really stressed over making sure my score was recorded, so I spent another 10 minutes on the line with Pearson support to confirm that the score report came through. To wrap up, I can see the positive in having the online proctored test available. For people that are not able to travel to testing centers, or just don’t like the testing centers they have, it’s a viable option. Overall, what are your thoughts on the FileMaker 18 exam? Afficher la totalité du billet
  10. I thought it would be helpful to write a blog that other developers can use to see the resources that I use while developing and learning about FileMaker. As a developer with over 10 years of experience, I can genuinely testify that these resources are handy whether you’re a beginner, novice or expert. 1. MainSpring’s FileMaker blogs Call it a selfless plug, or call it what you may—but MainSpring developers have a wealth of knowledge. Anytime one of my colleagues has anything to share, I’m all ears. Plus, reviewing and learning new things internally is always fun. We have both blogs and vlogs (video blogs) that touch on a wide range of topics. Some of the blogs even contain example files that you can download and review for free! Check them out (and subscribe to our blog) here. 2. Modular FileMaker If you’re developing a popular complex feature, you would want to check this site out first. Modular FileMaker has a library of pre-made solutions that you can download for free and that are easily portable to your own solution. I’ve had great success implementing the MailChimp, Browser Navigation and Card Placer modules to name a few. Check out their blog here. 3. Brian Dunning’s FileMaker Custom Functions FileMaker has a convenient library of scripts steps for our disposal, but we’re in the business of custom development, and sometimes, that is not enough. In such cases, we’re able to develop our own custom functions. Brian Dunning’s FileMaker Custom Functions allows you to search and share custom functions as needed. I’ve lost count on how many times I’ve incorporated a custom function from this site into my solution. If you haven’t discovered this site already, I’m sure you’ll find it useful as well. Check it out here. 4. FileMaker Hacks What is a list without some sort of “hack” site now a days? It seems like there’s a site for cooking hacks, camping hacks, fishing hacks, etc… Of course, FileMaker is no different. This site is dedicated to providing us all sorts of FileMaker tips & tricks. It’s also a great learning tool for all, as their posts contains useful example files. Check it out here. 5. FileMaker Magazine If you’re a fan of video tutorials, then this site is for you. FileMaker Magazine has a huge library of videos dating back as far as 2003! As an extra bonus, some of their postings will contain an example file, as well. Afficher la totalité du billet
  11. Stamplay Limited was incorporated in August of 2012 by Giuliano Iacobelli—right around the time when FileMaker was just settling into its most recent overhaul of the platform with version 12. An Italian startup with ties to London, Iacobelli probably never imagined his 400 Pound worth of shares in the startup could turn into an acquisition by Apple worth an estimated 12,500 times that in just over six years. It was also probably not on his mind that, in seven years, he would be calling Santa Clara and Silicon Valley his new home and speaking on a stage in front of more than a thousand FileMaker developers at their annual DevCon. But, as fate would have it, FileMaker Inc., now known as Claris International, has acquired Stamplay. This acquisition has inspired a brand-new product called Claris Connect; it’s poised to hit the market as an evolved, next-generation cloud integration-as-a-service platform in the spring of 2020. Stamplay pioneered “flow-based” integration. Their interface provided not just an easy way to tie two services together (like what competitors Zapier, Microsoft Flow and IFTTT can do) but it also allowed for a virtually unlimited workflow that can tie many services together with intelligently driven logic. With ease of use in mind, the interface for Stamplay was immediately hailed as powerful, easy to use and robust enough to perform at the enterprise level. This led to high praise and reviews from around the internet. Recent pricing reports on Stamplay recorded that a “pro” level was $150/month, while a “business plan” was listed at $499/month. An enterprise level offering was also available without any pricing information (which is common amongst web applications). While pricing isn’t available yet from Claris, it should be noted that these prices are historically higher than competitors Zapier ($250 “team” license) and Microsoft Flow ($15/user/month). However, both Zapier and Flow, and any other similar product in the category, won’t have a direct connector for FileMaker—not like Claris Connect will be able to offer, anyway. This reason alone should excite FileMaker developers. Prior to this, you would have to go through the time-consuming process of creating your own webhook endpoints for each FileMaker path you want to connect in order to connect a flow-based action. For those developers that attended DevCon, you probably noted that four FileMaker community contributors were recognized for being early testers for Claris Connect. If you caught any of those four speakers’ sessions, recorded and live demos of the early test were shown as a sneak peek of what’s to come. For me, the excitement lies in the “room to grow” aspect of Claris Connect. Once the framework for building connectors is put in place, we should see a rapid advancement in FileMaker’s ability to connect quickly with outside apps. I’d encourage anyone not at DevCon to watch the Visionary Keynote that Claris released on YouTube. What are your thoughts on Claris Connect? Comment below to let us know what you think! Afficher la totalité du billet
  12. Earlier today, at the 24th annual DevCon, the CEO of FileMaker, Inc. announced that the company rebranded and will now be Claris International, Inc. FileMaker will still live on as a service offering under the Claris banner. Why the name Claris was chosen To learn more about why they chose the name Claris, check out their feature blog. The future for Claris International, Inc. To find out more about this new chapter, check out the official introduction from the CEO, Brad Freitag. Afficher la totalité du billet
  13. When I started developing at the end of 2013, I was beset with uncertainty. I had just changed careers without any formal education, and my ability to educate myself was paramount to succeeding in the new profession. Luckily, I happened to be local to a fantastic user group for FileMaker called the Central Ohio FileMaker Users Group, or COFMUG, which I was encouraged to check out by a former colleague. To say the least, it has been invaluable in more ways than one. Mentorship I have benefit in different ways from everyone in my user group. I was hesitant to show up since I was new to FileMaker, but I was welcomed by a supportive environment. I’ve received help from folks who were willing to share their time outside of the user group meetings with FileMaker to XML. Someone even took the time to help me with my workflow and organization! Inspiration First off, being able to see the work that other members were doing was inspirational. It also has been very instructive seeing the different approaches to the same problems. It showed me what possibilities are out there and got me interested in my own side projects, which offered lessons of their own. It instills me with the motivation that something really cool is just around the corner if you put in the effort. Colleagues COFMUG was especially helpful to participate in talks about the platform that I spend so much of my time developing and thinking about. The interactive nature of the meetings invites robust and thorough discussions. It was like panning for gold every month—where I’d write down the best nuggets from the night to take back home to the office to make use of. To this day, I still get value from my notes taken early on now that I understand the platform more. Summation Being a part of a user group has fostered my curiosity, enriched my skill set and kept development from ever feeling like just a job to me. If you haven’t attended one—do so! We help each other when we get together; knowledge is the only thing that gets more valuable with the more people that have it. Afficher la totalité du billet
  14. QuickBooks is an integrated accounting software package developed by Intuit. With over 5.6 million customers, QuickBooks offers copious help to the accounting staff of small and large business owners. Their software can be used to manage sales and expenses and keep track of daily transactions by invoicing customers, paying bills, generating reports and more. Integrating with FileMaker For FileMaker users and developers who need an outside application, such as QuickBooks, to communicate with their FileMaker App, integration between FileMaker and the other application will help increase productivity and efficiency. Integration will allow the two applications to communicate with each other. This will save users and/or developers tremendous amounts of effort. If a user was using FileMaker along with an outside application, but did not have the two apps integrated, he or she constantly would end up doing double data entry from one system to the next. Integration could be useful to companies with a unique workflow. Also, integrating FileMaker with QuickBooks could help companies that want their employees to have access to data on customers, items, inventory, payments, etc., while protecting the QuickBooks file. A typical need for integration between FileMaker and QuickBooks is to automate the push/pull of invoice data. FileMaker is used to create a custom solution that allows a team to gather customer invoice data from a desktop, web, or iOS device. Developers would then create scripts to send the invoice data to QuickBooks and pull updates back into FileMaker. It can be set up so that when a customer record is created in FileMaker, a corresponding record is automatically created in QuickBooks. FileMaker Books Connector The FM Books Connector plugin, developed by Productive Computing, is used for the data exchange between FileMaker and QuickBooks Desktop for Windows. A notable limitation of the FM Books connector is that it only works for connecting to QuickBooks Desktop on Windows; it is not supported on Mac. It requires an annual subscription to purchase this product, but it allows for adding, editing, deleting, or querying basically any QuickBooks data from inside FileMaker Pro. One of the benefits of the FM Books Connector is that you do not need to learn qbXML, QuickBooks Extensible Markup Language, to use it. The website where you will purchase and download the plug-in also contains a download to a sample file for a demo, along with a video tutorial about getting started. Integrating QuickBooks Online with FileMaker Critical to users that are running QuickBooks on Mac, there is another version of the Plug-in, developed by Productive Computing, that works with Mac and QuickBooks online. It is called the FM Books Online Edition, and it is supported on Mac, Windows, as well as FM Cloud. The demo file will show you examples on posting new customers or invoices to QuickBooks, pulling customers or invoices into FileMaker Pro from QuickBooks, updating customers in QuickBooks and pulling a customer balance into FileMaker Pro. Alternative QuickBooks and FileMaker integration options The FM Books Connector plug-in is not the only way to integrate QuickBooks with FileMaker, it is just recommended in many situations because it can save time and effort and allows FileMaker developers to skip a large portion of the learning curve QuickBooks will provide to a first-time user. LedgerLink, formerly known as fmQBO, is a solution, developed by Geist Interactive, that can be used as a go-between, between your custom apps and your QuickBooks online account. LedgerLink is a solution, not a plug-in or a driver, it phones home to a licensing server, but it runs entirely on custom functions and scripts. The solution includes a connector file that handles the OAuth portion of QuickBooks Online. LedgerLink requires an annual subscription to its users. Prices vary depending on the number of users, but it is significantly more expensive than the FM Books Connector Plug-in and the FM Books Online Edition Plug-in. Once the connection is established between LedgerLink and QuickBooks Online, you will sync the data, and all of the customer data from your QuickBooks Online account will be in the LedgerLink tables. The data in LedgerLink and QuickBooks Online will always stay synced. You will then be able to create records such as Invoices, with FileMaker, then see them in your QuickBooks Online account. Another option for integrating a custom FileMaker solution with a QuickBooks account is the CData ODBC Driver for QuickBooks. This driver includes powerful, fully-integrated remote access capabilities that QuickBooks Desktop data accessible from virtually anywhere. The driver includes the CData SQL Gateway, which grants the ability to accept incoming SQL and MySQL client connections and execute standard database requests. This driver, which requires a similarly priced annual subscription, but also offers a one-month free trial, allows its users to access QuickBooks accounts through FileMaker, as an ODBC. This driver has versions for Mac OSX, Windows, and Linux. There is also a way to integrate a FileMaker solution with QuickBooks online, using the QBO API, as well as a different way to integrate FileMaker with QuickBooks Desktop. These methods do not require any plug-ins; everything will be done natively. You will, however, need to create a free Intuit Developer account and authenticate QuickBooks Online using OAuth, for integrating FileMaker with QuickBooks online. In conclusion, FileMaker can be integrated with QuickBooks in several ways, and should be if your FileMaker solution constantly needs data from your QuickBooks file. It will be important to thoroughly research the method you intend on using before you purchase a plugin or a driver to make sure you choose the correct method for your equipment and problem. Integrating will grant you the ability to create, delete, update, or query your QuickBooks data from right inside FileMaker Pro Advanced. It will also allow you to automate your accounting processes, prevent duplicate data entry between systems and cut back on human errors. If you have any questions about any of these integration methods, feel free to reach out to us! Afficher la totalité du billet
  15. Although Filemaker has an abundance of third-party resources and plugins, oftentimes it operates best when using its internal functions and skill sets. Let’s take, for example, the process of creating a calendar for a client… The client requested a tool to give them an overview of the month—to see what appointments exist and how many per day. At first, we wanted to implement a calendar. Unfortunately, FileMaker’s layouts do not support layouts that dynamically grow and shrink like many other calendars can and has a hard time showing an at-a-glance perspective of things, much like the client wanted. We had explored 3rd party options, such as ‘SoSimple Calendar and Resource Scheduler,’ but ultimately decided to use FileMaker’s built-in listing capabilities. This solved the problem the clients had, while streamlining workflow and reducing dependencies on third-party software, which ultimately decreased the cost of the project overall. Simple at-a-glance list view of doctor scheduling: Sometimes, the answers we are looking for in Filemaker, or other programming languages, are just below our noses, but we need to take a step back to see what the clients want rather than find ourselves in a fruitless chase to rebuild the wheel. FileMaker, the leading Workplace Innovation Platform As we venture more into the world of Filemaker, it’s easy to see the tool’s strengths as the world’s leading Workplace Innovation Platform. It’s important to know what a business needs and what Filemaker can do to best support that goal. That’s why we are committed to doing things The MainSpring Way, so that we can save you and your organization time and money. If you’re ready to see what FileMaker can do for you, contact us today. Afficher la totalité du billet
  • Create New...