Aller au contenu

DB Services

Membres
  • Compteur de contenus

    73
  • Inscription

  • Dernière visite

    jamais
  1. FileMaker Xero Integration

    FileMaker Xero Integration Xero is a comprehensive accounting system for small to medium-sized companies with over a million subscribers. It can handle any accounting task ranging from inventory to bank transactions and it was specially designed to be a cloud-based solution to save clients from IT headaches. And with its simple API, you can integrate it with your FileMaker application to streamline workflow and eliminate double data entry. This article will show you how to integrate FileMaker with Xero, including how to create a Xero developer account and application, establish a connection to the API, make a request, and parse the response. Setting Up A Free Xero Development Account The first step to complete is to create a Xero free developer account. I recommend enabling the Xero demo company after the account setup is complete to use for testing purposes. The demo company is easy to set up and you can reset the data whenever you need to. Simply navigate to the My Xero page and click the Try the Demo Company button. Be sure to set the company time zone that matches your location. Now you need to choose the type of application for Xero. You can connect to Xero as one of three entities: Private Application: allows long term access and bypasses user authorization process. Xero unfortunately uses RSA-SHA1 method to generate public and private keys that can be only generated using third party plugin for now. I suggest establishing connection between Xero and FileMaker as a public application. Public Application: allows 30 minutes connection to Xero using a verifier code. The sample file attached to this article will walk you through this process. Partner Application: allows long term connection through public application to be used by others. Your organization must be approved by Xero to build this type of application. Add your public application following our example below. The company URL needs to start with “http”. The OAuth callback domain can be left empty. To get started, download the demo file shown on this article and follow the step-by-step process. Establishing A Connection With Xero Once you have set up a public application, you’re ready to establish a connection to the accounting API. You can now set http headers with FileMaker 16, but there is no native way to easily parse XML, which is Xero’s default data format. I suggest using the BaseElements plugin as it is a free and powerful tool to parse XML. To authenticate your solution, please reference the documentation on OAuth1.0. The main goal of OAuth1.0 is to make sure the signature string matches what the API expects. The signature string is an encrypted combination of all parameters passed in the request in alphabetical order. The authentication process can be quite tricky, so I highly recommend taking a look under the hood of the example file we have provided. Here’s sample code to request access to your Xero account: Insert from URL [ Select ; With dialog: Off ; $result ; $url ; cURL options: "-X GET" & " -D $httpResponseHeaders" & " -H content-type:application/x-www-form-urlencoded" ] You can easily establish a connection with your consumer key and secret code. But you will have to renew your access code every 30 minutes. Also keep in mind that the URL and request body differ depending on what you are trying to do. Take a look at the Xero documentation to make specific calls to Xero. Making Requests and Parsing the Response Each Xero module has a different URL to call. My example shows you how to create and update each customer, and populate a Xero ID field from the response we get. I highly recommend fine tuning your requests and gaining a better understanding of Xero’s response by using their Xero Previewer application. In the example file provided, you can create and update a Xero contact using a POST request with customer details shown on the customer details screen. Customer data is wrapped in XML formatting using custom functions and then passed as the parameter in the Insert from URL script step. Once a successful request has been made, a response in XML will returned. You will then be able to use the function BE_XPath ( xml ; xpath {; namespaceList ; asText } ) to pull any information out of the response that you wish. <Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Id>ffd5095f-a4d7-4428-b46b-4b06e21d48e2</Id> <Status>OK</Status> <ProviderName>DB Services</ProviderName> <DateTimeUTC>2017-07-31T12:01:34.4110112Z</DateTimeUTC> <Contacts> <Contact> <ContactID>4623e1cb-391a-44d3-9c3b-7e8af035745f</ContactID> <ContactStatus>ACTIVE</ContactStatus> <Name>DB Services</Name> <FirstName>Gayoung</FirstName> <LastName>Moon</LastName> <EmailAddress>sales@dbservices.com</EmailAddress> <Addresses> <Address> <AddressType>STREET</AddressType> <AddressLine1>8604 Allisonville Road</AddressLine1> <AddressLine2>Suite 231</AddressLine2> <City>Indianapolis</City> <Region>IN</Region> <PostalCode>46250</PostalCode> <Country>USA</Country> </Address> <Address> <AddressType>POBOX</AddressType> </Address> </Addresses> <Phones> <Phone> <PhoneType>DEFAULT</PhoneType> </Phone> <Phone> <PhoneType>DDI</PhoneType> </Phone> <Phone> <PhoneType>FAX</PhoneType> </Phone> <Phone> <PhoneType>MOBILE</PhoneType> </Phone> </Phones> <UpdatedDateUTC>2017-07-31T05:19:47.387</UpdatedDateUTC> <IsSupplier>false</IsSupplier> <IsCustomer>false</IsCustomer> </Contact> </Contacts> </Response> For example, you can get the newly created Xero contact ID by using the following set of function: BE_XPath ( $postResponse ; "/Response/Contacts/Contact[1]/ContactID" ) Xero: Things to Keep In Mind It’s important to know limits of Xero API when building integration between FileMaker and Xero. The Xero API continues to improve itself and introduce new functionalities, but for now, here are couple of important items that you need to know: The Xero API is limited to 60 calls in a rolling 60 second window. It also has maximum of 5,000 calls in a 24 hour window. POST to Accounting or Payroll has a size limit of 3.5 MB and a file size limit of 10 MB. This is why Xero suggests developers post bundles of up to 50 elements in one call. All timestamps must be in standard time (aka ignore Daylight Savings). Xero is designed to work with small and medium-sized business the best. Large requests will make both reporting and communication between applications slower. Conclusion Xero is a powerful cloud application for small to medium-sized companies that can be easily integrated with your FileMaker application. Integrating your application with Xero will dramatically streamline your accounting workflow, eliminate double data entry, and reduce IT headaches by going to the cloud. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Download FileMaker Xero Integration Database Please complete the form below to download your FREE FileMaker database file. Name* First Last Company Phone* Email* Terms of Use I agree OPT-IN: I agree that I am downloading a completely free FileMaker application file with no strings attached. This database is unlocked, and I may use it for my business or organization as I see fit. Because I am downloading a free database, I agree that I should receive occasional marketing. I understand that I can OPT-OUT of these emails at anytime. Afficher la totalité du billet
  2. FileMaker Business Intelligence Using Tableau

    FileMaker Business Intelligence Using Tableau With FileMaker 16 you are now able to connect to a powerful business intelligence software called Tableau that helps people see and understand their data. Tableau is a leader in business intelligence software and has been named a leader 5 years in a row in Gartner’s Magic Quadrant. Tableau allows you to create advanced charts and reports of your data, and create interactive dashboards that let you see trends and turn data into actionable insights. With FileMaker’s new REST API connecting to Tableau is easier than ever. How To Connect Data Source To add a FileMaker data source you have to do a little setup first. Make sure you have the following in place: Your FileMaker file is hosted using FileMaker Server 16. You have a valid SSL certificate installed on your FileMaker server. FileMaker Server and solution file must have FileMaker Data API enabled. There’s a layout in your FileMaker file with all the fields you want Tableau to have access to. After you have that set up open up Tableau and under the connect section click the “Web Data Connector” button. This will ask for a URL, which will be https://<<HOST-NAME>>/fmi/rest/tableau/fm_connector.htm. This will take you to the following page. From here just type in your database name, layout name that you wish to pull data from, and the account name and password. You will have to do this process for each layout you wish to pull data from, and like the PHP API, you will only have access to fields that are on the layout. Worksheets, Dashboards, and Stories In Tableau, each worksheet is an individual chart, and a dashboard is a combination of various worksheets that are capable of interacting with each other. You use the same worksheet in multiple dashboards making unique combinations to dig into your data. Stories are similar to dashboards, except they have multiple pages and are similar to a slide show. Tableau has a great drag and drop interface that is really powerful and will automatically try to determine the best chart type to use. Adding Dashboards to FileMaker Once you’ve created and published a dashboard, you can easily display the results in a FileMaker solution through the use of a web viewer. After publishing your dashboard to the cloud or server you can copy and paste the embed code into a FileMaker web viewer, just make sure to prepend the text with “data: text/html,” before the rest of the embed code. Check out the demo file at the bottom of the article to view an example. Tableau Deployment and Pricing Deploying Tableau is a bit similar to FileMaker in that there is a desktop client edition for creating and editing charts and a server edition used for hosting the information. You can host directly through Tableau using Tableau Online or you can manage your own server. The pricing for each option is as follows: Tableau Online – $42 per user a month (Server managed by Tableau) or Tableau Server – $35 per user a month (Requires setting up and managing server) and Tableau Desktop Professional Edition – $70 per user a month (Most likely only need one copy) There is also a personal edition of Tableau Desktop, but it can’t connect directly to FileMaker, and cannot publish data to Tableau Online or Tableau Server. For testing purposes, there is also Tableau Public that you can get from public.tableau.com, which will let you try out Tableau. The only way to save your data using Tableau Public is to a public server which would let anyone see your data, so be careful of what you save while testing. Conclusion Tableau allows us to dissect our FileMaker data in a really easy and powerful way. There is a reason that business intelligence has become so popular in the last few years: it can help us comprehend massive amounts of data at a glance, allowing companies to identify, monitor, and quickly adapt to trends to help improve business decisions. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Download FileMaker Business Intelligence With Tableau Please complete the form below to download your FREE FileMaker database file. Name* First Last Company Phone* Email* Terms of Use I agree OPT-IN: I agree that I am downloading a completely free FileMaker application file with no strings attached. This database is unlocked, and I may use it for my business or organization as I see fit. Because I am downloading a free database, I agree that I should receive occasional marketing. I understand that I can OPT-OUT of these emails at anytime. Afficher la totalité du billet
  3. FileMaker Crosstab Reports

    FileMaker Crosstab Reports FileMaker is very adept at creating list reports, but often you want to see your data in a grid format. This is when crosstab reports, also referred to as pivot tables or matrix reports, come in handy. A crosstab report is a way to display data from 2 or more different sources in a grid format. Luckily there are still plenty of options for doing this in FileMaker. Some methods are better for data entry, some are better for viewing, and some are better for speed and flexibility. Why use a Crosstab Report? Crosstab reports format groups of data into an easy to read grid format. If this sounds like an excel spreadsheet, that’s because it is. There is a reason people love their spreadsheets, it makes comparing values in one group with values in another group really easy. Below you can see an example of 2 reports showing the exact same data, but the crosstab report makes comparing company yearly sales much easier. This is why crosstab reports are so powerful. Native FileMaker The example below is built all with native FileMaker and involved creating 3 globals, 3 relationships, and 3 calculations and is limited to only showing 3 companies at a time. That’s a lot of work just to show 3 columns, and not very realistic as chances are you’re going to have a lot more than 3 companies in your system. However, data entry and printing are going to be easier using this technique, and you have the advantage of not having to learn any other technologies. Web Viewer In this example, I’m going to build a crosstab report using HTML and CSS and display the results in a web viewer. While this version will not have any data entry involved, that is also possible using javascript to pass the data to FileMaker using either the new REST API or using FMP URLs. As you can see below we are showing 8 companies, as well as grouping the data by year and I didn’t have to make 8 of everything! All it took was 2 globals and 2 relationships, one for the year and one for the category. The best part is that I can add new categories, companies, or dates outside of 2015-2017 and it will all adjust automatically and reformat to fit the data. How it’s done In order to build a report like this, you have to be somewhat familiar with HTML and CSS, but it’s really not too hard to learn. If you’re new to HTML I’d suggest starting with a tool like rapidtables to quickly generate the HTML required to make the table, and all the CSS. Below is an example of the output from RapidTables as well as some HTML markup to display the data properly in a web viewer. Feel free to copy and paste the code below into a web viewer to see the table; just make sure to escape any double quotes with either a slash before it or change them to single quotes. data: text/html, <html> <head> <title>Demo</title> </head> <body> <!--START OUTPUT FROM RAPID TABLES--> <style> .demo { border:1px solid #C0C0C0; border-collapse:collapse; padding:5px; } .demo th { border:1px solid #C0C0C0; padding:5px; background:#F0F0F0; } .demo td { border:1px solid #C0C0C0; padding:5px; } </style> <table class="demo"> <caption>Table 1</caption> <thead> <tr> <th>Header 1</th> <th>Header 2</th> <th>Header 3</th> </tr> </thead> <tbody> <tr> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> </tbody> </table> <!--END OUTPUT FROM RAPID TABLES--> </body> </html> Adding Your Data Now all you have to do is use your FileMaker skills to generate a string that resembles the data above, but replacing the headers and &nbsp; (Which stands for non-breaking space) with your data. You could do this by either using calculations or as I did in the demo file, a script to loop through the records generating all the text in a variable. Printing Printing a web viewer can be a bit of a challenge if you’ve never tried. One way to tackle this is to export the web viewer contents to the temp directory with a little extra Javascript, which when opened will open the print dialog on the user’s default browser. You can even add CSS specifically for printing which allows for more flexible printing. Report Speed Using native FileMaker methods to compile lots of data can not only be slow to build but can be slow to display, especially if running the report over the WAN. Using a webviewer to generate a crosstab report has the huge benefit of being able to process and crunch all the numbers on the server because all we are doing is working with text, you can very easily script the report to run on the server and return the data in the script results. This makes running reports lighting fast. Conclusion Building crosstab reports can be a bit of a challenge and there are many ways to tackle the problem. Different situations might require different techniques, which is why knowing multiple ways to create crosstab reports is so useful. When it comes to speed and flexibility it’s hard to beat using a web viewer, and can be great at speeding up slow reports. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Download FileMaker Crosstab Reports Please complete the form below to download your FREE FileMaker database file. Name* First Last Company Phone* Email* Terms of Use I agree OPT-IN: I agree that I am downloading a completely free FileMaker application file with no strings attached. This database is unlocked, and I may use it for my business or organization as I see fit. Because I am downloading a free database, I agree that I should receive occasional marketing. I understand that I can OPT-OUT of these emails at anytime. Afficher la totalité du billet
  4. FileMaker 16 Overview

    FileMaker 16 Overview A new and exciting version of the FileMaker platform is here! 2017 marks over 32 years in business for FileMaker. In a collection of articles, we review what’s new in the FileMaker platform, specifically the features for FileMaker Pro 16, FileMaker Server 16, FileMaker Go 16, FileMaker WebDirect 16, and FileMaker Cloud. Below you will find an overview of our favorite features with links to our more in-depth articles that include example videos. What’s New? FileMaker Server now includes the ability to Print PDF
 from Server (forever eliminating those PDF robots
 some of you may have) and a RESTful API. Some of the many exciting new features include Cards, new Windows interface, Enhanced cURL options, JSON functions and Layout Object Window. New mobile features include Location Monitoring, Animations and Transitions, Enhanced Signature Capture, and the ability to deploy plugs with iOS SDK with External Script Steps. This is the fourth major release of WebDirect and it includes the ability to print to PDF in the browser which was quite the feat for FileMaker engineers. You can now scale your WebDirect application up to 500 simultaneous users. FileMaker Cloud was released on Sept 27th, 2016 for Amazon Web Services (AWS) running CentOS Linux and new releases continue to occur over time. You must have annual licensing in order to use FileMaker Cloud. There have been some minor updates to FileMaker Licensing. You can now buy 3 year renewals with a larger discount and there is a new promo offering 25% off for new customers who are switching from Microsoft Access. FileMaker Licensing for Teams, which is based on the number of users, continues to be the default for licensing moving forward. FileMaker Pro 16 This is the FileMaker Pro release we have been all waiting for. FileMaker Pro 15 caught the engineers a bit off guard by switching to annual release cycles. Now all those goodies that didn’t make the last release have been cooking for 24 months and are ready for you to enjoy. The FileMaker 16 platform is a fine example of why you need to stay on the latest version as it continues to add new features that will make developers, end-users, and the folks in IT very happy. FileMaker is a well-rounded platform and this release provides many features for usability, mobility, security, development, integration, and scalability. You can build more advanced applications faster than ever before. FileMaker Cards There is now a new window style choice, Card, that allows you to display data from another layout. Cards open up a world of possibilities for developers and solutions. See FileMaker Card Windows in action as Emory Brown looks at this exciting new feature in depth. You definitely want to start using this in your solutions moving forward. Windows Operating System Interface You can now have multiple windows in Windows that are no longer bound to the application window. Mac users have experienced this for a very long time and now Windows users will enjoy the freedom of what is known as Single Document Interface. Check out the many new FileMaker User Interface Enhancements including the new FileMaker Windows Interface as Brandon Ray walks you through the numerous improvements. Security OAth 2.0 You now have the ability to setup a user login to authenticate with Amazon, Google, or Microsoft Azure AD. Learn about FileMaker Security in the new version as Michael Westendorf shows you how to setup FileMaker OAth with FileMaker Server. Field Level Encryption Securing sensitive data means you should be encrypting across the wire, setting up Encryption at Rest, and also encrypting the data at the field level. FileMaker has added 6 new functions that allow you to pass a key to the function to Encrypt and Decrypt the data: CryptAuthCode, CryptDecrypt, CryptDecryptBase64, CryptDigest, CryptEncrypt, CryptEncryptBase6. Read more about FileMaker Field Level Encryption in our FileMaker Security article. Layout Object Windows Over the course of time FileMaker layouts can hold many layers of objects. You end up grouping and locking objects in order to make the layouts easier to work with. Now FileMaker provides you the ability to see the order of the objects and ability to show and hide objects on the layout along with searching a layout object tree. Learn more about FileMaker Layout Object Window as Gayoung Moon shows you how to use Layout Object Windows. Enhanced Data Viewer For anyone who writes or edits calculations, using FileMaker Pro Advanced will provide you the tools to be a better developer. FileMaker 15 brought the Script Workspace, FileMaker’s Integrated Development Environment (IDE). FileMaker 16 brings the same ease of use Edit Expression dialog to the Data Viewer only available in FileMaker Pro Advanced. Enhanced cURL Options A new option is now available in the Insert from URL script step, Specify cURL options, which allows you to set headers and includes over 80+ options. Learn more about all the FileMaker cURL options that are now available as Eric Church takes a deeper dive into cURL. Native JSON Functions New functions are now available to retrieve, parse, modify, and send text as JSON (JavaScript Object Notation) data with Web Services that use a REST API. Using the Insert from URL script step you can retrieve data and then parse JSON from the result or send JSON data. See the new FileMaker JSON functions available, as Jeremiah Hammond demonstrates using JSON in FileMaker. Copy / Paste Value Lists You can now easily move Value Lists from one application to another by copying and pasting. This is great for consolidating FileMaker files or moving from one application to another. Copy / Paste Tables This used to be available only in FileMaker Pro Advanced, but now you can copy and paste tables in FileMaker Pro as well. This is great for when you are consolidating separate applications into one or porting one system feature to another application. FileMaker Pro Technical Specs FileMaker Pro 16 and FileMaker Pro Advanced 16 are supported on Windows 10 Standard, Pro, and Enterprise, Windows 8.1 Standard and Pro, Windows 7 SP1 Professional and Ultimate, macOS Sierra 10.12, and OS X El Capitan 10.11. FileMaker Go 16 FileMaker Go is for iPad and iPhone users and has all the features provided in FileMaker Pro plus specific iOS features listed below. You can only access and modify data with FileMaker Go, you need FileMaker Pro or FileMaker Pro Advanced to build your application. The new version of FileMaker Go 16 is available in the App Store. Location Monitoring A new script step Configure Region Monitor is now available that allows you to monitor for the geolocation or for known iBeacon(s) in an area and then perform an action based on the iBeacon found. This will allow you to know if the user is entering or leaving the predetermined region. Learn about FileMaker Location Monitoring as Ian Haas demonstrates how to use these new Configure Region Monitor script steps. Animations and Transitions You can now add animations and transitions to Go to Layout and Go to Related Record script steps. Enhanced Signature Capture From the Insert from Device script you can now do Full Screen, Overlay, or Embedded type of Signatures. Custom Paper Sizes Create your own custom paper size dimensions from the Print dialog under Paper Size. FileMaker Go 16 Technical Specs Requires iOS devices running iOS 10 or later on the iPad Pro, iPad, iPad mini, iPhone and iPod touch. FileMaker Server 16 Server has always been known for its ease of use and ability to run without any problems. The newest version focuses on performance improvements, security updates, and many enhancements related to WebDirect, specifically PDF on Server support, and additional security such as OAuth 2.0 accounts. FileMaker Rest API The future of FileMaker Web Publishing has arrived. While FileMaker continues to support the FileMaker PHP API for Custom Web Publishing they have stated their focus moving forward is the new Rest API now released. The FileMaker Data API is available as a free trial until Sept 27th, 2018. Learn more about the FileMaker Rest API as Mason Stenquist looks at how to use the new API. PDF from FileMaker Server You can now print a PDF from FileMaker Server running a server schedule or via FileMaker WebDirect. It was always assumed that you could do this but in reality in order to print a PDF from FileMaker Server required many different techniques such as How to Create a FileMaker PDF from FileMaker Server. Now it is as simple as originally expected, but note you must have the fonts installed on the FileMaker Server. See the simplicity of Printing FileMaker PDFs from Server as Brendan McBride shows you printing a PDF from FileMaker Server. Tableau Web Data Connector You can now connect Tableau to your FileMaker Server to visualize your data. Tableau is a leader in produces interactive data visualization products focused on Business Intelligence. Before you had to export and import the data, now you can connect directly to your FileMaker Server to see data in realtime visually. FileMaker WebDirect WebDirect is the flagship FileMaker web app client for a browser and doesn’t involve any web programming. This version adds the ability to scale up to 500 users at once. You can now have one Master Server and up to five Worker Servers (each gives you up to 100 users) to achieve up to 500 users for WebDirect. Users who are using WebDirect should get lots of RAM for FileMaker Server machines to have optimal performance. For Androids, FileMaker WebDirect, Custom Web Publishing, or the new Restful API are the only ways to deploy a FileMaker-based application. FileMaker Cloud FileMaker offers a new way to deploy your custom application with FileMaker Cloud as of September 2016! This new product is available ONLY through Amazon Web Services (AWS) and gives you FileMaker Server in minutes. FileMaker Cloud is fast, lowers long term maintenance, and is secure. The new features for FileMaker Server 16 are not available as of yet for FileMaker Cloud such as Print to FileMaker Server PDF, Rest API, OAuth, and up to 500 WebDirect connections. Check out this detailed overview of FileMaker Cloud for AWS from David Happersberger our FileMaker Licensing Specialist. FileMaker Server 16 Technical Specs Compatible with Windows Server 2016 Standard Edition, Windows Server 2012 R2 Standard with Update Microsoft KB2919355 and Windows Server 2008 R2 SP1 Standard or Enterprise (deprecated), macOS Sierra 10.12, and OS X El Capitan 10.11. WebDirect browser support includes Safari 10.x, IE 11.x, Microsoft Edge 38+, Chrome 55+. Mobile browsers Safari 10.x and Chrome 55 on Android 6.x. Note that Firefox is not on the list of supported browsers. Summary The FileMaker platform continues to be the leader in creating powerful custom applications for organizations all around the world and works seamlessly across Windows, Mac, iPad, iPhone, and the web. The new release of FileMaker 16 further emphasizes this. FileMaker Go continues to give the platform a competitive edge. Allowing organizations to create custom applications for iOS devices while providing an incredible ROI. Creating prototype applications on the iPad and iPhone is a matter of hours not months. FileMaker 16 is one of the largest releases and is full of features you can benefit from. We look forward to building amazing custom applications using the new tools for Mobile, Web and the Desktop. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Afficher la totalité du billet
  5. FileMaker PDF from Server

    FileMaker PDF from Server FileMaker Server 16 now has the ability to create PDFs on the server! Gone are the days of creating overly complicated PHP setups and unreliable FileMaker Pro robot machines. FileMaker 16 is jam packed with loads of new features, one of the most exciting is it’s new PDF capabilities. Here are a few of the great new features FileMaker Server 16 adds for PDFs: New Features Server Schedules & Perform Script on Server (PSOS): Save Records as PDF is fully supported with server side schedules and perform script on server. WebDirect: Both Print and Save Records as PDF script steps are supported. Print first open a View as PDF dialog, then it will open a new window or tab. Save Records as PDF will download the PDF directly to the users download folder. Important Notes There are a few features that are not yet supported on FileMaker Server when it comes to print forms and a few settings that need to be handled. Here are some points that you will want to keep in mind: Fonts: You will need to ensure that any fonts that your print forms use are also installed on the FileMaker Server machine. WebDirect Popups: The Print script step for WebDirect is a popup, so you will want to ensure that your users enable popups for your database. WebDirect Menu: View as PDF is the only PDF option accessible from the WebDirect drop down menu. Server Schedules & PSOS: The print script step is not supported with server side schedules and perform script on server. Custom Web Publishing: FileMaker Server CWP will NOT be able to create PDFs, even when running a script using the PHP API. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Afficher la totalité du billet
  6. Location Monitoring in FileMaker Go

    Location Monitoring in FileMaker Go Have you ever wanted your FileMaker Go app to send messages when a tech arrives onsite for a service request, or to notify management when that very same tech leaves? How about to guide potential customers at a show to the booths they would be interested in? With FileMaker 16, you can have your FileMaker Go app automatically perform actions based on the user’s location. This is made possible by two new features: a new script step named “Configure Region Monitor Script” and a new function named “Get ( RegionMonitorEvents )” Below is how you can set up and use these new features in your solutions. 1. Configure Regions to Monitor The first step is to set up the regions that we want to monitor and track the resulting actions when a user enters or exits the specified regions. The Configure Region Monitor Script script step allows FileMaker to monitor up to 20 regions at a time. Let’s look at options you need to specify when using this script step. 1. 1 General Options Monitor: allows you to specify which method (iBeacon or geofence) you want to use for monitoring a user’s location. A third option, “Clear,” is used to stop monitoring a certain region. Name: sets the name of the region that you are monitoring. Keep in mind each region you are monitoring must have a unique name. If you run this script step with a name that’s already being monitored, the previous setting will be overwritten. If the Monitor option is “Clear” then your iOS device will stop monitoring the region with the name specified. Script: sets the script you want to run when your iOS device enters or exits the monitored region. 1.2 Geofence specific options The geofence option utilizes GPS to locate iOS devices. It can monitor locations in a much larger area but tends to be less accurate, making it a great choice for outdoor use. Latitude: specifies the latitude of the center for the region. Longitude: specifies the longitude of the center for the region. Radius: specifies the radius (in km) of the region. Visually, think about a geofence region as something like this: The latitude and longitude will mark the center of the circle, whereas the radius will set the size of the circle. 1.3 iBeacon specific options The iBeacon option uses a bluetooth low energy (BLE) signal to communicate with beacons (iBeacon devices) around you, monitoring your location. They have high accuracy but relatively small coverage compared to Geofence, making it very useful for indoor use. UUID: specifies the unique identifier of the beacon(s) you want to monitor. If you want to monitor a fleet of beacons in your store, then all the beacons should use the same UUID. Major (optional): specifies the major value of the beacon(s) you want to monitor. Helps you narrow down the number of beacons you want to keep track of. Minor (optional): specifies the minor value of the specific beacon you want to monitor. 1.4 Tips and Notes It’s important to note that values specified in the script parameter will be evaluated when the specified script runs, not when the region is configured. If you want to pass data from fields as parameters, keep in mind it will be the values on the current record when the script runs, not those when the region was first configured. Also, similar to the OnTimer trigger, regions configured are tied to the window in display when the specified script runs. So if this window is closed, all configured monitors will be cleared out. 2. React To Region Monitor Events Now that we have our monitored regions configured, the attached scripts will run whenever the user enters or exits the area. But how do we know if the user is entering or leaving a region, and what if we want different actions for each? The Get ( RegionMonitorEvents ) function will help with that. In the script that you set the Configure Region Monitor Script step, you can use Get ( RegionMonitorEvents ) function to return the action that caused this script to run. This will list all the events associated with that region in chronological order in the following format: <region name> <timestamp>;<1 or 0> <timestamp>;<1 or 0> <timestamp>;<1 or 0> 1 means the iOS devices entered the monitored region, and 0 means it has left it. For example, if I entered a region named “Job site 1” at 9:00 am on March 31st 2017, this function will return: Job site 1 3/31/2017 9:00:00 AM;1 If I left the site at 5:00 pm the same day, the function will return: Job site 1 3/31/2017 9:00:00 AM;1 3/31/2017 5:00:00 PM;0 Using this, we can tell whether the user is entering or exiting the named region and have the script perform differently as needed. 3. Possible iBeacon and Geofence Use Cases Since iBeacon and geofence offer different coverage and accuracy, let’s look at which option is more suitable for certain use cases. 3.1 Retail Stores & Trade Shows – iBeacon When customers walk into a store, the store can greet them on their iOS device. Contextualized promotion and product information can be sent to customers when they enter a certain area of a store. Indoor navigation information can be pushed to customers based on their location. You can even merge the online and offline shopping experience. Customers can purchase products online and your app can help guide them to pick it up in the store. 3.2 Employee Location Tracking – Geofence & iBeacon You can use this feature to build a fully automated location based timecard system. Wonder whether your employee is working hard onsite or off doing something else? This can help you determine their location. 3.3 Tour & Educational Apps – Geofence & iBeacon Depending on the size of the site you can use geofence, iBeacon, or both to push information to tourists when they arrive at a certain location. Have your app tell guests a beautiful story about a lake in the park, play a song about a heroic historical event where they stand, or play a video to give art lovers a deeper understanding of a masterpiece hanging on the museum wall. You can also work with local vendors to add promotional material in your app. You can even make games by combining the two ideas together. Imagine traveling the freedom trail and receiving a 25% discount on a lobster roll after visiting all the sites. 3.4 Location-Based Reminder – Geofence & iBeacon Driving toward a client for a big proposal meeting? You can have your app push the client’s information (including pictures and videos), your contact history and all the documents they sent you before you arrive at the client-site to help you seal the deal. You can automatically play safety instruction videos when someone is about to operate something dangerous. This could be in a warehouse, a lab or wherever safety comes first. Ever get home from the grocery store only to suddenly remember something you forgot? You can build an app that will send your shopping list when walking by a grocery store. Conclusion FileMaker 16 has introduced new location monitoring features that truly give FileMaker Go the edge by enhancing your app’s ability to take on any location-specific needs. Whether you’re indoors, outdoors, coming, or going, FileMaker can monitor it all. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Download Location Monitoring in FileMaker Go Please complete the form below to download your FREE FileMaker database file. Name* First Last Company Phone* Email* Terms of Use I agree OPT-IN: I agree that I am downloading a completely free FileMaker application file with no strings attached. This database is unlocked, and I may use it for my business or organization as I see fit. Because I am downloading a free database, I agree that I should receive occasional marketing. I understand that I can OPT-OUT of these emails at anytime. Afficher la totalité du billet
  7. FileMaker 16 User Interface Enhancements

    FileMaker 16 User Interface Enhancements The release of FileMaker 16 introduces an arsenal of new user interface (UI) updates that professional developers, citizen developers, and interested script kiddies will come to love. These UI updates include animations and transitions, signature capture enhancements, single document interface, and the removal of the bottom bar. Animations and Transitions in FileMaker Go 16 If you are familiar at all with native iOS apps, you will recognize the lovable transitions that occur while navigating. In FileMaker Go 16, these same delightful transitions are now a welcomed addition via the “Go To Layout” script step. Available transitions include: Slide In from Left Slide In from Right Slide In from Bottom Slide Out to Left Slide Out to Right Slide Out to Bottom Flip from Left Flip from Right Zoom In Zoom Out Cross Dissolve Signature Capture Enhancements in FileMaker Go 16 FileMaker Go paired with an iPhone or iPad become the perfect tools for capturing the signatures of your customers, drawing on top of a schematic, or even everyday doodles that you may want to store. FileMaker Go 16 comes ready to go with three new ways to implement a signature capture feature in your custom app: Fullscreen Movable Overlay Embedded Directly in the Layout Single Document Interface on Windows While most FileMaker developers use a Mac to build custom solutions, over 80% of end users are on a Windows machine. With the release of FileMaker Pro 16 and FileMaker Pro Advanced 16 for Windows, a very welcomed feature is built right in: Single Document Interface (SDI). For those who aren’t aware, previous versions of FileMaker Pro for Windows used a Multiple Document Interface (MDI), which meant that windows were not independent of each other. In FileMaker Pro 16 and FileMaker Pro Advanced 16 for Windows, every window will be independent. Removal of Bottom Bar One of the biggest and most noticeable UI changes in FileMaker Pro 16 and FileMaker Pro Advanced 16 comes with the removal of the bottom bar and, when not needed, the scrollbar area. In previous versions, the scrollbar area would show no matter what, and the bottom bar was home to the SSL certificate checker, zoom levels, showing/hiding the status bar, changing modes (Layout, Find, Browse, Preview), and adjusting the part label orientation. Instead, FileMaker Pro 16 relocates the SSL certificate checker to the top right of the interface bar and opts to use keyboard shortcuts instead. These keyboard shortcuts include: Zoom In (Mac: ⌘+ or PC:) Zoom Out (Mac: ⌘- or PC:) Show Status Bar (Mac: ⌥⌘S or PC:) Browse Mode (Mac: ⌘B or PC:) Find Mode (Mac: ⌘F or PC:) Layout Mode (Mac: ⌘L or PC:) Preview Mode (Mac: ⌘U or PC:) Adjust Part Label Orientation (Mac: ⌘Click or PC:) FileMaker 15 interface: FileMaker 16 interface: Additional UI Updates Card Windows One of the biggest and most anticipated time-saving features to be released with FileMaker 16 is the Card Window. A Card Window is an easy-to-use tool that allows developers to overlay any layout from any context without the need to create additional relationships, scripts, or layout objects. See FileMaker Card Windows in action. Layout Objects Window A new Layout Objects Window joins the FileMaker collection of palettes as an effortless way to work with stacked objects, name objects, and even search for objects on a layout. If you are familiar with Photoshop, then you’ll love this new feature. See the FileMaker Layout Objects Window in action. Conclusion FileMaker Pro 16, FileMaker Server 16, and FileMaker Go 16 all come jam-packed with plenty of mouth-watering features that developers will love and end users (ie. your clients) will die to have in their solutions. With the new Card Windows, Layout Object window, Data Viewer, animations and transitions, enhancements to signature capture, and a welcomed single document interface, FileMaker 16 is a game-changer for developers and a definite must-have upgrade. If you want to see all of these new user interface features, soon we will make available for download a new version of our free FileMaker Quickstart starter solution for FileMaker Pro 16 or FileMaker Go 16. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Afficher la totalité du billet
  8. FileMaker Data API

    FileMaker Data API FileMaker has added a new and exciting way to access all your FileMaker data with an easy-to-use data format that is the industry standard REST API. By going with a standardized format developers are able to integrate any platform they choose with FileMaker solutions on FileMaker Server. One of the biggest benefits from this are that front end developers are able to integrate popular Javascript Frameworks, such as Google’s Angular Framework or FaceBook’s React library, with FileMaker Server. Enabling the REST API The first thing you need to do is to enable the API in FileMaker 16 Server’s admin console. You will also need to enable the new fmrest extended privilege set in the security settings in your FileMaker file. All the same rules that apply to XML and the PHP API apply here: all calls must specify a layout, and only the fields and portals available on the layout will be available to the REST API. Authentication Authenticating with a FileMaker database through the REST API can be done in 2 different ways: using the standard username and password credentials you normally access the file with or using OAuth. For simplicity’s sake, we’ll be focusing on authenticating just using our standard FileMaker username and password. To do so you will need to send a POST request with the following settings and parameters. Request Format: POST ipaddress/fmi/rest/api/auth/:solution Request Example: POST https://localhost/fmi/rest/api/auth/FM_QUICKSTART_v3 Headers: Content-Type: application/json Body: {"user":"admin","password":"admin","layout":"Contact"} Response: { "errorCode": "0" "layout": "Contact", "token": "e86d7d4f4fa602ccb5a6b498a6634576b2da1b3efc67a7d907" } Once we have the token, we can use that to authenticate the rest of our API calls until it expires. Viewing Data To access the actual data from our FileMaker file, we’ll make use of the “Get Records” and “Get Record” API methods. To get a list of records from FileMaker you need at a minimum to specify the file you want to access, the layout, and the token generated in the previous step. There are also a number of more advanced parameters you can include to adjust the range, offset, sort, and even what portals to include in the results. Request Format: GET ipaddress/fmi/rest/api/record/:solution/:layout Request Example: GET https://localhost/fmi/rest/api/find/FM_QUICKSTART_v3/ContactWeb Headers: FM-Data-token: e86d7d4f4fa602ccb5a6b498a6634576b2da1b3efc67a7d907 Response: { "errorCode": "0", "result": "OK", "data": [ { "fieldData": { "firstName": "Clark", "lastName": "Kent", "company": "DC", "isActive": "1", "picture": "https://localhost/Streaming_SSL/MainDB/0958204726F9842D89B1CD71DE2FB7CC.bmp?SessionKey=0958204726F9842D89B1CD71DE2FB7CC&RCType=EmbeddedRCFileProcessor" }, "portalData": { "PORTAL:Address1": [], "PORTAL:Quotes": [], "NotesPortal": [] }, "recordId": "40", "modId": "9" }, { "fieldData": { "firstName": "Peter", "lastName": "Parker", "company": "Marvel", "isActive": "1", "picture": "https://localhost/Streaming_SSL/MainDB/CDD151DF736F445D002D95A0FAE4F160.bmp?SessionKey=CDD151DF736F445D002D95A0FAE4F160&RCType=EmbeddedRCFileProcessor" }, "portalData": { "PORTAL:Address1": [], "PORTAL:Quotes": [], "NotesPortal": [] }, "recordId": "44", "modId": "5" } ] } And if you only wanted one record you’d include the recordId like so. GET ipaddress/fmi/rest/api/record/:solution/:layout/:recordId Creating and Editing Records Creating and editing records via the REST API are very similar, the only differences being the method, POST vs PUT and including a recordId when editing. Below is a sample for how you would create a new record. Request Format: POST ipaddress/fmi/rest/api/record/:solution/:layout Request Example: POST https://localhost/fmi/rest/api/record/FM_QUICKSTART_v3/ContactWeb Headers: FM-Data-token: e86d7d4f4fa602ccb5a6b498a6634576b2da1b3efc67a7d907 Headers: Content-Type: application/json Body: { "data": { "firstName": "Joe", "lastName" : "Bob", "isActive" : "1", "company" : "New Company" } } Response: { "errorCode": "0", "result": "OK", "recordId": "74" } And if you then wanted to update that record you would do the following. Request Format: PUT ipaddress/fmi/rest/api/record/:solution/:layout/:id Request Example: PUT https://localhost/fmi/rest/api/find/FM_QUICKSTART_v3/ContactWeb/74 Headers: FM-Data-token: e86d7d4f4fa602ccb5a6b498a6634576b2da1b3efc67a7d907 Headers: Content-Type: application/json Body: { "data": { "firstName": "Joey", "lastName" : "Bob", "isActive" : "0", "company" : "Other Company" } } Response: { "errorCode": "0", "result": "OK" } Deleting Records The last API call I want to go over is how to delete a record. Deleting a record is very similar to viewing a single record, the only difference is the HTTP method you would use is the delete method. Here is an example of how to delete a record. Request Format: DELETE ipaddress/fmi/rest/api/record/:solution/:layout/:id Request Example: DELETE ipaddress/fmi/rest/api/record/FM_QUICKSTART_v3/ContactWeb/34 Headers: FM-Data-token: e86d7d4f4fa602ccb5a6b498a6634576b2da1b3efc67a7d907 Response: { "errorCode": "0", "result": "OK" } Notes Currently, there is no way to run a FileMaker script like you can do using the XML or PHP API’s. One thing that the new REST API does much better than previous CWP options is how it handles container fields, basically, it just works. There is no complicated container-bridge file to determine the mime type or anything like that, just a simple URL where you can view or download the item in the container. Conclusion There’s a lot to like with the new FileMaker REST API and we’re excited to start using it in our web development. REST allows other technologies to integrate with your FileMaker solution that aren’t well suited to the XML or PHP APIs. REST APIs are quickly becoming the number one way to interact with outside programs and services; you can view our article specifically about REST APIs for more info on what a REST API is. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Afficher la totalité du billet
  9. FileMaker Card Windows

    FileMaker Card Windows One of the most powerful tools in the FileMaker window-management arsenal is the card window. A card window displays one layout layered in front of the existing layout, and within the current window. This technique is primarily used for detailed dialogs or wizards, providing a more flexible option than the traditional FileMaker custom dialog. Let’s take a look at how to implement card windows: How card windows work Card windows are created and controlled with New Window, Move/Resize Window, and Close Window script steps. From the new window script step dialog in scripts workspace, select window type “Card”. Two window options are available: the ability to include a default close button on the card and the ability to dim the parent window. Here are some behaviors of FileMaker card windows: Card Windows will allow scrolling if the displayed layout is larger than the card size. When building modal dialogs, the user can still quit out of FileMaker with Cmd+Q (Ctrl+Q on Windows). Popovers can be used within card windows, and will not extend beyond the card. Card windows can be positioned outside the parent window on desktop apps; on iOS they are contained within the screen boundaries at all times. Card windows are not supported on Web Direct at the time of this article–the new window (card) step behaves the same as a new document window. The dim overlay cannot be modified from the default color or transparency–it is either on or off. When close option is enabled on iOS, there is not default close button displayed. Instead, tapping anywhere outside the card will close the card window. “I can do all of this with a popover, right?” A similar effect to the card window is possible with a popover, and before card windows were native to the FileMaker platform this was the only option. The effect can be accomplished with the following: Add a popover object to the side of the layout. Create a button which goes to the popover by object name. Increase the popover size to be as large as possible. Make the popover color some transparent fill, to see layout objects behind. Since about 5-10 pixels are required to render the popover, a drop shadow with spread must be added as well. Create a script trigger to ensure the required action is taken, not allowing the user to close out with ‘esc’ or clicks in the dropped shadow area. Allow the user to close the popover with “Save” and “Cancel” buttons. Whew, that’s a lot of steps! Card window vs. popover So which is better? All other things being equal, card windows have a number of powerful advantages. The primary advantage is that the card window is completely independent layout from the original layout. This means that the dialog screen can be set up in a single layout, and then referenced from any other screen in the app. In contrast, popovers would need to be created on each layout they appear, requiring duplicate development work. Another huge advantage of a card window is it can display records from other tables, without the need for joins or portals. This is the ideal way to ensure optimized performance is achieved. It also keeps the app thinner, since less schema is required. Lastly, card windows require a lot less scripting and layout development than modal popovers (see 7-step process above!). This reduced complexity is key when prototyping or building apps quickly. It also lowers the learning curve for new users looking to make modern apps. Pound-for-pound, card windows beat out popovers when a dialog message is required to overlay the screen. Let’s look at some examples of how to make the best use of card windows: Common uses A database is entirely useless without a way to retrieve the data stored within. Users need to be able to quickly retrieve data, accomplished with FileMaker’s Find Mode, and also relate existing data together. Perhaps the most popular way to solve relating data is with a picker (also know as a selector). Pickers provide a simple way to select values and relate data. A classic example would be a picker which allows the user to select a customer for an order, from a database table of all customers. Since card windows can display data from other tables easily, they make an ideal picker. They allow the picker to overlay the original record, while still having that background context for users to quickly orient themselves if distracted from the screen while mid-task. Another great use is anytime an action dialog needs to be more complex than a default custom dialog. Custom dialogs are constrained to a maximum of three options with a fixed-width buttons, which can be problematic when trying to create actions which are self-describing. In contrast, card windows as dialogs can be customized to have as many options and flexible button sizes, removing limitations. It does take longer to implement a card (requiring building a new layout), with the positive tradeoff of having the entire layout mode toolkit available. Design tip: use dialogs sparingly because they are very disruptive. The sudden overlay forces the user to stop their flow / task to address the message. Conclusion With the addition of card windows, the FileMaker platform puts the ability to create rich dialogs at developers’ fingertips. Use them in your next app to create stunning interfaces which captivate and delight. If you want to see examples of card windows, we will make available for download a new version of our FM Quickstart FileMaker Template that utilizes FileMaker Card Windows and new features in FileMaker 16 platform. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Afficher la totalité du billet
  10. FileMaker JSON Functions

    FileMaker JSON Functions FileMaker 16 has introduced a set of native JSON (JavaScript Object Notation) functions that, along with native cURL options, allow developers to interact with REST APIs without the need for a plugin. And as an added bonus, the JSON functions can be used for multiple parameter passing in scripts, giving developers a much welcomed standard that will likely displace the current assortment of custom functions throughout the FileMaker community. Let’s take a look at how to use the new JSON functions: Meet the Functions There are 6 JSON functions available in FileMaker 16: JSONSetElement – Adds or modifies an element in a JSON document at the supplied key, index or path. The new value, and the value’s data type, are passed as the 3rd and 4th arguments. JSONDeleteElement – Deletes an element at the supplied key, index, or path. JSONGetElement – Returns an element at the supplied key, index, or path. JSONListKeys – Lists all the keys or array indexes at the supplied key, index, or path. JSONListValues – Lists all the values at the supplied key, index, or path. JSONFormatElements – Formats a JSON document so it’s easier to read (i.e. it separates key-value pairs onto different lines, and adds indentation based on the nesting structure). Very useful when you are troubleshooting JSON. Keys, Indexes, and Paths (Aka Parsing JSON) Understanding these three are critical to a happy life with JSON, as they are needed for every function. The real power is in paths, but to understand paths, you must know how to use keys and indexes. Keys & Indexes Keys and indexes are pretty much what they say on the tin: supply a JSON function a key and it’ll return the element associated with the key. And supply a function an array index, and it’ll return the element associated with that index. Let’s check out a couple examples. Assuming we start with this contact JSON document in a $json variable { "firstName" : "John", "lastName" : "Doe", "address" : [ { "type" : "Billing", "city" : "Indianapolis", "state" : "IN" }, { "type" : "Shipping", "city" : "Cincinnati", "state" : "OH" } ] } to get the last name of the contact, we would use the function JSONGetElement( ) with the lastName key JSONGetElement( $json ; "lastName" ) which gives us Doe For array indexes, supply the array’s key, and then the index of the array element you want in brackets. In our example JSON, to get the contact’s shipping address, we would use JSONGetElement with the address key and an index of 1 (indexes start at 0, a deviation from most of FileMaker, but consistent with the JSON standard): JSONGetElement( $json ; "address[1]" ) which results in { "type" : "Shipping", "city" : "Cincinnati", "state" : "OH" } Paths Now that we’ve gotten introduced to keys and indexes, let’s take a look at paths. Paths are an ordered list of keys and indexes separated by dots that tell FileMaker the exact element you want in a JSON document, which is necessary if there are multiple elements in the same document with the same key, or if you want an element inside an array. Paths start at the top of the document and end at the element you want. Let’s say we wanted to get the city of the contact’s shipping address. To do that all in one function call, we would need to use the path “address[1].city”. Address is the first element from the top of the doc that leads us toward the city we’re looking for, the shipping address is in index 1 of the address array, and we want the city element of that address object. In FileMaker speak, the function call is JSONGetElement( $json ; "address[1].city" ) which gives us Cincinnati Creating JSON You only need one function to create or modify a JSON document: JSONSetElement( ). And now that we have some familiarity with keys, indexes and paths, the JSONSetElement( ) function will make a lot more sense. Let’s see it in action. To create the example contact JSON document using JSONSetElement( ), we’ll enlist the use of paths that tell FileMaker at which part of the JSON document to create the new elements, along with the bracket notation to allow us to perform multiple JSONSetElement()s in one call, just like the Substitute( ) function: JSONSetElement( "{}" ; [ "firstName" ; "John" ; JSONString ] ; [ "lastName" ; "Doe" ; JSONString ] ; [ "address[0].type" ; "Billing" ; JSONString ] ; [ "address[0].city" ; "Indianapolis" ; JSONString ] ; [ "address[0].state" ; "IN" ; JSONString ] ; [ "address[1].type" ; "Shipping" ; JSONString ] ; [ "address[1].city" ; "Cincinnati" ; JSONString ] ; [ "address[1].state" ; "OH" ; JSONString ] ) Contrast that to this, the non-bracketed version JSONSetElement( JSONSetElement( JSONSetElement( JSONSetElement( JSONSetElement( JSONSetElement( JSONSetElement( JSONSetElement( "{}" ; "firstName" ; "John" ; JSONString ) ; "lastName" ; "Doe" ; JSONString ) ; "address[0].type" ; "Billing" ; JSONString ) ; "address[0].city" ; "Indianapolis" ; JSONString ) ; "address[0].state" ; "IN" ; JSONString ) ; "address[1].type" ; "Shipping" ; JSONString ) ; "address[1].city" ; "Cincinnati" ; JSONString ) ; "address[1].state" ; "OH" ; JSONString ) The bracket notation is much easier to read. And faster to write. A win-win. Some Items to Note about the Functions Avoid null JSON documents. Avoid passing null JSON documents to the parsing functions – the functions will return an error. For example JSONGetElement( "" ; "lastName" ) Gives back error ? * Line 1, Column 1 Syntax error: value, object or array expected. * Line 1, Column 1 A valid JSON document must be either an array or an object value. Instead, pass an empty object {} or an empty array []. Use explicit data types in JSONSetElement( ). While this is personal preference, you should explicitly state the data type in JSONSetElement( ) calls. Not only does this ensure FileMaker doesn’t accidentally convert values to wrong data types, but explicit types make code easier to read than blank arguments. Use JSONListKeys() to get an array’s size. While there’s no function to directly get an array’s size, you can do this using JSONListKeys() in tandem with ValueCount( ). For example, to get the count of addresses for our example contact JSON, doing this ValueCount( JSONListKeys( $json ; "address" ) ) gives our answer 2 New Standard for Multiple Script Parameters The crux of multiple parameter passing in scripts is being able to create key-value pairs, which is JSON’s bread and butter. No more need for dictionary or associative list custom functions – all parameter passing can now be done with the JSON functions. We updated our free template, FM Quickstart, to use JSON for parameter passing, instead of our alist custom functions. We hope the rest of the community embraces JSON as a standard for parameters. It’ll make working in, reading and understanding other developers’ code much easier. Conclusion With the advent of JSON functions, FileMaker developers now have the ability to natively create and parse JSON for REST APIs, multiple script parameter passing, and more. Check out our other articles on FileMaker 16 for more information about all the new and exciting capabilities we have at our disposal with this release of FileMaker. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Afficher la totalité du billet
  11. FileMaker cURL Options

    FileMaker cURL Options One of the most important and wide-reaching updates in FileMaker 16 is the ability to set cURL options in the Insert from URL script step. This allows FileMaker to natively integrate with innumerable services across the web, including Google Calendar, Google Maps, Microsoft SharePoint, and many other services. What is cURL? cURL stands for ‘Client URL Request Library,’ or just ‘Client for URLs,’ and it’s a way to interact with data across devices around the world with many different protocols, such as HTTP, FTP, etc. FileMaker 16 allows users to specify headers, set request types, receive response codes, among many other things. HTTP response codes are important because they let you know whether your operation ran correctly or not. If you get a code back that starts with 2, you know it succeeded (e.g. 200). Any other code, it failed (e.g. 404). Checking the response code is a necessity in REST APIs. FileMaker cURL in Action Using the Integrating FileMaker with RESTful APIs file, we’ve updated it to now use Insert from URL with cURL options instead of the BaseElements plugin. We can now natively perform all of the HTTP CRUD functions AND get responses and set HTTP headers, which wasn’t possible before FileMaker 16. Because plugins aren’t necessary, that also means that users on FileMaker Go, WebDirect, and even Custom Web Publishing have the same power the desktop app is capable off. So what does it look like? FileMaker 16 updated the Insert from URL script step in a couple of different ways. First, they added cURL options that you can specify as a calculation: Second, they opened up the Target to be either a field or a variable, instead of just a field: In our GIF above, our cURL options calc looked like this: Let’s break it down: The “-X” means that we have a request. Note that cURL shortcuts are case-sensitive, so “-X” and “-x,” for example, don’t mean the same thing. “POST” says what kind of HTTP request it is (create). The “-D” means that we want a header dump. The “$httpResponseHeaders” variable is where we want the headers dumped to. “–header” means we want to specify a request header. “\”Content-type: application/x-www-form-urlencoded\””” says we we’re sending the header as a string. The full Insert from URL script step with data. After running the script, the HTTP status header we got back was: That’s a lot of text, but the most important part is the first line: code 201 lets us know the record was created. Huzzah! While this expands the functionality of FileMaker immensely, in taking a look at FileMaker’s supported cURL options, it’s important to note that not all cURL options are available. However, given the importance of cURL and the power it brings, it’s a great start. Conclusion FileMaker and cURL go hand-in-hand with allowing FileMaker solutions to natively interact with other platforms and services in ways that greatly improve its depth and scope. It gives all users, whether on desktop, mobile, Custom Web Publishing, or WebDirect, the ability to interact with external services through FileMaker without the need for plugins. Afficher la totalité du billet
  12. FileMaker Layout Objects Window

    FileMaker Layout Objects Window The Layout Objects window is an exciting feature released with FileMaker 16. The FileMaker Layout Object Window allows you to work with stacked objects and quickly find an object or field on a layout. Let’s take a look. Working with Stacked Objects Here’s how stacked objects display on the Layout Objects window. I have selected these objects by dragging and selecting in this case, but you could also group all stacked objects together and give it a unique name to be able to search by object name. Note that selected objects are highlighted on the window. You can hide all other objects in the layout to concentrate on selected objects. And using the new window, you can: Navigate through each object layer Manipulate object stack order by drag-and-drop Apply conditional formatting Set script triggers Object Search Using the Layout Objects window, you can zero in on a specific object by: Looking for the object name or field name using the search box Filtering by object type or Using hiding options. Objects hidden using this option will remain hidden after you exit and re-enter layout mode, but will reset once you exit FileMaker Pro. Your screen will automatically scroll to the newly selected object if necessary. Things to Keep in Mind You can set object names efficiently using the Layout Objects window. You cannot specify the name of a tab control or slide control, but you can name their individual panels. You cannot use the Layout Objects window to hide or reorder panels in the tab control or slide control. You cannot move or resize each grouped object’s layer individually. You can use search box and filter option simultaneously. Conclusion The Layout Objects window has made object organization easier and faster. This new feature will especially shine when working with stacked objects or finding instances of a field or object on a layout. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Afficher la totalité du billet
  13. FileMaker 16 Security Features

    FileMaker 16 Security Features FileMaker is always improving the FileMaker platform and moving to yearly release cycles has only made it better. The security updates in the latest revision are no exception. The premier security features are field-level encryption, and the ability to authenticate with third party identity servers including Amazon, Google, and Microsoft Azure AD using oAuth. Field Level Encryption The ability to encrypt data at the field level using new FileMaker functions will directly impact the security of future systems. The BaseElements FileMaker plugin was our go-to way to perform field-level encryption of sensitive information such as credit card info and protected health information (PHI), but moving forward this can be handled directly by FileMaker natively. The new functions at your disposal include: CryptEncrypt – Encrypts data with the specified key and returns container data. CryptEncryptBase64 – Encrypts data with the specified key and returns text in Base64 format. CryptDecrypt – Decrypts container data with the specified key and returns text or container data. CryptDecryptBase64 – Decrypts Base64-encoded text with the specified key and returns text or container data. With these new function encrypting data is a simple function call away. The CryptEncryptBase64 function can be used to secure your data within a text field. It requires two parameters: the data to be encrypted and a secret key. The data is then returned in a secure Base64 format. Be sure to keep your secret key in a safe place. With the key anyone can use the companion function CryptDecryptBase64 to retrieve your sensitive data. New FileMaker Authentication Methods FileMaker uses industry standard OAuth 2.0 for communicating with your identity authentication provider of choice. This will allow FileMaker applications to validate user identities with a third party service. This is a great new feature for administrators using Google Apps, Amazon, or Microsoft Azure. Gone are the days of managing two user directories. This is done in two steps. First configure your FileMaker Server to authenticate with your provider of choice. Next open your FileMaker Pro Application and define an account to use your authentication provider. From now on you will be able to use the third party provider to login just like any other externally authenticated server. FileMaker Pro / Pro Advanced 16 Features One thing you will notice throughout the application is that security has become much more prominent. In every screen you will see the security lock indicator. In the login window it will also display the name of the server you are connected with. This is a nice change and will give users peace of mind that their server and connection is secure. As expected clicking the lock will provide information about the connection and certificate being used. Two new extended privileges have been added in this release. First “fmurlscript” allows you to completely disable fmp URLs from accessing your application. This technique has become very popular over the years, but it is nice to know as developers we have the ability to turn it off. Much like they did in the last release to further put security customization in the users hands. The other new extended privilege goes hand-in-hand with another great new feature: the FileMaker Data API. The extended privilege set is simply called fmrest. Just like the fmphp and fmxml we recommend disabling until you need to use. Conclusion FileMaker’s continued improvement in the security realm is alway a welcome change. I know this developer will be pushing more clients to use FileMaker 16’s new security features, including native data encryption, extended privileges, and third party OAuth authentication. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Afficher la totalité du billet
  14. Build or Buy (Should I Learn FileMaker?)

    Build or Buy (Should I Learn FileMaker?) It is no secret that custom applications are immensely beneficial to organizations, in fact, the State of the Custom Apps Report by FileMaker states that 82% saw a reduction in inefficient tasks and 71% saw an increase in team productivity. The question becomes, should I pay for external experts to create a solution for me, or should we have someone in house build the app? In the State of the Custom Apps Report, it was also found that with applications like FileMaker, which is known for being low-code/no code software, citizen developers (proactive problem solvers within an organization that don’t classify themselves as custom app developers or IT professionals) are creating solutions to inefficient problems within their workflow. 48% of these citizen developers found an increase in work satisfaction while also being able to quickly build the solution with 46% of them up and running in less than 4 weeks. Building Internally With these great statistics, why wouldn’t you dedicate a person in the organization to build custom solutions for you? Time is one of the top concerns when going the DIY route. While citizen developers are creating these efficient solutions for their organization, they also have to perform their everyday job, which doesn’t allow them to devote their entire day to creating new apps. The added time to learn and create new solutions usually takes place outside of work in the evenings and on the weekends. Typically, going the DIY route for building a custom app starts with a small task that can be turned into a simple app. Ann Monroe, VP of Marketing at FileMaker says in her article DIY Apps – Should Businesses Make Their Own Custom App? “Start with the basics: businesses will have paper forms, spreadsheets or some other document process which has gotten the team through the day so far. Look for simple processes which could turn into a simple app.” While the form is seen as beneficial and creates a desire to become more efficient, it typically isn’t considered urgent as the business can still get by for now. Luckily for businesses and citizen developers, there are ample training and learning opportunities with industry experts. We provide a variety of FileMaker training courses to different skill levels of developers. Additionally, we provide one-on-one FileMaker coaching geared to your needs. Coaching is paired programming with our experts to assist you with the problems or roadblocks that derail your development. Work with the Experts So when should you have experts build a custom solution for you versus building internally, and what are the benefits? FileMaker is great for converting short forms or documents into apps for your organization, but the even greater aspect about FileMaker is how it is fully customizable and fits across all industries with the ability to integrate with other technology as well as being scalable. To quote Reuben Helmuth, user of FileMaker in the State of the App Report, “(FileMaker is) a one stop business solution for CRM, inventory project, and employee management.” If you find yourself without the time or have a more complicated app than just a single form, then perhaps having experts build the custom app for you is the optimal solution. Where do you begin with this daunting task? First step is to dream and plan what would be the perfect app for your type of business. Thereafter you can contact us to take the next step of building a solution that is tailor-made for your business needs following our FileMaker development process. Conclusion There are many reasons as to why your business should use a custom app. The question becomes should you build it internally, or pay for someone to build it for you? If you’re ready to build a custom application yourself, start with FileMaker Training as we have many types of classes available for the Citizen Developer or Professional Developer. If you want us to help you with the FileMaker Development then contact us to begin the conversation. Either way, we are ready to help you make your organization more efficient and effective. Afficher la totalité du billet
  15. FileMaker QuickBooks Online Integration

    FileMaker QuickBooks Online Integration Intuit’s QuickBooks Online is a powerful tool that allows for easy management of invoices, payments, and other accounting tasks. Intuit announced they will have over 2.2 million subscribers at the end of the year and 40% year over year growth. Many companies find themselves with both QuickBooks and FileMaker end up having to do double data entry from one system to the next. We will demonstrate how you can eliminate the hassle of manually copying the information by integrating your FileMaker solution with QuickBooks Online. Creating a Free Intuit Developer Account The first step of this integration is to create an Intuit developer account . Once you have an account, you will then need to create a new QuickBooks Online app by navigating to the My Apps page. This will take you to a setup process where you select the API you will be using. To start, you will click the Select APIs button under the “Just Start Coding” section. You will then need to select the Accounting box and then click the Create App button. Now that you have the QBO App created, you will need to set it up and get your keys. First, navigate to the settings page for your app. In here you can change the name and other options for the app. You will need to set the Launch URL to https://dbservices.com or any valid website. This is only used as a landing page for authentication and does not need to be anything special. Now that the launch URL is set, you will need to go to the Keys page. There, you will need to copy the OAuth Consumer Key and OAuth Consumer Secret into your solution. Keep your secret hidden from the world as the combination of the Key and Secret will be used to authorize your solution to make changes to the end user’s QuickBooks. Authenticating with QuickBooks Online Using OAuth1.0 Once you have your API information, you will need to authenticate your solution with the QuickBooks Online Accounting API. FileMaker can’t set headers natively (yet), so a plugin is needed in order to make any requests to the API. I suggest using the BaseElements Plugin as it is a free and powerful plugin that can handle all of our HTTP request needs. For any questions regarding how requests should be built, please reference the QuickBooks Online Accounting API Documentation. To authenticate your solution, please reference the documentation on OAuth1.0. The main goal of OAuth1.0 is to make sure the signature string matches what the API expects. The signature string is an encrypted combination of all parameters passed in the request in alphabetical order. The authentication process can be quite tricky, so I highly recommend taking a look under the hood of the example file we have provided. Once you get everything set up the way it needs to be, the user will be prompted to authorize the QBO API with FileMaker. Once they have agreed, they will be sent to the address specified in your Launch URL. In the address, there will be URL encoded parameters, one of which will be the authentication token and another the realm ID (QuickBooks Company ID). Finally, you will use the token provided, along with your consumer key and secret to get your access token which will be used to make any API requests. Making Requests and Parsing the Response Many of the QuickBooks Online API requests require additional parameters outside of the URL encoded parameters. The Create Customer request, for example, is a POST request which requires additional fields like the company, billing address, and many other settings for the customer. These extra fields will need to be JSON-encoded text, passed as the parameter in the BaseElements function BE_HTTP_POST ( URL ; parameters ). Set Variable [ BE_HTTP_POST ( "https://quickbooks.api.intuit.com/v3/company/[Realm ID Here]/customer ; $data ) ] Once a successful request has been made, a JSON encoded response will returned. You will then be able to use the function BE_JSONPath( ) to pull any information out of the response that you wish. { "Customer":{ "Taxable":true, "BillAddr":{ "Id":"1", "Line1":"8604 Allisonville Road", "Line2":"Suite 231", "City":"Indianapolis", "Country":"USA", "CountrySubDivisionCode":"IN", "PostalCode":"46250" }, "Notes":"Some notes can go in here!", "Job":false, "BillWithParent":false, "Balance":0, "BalanceWithJobs":0, "CurrencyRef":{ "value":"USD", "name":"United States Dollar" }, "PreferredDeliveryMethod":"Print", "domain":"QBO", "sparse":false, "Id":"1", "SyncToken":"0", "MetaData":{ "CreateTime":"2017-03-20T13:55:13-07:00", "LastUpdatedTime":"2017-03-20T13:55:13-07:00" }, "GivenName":"Brendan", "FamilyName":"McBride", "FullyQualifiedName":"Database Services", "CompanyName":"DB Services", "DisplayName":"Database Services", "PrintOnCheckName":"DB Services", "Active":true, "PrimaryPhone":{ "FreeFormNumber":"(317) 288-4244" }, "PrimaryEmailAddr":{ "Address":"consulting@dbservices.com" }, "DefaultTaxCodeRef":{ "value":"2" } }, "time":"2017-03-20T13:55:13.630-07:00" } For example, you can get the newly created customer ID by using the following set of functions: Set Variable [ BE_JSONPath ( $result ; "$.Customer.Id") ] Sandbox QuickBooks Company When you create a developer account, you will be given a sandbox QuickBooks Online company for testing. This is great, as this allows you to test your integration without fear of deleting or modifying anything in your live QuickBooks company account. If you go to the My Apps Dashboard, and go into your app, you will notice that you are on the Development section by default. If your integration is ready to go live, you will need to go into the Production section. In here you will set up your production settings and then submit your request. You will then be given a production consumer key and secret. QuickBooks Online: Things to Keep In Mind There are a couple of important items to remember when working with the QuickBooks Online API. Here are a few points to look out for when integrating your FileMaker solution with QuickBooks Online: The QBO API uses OAuth1.0, which means all parameters that may be required will need to part of the signature passed in the request. Also, the signature needs to be raw URL encoded as well. The QBO API uses SyncTokens when making updates to existing records. A SyncToken is a way to lock a record. If you do not pass the expected SyncToken when making an update, the request will fail. Certain tables in QuickBooks require other related records to already exist. For example, when adding an invoice to QuickBooks, the customer assigned to the invoice needs to exist in QuickBooks before the invoice can be created. You may use Web Hooks to have QuickBooks Online automatically make updates to FileMaker as well. QuickBooks Online integration with FileMaker is very different then QuickBooks Desktop integration with FileMaker. Conclusion QuickBooks Online can be fully integrated with your FileMaker solution! You can create, update, query, or delete just about any QuickBooks entity you would like all from within FileMaker. Automate your accounting processes, eliminate double data entry, and human blunders. Feel free to contact us if you need further assistance or to discuss getting your QuickBooks system integrated with FileMaker. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Download FileMaker QuickBooks Integration Database Please complete the form below to download your FREE FileMaker database file. Name* First Last Company Phone* Email* Terms of Use I agree OPT-IN: I agree that I am downloading a completely free FileMaker application file with no strings attached. This database is unlocked, and I may use it for my business or organization as I see fit. Because I am downloading a free database, I agree that I should receive occasional marketing. I understand that I can OPT-OUT of these emails at anytime. Afficher la totalité du billet
×