DB Services

Membres
  • Compteur de contenus

    70
  • Inscription

  • Dernière visite

    jamais
  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. Apple’s Secret Subsidiary When the average person thinks of Apple products they typically think of their beloved iPhone they can’t live without, or maybe their shiny new Apple Watch that tells them to stand up when they’ve been sitting too long, but more than likely they are not thinking about FileMaker. What is FileMaker? And what does it have to do with Apple? A Brief History FileMaker has been around for over 30 years under the guise of multiple other names. It was developed originally from a DOS application in the early 1980’s and went by the name Nutshell. This application was created by Nashoba Systems and was then purchased by Claris, an Apple subsidiary who purchased the rights to distribute Nutshell. After purchasing Nutshell, Claris changed the application’s name to FileMaker in 1985 and it ran solely on Macintosh platform. With FileMaker’s increasing popularity, there became a demand for a multi-platform database. In 1992 Claris released FileMaker for Mac and Windows. This new release allowed the user to have the same basic functions cross-platform along with the ever-improving user interface. As the sales continued to skyrocket, Claris became the highest selling platform database for Apple. The majority of the development for FileMaker was moved in-house in 1998 and Apple officially changed the name from Claris to FileMaker, Inc. What is FileMaker? Simply put, FileMaker is software used to create custom applications specific to individual business needs. All of the development takes place in FileMaker Pro or Pro Advanced on a Windows or Mac computer. It is then hosted on FileMaker Cloud or a local FileMaker Server and accessed via FileMaker Pro on a Windows or Mac computer and via FileMaker Go for iPhone and iPad. Don’t worry, FileMaker hasn’t totally forgotten about all those non-iPhone people out there, FileMaker’s WebDirect allows users to access FileMaker databases in a web browser. When discussing the variety of FileMaker products, John Mark Osborne, one of the leading industry experts with over 20 years of FileMaker experience states “there is no better database for rapid development than the FileMaker family of products.” In fact, FileMaker was recently recognized as a Leader in G2 Crowd’s Grid for rapid application development software. This is the highest ranking they offer and is based on user reviews, market share and global support. Who is it for? FileMaker describes itself as a no-code/low code platform that is easy to use not only for IT professionals but also for the average person who is looking to improve their organization by building a custom app. It allows organizations to take discombobulated information, consolidate it and share it with others whether that be internally or customer-facing. The goal of the product is to make businesses run more efficiently without breaking the bank. In the past, the idea of building custom apps often scared away less technical people who felt that off the shelf products may be the easier way to go. But the truth is, an organization’s app should adapt to meet the needs of the user, not the other way around. While other software can still require a lot of coding and technical ability, FileMaker makes it less complicated for the everyday user. This realization is the reason why more people are now choosing to build a custom app rather than purchase off the shelf products. In May 2016, Business Insider published an article detailing the importance FileMaker could play in Apple’s future and describing how it caters to the average person. “Over the years, FileMaker’s focus has shifted: Originally, it was purely a database product; now, it helps even non-technical small business folks build custom web, Windows, Mac, iPad, and iPhone apps without needing to know how to code.” A recent report by 451 Research that was distributed by FileMaker Inc. estimates the annual revenue rate to be around $30 million with about 300 employees. It also states that FileMaker estimates about 50,000 self-identified developers in North America. These are also known as Citizen Developers. The 2017 State of the Custom App Report released by FileMaker hones in on the concept of a Citizen Developer which is someone in the organization who understands the needs of a business and creates custom applications to meet those needs. This same report discloses that 82% of Citizen Developers surveyed saw a reduction in inefficient tasks as a result of their custom application. Relationship with Apple Historically, FileMaker has operated fairly independently of Apple, but in recent years, FileMaker has been working with Apple Retail as a more direct way to leverage the trust that Apple has built with its customers to gain more business. Last year Apple announced that the total number of Active devices surpassed 1 billion. This signifies the confidence that Apple has garnished over the years and implies it is a trusted brand. And the relationship benefits both parties, Apple Business Teams are able to partner with FileMaker to drive sales of its own products such as the iPhone, iPad, and Macs by providing apps that are compatible with Apple products. You can purchase from Apple Retail or directly from FileMaker the Idea to iPad Bundle and partner with a FileMaker Developer (or a company that provides FileMaker Development services) such as DB Services to build your custom app. FileMaker is in a class of its own, and it all starts with Apple. No other product of its kind has the support of Apple, a company that is continuously on the forefront of technology. Apple is known worldwide for creating the best balance of a guaranteed quality product that is also equipped to be extremely user friendly. It is making it harder for employers to ignore the enormous improvements FileMaker can provide for their businesses. While FileMaker may not be the first thing that pops to mind when people think of Apple, it’s certainly earning its spot alongside its sister products as it has the ability to have a direct, positive impact on the success of organizations around the globe. Afficher la totalité du billet
  14. Building a Dynamic and Robust FileMaker System Have you ever inherited a system built by someone else, changed a field’s name and everything stopped working? The issue, hardcoded names used in indirection, makes the system fragile. FileMaker provides developers many methods to add flexibility using indirection. However when these instances of indirection are not treated properly they will raise all sorts of problems. In this article we will discuss good practices regarding indirection that will help you build a dynamic and robust FileMaker system. What is indirection (and what could go wrong with it)? Indirection in FileMaker refers to the ability to reference an object (table, layout, value list, field, script) by its name, instead of its internal id. For example, I can use a few lines of code to tell a script to do something if the user is in field “CONTACT::firstName”. If [ Get ( ActiveFieldTableName ) & “::” & ( ActiveFieldName ) = “CONTACT::firstName”] Do Some Code End If It looks normal at first glance but there are actually two issues with this approach and with many other uses of indirection: The first issue is that if not treated carefully, renaming objects may break indirection. In our example, if I rename the field “firstName” to “first_Name”, it will break my script because there are no fields named “firstName” anymore. The second issue is that indirection is not considered as a reference in DDRs. So if you use analysis tools like BaseElements to check where field CONTACT::firstName is referenced, that script will not be included. How to write robust indirection With that being said, how do we write robust indirection? Robust indirection will try to dynamically grab an object name and use it in your solution. So we should try to avoid hardcoding the following in our solutions: Table occurrence names Layout names Field names Window names Value list names Script names Following this guideline, for our example we want to get rid of the hardcoded TO names and field names and instead, dynamically grab the field’s name. If [ Get ( ActiveFieldTableName ) & “::” & Get ( ActiveFieldName ) = GetFieldName ( CONTACT::firstName ) ] Do Some Code End If In this case, if I change the field name to first_Name, that script will still work. Also now field CONTACT::firstName is considered as referenced by this script in DDRs. The magic is being done by the function GetFieldName (). This function actually takes a direct reference to the field and translates it into a name. However, not all objects in FileMaker have a function like GetFieldName to translate direct references into a name. For example, if I want to have one script perform different activities on different layouts, in order to determine which layout the user is on, it seems unavoidable to use something like: If [ Get ( LayoutName ) = “Contact – Data Entry” ] Do Some Code End If which suffers from the same problems as the first example: you can’t rename your layout and it won’t be recognized as a reference in DDRs. What do we do now? Well, in this case it will be hard to solve the second issue. But we can do something about the first issue so we can rename our objects with confidence. Internally FileMaker assigns an internal ID for every object in the system. When you use script steps like Set Field [] and point that to a field, FileMaker will store the ID of the field with that script step. That is why no matter how you rename your field, Set Field [] script step will never be broken. FileMaker has a series of design functions that provide you with information about these internal IDs. With some custom functions built upon them, we can grab the internal ID for any table, layout, value list, field or script and use them in our calculations and scripts. Be sure to try them out in the demo file of this article. So let’s say the internal layout ID for layout “Contact – Data Entry” is 2. With the help of our custom function “getLayoutName” (getLayoutName will take an internal layout ID and translate it to that layout’s name). I can rewrite my script to be: If [ Get ( LayoutName ) = getLayoutName ( 2 ) ] Do Some Code End If This way I can rename the layout and still have the script working. As mentioned before, referencing internal IDs still can not be seen by DDRs as a reference. Also it makes reading the code harder. So be sure to comment your calculation or your script when you use internal IDs to enhance readability. Here is an article if you want to learn more about using internal IDs in your solution. One last example I want to mention here is about using the ExecuteSQL function. ExecuteSQL is a context independent way to retrieve data. It can save a lot of time when developing complex reports or charts. However ExecuteSQL requires indirection by nature. If not treated carefully, renaming of fields or tables will break the SQL statement used in your ExecuteSQL. In the demo file I included two scripts showing how to use some custom functions to make your SQL statement dynamic and robust. How do I identify indirection in my own solution? Now that we have went through two examples of how to write robust indirection, you might want to take a look at your own solution and see if there are any potential problems in there caused by indirection. How do I find all those instances? Use an DDR analysis tool like BaseElements or InspectorPro to search for indirection. Here are the functions you should be searching for: Get ( LayoutName ) Get ( ActiveFieldName ) ValueListItems ( ) Evaluate ( ) ExecuteSQL ( ) DatabaseNames FieldBounds ( ) FieldComments ( ) FieldIDs( ) FieldNames ( ) FieldRepetitions ( ) FieldStyle( ) FieldType( ) Get ( ActiveFieldTableName ) Get ( ActiveRepetitionNumber ) Get ( LayoutNumber ) Get ( LayoutTableName ) Get ( ScriptName ) GetField ( ) GetFieldName ( ) GetNextSerialValue ( ) GetNthRecord ( ) LayoutObjectNames ( ) Lookup ( ) RelationInfo ( ) and here are the script steps you should be looking for: Set Field by Name[ ] Go to Layout[ ] (By Name option and By Number option) Go to Related Record[ ] (By Name option) Once you find all the instances that could potentially use indirection you can go over each one of them and determine if they uses hardcoded names and should be updated. Conclusion Using indirection in FileMaker definitely give your solution more flexibility, allow you to accomplish complicated tasks with fewer line of code. If you follow what we discussed in this article carefully, you should be able to build a dynamic yet robust FileMaker system. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Download Building a Dynamic and Robust FileMaker System 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
  15. Why Your Business Should Use a Custom App In recent years businesses are realizing the benefits of creating a custom app for their organization. In fact, a survey performed by CDW shows that out of 374 executives surveyed 48 percent report their app development budgets have increased over the last few years and 42 percent are planning to invest in new app development in the coming year. This reported and projected growth isn’t surprising. Businesses are realizing that off the shelf apps just aren’t meeting the unique organizational and process oriented needs of their company as well as a custom app is able to. Custom apps are helping businesses manage scattered data and processes better than ever. Furthermore, businesses are finding their investments into custom apps “already have produced tangible benefits by increasing efficiency, productivity and allowing employees to work remotely”. Better Way to Work People want a better way to work. Off the shelf systems require you to change your workflow to match the system, have many features you don’t care about, or don’t meet your needs. Companies build custom applications to work the way they do. Organizations that continually improve their workflows look to custom applications. In the State of Custom Apps Report by FileMaker an Apple subsidiary, 83% of Citizen Developers “Just wanted a better way to work”. These problem solvers drive innovation and constant improvement. More Effective, More Efficient Becoming more productive is critical for all organizations. In the State of Custom Apps Report by FileMaker, 82% of users saw a reduction in inefficient tasks. If you’re doing the right things, then doing more of the right things will have a powerful impact on your organization. Eliminating redundant tasks liberate your staff and the intellectual drain caused by double or triple data entry between systems, in addition to reducing data entry errors. According to Small Business Computing, custom apps cut down on data entry errors by 71 percent. In addition to increased efficiency and decreased margin for error, businesses are also reporting a fast return on investment. After completing a custom application project, DB Services sends out a survey to customers and their responses state the ROI is less than one year in more than 70% of the projects. Once a custom app is deployed small enhancements only take a matter of hours, days, or weeks to implement. Better Insights Businesses today find themselves with islands of data scattered throughout each department as they use many different off the shelf products. In addition many times the data is trapped on a mobile device and/or laptop, and not accessible to your team in real time. Bringing all this data together becomes essential as organizations grow and work together in teams or across departments. In the State of Custom Apps Report by FileMaker, 46% say Reporting and Analysis best describes their custom app. As Peter Drucker, the founder of modern management, stated, “What gets measured gets improved.” The ability to measure the productivity and performance is vital for constant improvement. Having a custom application that has the data for analytics is critical to gather quick KPIs and metrics for insights to make the best decisions. All this data available in real-time to staff will also reduce the communication channels with co-workers and managers saving valuable time. There has never been a better time to build a custom app for your organization. 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. DB Services has been providing FileMaker Development, FileMaker Training, FileMaker Support, FileMaker Cloud Hosting, and FileMaker Licensing since 2003. Did you know we are an authorized reseller for FileMaker Licensing? Contact us to discuss upgrading your FileMaker software. Afficher la totalité du billet