<![CDATA[Blog]]> https://dbservices.com/ Mon, 04 Oct 2021 12:06:00 -0400 en-us Copyright 2021 3600 <![CDATA[Salesforce Winter '22 Release Highlights]]> https://dbservices.com/blog/salesforce-winter-22-release-highlights https://dbservices.com/blog/salesforce-winter-22-release-highlights Mon, 04 Oct 2021 12:06:00 -0400 Sales: Territory Planning Enhancements

Salesforce's Maps Territory Planning functionality has enabled companies to align their territory-based sales processes with the platform's flexible and powerful territory distribution mapping tool. Winter '22 provides even more customizability to territory planning that allows you to configure territories to better meet the needs of your business and your customers. Now, users have the ability to design territories to include both contiguous and noncontiguous areas, limit assignments to ensure even distribution of opportunities to sales reps, and control the assignment of containers or units to an area with regard to others within the focus. Each of these enhancements elevates the existing territory management tool's ability to serve the complex needs of territory-based sales.

]]> Service: Customer Service Incident Management

The new Incident Management feature aims to reduce the number of your customer's red-alarm emergencies when incidents occur. New tools allow you to track, diagnose, and avert service interruptions before they happen. Escalation teams can track disruptions and dynamically route tasks to agents to meet customer expectations. Once the root cause is identified, it can be logged, and the change manager can then determine the steps required to prevent the incident from occurring again. These new tools can help your business retain its reputation and focus on providing value to your customers.

Marketing: Datorama Reports for Marketing Cloud – Advanced

As an upgrade to Datorama Reports, the new Advanced features increase the usefulness of existing reporting and analytics tools for Marketing Cloud.  Users now have the ability to create dashboards for end-users, define key performance indicators, and leverage Datorama's numerous functions to create even more fields and attributes than was previously possible. Showcase your data and improve your marketing analytics with these impressive new features.

Experience Cloud: Microsites

Microsites are an exciting new feature that enables users to quickly build attractive and customizable web pages with an assortment of templates and capture user data to create leads. All of this is made possible using Salesforce's Lightning Web Runtime, and you can do it without the expense of developing a complete site. Designed to meet the pace of a rapidly developing digital presence, Microsites can be archived once they have met their need and free up space for more sites. With drag and drop components, CMS integration, and content delivery network enhancements, quickly building a dynamic and high-performance site has become a reality.

Platform: Salesforce Functions

As described by the company itself, Salesforce Functions allows you to "innovate fast and meet customer demands anywhere." Through the power of elastic computing and the flexibility of open language, Salesforce has given you the ability to scale digital experiences by extending your already existing data and workflows. By reducing your own infrastructure's responsibility and giving you the power to integrate FaaS apps with your org, you can raise developer productivity and scale elastically.

Analytics: Tableau CRM Output Connectors

With this update, Salesforce introduces two new Output Connectors for Tableau CRM. If you have ever wanted to share Tableau CRM's powerfully curated data with Tableau Online or aggregate data from multiple sources to write metrics to Salesforce, now you can. After transforming and cleaning your data in Tableau CRM, push it to Tableau Online and utilize its tools to optimize deals and identify trends. Leverage more tools across more platforms to get the most out of your data.

Industries: Digital Process Automation for Financial Services Cloud + Industries CPQ Enhancements

Powered by the OmniStudio Platform, Digital Process Automation for Financial Services Cloud enables an automated and connected end-to-end work environment. With Decision Tables, Calculation Matrices & Procedures, and Intelligent Document Automation, you can improve your customer and employee experience.

Some welcome enhancements brought to Industries CPQ help to simplify bulk asset change scenarios while improving ordering and processing capabilities. Service agents can now complete changes more quickly and accurately and endure less manual entry.

Nonprofit: Marketing Cloud for Nonprofits

Marketing Cloud for Nonprofits brings many of the Salesforce marketing capabilities you know and love to the Nonprofit side. Personalized emails with custom nonprofit tailored templates, audience segmentation, and automated email campaigns make fundraising and outreach easy. No matter the size of your constituency, you will have the tools to communicate and engage with them all effectively.

Commence the Configuration

So there you have it: an impressive list of changes that underscores Salesforce's continuing commitment to incorporating more dynamic and potent solutions to the platform. Though these highlights represent a subset of the Winter '22 Release, it is easy to see the potential to improve many processes currently residing in a variety of orgs. If you wish to learn more about these updates or the others included in the release, please check out the official release notes. If you have any questions about Salesforce or want to talk about your Salesforce needs, contact DB Services!

]]>
<![CDATA[Linux FileMaker Server for Ubuntu]]> https://dbservices.com/blog/linux-filemaker-server-for-ubuntu https://dbservices.com/blog/linux-filemaker-server-for-ubuntu Fri, 17 Sep 2021 12:00:00 -0400 Are you a system manager who is familiar with Linux? A business owner who is tired of buying expensive Windows licenses? Want to move your FileMaker hosting to the cloud but like to keep the DIY spirit alive? As the FileMaker product expanded, Claris responded to the demand for Linux compatibility and released installers with version 19. Below is an outline on how to install FileMaker Server 19.3 on Ubuntu server. So warm up those digits, because we’re losing the GUI and typing our way through this installation.

]]> Hardware Considerations

Claris still has the same minimum hardware requirements as the other operating systems: dual-core CPU with 8GB of memory (as of version 19.3). Not all server specs are equal, either. Older hardware, even with the same specs, will likely be significantly slower. To get the best experience, we recommend getting as close to the most recent generation of hardware as possible.

Ubuntu FileMaker Server Setup

First, you'll need access to an Ubuntu server running version 19. Then log in. We'll use our scripts to both update the server and install FMS, so we will import them. We will be using vim, but feel free to use your text editor of choice.

First, we'll create the file using the command "sudo vim script_update.sh".

]]> After you hit enter, you'll see a new blank document. Press "i" to start editing the document's text. Next, copy the text included in the script_update.sh file, and paste it into the Linux machine. Lastly, press escape, then ":wq". This will write to the document and close out of the document. 

]]> Do the same as above for the script "script_installFMS.sh". Once that's done, you can use the command "sudo chmod 755 script*.sh" to edit the permissions, allowing you to run these scripts.

Installing FileMaker Server

Now we can run our two scripts. First, run the update by typing "./script_update.sh". This will update the server. If it's brand-new, it will also install programs necessary for us to install FileMaker Server.

Next, let's take a look at the script that downloads and installs FileMaker Server. The link used in this script varies depending on the version. To make sure you have the correct link, you'll need to visit your licensing page. You can then right-click the download link for the Ubuntu server and click "copy link address". This will be the most up-to-date version, so if it differs from the information in the attached script, you'll want to update it before running.

]]> Next, download and install FileMaker Server by typing "./script_installFMS.sh". Follow along with the prompts in order to install the program.

]]> Once installed, the script will output all the processes that FileMaker installed. You should see them listed. Another way to check the installation is by typing the command "fmsadmin list files".

]]> Server Configuration Recommendations

At this point, the installation is complete! However, at this stage your server is still running on a trial license, so we'll want to load in your license.

Log into your server using your external IP address. The general format is "https://<external-ip>:16000". We recommend using an SSL certificate, so be sure to load it in. As with normal FMS, you'll need to restart the FileMaker Server service before the license will start functioning as expected. 

Lastly, navigate to the "Administration" tab in the admin console and import the license certificate.

]]> Now, you've accomplished the most basic setup!  All further configuration within the admin console is no longer Linux-specific.

Limitations

  • WebD worker machine deployment is not currently supported. Users will not be able to install the worker machine deployment method of FileMaker Server on Linux.
  • Custom web publishing using PHP and XML will not be supported. FileMaker Data API is supported and can be used on the Linux version of FileMaker Server.
  • System scripts cannot be run with the standard fmserver user. You must specify a user account on Linux to run system scripts by adding the user to the ect/sudoers file. See example below: 
]]> Conclusion

With a bit of know-how, it can be surprisingly easy to install FileMaker Server on a machine running Ubuntu. This can keep your costs low while still running on an operating system that’s trusted by developers. It’s also one of the earliest Linux distributions to adopt regular security updates and release cycles. For the FileMaker community, this has been a welcomed change, and we look forward to seeing more people utilize FileMaker Server on Linux. 

If you would like help installing your Linux FileMaker Server for Ubuntu or have questions, contact DB Services to speak with FileMaker certified developers and get help running your system on the newest FileMaker Server release.

]]>
<![CDATA[FM Quickstart 22]]> https://dbservices.com/blog/fm-quickstart-22 https://dbservices.com/blog/fm-quickstart-22 Fri, 03 Sep 2021 11:55:00 -0400 Leads and Opportunities

Managing your sales pipeline has never been easier with our new leads and opportunities modules. The leads module gives you a place to assign incoming leads to staff before beginning the qualification process. Assigned leads will populate the prospecting dashboard, ensuring nothing is missed. Users can create tasks for leads, allowing you to set follow-ups for staff. Once a lead has been qualified, it automatically creates a matching company, location, contact, and opportunity record. This will allow you to separate your unqualified leads from your company and contact database, keeping it clean.

The opportunity module then allows you to generate quotes pertaining to the opportunity. Companies can have multiple active opportunities with different contacts as needed. Open opportunities will populate the assigned user's dashboard, ensuring that nothing slips through the cracks. Users can create tasks for opportunities, allowing you to set follow-ups for staff. Once a related quote is sold, the opportunity is automatically completed.

]]> Purchasing

We have expanded FM Quickstart into a full purchasing and sales application by adding several purchasing modules. Users can now return items relating to received POs and submit work orders to generate inventory.

The purchasing returns module gives you the ability to send back items that may have been damaged or incorrect, allowing you to maintain accurate inventory counts. The work order module will allow users to generate new inventory through production, allowing you to add inventory quantity as needed. Open purchase orders, work orders, and receiving records will populate the purchasing dashboard based on the assigned user.

In addition, we have now separated the purchasing and sales sides of FM Quickstart into two divisions. Users that have access to both divisions will be able to toggle which top tier navigation they want to see, and users with only one division will only see the respective top tier. This will allow you to delegate specific roles to staff while keeping their application clean and precise.

]]> QuickBooks Online Integration

FM Quickstart now comes with a fully-featured QuickBooks Online integration, allowing for seamless transfer of data from the app to your QBO accounting software. Using the simple setup wizard, users will be able to quickly connect the app to their QBO account and instantly save time by eliminating double data entry between systems.

The new integration supports syncing data for all major modules including orders, returns, purchase orders, and PO returns. Payments recorded in FM Quickstart for any of these entities are also automatically synced. A user can instantly sync an item right from the data entry screen, and a status indicator will let them see at a glance if the information has been pushed to QBO.

The update also includes a Sync Dashboard that allows authorized users to view any outstanding items that are waiting to be synced across the system and push them all at once in a single batch. A fully-fledged logging system records every sync attempt and provides user-friendly error messages directly from QBO in the event of an issue. All integration details are also stored for simplified troubleshooting if necessary.

*Paid technical support is required for troubleshooting integration implementations.

]]> iPhone Functionality

With this year's release of FM Quickstart, we have built an iPhone system that allows users to access data anytime, anywhere. When a user signs in using FileMaker Go, they will automatically be directed to the mobile user interface.

Users will be able to view and edit contacts and tasks directly from their iOS device. The contact module offers easy-to-use tap to dial and email buttons for contact methods, as well as a create task button to quickly schedule follow-ups or assign tasks relating to the contact.

The task module allows users to easily view their own as well as other users' tasks, allowing them to review or take notes while out in the field.

Conclusion

DB Services is proud to present FM Quickstart 22 free and totally unlocked to the FileMaker community. This robust ERP app is great for anyone just beginning their journey into FileMaker, or for current FileMaker users looking for an update or new ERP module.

To download FM Quickstart 22, please visit the official FM Quickstart website here to have it sent directly to your email inbox.

Looking for help to get started with FM Quickstart? Check out our FM Quickstart Implementation Plans and find the one that fits your needs.

Don’t hesitate to contact our team with any questions, or give us a call at 888-488-0191. DB Services looks forward to the opportunity to help you build your dream Workplace Innovation Platform in FileMaker!

]]>
<![CDATA[Salesforce Service Cloud Implementation]]> https://dbservices.com/blog/salesforce-service-cloud-implementation https://dbservices.com/blog/salesforce-service-cloud-implementation Thu, 26 Aug 2021 11:48:00 -0400 Welcome, and congratulations to you for taking a step toward customer service nirvana with Salesforce Service Cloud! As you may know, Salesforce Service Cloud is a platform containing powerful tools that enable you to manage service interactions with your customers, build versatile automations, and utilize reports and dashboards to track the effectiveness of your implementation. The breadth of tools and configurations that Service Cloud offers is expansive, which promotes customizability. But it may also leave you wondering, “Where do I begin?” This guide will provide you an overview of the information you will need to build a successful Service Cloud implementation.

]]> Set-Up and Manage Cases

Cases are the primary tools that service agents will use to interact with your customers. Consequently, ensuring that they have been appropriately configured will provide a solid foundation on which to build your implementation. Additionally, cases and case management practices directly influence customer satisfaction.

]]> In your case management toolbox, you will find:

  • Case teams – Allows groups of people to work together to solve cases
  • Queues – Queues can be used to hold inbound cases without an owner so that team members who share workloads can take ownership and process them as they are created.
  • Assignment rules – Allow cases to be routed to users or queues specified by attribute criteria
  • Auto-response rules – For inbound emails, a criteria-dependent auto-response can be sent before a service agent’s follow-up.
  • Escalation rules – Rules may be defined to escalate certain cases based on criteria such as priority, case type, or response time.

Service-Level Agreements

In order to best serve your clientele, a standard of service is often utilized to ensure adequate attention is provided to each case that is created. Service-level agreements allow you to define a commitment of service you have made to your customer, implicitly or explicitly. Through service contracts, entitlements, milestones, and assets, you will find a comprehensive approach to managing SLAs.

Productivity Tools

Once a service process and case layout have been defined, you may become aware of repetitive tasks or opportunities for automation that your service agents would love to implement when it comes to interacting with cases. Service Cloud contains a multitude of time-saving tools to address these issues. Here are a few of the most helpful ones:

  • Quick Text – As simple as it sounds, quick text is a predefined message or phrase that a user can insert into emails, chats, and other mediums.
  • Macros – Macros allow you to define a set of instructions to tell the system how to process a certain task. For repetitive tasks that require the same method of execution, such as answering a customer inquiry, a macro can select an email template, send an email, and update the case status with one mouse click.
  • Mass Quick Actions – Users may use mass quick actions to edit or update up to 100 records from any list view.
  • Split View – This allows users to open a collapsible list view while also viewing record details.
  • Email Templates – A template allows for standardization of responses that can utilize case-specific details such as contact name or case subject. You can either define emails to be sent automatically or customize the email before it is sent. 

Omni-Channel Routing

One of Service Cloud’s most valuable features is the Omni-Channel, a tool that enables you to configure routing rules to assign work to agents based on availability and skillset. It can serve as a communication hub for multiple channels of interaction and ensure that your service team is working at an optimal level.

Additionally, it allows managers to easily monitor the number of work items assigned to agents and the status of cases routed by the Omni-Channel. Chat and voice transcripts are updated in real-time, and managers can use them to provide support to agents through messages or respond to requests from agents when assistance is required.

]]> Service Cloud Channels

Service Cloud is capable of capturing interactions with your customers across a wide variety of channels including email, phone, webchat, social networks, community portals, and more. Case creation automation tools, such as screen flows for phone calls and email-to-case, make it easy to update, interact, and manage service requests so that agents can spend more time solving issues and less time clicking through screens.

After all, the value proposition of a CRM service solution is to provide the best service through flexibility to communicate with your customers and easily gather all the important information from every interaction.

Salesforce Knowledge

Salesforce Knowledge gives you a repository to store and share knowledge articles with visitors to your website, customers, partners, or service agents. Knowledge articles are documents that may contain any variety of useful information you would want to share, such as an FAQ or a step-by-step walkthrough. In addition to knowledge articles, Chat Answers allow your service agents to use the Knowledge Base to answer customer inquiries and embed articles right in the chat session. With the use of Data Categories, articles can be organized and grouped by defined criteria and allow for controlled access so that only the right people are able to view certain documents.

Einstein for Service

One of the most exciting features of Service Cloud is Einstein for Service, a collection of tools that utilizes AI and intuitive recommendations to aid customers and service agents.

  • Einstein Bots – Bots are a great way to reduce the number of low complexity requests to your service agents. They can be configured to handle routine inquiries from your customers and can escalate more complex issues to a service agent if needed.
  • Einstein Classification Apps – This incredibly useful tool can be utilized to automatically fill certain case fields based on historical case data, recommending or selecting values so that your agents can focus their attention on the conversation. For chat sessions, agents are shown recommended or selected values based on chat interactions with Einstein Case Wrap-Up.
  • Einstein Article Recommendations – Agents may be given article recommendations based on chat communications to quickly and sufficiently answer cases.
  • Einstein Reply Recommendations – Easily craft replies to customer chat messages that allow for standardization of messaging to customer and free up agent resolution time.
]]> Security

Ensuring that sensitive or confidential information remains secure is incredibly important and the security features within Salesforce allow for custom access for each user. With Sharing Settings, Roles, Profiles, Permission Sets, and Field Level Security, you have the ability to control access from the highest to the lowest levels of your organization's data structure. 

  • Sharing Settings - With Sharing Rules you can automatically open up access to users at the record level by defining which records get shared with certain users based on record criteria. Manual sharing enables users to ad hoc share records with users that may not have read or edit access through other permissions.
  • Roles - By utilizing roles and a role hierarchy, you can open up access to record-level data based on your own organization's hierarchy. For example, you can allow managers to have access to records owned by their subordinates.
  • Profiles - Profiles determine what permissions a user has to view or interact with data at the object level, such as create, read, edit, and delete.
  • Permission Sets - Permission sets allow you to grant additional object-level access to a definable subset of users that may or may not share the same profile.
  • Field Level Security - At the most granular level of object-level security, field-level access enables you to give profiles or permission sets access to individual fields within an object.

Reporting and Dashboards

Service Cloud support reports and dashboards give supervisors a comprehensive picture of their service team's output and can highlight opportunities for process improvement. Reports can track statistics such as the number of cases created, case comments, emails, case owners, contact roles, response time, and any other important case data. Dashboards allow you to visualize report data and can give you an at-a-glance service health check.

]]> Data Migration

If you require an import of existing case or service data into your implementation, Salesforce features a couple of data migration options to suit your needs. The Import Wizard is ideal when loading less than 50,000 records at a time and allows you to avoid duplicate record creation. The Data Loader is capable of loading up to 5,000,000 records at once and offers a command-line interface for performing automated operations. 

System Integrations

As with many businesses who use Salesforce, it may not be the only system that is a part of your service process. Should you require integration with an existing ERP or service platform, there are a number of solutions you can leverage to connect them to Salesforce Service Cloud. This provides you the ability to share records between systems and perform useful automation, which can help streamline your resolution process and improve customer experience.

 Salesforce AppExchange boasts a robust library of premade integration packages that you can easily install to your org. Alternatively, if an out-of-the-box option won't cut it, a company such as Contact Us can help you build a bespoke integration solution to fit your needs. 

Time to Build Your Best Service Platform

The possibilities for building a custom service implementation are nearly endless when considering all the offerings in Salesforce Service Cloud. And with a comprehensive understanding of your business and service processes, a tailored Service Cloud can provide incredible value to you and your customers to build relationships that reach beyond the context of customer service. Contact DB Services for any questions you have or if you need assistance building your best service platform in Service Cloud!

]]>
<![CDATA[Salesforce Sales Cloud Implementation]]> https://dbservices.com/blog/salesforce-sales-cloud-implementation https://dbservices.com/blog/salesforce-sales-cloud-implementation Wed, 28 Jul 2021 11:10:00 -0400 You’ve decided to use Salesforce, but now what? What do you need to be aware of? What comes out of the box and what will need to be customized? What parts of your business can Salesforce automate and what workflows do you need to implement? In this article, we’re going to go over all of the basic information that you’ll need to consider to successfully implement Salesforce in your organization.

]]> Custom Fields

The major Salesforce objects you’ll likely be working with are Accounts, Contacts, Leads, Opportunities, and Tasks. Each object will give you the ability to add, update, and delete records with just a few clicks. While all standard Salesforce objects come with out-of-the-box fields that organizations commonly need to track- such as names, contact information, status, etc.- custom fields can be added to let you track additional information. Opportunities, Accounts, and Tasks tend to be the most customized objects in our experience, but almost any object can be updated to track the details you require. The additional fields can range from simple data entry to complex calculations and will ensure that your sales team has the information they need to make their job efficient and effective.

]]> Custom Objects

Standard Salesforce objects can be customized to fit your needs, but sometimes you need more than just additional fields. Fortunately, you can also create full custom Objects. If, for example, you were an accounting firm keeping track of a contact’s dependents, it would make sense to make a custom object called Dependent. You could then use a lookup field to tie that Dependent record to the contact and track information such as the relationship (Son, Daughter, etc.) and potential tax credits associated with the dependent. The custom object will allow you to organize and keep track of information without cluttering the contact record with an infinite amount of additional fields.

Stage Tracking

Every business is different in the way that it tracks a sale from the beginning stages of being a lead to the closing stages of an opportunity. It is important to identify what stages need to be covered when qualifying, disqualifying, and converting a lead to an actual opportunity. Once the lead has been converted, it’s important to track what stages are between the qualification and the actual winning or losing of that sale. We have found that this is one thing that seems to always be customized in a Salesforce implementation, so it is worth considering early on. 

Opportunity Products

Out of the box, opportunities can have products or you can simply enter an opportunity amount directly on an opportunity. If you don’t need line item reporting, we suggest just tracking the opportunity by the amount. However, if you need reports based on product category or family, you’ll want to take advantage of the products and price book features and will want to populate your product catalog in Salesforce. Salesforce does have quoting, but it’s relatively basic. If your quoting needs just require a list of items and prices, the basic functionality may work well for you. Otherwise, you may need to look into quoting tools such as Salesforce CPQ.

]]> Reporting and Dashboards

Salesforce is a great tool for reporting. You can create both simple and complex reports with relative ease once you have decided on the KPIs and information you want to track within your Salesforce system. In our experience, the most common reports an organization will want are for sales pipeline management, sales forecasting, and activity tracking, but the possibilities are pretty much endless.

Once the reports have been created, dashboards can be built to show users relevant information at a glance in list views, charts, and diagrams. These dashboards can be put on a user's landing screen so they get important information as soon as they log in. They can also be placed throughout the system to make sure that a user always sees the information they need at the time that is most useful to them. With dashboards, users will be able to increase their efficiency and effectiveness by not having to dig through records to pull up and summarize relevant information.

]]> Activity Tracking

Your Salesforce users are more than likely speaking with many contacts throughout the day. The best way to keep track of who they’ve contacted, what they talked about, and what the next steps will be is through activity tracking. Users can log their calls, set up tasks, and more by using the functionality within the Activity section that comes out of the box on most standard objects. If you want to automate some of the tracking, your Salesforce admin can turn on Einstein Activity Capture and allow users to keep their Gmail or Outlook account synced and pull in events, emails, and contacts automatically. 

NOTE: If your organization uses Einstein Activity Capture, the emails that are synced do not create records in Salesforce, so you will not be able to run reports off of those emails. There are third-party products on the AppExchange to automatically sync emails and be able to report off of them.

Campaigns/Marketing

One of the most common uses of Salesforce is to use the data to drive marketing initiatives. Your organization will need to determine whether to use the standard Salesforce campaigns to track which marketing efforts led to won opportunities. Some organizations like to do all marketing directly from Salesforce, while some prefer to use a separate platform, and some like to use a combination. If you are using a separate marketing platform today, you’ll need to decide if you want to sync information to and from Salesforce. 

Automation and Integration with a Third-Party System/ERP

Salesforce has an extensive array of automation for business processes and to eliminate redundancy. Are there parts of your sales process that will be important to automate? If so, you can often do the automation with Salesforce native features. If your implementation needs integration with an ERP, there can be a lot of complexity surrounding that process. If in-house developer resources are low, it may be best to reach out to a Salesforce partner, like us here at DB Services. However, Salesforce is a very popular platform and normally has a connector to other popular platforms. It’s important to note that these will cover a lot of the requirements that most organizations need, but often not all of the requirements, so additional customization may be necessary.

]]> Data Migration

When your needs are met within Salesforce and all testing has been completed, you can either start data entry from a clean slate or you can import data from a previous platform. Data frequently needs to be formatted and cleaned to be able to be imported into Salesforce. It's important to plan this part out towards the beginning of the implementation so there is enough time to clean the data before deployment. This data can be imported into many of the standard Salesforce objects using the Data Import Wizard if you have fewer than 50,000 records to import. The Import Wizard can also use Salesforce’s duplication rules to prevent duplicate entries into accounts, contacts, or leads. If duplicates are not an immediate issue or you have more than 50,000 records you want to import in a single action, you’ll need to use the Data Loader. 

Security

Salesforce has an extensive set of security options that you can utilize to implement whatever security structure you need. For example, you can set up your organization's role hierarchy and restrict record access based on that role hierarchy. Users can be limited to simply viewing specific records or be given the ability to edit, delete, and modify records. You can also utilize user profiles and permission sets to create a nearly endless combination of access privileges for users throughout the system. Deciding who should be allowed to do what will make your information safer and keep people accountable within the system.

]]> Salesforce Administrator

When setting up your Salesforce system, you will need to determine who will take on the role of Salesforce Administrator. Whether you are outsourcing this role or handling it internally within your organization, it is important to make sure someone will be overseeing adding and removing users, customizations, deploying updates, and much more. Salesforce offers great training resources with their Trailhead program for companies who want to name an internal administrator. Additionally, we at DB Services offer training as a service for anyone who would like to learn to be an administrator, or we can be your outsourced administrators using our Managed Services.

Human Element

Finally, it is important to consider your users when developing your Salesforce system. The most important thing for your success with Salesforce is user adoption and organizational buy-in. If your Salesforce solution resolves a pain point for your users' day-to-day workflows, you will be much more likely to see a return on your investment with Salesforce, as you'll have an easier time with adoption.

Conclusion

There are clearly many things to take into consideration when developing and deploying a Salesforce implementation. When implemented correctly,  Salesforce can take your business to the next level. From customizing your system to fit your unique needs, to choosing your Salesforce administrator, to reporting and forecasting with real data, there is a lot that needs to be considered for a successful implementation. We believe that these considerations will set you on the right path to success with Salesforce. Contact DB Services at any time if you have questions or need help with implementing Salesforce in your organization!

]]>
<![CDATA[Surveys for Success: Society of St. Vincent de Paul-Indianapolis]]> https://dbservices.com/blog/surveys-for-success-society-of-st-vincent-de-paul-indianapolis https://dbservices.com/blog/surveys-for-success-society-of-st-vincent-de-paul-indianapolis Tue, 13 Jul 2021 12:39:00 -0400 Since the 1940s, St. Vincent de Paul has been serving the most vulnerable in our communities by providing food, clothing, transportation, shelter and, ultimately, sustainable paths out of poverty. They offer an extensive list of valuable programs and resources, including two food pantries, meal delivery to homebound individuals, a distribution center for household needs like furniture and appliances, and immersive programs teaching people how to become economically self-sufficient so they can break generational cycles of poverty. As a 501(c)(3) organization, St. Vincent de Paul depends on the support of donorsvolunteers, and other community partners. They also operate The Mission 27 Resale thrift shop to raise even more funds for their Changing Lives Forever program.

Each survey we receive is an additional donation towards the Society of St. Vincent de Paul-Indianapolis. Your feedback for DB Services will not only help our team, but provide St. Vincent de Paul with donations in the process! Simply fill out our surveys with your feedback, and together we can make a positive impact.

]]>
<![CDATA[Claris FileMaker 19.3 Overview]]> https://dbservices.com/blog/claris-filemaker-19-3-overview https://dbservices.com/blog/claris-filemaker-19-3-overview Wed, 23 Jun 2021 12:48:00 -0400 Claris FileMaker Pro 19.3

This release of FileMaker Pro comes with an important compatibility update for Apple Silicon users and a highly requested change to web viewers on the Windows platform.

Goodbye Internet Explorer, Hello Edge! (Windows Only)

One common thing we have heard from developers over the years is the challenge Internet Explorer causes when using a web viewer. We are happy to say the latest version of FileMaker now leverages the latest Microsoft Edge browser, which uses the popular Chromium open-source project. This should make for a more pleasant cross-platform development experience all around. 

]]> Native Apple Silicon Support (Mac Only)

This release includes native support for Mac’s newest chipset, using low-code Universal macOS binaries. This will ensure an optimized experience and performance on all future Apple machines. Not to fret; Intel-based Macs are still being supported and are just as great as ever.

]]> Claris FileMaker Server 19.3

Claris continues to maintain a solid server product line. This version adds many more under-the-hood tweaks to boost performance, flexibility, stability, and security.  

Log Viewer!

The last time the log viewer made an appearance was FileMaker Server 16! We are extremely happy to have it back in the Admin Console. Being able to quickly view, filter, and sort the log is a great time saver. This new incarnation of the log viewer has an Interactive View allowing one to choose multiple logs to view at once. 

]]> Ubuntu Linux

Being able to run FileMaker Server on Linux has been a welcome addition. Now, Claris has made it even more future-proof by supporting Ubuntu. Linux is known for its enterprise-grade support, reliability, and performance. Ubuntu is one of the most affordable distros available. 

]]> Claris FileMaker Cloud 2.19.3

Claris Cloud will also benefit from additional feature parity, gaining not only the log viewer, but a schedule manager as well!

Schedule Manager

Up until now, if you wanted to create a schedule on Claris Cloud, you needed a 3rd-party tool, such as our free FileMaker Cloud Schedule Manager. Now, these can be scheduled directly within the cloud console itself. This welcome change brings the Claris FileMaker Cloud product in line with the dedicated Claris FileMaker Server. 

]]> Summary

The Claris FileMaker platform continues to solidify its position as a leader in creating innovative workplace custom apps that work seamlessly across desktop, mobile, and web. FileMaker Pro 19.3 is a great release with features both developers and end-users can benefit from. 

We look forward to helping you build custom applications using the new functionality available in 19.3. Contact DB Services at any time if you have questions or needs with Claris FileMaker!

]]>
<![CDATA[Saving Journey History in Marketing Cloud]]> https://dbservices.com/blog/saving-journey-history-in-marketing-cloud https://dbservices.com/blog/saving-journey-history-in-marketing-cloud Fri, 18 Jun 2021 11:50:00 -0400 Salesforce Marketing Cloud allows you to set your contacts on a marketing journey with timed communications and logic-based actions. It also gives you the ability to track what happens to those contacts over time. The catch is you're only allowed 30 days of tracking data. For some larger campaigns, or even for historical comparisons, 30 days of data just isn't enough. Luckily, by leveraging the Marketing Cloud REST API and its automations, we can store as much of that data as we'd like for access at any time.

]]> Getting the Data

The most challenging part of saving the journey history data is actually getting to it. There is not a documented endpoint for grabbing journey history data, but that doesn't mean it can't be done.

The endpoint to grab the data from is "interaction/v1/interactions/journeyHistory/." This returns an array of the data in the journey history, just like you'd expect from other SSJS queries or REST API calls.

Example Call:

]]> You can specify the record page you'd like to retrieve and the number of records returned in a single call by using the "interaction/v1/interactions/journeyHistory/search" endpoint with $page and $pageSize parameters. We found that requesting 1,000 records at a time was the most efficient and least likely to cause problems.

Example Response:

]]> What About Orgs with Several Business Units?

Many organizations using Marketing Cloud have at least one business unit other than their primary one. Depending on how your organization separates data, you may want to separate out the saved journey history for each business unit. At the least, you'll want to save the journey history for all your business units.

To switch which organization you want to retrieve data for, it's as simple as getting a new access token from that business unit. Since authentication requires the MID, you can simply pass each one in turn to get that business unit's data.

Avoiding Timeouts

Depending on how much your organization uses journeys and how active your contacts are, you may end up with a lot of data to retrieve and store. Since you won't want to replicate your SSJS several times for each org, that means all the data needs to be recorded within the thirty-minute timeout window.

]]> There are two strategies that will help keep your automation running quickly. The first is the tried and true database rule: limit your queries. Keep track of the latest journey history line you've synced for each business unit and only query from that timestamp on. This will keep the number of records returned much more manageable.

Second, you'll want to record your data in bulk. Writing data takes time, so bundling the returned records into a large array and using the SSJS Rows.Add() function to add up to 2,500 (again, we recommend 1,000 as that seems to perform more reliably) records at a time, which will help keep your automation running efficiently.

Conclusion

The data integration and reporting available in Marketing Cloud is what makes it such a powerful marketing tool. While saving all your journey history requires some work, the result is significantly more data that users can analyze to create more useful customer journeys. For help gaining additional insight into the success and trends in your journeys, please contact us.

]]>
<![CDATA[Salesforce Summer ’21 Release Highlights]]> https://dbservices.com/blog/salesforce-summer-21-release-highlights https://dbservices.com/blog/salesforce-summer-21-release-highlights Fri, 04 Jun 2021 01:01:00 -0400 Sales Cloud: Pipeline Inspection

With Salesforce’s new Pipeline Inspection feature, managers and sales reps can quickly and easily keep tabs on important sales information. This feature provides an overall dashboard view to let users know exactly how many sales have been won, lost, and what can be expected in the future. Using visual indicators such as arrows and colors, users can see whether deals are moving forward, lost, or stuck in limbo. These new features will empower users to make decisions quickly and maintain a healthy pipeline.

Service Cloud: Workforce Engagement

Workforce Engagement is a new tool to help ensure that the most qualified and available agents are assigned to the work that best fits their skill set. With the help of historical Salesforce data, this new feature can ensure that your company has enough staffing with the right skills to handle your forecasted workload. Based on the forecasted workload, your employees' skills, and your employees' preferences, you can adjust schedules and make sure that the appropriate people are working at the times when you need them most. This will help keep the employer, the employee, and the customer satisfied. 

Commerce Cloud: Headless Commerce Enhancements

Managing a storefront on the web is now easier than ever with a number of Headless Commerce Enhancements. Using the Commerce PWA Kit and Managed Runtime, your users will have a fast, smooth, and secure experience across all of their devices. Your developers will appreciate the power and flexibility that comes with easy deployment, secure logins, and inventory management provided by the Omnichannel Inventory enhancements.

Platform: Einstein Search

In under a minute, you can now activate Einstein Search to provide your Salesforce Org with powerful search functions. The three features included are Personalization, Actionable Instant Results, and Natural Language Search. Personalization will cater searches to each user's personal preferences — learning as you use it. Actionable Instant Results, which is still in Beta, gives you suggested searches and allows you to perform tasks during a search.  Natural Language Search, also still in Beta, allows you to use common words to make quick filters with simple sentences such as “Contacts in Indianapolis.”

]]> Marketing Cloud: Datorama Reports for Marketing Cloud

Datorama Reports will help you by offering powerful insights into your analytics from your email and journeys. The feature must be turned on and takes about 48 hours to fully deploy, but once it’s available, it is incredibly useful. Salesforce automatically creates easy-to-use dashboards to show how your emails have been interacted with and how they have performed for your campaign. You can then create powerful Pivot Tables and reports to inspect your data on even deeper levels.

Integration: MuleSoft Composer Connectors

Salesforce has added more connectors to the Mulesoft Composer, including Tableau, Slack, and Google Sheets. With these connectors, you can make integrations quickly and easily by selecting the connector you want to use and creating flows with the functionality provided. This will allow just about anyone to make simple or complex integrations with little experience!

Non-Profit: Experience Cloud for Nonprofits

With Experience Cloud for nonprofits, Salesforce has made it easy to create a place online for users to donate to your organization. By providing a centralized location, you can allow your donors to see their donation history and continue to donate by simply logging in to your page.

Financial Services Cloud, Manufacturing Cloud, Consumer Goods Cloud, and More: Rebate Management Integration with CPQ

The Rebate Management Integration allows you to apply rebate types to many standard and custom object pages. You can make whatever rebate type you like, apply custom eligibility conditions, and offer those rebates through orders, opportunities, and more. 

Media Cloud, Energy & Utilities Cloud, Public Sector, and Sustainability: Intelligent Document Automation for Public Sector

Intelligent Document Automation is a very powerful application that will allow public agencies to parse and evaluate applications for things such as permits and licenses. After mapping data fields to a given form or template, the filled-out form simply needs to be uploaded. The form is then saved and parsed by Salesforce using Amazon Textract. This process saves time and money by doing the data entry for you and allowing you to simply verify correctness.

Conclusion

As always, the features provided in this release give Salesforce users even more flexibility and power to improve their organization. We mentioned quite a few of the Summer ’21 updates in this article, but there are plenty more that we didn’t. Be sure to check out Salesforce’s official release notes page if you’d like to learn even more about this latest Salesforce release. Contact DB Services at any time if you have questions or needs with Salesforce!

]]>
<![CDATA[FileMaker® Formstack Integration]]> https://dbservices.com/blog/filemaker-formstack-integration https://dbservices.com/blog/filemaker-formstack-integration Tue, 01 Jun 2021 11:41:00 -0400 In an increasingly paperless world, you rely on digital documents, e-signatures, and online forms to quickly engage with your community. Formstack makes it simple! Formstack can automate document creation, collect secure signatures, and drive your data collection with astonishingly customizable forms. And with over 100 prebuilt integrations, it's easy to understand why over 27,000 companies trust Formstack to get their data where it belongs. Your FileMaker® app is no exception – Formstack's powerful webhooks make integrating Formstack with FileMaker a breeze. Download our sample file, then follow along with the video and article to see just easy it can be to reimagine your FileMaker data collection!

]]> No-Code Web Forms

The Formstack Form is, expectedly, a cornerstone of the platform, and it's easy to see why. Beyond its robust and elegantly simple drag-n-drop, no-code interface, Forms allow you to automate complex tasks with a few clicks. Log in or create a Formstack account - you can try out everything in this article with a 14-day Forms trial period. Once logged in, create your first form.

]]> From the multitude of templates, we chose a Contest Submission form. After picking a template, you'll navigate to the Form editor, where you can freely rearrange sections, toggle through a range of color themes, and drag-n-drop a huge range of powerful components. In our example, we removed the Phone Number section and added a radio button section - without needing to mess with any code. Add a radio button and name it Radio (like in the next image), and see what else sparks your imagination! Once your form is ready, we'll gather its submissions in FileMaker.

]]> Prepare FileMaker

To communicate with the FileMaker app, Formstack utilizes webhooks to post data across the web. If you haven't downloaded the sample files, do so now. Upload the sample FileMaker file, then open it from your FileMaker Server. The file opens on a Setup page to keep track of the process. Check off and fill out the first few steps - we're already almost halfway done!

]]> The webhook we'll use is also included in the sample files. Locate and open dbaccess.php in a text editor. The heavy lifting is already done - just update lines 11-14 to reflect your FileMaker server's information. Any spaces in your Server or FileMaker file name should be replaced with "%20" on lines 11 and 12 – they'll be used in a URL. Once updated, host the 3 PHP files on a web server. There, they wait for Formstack's signal.

]]> Watch The Submissions Roll In

All that's left is to attach your webhook to your Formstack Form! Navigate the Form's settings, and locate the Emails and Actions Advanced Settings section, where you can add a webhook. The URL to use is the full URL of submitFormstack.php on your web server - e.g. https://abc.yourwebserver.xyz/submitFormstack.php. No need to adjust any of the other settings - just click Save and start collecting! 

]]> Open your Form and submit a few test entries. When the Form is submitted, it posts the form data to the PHP webhook, and the PHP webhook creates a FileMaker record. Head to the Submissions page of the sample FileMaker file to watch entries appear as they're submitted online. 

]]> From there, it's up to you and the power of FileMaker! 

Building With Purpose

Formstack's Forms are a powerful and flexible way to reimagine data collection, and still only a third of the Formstack Platform. With powerful document automation and multi-platform eSignature capture, Formstack is a perfect augmentation to your FileMaker app.

Want to talk through your Formstack integration? Let us know how we can help you make the most of it! Contact our team at DB Services if you need help or have any questions regarding your FileMaker Formstack Integration. 

]]>
<![CDATA[Getting Started with Claris FileMaker®]]> https://dbservices.com/blog/getting-started-with-claris-filemaker https://dbservices.com/blog/getting-started-with-claris-filemaker Fri, 30 Apr 2021 11:34:00 -0400 If you're new to FileMaker® and don't know where to start, you're in luck! We've been working with FileMaker since 2003 on hundreds of projects, and we want to share our expertise with beginners like you. This collection of resources will help you get started building custom FileMaker Apps today. 

]]> 1. Claris® Academy

Claris® Academy is a perfect place to start your FileMaker journey. They offer personalized learning plans to build your skills and help you reach your goals, no matter your skill level. Through a combination of written instruction, videos, and interactive activities, you'll be well on your way to building your first app. 

]]> 2. Claris® Marketplace

On Claris Marketplace, you can explore products created by FileMaker experts, like apps, templates, and training materials. Pre-built apps and templates make it easy to get FileMaker up and running quickly- use them as a starting point and add build-ons for your custom app. 

]]> 3. Claris® Community- New to FileMaker

Join the Claris Community to learn from FileMaker experts and enthusiasts from all over the world. Ask questions, find answers, or just read up on popular topics you're interested in. You can also join groups based on your interest or skill level, like the New to FileMaker group, to ask questions about building your first app or using FileMaker for the first time. 

4. Claris® Support

Knowledge Base
Claris has an extensive Knowledge Base with all the resources you need and answers to any question you can think of. You can filter your search by product, version, or date posted. 

]]> Updates and Release Notes
With Updates and Release Notes, you can view release notes for any version of FileMaker for Cloud, Mac, Windows, or Linux. These release notes provide information about each version, including new features and how-tos. 


Product Documentation Center
Claris also provides a Product Documentation Center, a one-stop-shop where you can view all product documentation for different FileMaker products. This includes release notes, installation and setup guides, help guides, security guides, and more. If you don't find what you're looking for, Claris is always accepting feedback to improve customer satisfaction. 

5. DIY Custom App eBook

Download Claris' free ebook to learn the essentials for building a custom app. It covers three essential principles:

  1. Planning- Evaluate what is unique about your business, and the book will walk you through some guidelines that will help define your app in terms of your business needs. 
  2. Creating- Learn the essential tools of FileMaker to bring your ideas to life
  3. Deploying- Assess your business needs and deploy on-premise or in the cloud

6. Templates

If you need some help and don't know where to start building, Claris' Templates can be a great place to begin. This is a great resource because many of the templates and sample files were created by FileMaker experts and Claris partners, and some are completely free. Just download the templates and sample files that best fit your needs.

]]> 7. Events

Find inspiration for your custom web app with Claris Events. They offer meetups, workshops, conferences, training, and even on-demand webinars. Filter by location or event type to find the event that's perfect for your needs. 

Conclusion

We hope these FileMaker beginner resources provide a solid foundation for you to build upon to create your first custom app with FileMaker! Contact our FileMaker experts at DB Services if you have any questions or need help developing your custom app.

]]>
<![CDATA[Surveys For Success: Global Spine Outreach]]> https://dbservices.com/blog/surveys-for-success-global-spine-outreach https://dbservices.com/blog/surveys-for-success-global-spine-outreach Thu, 22 Apr 2021 11:43:00 -0400 <![CDATA[MuleSoft Composer for Salesforce]]> https://dbservices.com/blog/mulesoft-composer-for-salesforce https://dbservices.com/blog/mulesoft-composer-for-salesforce Tue, 13 Apr 2021 11:48:00 -0400 MuleSoft Composer for Salesforce is the fastest and easiest way for non-developers to connect third-party applications and data to Salesforce using clicks, not code. No more waiting for developer resources for urgent, high-priority projects; MuleSoft Composer empowers you to build and integrate quickly, without ever leaving Salesforce.

Empower Non-Developers

In many organizations, admins and other employees are dependent on developer or IT resources to complete their requests for change or innovation within Salesforce. MuleSoft Composer eliminates part of this setback, enabling non-developers to build and integrate directly in Salesforce. There’s no need to learn a new system- the integration tool is built right into the admin console for easy use. Both teams are able to work together to innovate better and faster, delivering on high-priority projects more quickly and efficiently. 

]]> Clicks, Not Code

MuleSoft Composer provides a guided, click-through experience that makes it easy to connect apps and data to Salesforce. Just follow the onscreen instructions- no code required! For quick, automated integrations, utilize the library of pre-built connectors and templates to get your project up and running fast. Preview as you build and design with real data, and monitor errors with automatic alerts. 

Some of their pre-built connectors include:

Creating a New Composer Flow

When creating a new Composer flow, you will first have to connect with the system in which you want the flow to start and choose the event that triggers the flow. You can also choose to schedule when the flow will run instead of triggering it with an event. Your Composer flow can start in any system that has a connector. 

Now, you can add additional steps to take actions in any system you are connected to, including the system where the trigger happened. Choose the system where the action takes place, and add other basic flow actions like if/else or loops.

]]> When an action returns a record (or records), you can use that data in other actions. Use the test button at any time to see how your Composer flow is working. When you’re ready to go, activate your flow. 

Conclusion

MuleSoft Composer is the perfect no-code tool for non-developers to connect data to Salesforce. Empowering your Salesforce admins has never been easier- you'll get the tools you need to quickly unlock data, connect apps, and automate integrations. Contact DB Services today for assistance with MuleSoft Composer for Salesforce

]]> Photos from:
Connect Your Apps and Data to Salesforce with MuleSoft Composer
Introducing MuleSoft Composer for Salesforce: The Fastest, Easiest Way to Connect Your Apps and Data to Salesforce

]]>
<![CDATA[FileMaker PandaDoc Integration]]> https://dbservices.com/blog/filemaker-pandadoc-integration https://dbservices.com/blog/filemaker-pandadoc-integration Tue, 06 Apr 2021 12:08:00 -0400 Sometimes you need to send a document to be signed virtually. Integrating PandaDoc with your FileMaker solution makes this an easy task. PandaDoc has a robust API that allows you to create, send, and receive documents digitally using the functionality of your FileMaker system to manage the process. Our guide will show you how you can begin sending documents quickly and easily, streamlining your e-signature process. 

]]> PandaDoc Setup

Before you start sending documents, you will need to create a PandaDoc account. You can visit their webpage to create an account. Once logged in, PandaDoc will have templates you can use or you can create your own custom templates. 

]]> From here, you will want to go to the PandaDoc settings and navigate to the Integrations section. Scroll to the bottom of this page and find the API settings. Click the toggle to turn on the API and choose between a sandbox or production environment. For this example, you will be using a sandbox environment to test the integration and send a sample document. Click on the green "Generate Sandbox Key" button to get your API key. 

]]> Listing Templates

Now that you have your keys you can pull your PandaDoc templates and create records for them in FileMaker. You will use PandaDoc's API documentation as a reference. To list templates, you will use a GET call to the following address: https://api.pandadoc.com/public/v1/templates. You need to include your authorization in the cURL. 

]]> From there, you get your results in JSON that you can parse and use to get your template and role information. Each template will have a template id, which is used to create documents from the template, and roles, which are used to assign people to sign or fill information on the document. 

Creating Documents

Now that you have template and role information in FIleMaker you can use that to create documents from your templates. PandaDoc makes this easy. All you need to do is make a POST call to https://api.pandadoc.com/public/v1/documents. Your cURL will be similar but you need to pass parameters. You will need the template name and uuid you got from PandaDoc when you listed your templates. You will also need to send a recipient's object with the first name, last name, and email for each role.

]]> Listing Documents 

Now that you have created documents in PandaDoc you can list your documents by making a GET call to https://api.pandadoc.com/public/v1/documents. Your cURL will be the same as when you listed your templates.

Sending Documents

You can also send documents with the PandaDoc API. You can use a POST call to https://api.pandadoc.com/public/v1/documents/id/send where "id" is the id of the document you want to send. That's it! The document will be sent to the email addresses you assigned to the role(s) for that document.

Conclusion

Integrating PandaDoc with your FileMaker system can reduce the costs of sending documents while also streamlining the process and allowing for automation. PandaDoc also allows you to use information you may already have in FileMaker to fill document tokens and create unique documents quickly. Sending documents virtually makes the process faster and easier for all parties. Being able to integrate that process with FileMaker makes creating and sending the documents even easier. Contact us today for assistance integrating PandaDoc with your FileMaker system.

]]>
<![CDATA[Marketing Cloud Connect: View Full Resolution Emails in Sales or Service Cloud]]> https://dbservices.com/blog/marketing-cloud-connect-view-full-resolution-emails-in-sales-or-service-cloud https://dbservices.com/blog/marketing-cloud-connect-view-full-resolution-emails-in-sales-or-service-cloud Tue, 02 Mar 2021 11:26:00 -0500 Marketing Cloud Connect allows users to view a thumbnail of emails sent from Marketing Cloud in Sales and Services Cloud as part of its default setup, but long emails like newsletters or promotions can prove difficult to see. With some additional setup using Apex and Visualforce pages, we can allow Sales and Service Cloud users to view a full-resolution version of the email so they can remain fully informed about all the communications sent to a contact.

]]> Sales and Service Cloud Tools

Apex and Visualforce Pages

Before beginning, it’s important to know what Apex and Visualforce pages are. Apex is a server-side programming language used by Salesforce to run custom code on the Salesforce platform. Apex allows organizations to extend Salesforce beyond what is possible with the built-in low code tools. In this case, you’ll use Apex to connect to Marketing Cloud's REST API to get the HTML of the email that was sent.

Visualforce pages are one of the tools Salesforce provides to build custom user interfaces and web pages on the Salesforce platform. Visualforce pages have the ability to display HTML and to run Apex. For this article, you’ll leverage these features to allow users to view the email sent to a contact.

What to Implement to Set Up Full Resolution Emails

Getting the Email Content from Marketing Cloud

The first step is connecting directly to Marketing Cloud from Sales or Service Cloud with Apex. To do so, you’ll use the Marketing Cloud REST API.

When setting up authentication to any system in Apex, it is a best practice to use Named Credentials. Authenticating with the Marketing Cloud API is no exception. Named Credentials allow you to securely store authentication information that your Apex code can reference. In addition, they also handle token refreshes automatically, so you don't need to account for expired tokens when building the Apex code.

]]> Named credentials do not currently support the server-to-server authentication flow in Marketing Cloud, so you'll have to set up a custom OAuth process to use. Setting this up is outside the scope of this article, but if you have trouble implementing it, please reach out to us.

Once you have the custom OAuth process in place, Setting up Named Credentials is relatively simple. You'll set the URL to the Marketing Cloud REST API for your organization. Your identity type should be Named Principal with an authentication type of OAuth 2.0.

]]> The callout itself is fairly straightforward since all we need to return is the HTML of the email we'd like to preview. You create the Apex class, make the callout, and parse out the results.

]]> Setting Up the Visualforce Page

The Visualforce page setup looks very much like HTML but has additional tags you'll use to call the preview email Apex class and display it.

The end goal is to display the HTML email on the individual email results page layout, so you'll also need to make sure the Visualforce page is set up for in-line implementation. To make a Visualforce page in-line, you'll add in a few attributes to your apex:page tags. The standard controller lets the page know what object it's related to. The extension is the Apex class that is executed to display the HTML of the email you'd like to display.

]]> Once the page is built, all that remains is to add it to the page layout you want the email to show on. You will also need to make sure that users who need to see the email are granted access to the Visualforce page and Apex classes. 

Conclusion

Marketing Cloud Connect is a powerful tool for any organization using Marketing Cloud and Sales or Service Cloud. The default features bring basic visibility back to Sales and Service Cloud, but with some additional setup, you can extend that power to keep Sales and Service Cloud users informed about exactly what communication is being sent to their contacts. Viewing full resolution emails from Marketing Cloud is just one more way Marketing Cloud Connect brings more information to users. If you need help setting up full resolution emails in Sales and Service Cloud, contact us

]]>
<![CDATA[FileMaker Slack Integration]]> https://dbservices.com/blog/filemaker-slack-integration https://dbservices.com/blog/filemaker-slack-integration Tue, 16 Feb 2021 11:07:00 -0500 Since 2013, Slack’s intuitive IRC-style messaging has helped reshape team communications - to date, with over 12+ million daily active users globally, Slack is where more work happens every day, for organizations of all sizes. With a simple and robust API, Slack is quickly integrated into custom applications of all types, and your FileMaker app is no exception! Slack uses its own apps to accomplish your workspace's various needs, and all of these – Zoom meetings, delivery notifications, Google Calendar event management, and much more – can be controlled through your FileMaker app. Our guide will have your app sending messages to your Slack workspace from FileMaker in no time! 

]]> Set Up a Workspace in Slack

We've included a sample FileMaker file at the end of the article to get you going, but before we get ahead of ourselves, let's get a Slack workspace ready to display the messages we send from FileMaker. The workspace is the primary element of an organization’s Slack structure. If you don’t already have a workspace, setting one up is fast and free – Slack’s guides recommend that even administrators of existing Slack workspace should use a new workspace as a sandbox to practice new features like this. For this article, we set up a workspace for the very illustrious (and very real) stegosaurus engineering firm, Stego Tech. Your workspace comes with some sample channels to divide your team's communication, and more can be added whenever the need arises.

]]> Creating a Slack App

Slack's API allows apps to expand the platform’s functionality past simple peer-to-peer messaging by integrating with popular services like BitBucket and Zoom. Slack apps can get pretty complex, but their various APIs make integrating a dream. In order for messages sent from FileMaker to show up in your Slack workspace, check out Slack's excellent guide on creating a new Slack app. For Stego Tech's workspace, I made StegoBot, a lizard automaton that will use webhook URLs to relay Stego Tech's FileMaker messages to Slack.

]]> As noted earlier, channels let you split up your organization's various communications into more specific avenues. For each channel you want FileMaker to message, create a webhook using the Slack App Manager's Webhooks section. We made webhooks that allow StegoBot to send messages to various public, private, and custom channels in Stego Tech's workspace, like the #thagomizer channel.

]]> Send Messages

The included FileMaker sample file lets you quickly test your app’s messaging capability. Just paste in your Slack webhooks, select a channel, and send messages with a click! You can modify our script to suit all of your FileMaker needs – like automatically warning the #random channel to evacuate if your warp core's containment field reaches critical levels – or whatever else your stegosaurus engineering firm runs into. Make your API call using FileMaker's 'Insert from URL' script step. This will use cURL and JSON to send a message to one of the Slack webhooks you set up earlier. Here's the general format:

JSON

{"channel":"#random","text":"!! WARNING !!\rWarp core breach\rContainment field at 12%","username":"StegoBot"}

cURL 

-X POST  --header "Content-Type: application/JSON"  --data @$json

After you fire off your call, Slack's API will return a message describing the result – i.e. whether or not your call was successful. Failing calls have extensive documentation on Slack to help you get back on your feet. Successful calls are apparent not only by their message appearing in your workspace, but are rewarded with a coveted and esteemed API message:

ok

Congratulations!

]]> Conclusion

Augmenting FileMaker with Slack makes it easy to keep your team up to speed on the most critical events in your business as they happen, but that's just the start. With Slack's powerful API, your FileMaker app can take advantage of whatever your organization uses Slack for most. If you'd like help integrating Slack into your FileMaker workflows, contact DB Services!

]]>
<![CDATA[Salesforce Spring '21 Release Highlights]]> https://dbservices.com/blog/salesforce-spring-21-release-highlights https://dbservices.com/blog/salesforce-spring-21-release-highlights Wed, 03 Feb 2021 11:18:00 -0500 Salesforce Platform: Flow Updates

Flows now have enough functionality to replace almost all use cases of Process Builder! Along with the name change, Salesforce has also updated flows to allow you to check for changes to a record with the $Record__Prior global variable once the flow has been triggered. You can also now schedule part of a flow to occur at some point in the future while still running another part of the flow immediately after being triggered. Be sure to check out the release notes for all the other flow updates that weren't mentioned here!

]]> Sales Cloud: Enable Einstein Lead Scoring With Less Data

Einstein lead scoring is now available to all users. Previously, an organization needed 1000 new leads and 120 lead conversions in the last six months to be able to take advantage of this feature. Now, the Einstein Readiness Assessor (found in Setup) allows smaller organizations to use data that has been anonymously gathered from other organizations to score leads until the organization has enough internal data to score the leads based on the single-customer model. 

Service Cloud: Einstein Recommendation Builder

With advanced AI, Salesforce now uses data within your organization to come up with relevant recommendations for your users and your customers. Using the Einstein Recommendation Builder, you can decide which object gets recommendations about other objects and how to store the data from the user's interactions. You can even filter the recommendations only to be displayed to specific segments within Salesforce. As users interact with these recommendations, the recommendations will get better and better!

Integration: MuleSoft Composer

With MuleSoft composer, users can integrate with other systems to unlock data with clicks instead of code! Salesforce organizations will no longer need a dedicated developer to create complex integrations. Using the MuleSoft Composer right in Salesforce, users can set a triggering event, determine criteria that must be met, and select the action that should happen after the trigger by using simple drop-down boxes to choose the relevant triggers, criteria, and actions. In real-time, users will also see output sample data to ensure the actions will give them the results they want. MuleSoft will be able to connect to many data sources such as Google Sheets, Tableau, and Stripe, with many more connections to come.

Marketing Cloud: Real-Time Segment Triggers for Journey Builder

With the interaction studio, Salesforce users can now automatically create segments based on users' interaction with the mobile app or with Salesforce emails. These segments can be added to a Journey with just a few clicks by assigning the segment to sync with the Journey in the Journey Builder. Whenever a user is assigned to that segment, they will instantly be included in the journey!

Commerce: Salesforce Payments 

Salesforce Payments now make it easier than ever to set up secure checkouts with just a few clicks. By simply creating a Stripe account through Salesforce or using your existing account ID, users will now be able to select from a number of payment methods such as all major credit cards and Apple Pay. This makes it easy to add intuitive payment buttons to their storefront for users to finish the purchases and decide from the chosen methods of payment. Since the payments are all handled with Stripe, Salesforce users can feel confident that the payments are PCI compliant and secure!

Industries: Manufacturing Cloud - Rebates and Batch Jobs

In a new pilot program that requires an application for nomination through Salesforce, organizations can now create rebates. Users can easily define the eligibility rules and the benefits provided with these rebates, as well as process the rebate payments. Once enrolled in this pilot program, organizations will also get a first look at the new Batch Job feature, which will allow processes to be performed in batches of over 250,000 records at a time. These batch jobs will also have the ability to be scheduled using the Batch Job category of a scheduled flow.

Analytics: Dashboard Components

Using the Tableau CRM, users can now create new components that can be used across multiple dashboards. Once created, these components can be selected and quickly added to any dashboard to save you time!

Conclusion

Once again, Salesforce has provided some great new updates that will empower users and developers to create impactful solutions and make the most out of their data. We mentioned quite a few of the Spring ’21 updates in this article, but there are plenty more that we didn’t. Be sure to check out Salesforce’s official release notes page if you’d like to learn even more about this latest Salesforce release. Contact DB Services at any time if you have questions or needs with Salesforce!

]]>
<![CDATA[Marketing Cloud Connect: Syncing Data Back to Sales and Service Cloud]]> https://dbservices.com/blog/marketing-cloud-connect-syncing-data-back-to-sales-and-service-cloud https://dbservices.com/blog/marketing-cloud-connect-syncing-data-back-to-sales-and-service-cloud Mon, 25 Jan 2021 11:06:00 -0500 Marketing Cloud Connect excels at getting data into Marketing Cloud from Sales Cloud or Service Cloud, but is limited in what it automatically syncs back to them. By utilizing some of the more advanced tools in the Marketing Cloud Connect toolbox, you can sync back whatever data you want from Marketing Cloud to Sales or Service Cloud. This means your organization can see whatever information in Sales or Service Cloud that best fits you.

]]> How Marketing Cloud Connect Works

Like all connections in Marketing Cloud Connect, you need to use the Sales or Service Cloud IDs to update information from Marketing Cloud. As we discussed in our last article, making sure you have cleaned Marketing Cloud of duplicate contacts with a subscriber key migration will make it much easier to pass the correct information to the correct contact in Sales or Service Cloud.

To actually pass data back to Sales or Service Cloud, you’ll need to use Marketing Cloud’s native scripting language: Ampscript. Ampscript was designed as a coding language that average users could use to include dynamic, personalized information into emails. This means Ampscript is relatively easy to learn and, in fact, updating data in a Sales or Service Cloud object is a single built-in function: UpdateSingleSalesforceObject().

]]> At the moment, Marketing Cloud doesn’t allow Ampscript to be run directly within an automation, so you'll need to house the code that actually passes information to Sales or Service Cloud in a content block. Content blocks and cloud pages are designed to run any combination of Server Side Javascript (SSJS), Ampscript, and HTML, which makes them very versatile. You should test SSJS or Ampscript code in a cloud page first to troubleshoot your code because Marketing Cloud doesn't have a built-in development platform or debugger. Cloud pages will run your code as soon as they are previewed or loaded and can output custom log messages directly to the screen, acting as a console.

]]> Automations don't allow Ampscript to run in them, so to automate the syncing process, you'll need to use SSJS. Once you have validated your Ampscript in a cloud page, you can put it into a content block and call it with the SSJS function Platform.Function.ContentBlockByID(). By loading the content block, the automation will execute the Ampscript code and update the desired object(s) in Sales or Service Cloud.

Tips and Tricks

Automations will halt if the Ampscript encounters an uncaught error (just like SSJS), even though the Ampscript is being called through a content block. To make sure you can control when the automation stops and what it does with errors, you need to leverage the use of SSJS try-catch blocks to capture errors. Since content blocks allow you to incorporate both SSJS and Ampscript together, you can accomplish this by wrapping Ampscript in SSJS.

]]> Depending on what information you are syncing back to Sales and Service Cloud and how important it is that you know what wasn’t synced back, you can also consider sending email notifications out about the failure through Triggered Sends.

Conclusion

Syncing data back to Sales or Service Cloud from Marketing Cloud is a hugely powerful feature of Marketing Cloud Connect. The ability to pass custom data back, in addition to the built-in tracking data, makes it all the more useful. Our last article in this series will touch on one last way to expand the base functionality in Marketing Cloud Connect: previewing a full-resolution email from a Marketing Cloud send in Sales or Service Cloud. For help setting up Marketing Cloud Connect to sync custom data to your Sales or Service Cloud, please contact us. 

]]>
<![CDATA[FileMaker Sage Intacct Integration]]> https://dbservices.com/blog/filemaker-sage-intacct-integration https://dbservices.com/blog/filemaker-sage-intacct-integration Tue, 12 Jan 2021 11:37:00 -0500 Sage's Intacct accounting software is a powerful tool that helps finance professionals increase efficiency and manage growth with roughly 5% of ERP market share. Intacct is often used to manage accounts payable, accounts receivable, general ledger, and much more. Many companies who find themselves with both Intacct 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 Sage Intacct.

]]> Getting Started with Sage Intacct

Since the Intacct API is a paid service for subscribers, you will need to have already signed up for Sage Intacct before moving forward. API trials are not granted for demo accounts. Once you have your account set up, reach out to your account manager to sign up for the XML SOAP API. You will then be provided with a senderID and sender password for your account. These credentials remain the same for both sandbox and production environments.

Making Requests and Parsing the Response

Once you have your API information, you can immediately begin building your integration. For any questions regarding how requests should be built, please reference the Intacct API Documentation. Sage also provides a Postman collection to download from their Tools and Libraries page

The Sage Intacct API uses a single endpoint URL: 

https://api.intacct.com/ia/xml/xmlgw.phtml

Every Sage Intacct API request requires parameters to be passed in XML URL encoded format. For example, the Create Customer request in a POST request requires three parameters and supports many other optional data points. Since XML can be troublesome to format in FileMaker, we recommend copying the XML from a text editor into an "Insert Text" script step. This XML will be passed as a parameter using cURL in FileMaker's "Insert from URL" script step.

Once a request has been received, Intacct will return an XML encoded response. You will then need to parse the XML to determine if the request was successful. There are three levels of error trapping you need to set up for your requests; the sender status, authentication status, and body status. If any of these responses do not return "Success", then your request was not successful. In our demo file, we use a custom function to parse the XML response.

If you need to extract further data from the response, you will simply parse out the required data from the same XML response.

Authenticating with Sage Intacct

The Intacct API uses session-based authentication for all requests. This means you will need to make two API calls for every request; one to create the session and one to push/pull your data. It is possible to skip this and authenticate with each request; however, this is not recommended as it makes error trapping more difficult, forces more authentications from your admin user, and is only compatible with your top-level location.

To create a session, you will need to pass the following parameters: sender ID, sender password, Intacct admin user ID, Intacct admin user password, Intacct company ID, Intacct location ID, and a timestamp. The Intacct user must be a master admin account. If you'd prefer to have a dedicated API master account, contact your account manager. Every Intacct account is given one by default.

Once the session is created, Intacct will pass back your session ID, which you will then use to authenticate your next set of requests.

Sandbox Intacct Company

Once you signup for Intacct, you will be given a sandbox company for testing. This allows you to test your integration without fear of deleting or modifying anything in your live company. Keep in mind your sender ID and password will be the same for sandbox and production, but the Intacct Admin User will not.

Sage Intacct: Things to Keep In Mind

There are a couple of important items to remember when working with the Sage Intacct API. Here are a few points to look out for when integrating your FileMaker solution with Sage Intacct:

  • Although you can authenticate with each API call instead of creating a session, it is not recommended.
  • Make sure to download the Postman collection for reference.
  • Some API requests are labeled as legacy in the documentation; however, all are still supported.
  • Be mindful of password changes on the main account; too many failed API authentications will cause the account to be locked for security purposes.
  • If you'd like a dedicated API user, reach out to your Intacct account manager.

Conclusion

Double data entry can be a thing of the past by integrating Sage Intacct with your FileMaker solution! FileMaker can create, update, query, or delete just about any Intacct object you would like. Automate your accounting processes, eliminate double data entry, and avoid human blunders. Please contact us if you need further assistance or would like to discuss getting your Sage Intacct system integrated with FileMaker.

]]>
<![CDATA[Surveys for Success: Matthew 25: Ministries]]> https://dbservices.com/blog/surveys-for-success-matthew-25-ministries https://dbservices.com/blog/surveys-for-success-matthew-25-ministries Thu, 07 Jan 2021 13:45:00 -0500 DB Services is ringing in the New Year by partnering with a new charity to continue our Surveys for Success program. This quarter, our program will benefit Matthew 25: Ministries and their work with the poorest of the poor and disaster victims.

]]>
<![CDATA[Claris FileMaker 19.2 Overview]]> https://dbservices.com/blog/claris-filemaker-19-2-overview https://dbservices.com/blog/claris-filemaker-19-2-overview Wed, 16 Dec 2020 12:28:00 -0500 FileMaker 19.2 What’s New?

FileMaker Server 19.2

  • FileMaker Server 16 or higher can be upgraded directly to 19.2
  • Admin API includes more tools to administer your server platform
  • HTTP/2 can be enabled on Server 19.2 to provide greater speed and performance for web publishing
  • Auto-Detect Java for Web Publishing can automatically identify the computer's default Java and use that for Server.
  • Java 11 is supported
  • Updated process for canceling find requests in hosted files
  • PHP is no longer installed with Server installations

FileMaker Pro 19.2

  • Big Sur compatibility for macOS
  • Cross-file plugin validation with the extended privilege “fmplugin”

FileMaker Cloud 2.19.2

  • Create and preview new apps from a web browser — no FileMaker Pro required.
  • New API for uploading large files
  • Free performance upgrades for cloud instances
]]> Claris FileMaker Server 19.2

This release of the server platform delivers many functional enhancements that developers and administrators can be excited about. Here at DB Services, our clients always ask us if they should upgrade when a new release is out and we're happy to report, you should! Included in 19.2 are new installation tools, speed enhancements, and compatibility packages that make a strong use case for upgrading.

Upgrade from Server Versions 16 – 19.1

Users can now upgrade from more server versions with the redesigned setup wizard. FileMaker Server 19.2 supports upgrades from versions 16, 17, 18, and 19.1 without having to uninstall previous versions. This functionality will be a great time-saver and ensure your settings and configuration remain intact and ready to use!

Admin API Enhancements

This release includes more functional commands in the Admin API. Users can now perform the following actions:

  • Get metadata for FileMaker Server
  • Configure additional folders
  • Import an SSL certificate
  • Import a license certificate
  • Plugin management

HTTP/2 Support

FileMaker Server 19.2 now supports HTTP/2 to provide faster web performance for web publishing, including Claris FileMaker WebDirect®, FileMaker Data API, and XML. HTTP/2 is enabled by default on Windows & Linux but must be enabled manually for macOS. MacOS support is limited to Catalina or higher and can be enabled using the Enable_HTTP2.sh script.

Cancel Find Requests

In a hosted file, a canceled find request by a client is now quickly halted. Previously, canceled finds continued to run on the host. This new functionality will definitely improve user experience.

PHP Installation Change

PHP is no longer installed on a Windows installation of FileMaker Server 19.2. The folder \FileMaker Server\Web Publishing\publishing-engine\php\ is not created as part of the installation. For users upgrading to Server version 19.2 with an existing PHP installation, you will need to back up the PHP folder and restore it after the upgrade is complete.

]]> Claris FileMaker Pro 19.2

This release of FileMaker Pro comes with an important compatibility update for macOS users and a useful cross-file privilege set for plugins.

Big Sur Compatibility (Mac Only)

This release includes the compatibility for Mac’s newest operating system, Big Sur, macOS 11. So if you need to run out and grab that new MacBook Pro or even update your existing Mac, FileMaker Pro 19.2 has you covered.

Validate Cross-File Plug-in Access

Newly created files will have the new extended privilege “Validate cross-file plug-in access (fmplugin). For older files, this privilege can be added. When this extended privilege is enabled, it will enable plugins for all related files to the current file if a matching extended privilege is found. If a violation occurs, a user will be prompted to link the two files.

]]> Claris FileMaker Cloud 2.19.2

App Creation in the Cloud (Preview)

Team managers can now get a preview of creating custom apps directly in FileMaker Cloud without using FileMaker Pro. By clicking “Create New” in the Claris Customer Console, a new file is created, allowing users to build FileMaker apps faster than ever.

API Call to Upload Files Faster

A new API call appendmp has been added to assist users in uploading large files to FileMaker Cloud. 

Performance Boost with a Free Upgrade

Who doesn't like free things, right? With this release of Cloud 2.19.2, customer instances are immediately upgraded at no charge. This upgrade will boost computing power to provide a better experience for using cloud-hosted apps.

]]> Summary

The Claris FileMaker platform continues to solidify its position as a leader in creating innovative workplace custom apps that work seamlessly across desktop, mobile, and web. FileMaker Pro 19.2 is a great release with features both developers and end-users can benefit from. 

We look forward to helping you build custom applications using the new functionality available in 19.2. Contact DB Services at any time if you have questions or needs with Claris FileMaker!

]]>
<![CDATA[Salesforce Winter '21 Release Highlights]]> https://dbservices.com/blog/salesforce-winter-21-release-highlights https://dbservices.com/blog/salesforce-winter-21-release-highlights Fri, 04 Dec 2020 10:40:00 -0500 Sales Cloud: Opportunity Deal Change Highlights

Users with Unlimited Edition can now see changes to deals from the Opportunities list view. Increases to amounts will now display in green with an upward-pointing arrow, while decreases will display in red. Similarly, dates changed to an earlier date appear in green while dates that have been pushed back appear in red. This gives you the ability to quickly monitor updates with just a glance. 

Service Cloud: Omni Supervisor Enhancements

With the new Omni-Channel Skills-Based routing. conversations can now be routed to the most qualified agent based on data pulled directly from chats and messages. Additionally, the agent can now transfer the conversation to another agent which was previously not possible with any chat that was not queue-routed.

Another enhancement now allows admins to limit supervisors to only view their team of agents using the Supervisor Configurations in Setup. On top of all that, supervisors are now able to monitor voice call transcripts in real time. This will equip Supervisors with necessary tools to help train their staff. 

Platform: Dynamic Experiences Enhancements

With the new dynamic experiences enhancements, you are now able to create dynamic page layouts to show only relevant information as it is needed. Using field visibility settings, you can hide and show fields based on whatever criteria you need. This allows specified fields to only display for specific user profiles, when a specific value is entered into a field, or whatever other rules that you decide.

Dynamic pages also will now allow you to drag and drop fields directly into your components, making it incredibly quick and easy to build a new page layout on the fly!

Note: Dynamic forms currently only work for Custom Objects, but will likely be available for standard objects in future releases.

]]> Marketing Cloud: Customer 360 Audiences

Customer 360 Audiences gives you a better analytical understanding of your customer by tracking and combining their profile, transactional, and behavioral information from multiple data sources. The data, which can come from many sources such as Market Cloud, Sales & Service Cloud, and Amazon S3, can be segmented into groups to easily identify customers based on data such as engagement or spending habits or geographical location. This allows you to target specific groups to have better success in marketing.

Commerce Cloud: B2B Commerce on Lightning Experience Enhancements

With the new B2B Commerce on Lightning Experience Enhancements, store owners can quickly make bulk changes to price books and price book entries with new filters and functionality in the new pricing workspace. 

Additionally, with the new pilot program for guest browsing, customers will no longer need to log in to your website to view your merchandise. More importantly, this allows your webpage to be seen by search engines such as Google, resulting in more potential traffic to your page.

Finally, another new pilot program that Salesforce is offering allows store owners to include variations for their products on their website. With just a couple clicks, a product can add variations, such as color, to their item without requiring the store owner to create an entirely separate product.

Note: You must request to be nominated for the pilot programs with your Success Manager.

Health Cloud: Intelligent Document Automation

Using the new Intelligent Form Reader, users can extract data directly from forms that have been uploaded into Salesforce. Fields are immediately identified using OCR technology to reduce the need for manual data entry. Having the forms stored in one location, linked to the related lead, allows the user to verify any data entered into Salesforce with the original uploaded form. 

Salesforce.org: Salesforce.org Elevate

Salesforce.org Elevate allows you to quickly and easily create a Giving Page with your organizations specific branding to allow donations. After connecting Salesforce to your payment processing service, you can customize one-time and monthly donation amounts for fundraising from supporters. You can then easily track the payments in your Salesforce CRM.

Einstein Discovery: Fast Start Templates

Using the new Fast Start Templates, all you need to do to put yourself on track for winning sales is create a story in the Einstein Analytics Studio. The new story templates in this release are specifically for maximizing win rate and minimizing time to close, while more are expected to be added in future updates. By selecting either of those templates and allowing the system to verify that it has all the information it needs from you, Salesforce will analyze your data and give you important insights on how to move forward to greater success.

]]> Conclusion

Salesforce is always improving and making sure that it provides its users with the tools they need to succeed in their business. While we covered a few specific changes in this article, we merely scratched the surface. If you’d like to learn even more about this latest Salesforce release, be sure to check out Salesforce’s official Winter '21 release notes page. Contact DB Services at any time if you have questions or needs with Saleforce!

]]>
<![CDATA[FM Draw Add-On]]> https://dbservices.com/blog/fm-draw https://dbservices.com/blog/fm-draw Thu, 19 Nov 2020 09:15:00 -0500 The ability to markup images has become a standard feature across different programs and operating systems. With our new FileMaker add-on, FM Draw, you'll be able to write on images in just a few simple steps. Whether you're looking to make notations to a design or highlight sections of an image, we have you covered.

]]> Installing the Add-On

To make the FM Draw add-on available to your file, you’ll need to do the following:

  1. Completely close FileMaker Pro. Make sure you're using 19.1.3 or above.
  2. Unzip the custom add-on.
  3. Move the custom add-on folder into your AddonModules folder. On Mac, you may need to press “Command+Shift+Dot” to view one of the hidden folders in this file path.
     •       Mac: /Users/username/Library/Application Support/FileMaker/Extensions/AddonModules
     •       Windows: Users\username\AppData\Local\FileMaker\Extensions\AddonModules
  4. Open up the FileMaker file that needs the add-on. If you want to sketch on a specific field, make sure to navigate to a layout with a context based on that field's table.
  5. Enter layout mode and open the "Add-ons" tab. Click the "+" button at the bottom of the panel.
  6. In here, you should see the add-on in the "JavaScript" section. Select the add-on and click "Choose". This step should import FM Draw into your system.
  7. Click and drag the add-on onto your layout. This will add FM Draw to the layout. Feel free to resize the web viewer to whatever size you need. You can also drag the add-on onto the layout multiple times for multiple drawing windows.


If you are using FM Draw on FileMaker Go, make sure your layout's dimensions aren't larger than your device's dimensions. If this happens, you may accidentally drag the window around instead of drawing on the canvas.

]]> Setting Up FM Draw

Once you’ve installed the add-on, you can configure your FM Draw window in the settings panel by clicking the gear icon.

  • Input Container Field: This allows you to select a container field. Any image (jpg, png, gif, tiff) in that field will be placed in the canvas. The dropdown options will be pulled from the layout context your web viewer was placed on.
  • Save Image Method: This allows you to change how your image is saved. You can either chose to save your canvas to a file path or into another container field.
  • Output Container Field: This allows you to select a container field. When you click the save button, your canvas will be placed into this field. The dropdown options will be pulled from the layout context your web viewer was placed on.
]]> Once everything is setup, you can start drawing! You have several tools to choose from: pencil (freehand drawing), rectangle, circle, arrow, and drag. The first four will create elements on your canvas, while drag will allow you to move or modify elements. If you would like to remove an element, you can select it with the drag tool and move it off the canvas. You can also change the color of your elements using the color selector on the left side. If you would like to reset your image, you can click the "refresh" button to start over. FM Draw also works without an internet connection, allowing you to markup images completely offline.

]]> Updating Versions

When updating to a new version of FM Draw, you'll want to do the following:

  1. Uninstall FM Draw from your FileMaker system using the "Add-On" panel in layout mode. FileMaker doesn't always remove all of the web viewers if they're placed on multiple layouts, so you may have to delete some of those manually.
  2. Completely close FileMaker Pro.
  3. Find the Add-On folder on your operating system (listed above). Delete the existing FM Draw folder.
  4. Unzip the FM Draw .zip file for the new version. Place the unzipped folder into the Add-On folder.
  5. Reopen your FileMaker system and install FM Draw.


Any existing settings in your file will be removed, so you will have to set those back up again.

Version 1.1.0

December 16th, 2020

  • Added the ability to create text boxes.
  • Added the ability to create plain lines.
  • Added white as a selectable color.
  • Removed the empty corner on the toolbar to make more room for tools.
  • Fixed issue where drag tool wasn't working after certain tools were selected.
  • Fixed issue where users weren't able to manipulate multiple objects at once.

Version 1.1.1

July 22nd, 2021

  • Improved performance of FM Draw Add-on when used on larger FileMaker systems.

Conclusion

In just a few minutes, you can integrate your FileMaker solution with FM Draw! You can markup images inside of your database or start from scratch. Save time by drawing directly in FileMaker with no 3rd party program required. Please contact us if you need further assistance or to discuss getting FM Draw into your FileMaker solution.

]]>
<![CDATA[Marketing Cloud Connect: Subscriber Key Migration]]> https://dbservices.com/blog/marketing-cloud-connect-subscriber-key-migration https://dbservices.com/blog/marketing-cloud-connect-subscriber-key-migration Fri, 06 Nov 2020 13:55:00 -0500 When you decide to implement Marketing Cloud Connect in your organization, one of the first considerations will be how to handle Subscriber Keys from Sales or Service Cloud. In our last article in this series, we discussed the fact that Marketing Cloud Connect uses Sales and Service Cloud IDs as Subscriber Keys. If you already have contacts from Sales or Service Cloud in Marketing Cloud, you are likely to end up with duplicate subscribers and subscriber preference information that doesn’t match. Preparing Marketing Cloud to handle this is a critical first step. One of the best solutions is to institute a subscriber key migration process to remove duplicates and preserve data.

]]> Why Use a Subscriber Key Migration

Migrating subscriber keys allows us to remove duplicate subscribers while minimizing data loss. Most importantly, this method allows us to retain the subscription preferences for your subscribers. This is especially critical for organizations needing to comply with regulations like GDPR, but also ensures clients who have opted out or have custom email preferences don't receive emails they shouldn't.

Salesforce offers a service to migrate the data from Sales Cloud for you, but the process is expensive. If your organization plans to add or update contacts in both Sales and Marketing Cloud in the future, it makes sense to build this process and ensure your data is kept clean over time.

Implementing the Solution

Add Synchronized Data Sources

After configuring Marketing Cloud Connect, you’ll want to set up the synchronized data extensions needed to get the information from Sales or Service Cloud into Marketing Cloud.

To do this, navigate to Contact Builder and go to Synchronized under Data Sources.

]]> Add a new data extension (DE) by selecting from the Sales or Service Cloud objects you want to sync. For most organizations, this will be Contacts but may include any related objects you want data from, like Accounts or a custom object. Marketing Cloud Connect allows some filtering on synchronized objects. As a best practice, only include the contacts and fields you need in the Synchronized extension to keep the synchronization process quick and efficient. Limiting the number of contacts that come from Sales or Service Cloud also prevents All Contacts from bloating unnecessarily.

]]> Import and Deduplicate Subscribers

To begin building the deduplication process, set up a new automation in Automation Studio. The first step will be an SQL query into a custom DE. Importing into a custom DE enables us to further filter out contacts we don't want to import into the All Subscriber List.

You may find multiple Sales or Service Cloud contacts sharing the same email address. In this case, a leader should be selected whose ID will represent the group in Marketing Cloud. This allows us to keep subscription preferences associated with an email address (because there is no practical way to separate out preferences for a contact without a separate email address).

Once we have our contacts in the custom DE, we will then add/update to the All Subscribers list as the second set of steps in the automation.

]]> At this point, you will likely have duplicates. A second SQL query will gather the details about those duplicate subscribers into a second custom data extension for processing. Now we can begin the subscriber key migration and removing duplicates.

The fourth automation step is an SSJS script. Deleting a subscriber will delete them from any sendable data extension they match with. For any sendable data extensions where that subscriber could have data you want to retain, you need to update it with the new subscriber key from Sales Cloud. The SSJS will loop over each duplicate contact and begin updating the subscriber key in those data extensions from the previous key to the new Sales Cloud ID.

Once this is done, make sure to update the subscriber status in the surviving subscriber record (note that you cannot mark a subscriber as Held or Bounced). Finally, use the Rest API to delete the duplicate subscriber.

]]> It is best practice to record the tracking information from the tracking data views in custom DEs and to run reports from those instead of the data views. This will prevent data loss when deleting duplicates and will retain tracking data for a longer period of time.

If you are attempting to delete many contacts and update information for them across a larger number of sendable extensions, you may experience timeouts that would prevent all duplicates from being removed. Running the SSJS again manually may be necessary during the initial rollout or during a large influx of duplicates.

Eliminate the Email Address Assumption

Once the deduplication process is built, you also need to consider the fact that existing automations may rely on the assumption that the subscriber key will be an email address. Any places where this is true need to be updated to accommodate the fact that Sales and Service Cloud contacts will have Sales or Service Cloud IDs, not email addresses.

It is also important to make sure that all sendable data extensions that relied on that same assumption connect correctly to All Subscribers. This means linking each sendable data extension to All Subscribers with the subscriber key instead of email address. The subscriber key field in the DE will also need to be populated if it is not already.

]]> Conclusion

Ultimately, migrating subscriber keys allows organizations to use Marketing Cloud Connect the way it was intended to be used. Duplicates are eliminated, preference data is retained, and data can flow between Sales or Service Cloud and Marketing Cloud. We'll discuss flowing that data back to Sales or Service cloud in our next article in this series. Contact us for help migrating your subscriber keys with a certified team of Marketing Cloud Developers and Consultants.


]]>
<![CDATA[Claris FileMaker Server 19.1 Overview]]> https://dbservices.com/blog/claris-filemaker-server-19-1-overview https://dbservices.com/blog/claris-filemaker-server-19-1-overview Wed, 28 Oct 2020 12:29:00 -0400 What’s New?
  • FileMaker Server now includes many performance optimizations such as parallel indexed finds and sorting on server, resulting in 98% faster adds, finds and deletes on average compared to 19.0.
  • Startup restoration has been removed from the product and replaced with a more stable shared lock mechanism.
  • Upgrading FileMaker Server will now preserve most settings to help speed up the upgrade process.
]]> FileMaker Server 19.1

This version of FileMaker Server will prove to be a milestone release with the official go-live of FileMaker Server for Linux, faster upgrades, and the scalability improvements in FileMaker Server.

]]> Faster Upgrades

Upgrading FileMaker Server will now preserve most settings, significantly reducing the time it takes to perform the upgrade process. In this case FileMaker Server 19.1 will preserve most settings if upgrading from 18 or 19.0 to 19.1, and future versions of FileMaker Server will preserve settings in a similar fashion. This is a very welcome change to the product and will be a critical feature to help keep customers current on the latest version of FileMaker Server.

Performance Enhancements

FileMaker Server 19.1 brings a whole host of performance enhancements that will help the FileMaker platform scale and to increase performance over the WAN. Central to these enhancements is a low-level optimization for file access wherein FileMaker Server is able to use a sharing lock for read access to the database to allow for multiple threads to read a file at the same time. In other words, multiple users can read the same data at the same time without waiting in line.

The enhancements include:

  • Parallel indexed finds. Indexed finds on the same data can now be run in parallel thanks to the sharing lock. Of all the server enhancements, this one is the most important in regards to the FileMaker platform scaling, and is the reason Startup Restoration was removed as it makes Startup Restoration obsolete.
  • Sorting on server. FileMaker Server will now sort records on server unless its CPU usage is above a certain threshold, significantly increasing performance of sorting over the WAN. Note that this will only work if paired with FileMaker Pro, Go or WebDirect 19.1 or later. 
  • Increased stability with progressive backups and full backupsImprovements in how backup operations handle flushing pages will help prevent live locks and dead locks, preventing very slow backups or backups not running.
]]> Summary

FileMaker Server 19.1 is a great first agile release of the product and has some features that are going to be critical for the growth of the Claris platform. We look forward to the ease of upgrading, the scalability enhancements and the ability to install FileMaker Server on Linux. Contact DB Services at any time if you have questions or needs with Claris FileMaker Server!

]]>
<![CDATA[FileMaker Server for Linux]]> https://dbservices.com/blog/filemaker-server-for-linux https://dbservices.com/blog/filemaker-server-for-linux Wed, 28 Oct 2020 12:28:00 -0400

]]> Installation

The installation process for Linux is similar to standard Windows and Mac deployments with one major difference: the installation is performed via command line in an SSH session. In this article we'll cover some of the basics, but for full system requirements and installation instructions see the FileMaker Server Deployment Guide For Linux webpage. Once CentOS is installed and the required ports are open, to install FileMaker Server:

  • First install required Linux packages
]]>
  • Download and place the license certificate in the following location:
  •      the default downloads folder: /Users/[user]/Downloads # 

         where [user] is the name of the user with administrative privileges

    • Download and unzip the FileMaker Server for Linux installer package using the link to the software download page you received in an email message after purchasing your FileMaker license:
    ]]>      where [url] is the download link from the email message

    • Unzip the FileMaker Server for Linux installer package file. Enter the command:
    ]]>      where [installer] is the name of the installer package.

    • Install FileMaker Server

    1. Identify the name of the FileMaker Server for Linux installer. Enter the command:

    ]]> 2. Run the FileMaker Server for Linux installer. Enter the command: 

    ]]>      where [name] is the FileMaker Server for Linux installer name and [-y] is an optional parameter. 

    3. To verify the installation, check that FileMaker Server processes and the Apache server are running. Enter the commands: 

    ]]>       If the Apache server and FileMaker Server processes are running, the installation is complete.

    Advantages

    CentOS 7.7 is capable of running without a UI, letting the FileMaker server processes consume more of the server's resources. The Linux version of FileMaker Server does still allow users to manage the server via an Admin Console accessible through the web. The only noticeable difference between the Linux version of the Admin Console and the Mac or Windows version is the Linux file path format for database directories. 

    ]]> Linux servers are often cheaper to manage and upkeep compared to Windows or Mac due to reduced operating system costs. For most users this will mean a cheaper, potentially better performing server with most of the same features as the Windows and Mac counterparts. We expect Linux installations of FileMaker Server to quickly grow in popularity and eventually become the standard for on-prem FileMaker Server installations because of their stability, security, and affordability. 

    ]]> Limitations
    • WebD worker machine deployment is not currently supported. Users will not be able to install the worker machine deployment method of FileMaker Server on Linux.
    • Custom web publishing using PHP and XML will not be supported. FileMaker Data API is supported and can be used on the Linux version of FileMaker Server.
    • System scripts cannot be run with the standard fmserver user. You must specify a user account on Linux to run system scripts by adding the user to the ect/sudoers file. See example below: 
    ]]> Summary

    For many on prem deployments Linux installations of FileMaker Server will be the best choice. If you would like help installing your FileMaker Server for Linux or have question contact DB Services to speak with FileMaker and AWS certified developers and get help running your system on the newest FileMaker Server release.


    ]]>
    <![CDATA[Surveys for Success: Prevail]]> https://dbservices.com/blog/surveys-for-success-prevail https://dbservices.com/blog/surveys-for-success-prevail Wed, 21 Oct 2020 13:06:00 -0400 DB Services is constantly looking for new and innovative ways to engage and uplift our communities and our clients. The Surveys for Success program was born from these values as a way to say thank you to our clients for your valuable feedback, and to let you know how we are paying it forward. Each quarter we choose a different charity to partner with, and for Q4 of 2020 we will be donating $25 per survey received to Prevail!

    ]]>
    <![CDATA[Claris FileMaker Pro 19.1 Overview]]> https://dbservices.com/blog/claris-filemaker-19-1-overview https://dbservices.com/blog/claris-filemaker-19-1-overview Tue, 29 Sep 2020 15:53:00 -0400 What’s New?
    • FileMaker Pro now comes with 9 new add-ons including calendar, Kanban board, and photo gallery. There is also a preview version of the new layout design experience available to FileMaker Pro users on Mac.
    • Add-ons are now available on the Claris Marketplace!
    • FileMaker Developer Subscription (FDS) is free through December 31, 2020.
    • We anticipate 3 releases per year of the FileMaker platform.
    ]]> Claris FileMaker Pro 19

    The FileMaker platform's desktop client and development environment comes with a handful of new add-ons, the ability to create your own add-ons and a preview of the new layout design experience.

    Javascript Add-Ons

    There are a new set of Javascript add-ons that you can drag and drop into your custom FileMaker app. These add-ons run in a web viewer and take advantage of 19's tighter JavaScript integration:

    • Calendar
    • Kanban Board
    • Photo Gallery
    • Rich Text Editor
    • Activity Timeline
    • Barcode Creator
    • Calendar Heat Map
    • Simple Chart
    • Timer
    ]]> Creating FileMaker Add-Ons

    Creating FileMaker add-ons is now officially released! With this ability, developers can package a set of features together and distribute them to other FileMaker apps. Using the Save a Copy as Add-On Package" script step, developers can create .fmaddon files that they can send to others, including submitting to the Claris Marketplace to distribute to the community at large.

    ]]> Add-Ons on Claris Marketplace

    Developers can now distribute their add-ons on the Claris Marketplace! To submit a new add-on to the Marketplace, developers should follow the Product Submission & Marketplace Listing Guide published by Claris. Requirements include links to documentation about the add-on and a video walkthrough.

    New Layout Design Experience (Preview, Mac Only)

    Claris is developing a new layout design experience and has included a preview version of this experience for FileMaker Pro users on Mac. To test the preview, create a new blank file using FileMaker Pro on Mac. This experience will help make building apps even easier in the Claris FileMaker platform.

    ]]> Summary

    The Claris FileMaker platform continues to solidify its position as a leader in creating innovative workplace custom apps that work seamlessly across desktop, mobile and web. FileMaker Pro 19.1 is a great first release of the more frequent release cycle and has features both developers and end users can benefit from. We look forward to helping you build custom applications using the new functionality available in 19.1. Contact DB Services at any time if you have questions or needs with Claris FileMaker!

    ]]>
    <![CDATA[FileMaker Amazon Textract Integration]]> https://dbservices.com/blog/filemaker-amazon-textract-integration https://dbservices.com/blog/filemaker-amazon-textract-integration Wed, 16 Sep 2020 12:29:00 -0400 Amazon Textract is a service that automatically extracts text and data from scanned documents that goes beyond simple optical character recognition (OCR) to identify, understand, and extract data from forms and tables. Many companies today collect data from scanned documents such as PDFs, tables, and forms, through manual data entry which is slow, expensive and prone to errors. The Textract service makes it easy for customers to accurately process millions of document pages in just a few hours, significantly lowering document processing costs, and allowing customers to focus on deriving business value from their text and data instead of wasting time and effort on post-processing. Integrating your FileMaker application with Textract can allow you to quickly and easily leverage the power of AWS machine learning to turn paper or scanned documents into useful, digital information.

    ]]> How to Get Started

    In order to begin connecting your FileMaker database to work with AWS Textract, you will first need to have an active AWS account and set up an IAM user. Amazon has a great walkthrough on setting up these profiles, and be sure to capture the Secret Key and Access Key for your user.

    ]]> You will also want to be sure you have added full access permission for Amazon S3 where our documents for processing will be stored, as well as full access permissions for Textract. Once your user is created, you will also want to navigate to the S3 service and create a new storage bucket that your user has full access to. Capture the name and region of your new bucket, and you'll want to store that along with your users keys in your FileMaker database in order to connect.Please note that Textract does not need to be explicitly enabled on your AWS account and has no minimum fees, but is a paid service that charges around 5 cents per page processed. There are free tier options that may apply to your account, so feel free to explore those in your AWS management console. 

    Uploading your Document

    Once you have the information from your AWS, choose a document that you want to process and store it in a container field in your FileMaker database. You will want to use an image or a PDF, and I would suggest starting with something such as a simple table or form to get an understanding of how data is processed and returned by Textract.

    In order to process your document, you want to store it in the S3 bucket we created previously.

    ]]> This is done by delivering a hash of the data along with a signature including your user keys via cURL to the Amazon S3 host, and specifying the bucket and region to store it in. Note that there is not a session token authentication process as you might see with many other integrations, but instead each request that is delivered to AWS includes a signature containing your specific user key information. A great example on building AWS cURL requests that is widely used throughout the FileMaker community is included with the demo you can download below.

    Running the Textract Analysis

    Now that your document has been uploaded and stored in an S3 bucket, the next step is simply telling AWS to trigger the Textract Document Analysis job. This is again done by delivering a cURL request including your user signature to the AWS host, but this time specifying the Textract service and pointing to the document that you want it to process. Once the job has been successfully initiated, AWS will return a Job ID that you want to store as a reference to the Textract process you just started and the data it will produce. Depending on the size and complexity of the document you uploading, the analysis process can take anywhere from a second or two to well over a minute.

    ]]> There are a couple of ways to identify when the process is completed, but the simplest is to just request a status update from AWS. By providing the Job ID in another cURL request to the Textract host, you can check to see if the status of the job is either "IN_PROGRESS" or "SUCCEEDED". Once the analysis is complete, along with the successful job status the response will also include "BLOCK" data. This is the information we are after, and will be a large volume of JSON data indicating the type, position, and content of each recognized element in our document along with its relationship to other elements.

    Processing your Block Data

    The Textract process will generally return information about your document in three different types; raw text, table content, and form data (also known as key-value pairs). The best way to turn this into something we can use in FileMaker is by looping through the significant volume of JSON text and creating a record in a separate BLOCK table for each element. Here you can store the content, type, location, and relationship information about each element, and then we can use simple relationships to link together parent and child elements. This will provide a much more useful way to either present to a user the analyzed information, or to parse the data we care about into the relevant FileMaker fields.

    ]]> Conclusion

    Integrating Amazon's Textract service with FileMaker can be an excellent, low cost option for going beyond 3rd party OCR options and pulling the relevant information from images or PDFs directly into your solution. With all the processing done automatically, you can eliminate double data entry and provide useful reports and analysis much more quickly. Contact us if you would like help integrating Amazon Textract into your FileMaker application!

    ]]>
    <![CDATA[Marketing Cloud Connect]]> https://dbservices.com/blog/marketing-cloud-connect https://dbservices.com/blog/marketing-cloud-connect Wed, 09 Sep 2020 00:00:00 -0400 Marketing Cloud Connect allows Salesforce users to leverage the advanced marketing power of Marketing Cloud and the customer relationship tools in Sales and Service Cloud by linking the clouds together. By providing key integration points between these platforms, Marketing Cloud Connect paves the way for stronger customer relationships. In this article, we'll look at some of the key benefits and considerations when using Marketing Cloud Connect.

    ]]> Key Benefits

    Synchronized Data

    First, and most immediately useful, Marketing Cloud Connect allows Marketing Cloud users access to near real-time data from Sales or Service Cloud. With synchronized data extensions, users don't have to manually export data from Sales or Service Cloud into Marketing Cloud in order to send to those contacts.

    ]]> Send Marketing Cloud Emails from Sales and Service Cloud

    Marketing Cloud Connect also allows users to send Marketing Cloud emails and text messages directly from Sales or Service Cloud. This allows Sales and Service Cloud users to send on-brand, personalized emails with data in Sales or Service Cloud.

    ]]> View Tracking Information in Sales and Service Cloud

    It also allows Sales or Service Cloud users to view the near real-time tracking and engagement information on those sends.

    ]]> Engage Contacts in Marketing Cloud Journeys

    Marketing Cloud Connect allows users to automatically add Sales and Service Cloud contacts into a Marketing Cloud Journey.

    ]]> Considerations with Marketing Cloud Connect

    Subscriber Key Migration

    Marketing Cloud Connect requires that a subscriber use their Sales Cloud Contact or Lead ID as their Subscriber Key in Marketing Cloud. If a contact is already in Marketing Cloud with the subscriber key as their email address, you will end up with duplicate subscribers. There are multiple solutions to address this problem. We will discuss one solution - automatically removing duplicates in Marketing Cloud - in more detail in part two of this series.

    Syncing Additional Data Back to Sales and Service Cloud

    Marketing Cloud Connect excels at getting data from Sales and Service Cloud into Marketing Cloud, but is more limited in what it automatically syncs back. In part three of this series, we will show you how to use Ampscript and SSJS in an Automation to sync additional data back to Sales and Service Cloud.

    View Full-Resolution of a Sent Email in Sales and Service Cloud

    Marketing Cloud Connect allows Sales and Service Cloud to display a thumbnail of emails sent to a Lead or Contact. In some cases, these may be too small to show users any useful detail. In the final article of this series, we'll cover how to set up an in-line Visualforce page to display a full-resolution Marketing Cloud email in Sales and Service Cloud.

    Conclusion

    Marketing Cloud Connect allows administrators to connect their clouds with clicks not code. What users end up with is a stronger platform that helps organizations innovate faster and connect more deeply with their customers. Contact DB Services if you would like help implementing and extending Marketing Cloud Connect to fit your organization's needs.

    ]]>
    <![CDATA[FM Quickstart 19]]> https://dbservices.com/blog/fm-quickstart-19 https://dbservices.com/blog/fm-quickstart-19 Wed, 19 Aug 2020 00:00:00 -0400 The latest version of FM Quickstart, DB Services’ free CRM app for FileMaker–is finally here! Our team has listened to feedback from FM Quickstart users, and have added some major new features including:

    ]]> Task List

    Creating and assigning tasks to your team is easier than ever with our new Task List module. Simply create a task for any date or time range, and select the user you wish to assign it to. From there, you can tie a task to a particular prospect, customer, or account. The task will then show up under the Tasks dashboard as well as under the specified contact, and on the Calendar screen.

    ]]> Calendar

    The long awaited FM Quickstart Calendar is finally here! Manage your calendar within your CRM with our new Calendar module. Create and modify tasks on the Task List and they will automatically appear on your Calendar screen.

    ]]> Sidebar Navigation

    We have updated FM Quickstart to include sidebar navigation. This allows for easier browsing of records and navigation within the app.

    ]]> Additional Features

    Just like previous versions of FM Quickstart, FM Quickstart 19 features a Sales dashboard to view Open Quotes and Prospects, and a Production dashboard to view Unpaid Orders and Pending Shipments.

    You can also use our top tier navigation to access the different modules in FM Quickstart. These include CompaniesLocationsContactsQuotesOrdersShipments, and Reports.

    Additionally, you can access further modules by clicking the Setup gear icon in the top-tier navigation. This will take you to the Setup screen, which contains your PreferencesProducts list, Purchase OrdersReceivingReturns, and User setup.

    For further information on these features, watch the tutorial video embedded at the top of this article.

    Conclusion

    DB Services is proud to present FM Quickstart 19 free and totally unlocked to the FileMaker community. This robust CRM app is great for anyone just beginning their journey into FileMaker, or for current FileMaker users looking for an update or new CRM module.

    To download FM Quickstart 19, please visit the official FM Quickstart website here to have it sent directly to your email inbox.

    Looking for help to get started with FM Quickstart? Check out our FM Quickstart Implementation Plans and find the one that fits your needs.

    Don’t hesitate to contact our team with any questions, or give us a call at 888-488-0191. DB Services looks forward to the opportunity to help you build your dream Workplace Innovation Platform in FileMaker!

    ]]>
    <![CDATA[DB Services Ranks on Inc. 5000 for 2020]]> https://dbservices.com/blog/db-services-ranks-on-inc-5000-for-2020 https://dbservices.com/blog/db-services-ranks-on-inc-5000-for-2020 Wed, 12 Aug 2020 00:00:00 -0400 For the second year in a row, DB Services has ranked on the Inc. 5000 list of the 5,000 fastest growing private companies in the U.S. For 2020, DB Services ranked #3,992 out of 5,000 on the list.

    ]]>
    <![CDATA[DB Services Named FileMaker Partner of the Year 2020]]> https://dbservices.com/blog/db-services-named-filemaker-partner-of-the-year https://dbservices.com/blog/db-services-named-filemaker-partner-of-the-year Wed, 05 Aug 2020 12:02:00 -0400

    ]]>
    <![CDATA[Surveys for Success: UNITY Performing Arts Foundation]]> https://dbservices.com/blog/surveys-for-success-unity https://dbservices.com/blog/surveys-for-success-unity Wed, 05 Aug 2020 12:01:00 -0400 In these difficult times, it is more important than ever to give back whenever possible. DB Services continues to support organizations with our Surveys for Success program, and this quarter, our charity partner is UNITY Performing Arts Foundation!

    ]]>
    <![CDATA[DB Services Ranked on IBJ Fast 25]]> https://dbservices.com/blog/db-services-ranked-on-ibj-fast-25 https://dbservices.com/blog/db-services-ranked-on-ibj-fast-25 Wed, 29 Jul 2020 00:00:00 -0400 DB Services has been ranked on the Indianapolis Business Journal’s Fast 25 list. 

    ]]>

    ]]>
    <![CDATA[Claris Connect Approvals]]> https://dbservices.com/blog/claris-connect-and-filemaker-approvals https://dbservices.com/blog/claris-connect-and-filemaker-approvals Wed, 15 Jul 2020 00:00:00 -0400 Email has totally transformed the way people work and communicate. The average employee receives over 120 work emails a day, so the easier it is to take action on an email, the better. Claris Connect offers a powerful tool for efficiency in its Approvals Utility, a service that uses email to automate approvals for your team. You can set up approval workflows, automate immediate next steps based on an approval’s response, and view the results of previous approval requests all within Claris Connect itself.

    Another stand out feature of Claris Connect is how easily it integrates with FileMaker, so in the video example, we’ll send an approval request from a form built in FileMaker. You won’t need to set up fmp urls, webhooks, or anything fancier than Insert from URL and a few JSON functions. Claris Connect handles the call and response functions, while users interact solely through their email client. If you’re not yet comfortable using FileMaker’s JSON functions, check out our article on FileMaker JSON functions. To see another Approvals Utility example that integrates with Formstack, check out our Claris Connect Overview article.

    ]]> Approval Basics

    The New approval action is the first option in the Utilities menu. As with all new flows in Claris Connect, you’ll need to configure a trigger before you have access to the action steps. To set up a new approval, you’ll need:

    • Title: this appears in the subject line of your email
    • Description: this is the main body part of the email, where you make the case for your request
    • Approver email: recipient
    • Requester name: sender
    • Due date: if the request has not been approved or rejected by this date, it will be marked as expired

    Adding An Attachment

    You can also send an approval with an attachment, as long as the attachment can be specified as a url. This can be an attachment address that is open to the public, such as a document hosted on your website. This could also be a url obtained from a previous trigger or action in your Claris Connect flow. For example, you can use the Get Attachment by id flow step from Microsoft Office to get a url for an existing email attachment.

    Responding To Approvals

    The approver will receive an email that looks something like this:

    ]]> Most recipients can simply input their comments and press approve or reject, right from their email browser. As shown in the image above, Microsoft Outlook users will need to click the link in the email to approve the request from the Claris Connect project itself. In order to access the project, they will need to be a user on your Claris Connect team, or an external user who has been invited to the project with the Approval.

    To invite users, click “Sharing” on the left side of your project, then enter their email. Note that these users will need to create a FileMaker ID, they will full have access to modify any flow in your project, and they will be able to see your Claris Connect subscription usage. Only Microsoft Outlook users need access to the project in order to respond to approvals.

    ]]> Handling Results

    Once the recipient has approved or rejected a request, use additional flow actions to take next steps, such as updating a record in FileMaker, sending a message using Slack, or creating a purchase order in Quickbooks. Additionally, Claris Connect provides a centralized management center for your entire Approvals history. You can search for approvals by status, requester name, or approver, and update pending approvals from this page.

    ]]> Takeaway

    Claris Connect opens up a world of options for automation and connecting your business services. The Approvals Utility takes this even further, giving you the tools to initiate and manage approval requests right “out of the box,” so to speak. And as you can see, it’s very simple! When you link this tool to other services, including FileMaker, you have a powerful way to document decisions and keeping things moving within your organization, while minimizing errors and keeping track of stale requests. Contact us for help integrating Claris Connect into your business.

    ]]>
    <![CDATA[FileMaker BackBlaze Integration]]> https://dbservices.com/blog/filemaker-backblaze-integration https://dbservices.com/blog/filemaker-backblaze-integration Wed, 24 Jun 2020 00:00:00 -0400 BackBlaze is a large scale cloud storage platform that currently boasts an impressive 1 billion gigabytes of file data hosted on the cloud and counting. With its competitive pricing, BackBlaze makes a strong case for a place where you can store and retrieve large amounts of data at an affordable rate. Integrating your FileMaker application with BackBlaze’s B2 Cloud Storage API can assist moving external files to the cloud, minimizing file size growth and keeping your FileMaker application lightweight.

    ]]> What You Need

    In addition to owning a BackBlaze account, you will need to create a Bucket on your account page. A Bucket is a location where files can be stored, and you can upload files to the Bucket of your choosing. Following this, you will need to generate an application key with access to this Bucket to perform API calls. Please note that the information will only display once so please make sure to document it.

    ]]> Authentication

    You will need your application key and associated info you received on the BackBlaze account page to authenticate with the BackBlaze B2 Cloud Storage API. Authenticating successfully gives you an Authentication Token, an API Url, and a Download Url. These credentials are only valid for 24 hours, and after that they must be refreshed. Here is an example of a result:

    ]]> Uploading Files

    Using the API Url from the authentication process and its associated credentials, you now need to generate an Upload Url. This Url is used to upload files onto your BackBlaze account. Much like the authentication process, this Url is only valid for 24 hours.

    With the Upload Url in hand, you can now push container files from FileMaker into BackBlaze’s cloud storage. Your curl request should look something like this:

    ]]> A SHA1 Checksum is recommended when uploading your files to BackBlaze. This ensures that the file is not corrupted while in transit between FileMaker and the cloud. You can apply the following FileMaker function to generate a SHA1 checksum on a container.

    ]]> If your file was successfully uploaded, you should receive a response with a status of 200, indicating that your file was successfully uploaded to your bucket on BackBlaze. Additionally, a fileID will be passed alongside the response, which is that file’s unique identifier on your BackBlaze account. You will need this fileID to download that file from BackBlaze.

    Additionally, successful uploads should display on your BackBlaze account.

    ]]> Downloading Files

    Using the Download Url from authentication in tandem with the fileID from your upload request, you can perform an API call to request a download of a specific file.  In the headers from the response you have access to BackBlaze’s SHA1 checksum as well, so you can compare it against what you have to see if there is any corruption.

    Displaying Files In FileMaker

    One thing you’ll want to keep in mind when working with the API is that you’ll need to store a representation of all the files as records in your FileMaker solution. In the sample file, we have a file table to store the document names, BackBlaze fileID, size, etc.

    ]]> Conclusion

    BackBlaze’s B2 Cloud Storage API allows you offload large amounts of file data from your FileMaker application to the cloud. With all your files stored on the cloud, you can keep your data size low, while also being able to easily access your files on the web. Contact us if you would like help integrating your BackBlaze account with your FileMaker application!

    ]]>
    <![CDATA[Claris Connect QuickBooks Online Integration]]> https://dbservices.com/blog/claris-connect-quickbooks-online-integration https://dbservices.com/blog/claris-connect-quickbooks-online-integration Wed, 03 Jun 2020 00:00:00 -0400 Intuit’s QuickBooks Online is a powerful tool with over 4 million subscribers that allows for easy management of invoices, payments, and other accounting tasks. Many companies find themselves with both QuickBooks and FileMaker and end up having to do double data entry from one system to the next. Claris Connect is a “no-code” platform from Claris International, Inc. that allows organizations to rapidly connect multiple cloud services together, including FileMaker and QuickBooks Online. See our articles overviewing Claris Connect and integrating FileMaker with Quickbooks Online on our website. Here we will show you how quick and easy it can be to integrate your FileMaker solution with QuickBooks Online using the new Claris Connect toolset.

    ]]> Delivering Data From FileMaker To Claris Connect

    In this example will we be initiating our sync from FileMaker and transmitting new or updated Customer and Invoice data to our QuickBooks Online account. Claris Connect also offers the ability to begin a sync process based on actions taken in QuickBooks Online and we invite you to explore those further on your own. For this walkthrough, the first thing you want to do is create a new flow in your Claris Connect project and select the trigger as FileMaker. You can use either Cloud on On-Prem servers as an option and the configuration is very similar; here, we will be connecting with an on-prem server. Simply enter your server URL, user credentials, and filename (do not include the “.fmp12” extension) and click continue.

    Note: The user you provide must have the “fmrest” extended privilege enabled in FileMaker or you will get an error here.

    ]]> You will then be presented with a callback url specific for your flow and instructions on how to connect your FileMaker Pro file. Follow these instructions to connect your database to your new flow and click Save Trigger, and you are now ready to begin.

    Any time you initiate a sync from FileMaker you want to be sure you are delivering all the data that you might need throughout the entire flow up front. Create a sync script in FileMaker which contains a JSON payload being delivered to Claris Connect and contains all customer data such as name, address, email, phone, and existing QuickBooks ID as well as invoice information such as amount, line item description, and line item service/product category. Once you have your file connected and your “initiate sync” script created, enable your flow and run the script for an example invoice so that your trigger step will now contain all the potential data points you may need to set through your flow.

    ]]> Note: In order to test syncing to QuickBooks Online you will need an active QBO company account to connect to. At this time Claris Connect does not allow you to authenticate with Intuit Developer Sandbox companies, however you can create a 30 day free trial account with QBO and connect to that for testing purposes.

    Workflow For Syncing Customers

    Any time we sync an invoice to QuickBooks Online we must provide the Customer’s internal QuickBooks ID number (QBID) to tie them together, which means we must verify the customer exists already in our QuickBooks account. Here you will want to go through some steps in your flow to confirm the existing customer, find a matching customer, or create a new one if necessary to acquire the customer QBID we need. First, use a “Set Variable” flow step (one of the standard utility actions) to create a new variable called customerQBID and set it to the value of the customer’s QBID you delivered in your trigger payload from FileMaker. It is entirely possible that this will be blank if it’s a customer you have never synced with Quickbooks before. Next use an “If / Then” flow step to check if your variable is empty, and if it is then you want to perform a “Get customer by query” flow step to check for a matching customer in QuickBooks using the name sent from FileMaker similar to this:

    ]]> Next use another “If/ Then” flow step to see if your query returned a CustomerID. If it did, then that means we have a name match already existing in QuickBooks so you can set your customerID variable to that value and we are ready to move on. If not, use the “Create Customer” flow step to generate a new customer in QuickBooks first and then capture the customerID returned from that step into your variable. Lastly, run a “Get customer by ID” flow step using your customerID variable and confirm that it returns a result, which verifies for us that the ID we are using matches an existing customer in QuickBooks and you are good to go. If you want, you can also run an “Update Customer” flow step here to make sure that all the customer data in QuickBooks is synced and matches the information you delivered from FileMaker.

    It is highly recommended that you use On Error flow steps to capture any failures that may have occurred when executing QuickBooks functions, and then delivering those errors back to FileMaker using “Execute Script” and “Stop Flow” steps to prevent unwanted changes and return issue details back to your database. You can also use the History tab in your flow to view all the request and response messages for every single step, which can be extremely beneficial when troubleshooting errors.

    Note: In the screenshot above I only show a single On Error trap as an example to save space, but you will want to ensure you error trap all QuickBooks flow steps to capture any issues.

    Creating A New Invoice

    Creating invoices via Claris Connect is still somewhat limited in the amount of custom data you can deliver to QuickBooks, but if the goal is reducing double entry you can definitely automate this process. Continue your previous flow from the customer steps above by adding a new step for “Create Invoice”. You will notice that the only options here are to enter the Customer ID, which is your customerQBID variable from before, and information for invoice line items. QuickBooks will automatically populate customer data on the invoice based on the Customer provided, but the line items can be a bit trickier particularly if you might have a dynamic number of potential lines all using various product/service categories. You can perform a simple sync by previously combining the amounts of all your line items into one total and providing a generic description from FileMaker such as “Products and Services”. Doing so allows you to add those values passed in from your trigger to the Line Item options here and create a simple invoice with the proper amount.

    ]]> Note: QuickBooks requires the QBID of an Item (product/service category) for any invoice lines, but unfortunately Claris Connect does not yet provide the option to query for accounts/items by name. In order to provide this information, you may need to use Intuit’s API Explorer or another method to retrieve the QBID’s of items you wish to use and store those in FileMaker so you can deliver them in your trigger.

    Currently Claris Connect does not support a dynamic number of invoice line items, so if you have more than one you will need to hardcode them in your flow step. You can still make this work by pre-populating variables for a set number of line items in your JSON package and then using “If/Then” flow steps to create invoices with various numbers of line items based on a count of the total. This can get somewhat messy though, so if possible you are better off combining invoice details into a single line item at this time.

    Be sure to end your flow by calling a script in your FileMaker database to return pertinent information such as the customerQBID and invoiceQBID. You will want to be sure and store these values on their related records in FileMaker for use on any subsequent syncs so as not to create duplicate data in QuickBooks.

    Conclusion

    It can be extremely rewarding to integrate your FileMaker solution with QuickBooks Online using the Claris Connect platform due to the speed and minimal coding requirements necessary. Although the flexibility may not be as complete as a native integration, for setting up a quick sync to automate tasks, eliminate double date entry, and reduce user error you could hardly ask for a more simple solution. Feel free to contact us if for any additional assistance or to discuss getting your QuickBooks system integrated with FileMaker using Claris Connect.

    ]]>
    <![CDATA[Claris FileMaker 19 Overview]]> https://dbservices.com/blog/claris-filemaker-19-overview https://dbservices.com/blog/claris-filemaker-19-overview Wed, 20 May 2020 12:07:00 -0400 What’s New?]]> Claris FileMaker Pro 19

    FileMaker Pro is no longer called FileMaker Pro Advanced and this marks the last annual release of Claris FileMaker Pro. Claris will adopt an Agile Development methodology that includes more rapid release schedules.  Eventually, we expect Claris will name the product based on the year, i.e. Claris FileMaker 2021 next year.

    Perform JavaScript in Web Viewer

    You can now perform Javascript in a Web Viewer and have FileMaker scripts communicate directly.  Each can call the other and pass in parameters. This means you can use your own or third party JavaScript libraries to add advanced user interface elements into your apps.  See the new FileMaker JavaScript Web Viewer Integration in action as Devin Drake presents to you this powerful technology.

    Note: On Windows, the Web Viewer uses Internet Explorer 11 which has limitations and may require additional complexity to in order to support IE 11.  Claris plans to move to Edge down the road.

    FileMaker Add-Ons

    FileMaker Add-Ons have been in the product since version 17 when inserting a Portal. Now, they are much more visible in Layout Mode on the left Objects Pane. The Add-Ons present are the same 11, (Action Items, Addresses, Attachments, Companies, Email Addresses, General Info, Inventory Transactions, Notes, People, Phone Numbers, and Topics), but now, you can create your own Add-On with the script step “Save a Copy as Add-on Package”. You can create your own Add-Ons and utilize the new Javascript Web Viewers to really take your Workplace Innovation Platform to the next level. Learn about Creating Your Own FileMaker Add-Ons as Isaac Harris provides a video walk-through and sample Add-On file for download.

    Claris plans to release Add-Ons down the road in the product and in the Marketplace.

    Claris Marketplace

    The new Claris Marketplace launched in November 2019, replacing Made for FileMaker (MFF). FileMaker 19 now displays a link to the Marketplace in the Create screen.

    You can expect to find in the future Add-Ons in the Marketplace to add to your applications later this year. We are expecting to see Kanban Boards, Calendars, Charting, Rich Text Editors, and more. All are features that are difficult to achieve in the native FileMaker client which leverages existing Javascript libraries via Web Viewers.

    There are great solutions for all needs in the Claris Community and Marketplace. The number of free and paid products is increasing each day in the Claris Marketplace, and we are excited to see what solutions these products can offer to FileMaker users of all experience levels.

    Configure Machine Learning

    You can now load a Core ML (Machine Learning) model and prepare it for use using the new Configure Machine Learning Model script step. You can create your own model you have trained yourself, or find one for free online. You can also purchase a Core ML model.  Just drop it into a container, give a model name, pass parameters, and return the result.  We expect a lot of innovation in customer applications in image recognition and more.

    See in action FileMaker Machine Learning Using CoreML as Aaron Kaiser demos how to set up a model.  Check out Core ML models on GitHub too.

    Print Page Numbers

    If you would like to show the total page count on reports, this is now easier than ever.  You can print Page X of XX by using the new PageCount symbol to print page numbers with the total page count.

    Claris FileMaker Pro 19 Technical Specifications

    FileMaker Pro 19 is supported on Windows 10 Pro and Enterprise (64-bit only), macOS Catalina 10.15, and macOS Mojave 10.15. Note: there is no longer support for Windows 7.

    FileMaker Developer Subscription

    If you want early access to FileMaker versions, purchase a FileMaker Developer Subscription for $99/per year. The subscription gives you access to the pre-release version, the FileMaker Data Migration Tool, the FileMaker iOS SDK, and more. Once purchased, you can download the tools from your Claris Community account.

    NOTE: The FileMaker Developer Subscription is planned to be updated to a new program that includes Claris Connect, and current subscribers will automatically convert to the new plan.

    FileMaker Solution Upgrade Tool

    You can now patch a FileMaker application using the FileMaker Solution Upgrade Tool. The new tool is Preview software for the community that expands on the Save As XML feature released in FileMaker 18.  See how the FileMaker Solution Upgrade Tool works as Sarah walks you through how to use it. This is strictly a command line tool that leverages XML files for critical fixes to your solution. In most situations, you will still want to use the FileMaker Data Migration Tool when upgrading.

    ]]> FileMaker Go 19

    FileMaker Go for the iPad and iPhone has all the features provided in FileMaker Pro, plus specific iOS features. You will need FileMaker Pro on the desktop to customize your application in FileMaker Go. The new version of FileMaker Go 19 is available in the App Store as a free download.

    NFC Readings

    You can now scan or stop scanning Near Field Communication (NFC) tags using FileMaker Go.  Learn how NFC Tag Reading works in FileMaker Go as Devon Mason walks you through this exciting new feature.

    Siri Shortcuts

    In FileMaker Go 19, you can now create FileMaker scripts in the Shortcuts app allowing you to run Shortcuts or Siri voice commands. See how to set up FileMaker Siri Shortcuts with Andy Bowerman.

    High Efficiency Image File Format

    Inserting HEIF images on layouts and in container fields that can be viewed in macOS and iOS is now available. At times, iOS users have HEIF images turned on their iPad and iPhone when inserting images. This is now compatible.

    FileMaker Go 19 Technical Specifications

    FileMaker Go 19 is supported on iPads and iPhones running iOS 13.2.

    ]]> FileMaker Server 19

    FileMaker Server is known for its ease-of-use and ability to run smoothly. The newest version focuses on WebDirect Window Card support, along with performance improvements and security updates.

    WebDirect FileMaker Card Windows

    With this release, you now have one of the most powerful and popular user experience tools available in FileMaker WebDirect.  See how FileMaker Card Windows work by looking back at FileMaker version 16.

    Startup Restoration

    The new Startup Restoration feature is now turned off by default and enhancements are planned for the future.

    FileMaker Server 19 Technical Specifications

    FileMaker Server 19 is compatible with Windows Server 2019 Standard Edition, Windows Server 2016 Standard Edition, macOS Catalina 10.15, and macOS Mojave 10.14. If you’re on Windows Server 2012, it’s a good time to consider moving to FileMaker Cloud.

    WebDirect desktop browser support includes Safari, Microsoft Edge, Edge Chromium, Chrome, and mobile browser support includes Safari on iOS and Chrome on Android.

    Note: Supported clients include FileMaker Pro 18, FileMaker Pro 19, FileMaker Go 18, and FileMaker Go 19.

    FileMaker Cloud

    The new product called FileMaker Cloud was launched in September 2019 and can be purchased from your favorite FileMaker Reseller or direct from Claris. In addition, FileMaker Cloud Essentials was released in January 2020 for 5-10 users. FileMaker Cloud and Cloud Essentials are considered a new license type, to which our DB Services Licensing Specialists can help you transition. This is a great option versus deploying On-Premise for many customers–especially if you are new to the platform, need to replace your current server hardware, or are expanding to a more mobile or remote workforce! FileMaker Cloud plans to expand to the EU later this year.

    At this time, FileMaker Cloud doesn’t offer a native Schedule Manager like what is available for On-Premise.  You can download our free FileMaker Cloud Schedule Manager to add this capability. Contact us if you would like help with setup, or for us to manage FileMaker Cloud Hosting for you.

    Note: FileMaker Cloud does require a separate user license for any consultant or developer you may work with.

    FileMaker Cloud for AWS was released in September 2016 and is now End of Life. Version 1.18 is the last supported version and can only be purchased till the end of 2020.  Product support ends in January 2022.

    ]]> Summary

    The Claris FileMaker platform continues to be the leader in creating innovative, powerful custom applications for organizations all around the world and works seamlessly across Windows, Mac, iOS, and the Web. The release of the FileMaker 19 platform further solidifies FileMaker as the Workplace Innovation Platform leader with more frequent releases ahead.

    FileMaker Go gives the platform a competitive edge and this version continues to build off its strong foundation. Organizations can create innovative and rapid custom applications for iOS with great return on investment (ROI), and creating prototype applications on the iPad and iPhone is a matter of hours not months.

    FileMaker 19 is a great release and has features everyone can benefit from. We look forward to helping you build innovative custom applications using these new tools for desktop, mobile, and web. Contact DB Services at any time with any questions or needs with Claris FileMaker!

    ]]>
    <![CDATA[FileMaker JavaScript Web Viewer Integration]]> https://dbservices.com/blog/filemaker-javascript-web-viewer-integration https://dbservices.com/blog/filemaker-javascript-web-viewer-integration Wed, 20 May 2020 12:06:00 -0400 The new FileMaker JavaScript Web Viewer Integration creates seamless communication between FileMaker and web viewers. This integration will allow for more efficient development of web viewers which will extend the functionality of FileMaker systems with features not native to FileMaker. The integration comes with a new script step called “Perform JavaScript In Web Viewer,” and JavaScript function, FileMaker.PerformScript(), both of which we will explore in this article.

    ]]> Performing FileMaker Script From JavaScript

    The ability to perform FileMaker scripts from JavaScript is fairly simple but does have some caveats. The function itself is

    ]]> There are some considerations when using this function:

    • The JavaScript will not wait for the FileMaker script to complete.
    • The function will not be available until the web page has finished loading.
    • Web viewers now have a setting that needs to be enabled. That setting being “Allow JavaScript to perform FileMaker scripts” found in the Web Viewer Setup dialog.
    • This function follows the Same Domain Policy, meaning this function will only work if the database and web app are hosted under the same domain. If they are not the browser will block the code.
    ]]> Performing JavaScript From FileMaker

    To perform JavaScript from FileMaker, call the new Perform JavaScript in Web Viewer script step.

    ]]> The parameters of the script step are:

    • Object Name: The defined name we give the web viewer.
    • Function Name: The name of the JavaScript function we want to run.
    • Parameter: Any parameters we want to pass into our Javascript function.


    Some considerations:

    • The JavaScript function’s return value is ignored.
    • The script step will wait for the JavaScript function to return, if the JavaScript function enters an infinite loop the whole FileMaker solution will come to a halt.
    • When executing the script step, there will be no way for a user to cancel the operation or perform any other operations.
    • If the web viewer object is not visible the script step will not be executed.
    • Once the script step is called and the JavaScript function runs, error handling will be done through the web browser. Any errors that occur in the FileMaker solution will be handled in the same way we do error handling now.

    Conclusion

    Web viewers are an incredible tool in FileMaker’s arsenal giving solutions ways of gathering and displaying information not native to FileMaker itself. The JavaScript integration now allows implementation of web viewers to be even easier by updating how to develop communication between the web app and FileMaker. Contact us if you need assistance with web viewers in your custom FileMaker application!

    ]]>
    <![CDATA[FileMaker Machine Learning Using CoreML]]> https://dbservices.com/blog/filemaker-machine-learning-using-coreml https://dbservices.com/blog/filemaker-machine-learning-using-coreml Wed, 20 May 2020 12:05:00 -0400 Machine learning and artificial intelligence are rushing in the next era of computing by enabling machines to make decisions, rather than humans telling machines which decisions to make. Whether you need to classify objects in an image, parse speech into text, or get recommendations on what products to market next quarter, machine learning can be adopted to assist. Leveraging FileMaker’s machine learning capabilities on MacOS makes integrating artificial intelligence into your business easier than ever.

    ]]> Models 0x101

    A predictive machine learning algorithm relies on a model—a set of black box functions that generate an expected output set based on an unknown input set. The model is created using a collection of training data with known inputs and outputs.

    For example, to create a model that identifies different types of dog breeds, you would train the model using a collection of photos for each dog breed. Once created, giving the model an image of any type of dog breed that was included in the training data would produce an output identifying the image’s breed.

    The first step in using machine learning in your FileMaker system is to either create or use an existing model. Apple provides a handful of CoreML models for image and text recognition. CoreML is Apple’s library that optimizes performance of on-device machine learning processes. Executing machine learning tasks on-device, as opposed to integrating with an online API, improves responsiveness and privacy.

    Models, No Assembly Required

    ]]> Apple also provides Create ML—an Xcode tool that makes creating a CoreML model effortless, with no code required. Once a model has been created using Create ML, getting it up and running with your FileMaker database takes only minutes.

    The Create ML tool can be started by opening Xcode and then selecting Xcode>Open Developer Tool>Create ML from the menu bar. Select New Document from the dialogue and then you’ll be asked to choose a template. For this demo, we’re choosing to work with an image classifier, but Create ML provides options for sound, motion, text, and data analysis as well.

    After selecting Image Classifier, give a name to your new project and click Next. Choose a location to save your project and once the project window is open, you’re ready to begin training your model.

    If You Give A Model An Image

    ]]> Next up, you’ll need to supply the model with a set of images for the training and testing processes. This demo will be creating a model to identify objects in the Caltech 101 dataset. You can download the image dataset yourself by visiting the Caltech 101 website. Included with the sample file is a model created using Create ML and this collection of images.

    With Create ML open, we select the 101_ObjectCategories folder for the Training Data section. This folder contains subfolders that each have a set of images to train the model. To begin the training, click the Begin Training button at the top of the screen. Once the training is complete, Create ML will produce a .mlmodel file that can be used in FileMaker.

    Loading The Model In FileMaker

    In usual FileMaker fashion, incorporating the model into your system is effortless—just drop it into a container field. Since this demo is using an image classification model, there’s also a container to hold the image to classify. Putting the model to use requires only a couple of script steps. The first script step sets the stage for loading the model into memory.

    ]]> The first parameter specifies the operation, which can be either vision, general, or unload. Vision is used for image inputs and general is used for scalar input values. Unload frees the named model from memory. The second parameter specifies a name, which is used to reference the model in subsequent script steps. The last parameter specifies a container field from which to load the model.

    Compute The Model

    After the model is loaded, the next step is to use the ComputeModel function. This returns a result from processing the given input. There is a slight variation in this function based on which type of model is being used.

    Vision:

    ]]> General:

    ]]> For vision models, value1 is the input image container. To limit the results returned, confidenceLowerLimit can optionally be specified between 0.0 and 1.0. The results will be limited to classifications that have a confidence level above the specified value. The returnAtLeastOne parameter is used in conjunction with the optional confidenceLowerLimit parameter. If no results are returned with a higher confidence level than the specified limit and returnAtLeastOne is true, the first result will be returned. This technique can be used to always return only the first classification in the list by specifying a limit of 1.0.

    General models are similar but require the parameter name of the model as defined by the creator. They do not include the confidenceLowerLimit or returnAtLeastOne parameters. Multiple parameter-value pairs can be specified as needed.

    Unload The Model

    After using the model, it’s important to free the memory resources required to compute the output. The Configure Machine Learning Model script step supplied with the name of the model to unload is used.

    ]]> After the model is unloaded, you can continue with your script as needed.

    Conclusion

    Leveraging FileMaker’s machine learning capabilities will speed up time consuming tasks such as classifying images and transcribing speech; moreover, it can help with data analysis by providing predictive insights based on your existing data. Contact us today for assisting in adding machine learning to your FileMaker system!

    ]]>
    <![CDATA[Siri Shortcuts in FileMaker Go]]> https://dbservices.com/blog/siri-shortcuts-in-filemaker-go https://dbservices.com/blog/siri-shortcuts-in-filemaker-go Wed, 20 May 2020 12:04:00 -0400 As more and more businesses bring apps into their daily workflows, it is important to have fast and easy options for completing tasks while mobile. With FileMaker Go 19, you can execute your favorite FileMaker Go features with a voice command or single tap using Siri Shortcuts! Released with iOS12, Shortcuts introduced the ability to build intuitive and customizable Siri workflows using your favorite apps- with intuitive being the key word: nearly a third of smartphone users now use voice commands once a week (99firms)! Siri Shortcuts take you directly to the FileMaker features you need before you’ve even opened the app, eliminating waste from your workflow and letting you focus on the task at hand. Below we will demonstrate how to create Siri Shortcuts in FileMaker Go 19.

    ]]> Donate Scripts

    To make a FileMaker script available as a Shortcut, you’ll donate it from your Script Manager by right clicking on the script and selecting Enable Shortcuts Donation.

    ]]> Once a script has been enabled for donation, a microphone icon appears to the right of the script’s name, signifying its new availability as a Siri Shortcut. You’ll also need to enable the “Allow URLs to perform FileMaker scripts” in Manage–>Security–>Extended Privileges to allow this execution from outside FileMaker. Now, each time you load your FileMaker Go solution, these Shortcut-enabled scripts can be run with a tap or voice command!

    Simplify With Shortcuts

    With your FileMaker scripts donated, launch the Shortcuts app to construct a new tap or voice shortcut. Here, FileMaker’s powerful scripting engine is augmented by external commands and can be integrated into the workflows of any other Shortcut-enabled iOS app.

    ]]> Add your favorite FileMaker functionality to a Siri Shortcut.

    Command And Control

    From Shortcuts, search for ‘FileMaker’ in the top left, then add your FileMaker solution and pick from any of the scripts you’ve enabled for donation. Your new Shortcut is now accessible as a voice command or an icon that can be added to your Home screen!

    ]]> Use voice commands to launch FileMaker scripts from Siri Shortcuts!

    Conclusion

    Siri Shortcuts expand FileMaker Go’s functionality by bringing scripts out of your app and into your life, letting you reimagine FileMaker Go development and workflows. Bring iOS advances to FileMaker and your business with Siri Shortcuts in FileMaker 19 Go! If you’d like assistance setting up Siri Shortcuts for your FileMaker Go app, please don’t hesitate to contact us!

    ]]>
    <![CDATA[NFC Tag Reading in FileMaker Go]]> https://dbservices.com/blog/nfc-tag-reading-in-filemaker-go https://dbservices.com/blog/nfc-tag-reading-in-filemaker-go Wed, 20 May 2020 12:03:00 -0400 Near Field Communication is a technology developed in the early 2000s that allows for contactless communication between devices using radio waves to transfer data. 

    NFC can share information between two active devices, such as two smartphones sharing contact details, or between an active device and a passive device, such as a smartphone reading a NFC tag embedded in a poster. NFC tags are tiny, inexpensive chips that contain a small amount of memory, a radio chip, and an antenna. They can be visible or hidden in almost any object, thus allowing common household items to turn into “smart objects” easily. 

    Although technology already exists that lets us share data using radio waves, NFC is specifically designed to share information securely and faster than earlier methods (Bluetooth, RFID, QR codes, etc). As cited by the NFC Forum, there are over 2 billion NFC-enabled devices worldwide. From making mobile payments at the grocery store to scanning boarding passes at the airport, NFC has rapidly become a mainstream technology in our everyday lives. The video below demonstrates how FileMaker Go makes it easy to incorporate NFC by introducing a new script step to read these tags.  

    ]]> NFC In Action

    To set up a test case for NFC, I acquired a pack of NFC tags that worked at a frequency of 13.56MHz. I programmed mine using a free app called NFC Tools which I downloaded from the App Store. It took less than a minute to associate a serial number with my specific NFC tag, and I was able to easily reconfigure the tag to associate other test data.  My iPhone XR acted as an active device and through the use of FileMaker Go 19, my serial number was scanned, passed as a parameter, and set in a field when my iPhone was placed no more than 4 inches away from the tag. Currently, iPhones XS, XS Max, XR, and newer models equipped with the latest iOS software can read and encode NFC tags natively. iPhones 7 and 8 are limited to reading NFC Tags with the help of an additional scanning app. Note that this capability will not work on iPads.

    Introducing “Configure NFC Reading” Script Step

    Be sure to download the file at the end of this article to follow along with the demonstration. FileMaker Go 19 added the script step “Configure NFC Reading” to read NFC tags.

    ]]> In the Configure NFC Reading step, users choose between “Read” or “Cancel” to bring up the pre-made Apple UI that instructs users to hold devices as close as possible to the NFC tag. The Script is automatically invoked once the reading has either succeeded or cancelled and comes with an optional parameter to pass. The Timeout exits the reading after the specified number of seconds and relieves the user of manually finishing the scan. Lastly, the Multiple parameter should be used if more than one NFC tag needs to be read in one session.

    ]]> The cog wheel will bring up specifying the script, timeout, and continuous reading features. All three will be unchecked initially.

    Supported Formats

    Because NFC tags can be programmed in several ways, FileMaker Go will support four of the most common formats: 

    1. Plain Text
    2. URL
    3. XV Card
    4. “Smart Posters” which are like QR Codes– a combination of text and URL.

    Example Script

    To start my script, I checked to see if the user was in the correct platform, as this script step is only compatible with iOS systems.

    ]]> Next, I used the Configure NFC Reading script. This activated the tag scan, and once the tag had been read, it called upon the “Save Scanned Data” script which pulled the serial number of the tag into a field on my layout.

    ]]> I attached this script to a button on my layout made specifically for an iPhone.

    ]]> The end result passes the serial number associated with the tag as a parameter to a field on the layout. Once the data is saved as a parameter, it can be used in whatever capacity to perform the specialized functionality your app requires. Whether that is keeping track of Euchre scores or counting attendees at a mandatory event, NFC’s versatility is one of its biggest assets.  This was all done without the need for wifi, manually pairing devices, and if there is a mistake, the NFC tag is easily reprogrammable to show the correct data.

    Conclusion

    NFC allows businesses to talk to customers in innovative ways. Every endpoint acts like a personalized channel to engage potential customers and create relationships. It essentially allows any manufactured product, from potato chip bags to NFL jerseys, to become smart products that can share information with customers by simply hovering smartphones near a product. FileMaker Go is simplifying the process of using NFC technology by enabling your business to create personalized channels and ultimately grow your customer base. Contact us today to find out how NFC can expand your business!

    ]]>
    <![CDATA[Creating FileMaker Add-Ons]]> https://dbservices.com/blog/creating-filemaker-add-ons https://dbservices.com/blog/creating-filemaker-add-ons Wed, 20 May 2020 12:02:00 -0400 With the release of FileMaker 19, Claris International, Inc. has introduced the ability to create add-ons, allowing developers to package a set of features that can be distributed to other FileMaker solutions. While installing custom add-ons currently must be started outside of FileMaker, add-ons can currently be created in FileMaker Pro using the preview script step Save a Copy as Add-on Package. As with all preview software, this feature is subject to change.

    Let’s take a look at how to create your own add-on.

    ]]> A Few Things To Note Before Diving In

    Before we begin making our add-on, please note

    • The file we use to create the add-on needs to have a unique file ID. Creating a new file generates a unique file ID, so we recommend creating a new file for each new add-on.
    • The name of the file will be the name of the add-on. You can change the name afterwards, but it’s simpler to have the file be the correct add-on name.
    • Add-ons will ignore security features but will retain any sample data in the file.
    • Once the add-on is installed in the application it will be available to everyone using the app.

    Creating An Add-On File

    As stated above, we recommend creating a new FileMaker file to ensure you have a unique file ID and to property name the add-on. Once you have created and named your file create a layout based on a table occurrence that you want to import into the new file. Name the layout __FMAddonTemplateDirectives_en (“en” can be replaced with any ISO 639.1 language code). The layout will act as place to create the add-on content, but the layout itself will not be part of the add-on.

    ]]> Adding Drag And Drop Content

    Almost everything in the FileMaker file will be included in the add-on when the package is created, including all scripts, layouts, tables, table occurrences, etc. in the file, meaning that you don’t need to put everything on the __FMAddonTemplateDirectives_en layout. But there are special steps to tell FileMaker what layout objects you want added to the layout that a developer drag and drops your add-on onto.

    On the __FMAddonTemplateDirectives_en layout, add all layout objects that you want created when the add-on is drag and dropped. Once you have all of the layout objects positioned, anchored, and styled properly group them all in one single group. This should be the only group you make on this layout. Do not name the group. The add-on will include any objects in this group when the add-on is dragged onto the layout. Anything outside of the group will NOT be included in the add-on. (Creating add-ons that automatically create a relationship to the target file’s current table require more advanced setup.)

    Packaging The Add-On

    Now that the add-on is ready to be packaged for deployment, we need to run the “Save a Copy as Add-on Package” script step with the following settings and parameter

    ]]>
  • Pass in the window name of the add-on window.
  • Replace UUIDs: On. The UUID is what FileMaker uses to show unique add-ons in the Add-on Install tab. If two add-ons have the same UUID, only one will be shown. If you want to have different versions of this same add-on, set this step to On

  • Running this script will create the add-on. It will include all valid parts of this file into the package and save it in the AddonModules folder, which will open up.

    Distribution

    To make this add-on available for FileMaker for your development, simply quit FileMaker. Then start it back up. This add-on will be available in the Add-on Tab of layout mode. To make this add-on available for another developer, simply go to the AddonModules folder, zip your custom add-on folder, send the zip to them, and ask them to place the unzipped folder in the AddonModules folder on their computer. The AddonModules folder is at:

    • Mac: /Users/username/Library/Application Support/FileMaker/Extensions/AddonModules
    • PC: Users\username\AppData\Local\FileMaker\Extensions\AddonModules

    Installing Add-Ons

    To install an add-on in your FileMaker solution ensure you have the folder of your custom add-on in your AddonModules folder and that you’ve restarted FileMaker Pro after adding the folder. Next, navigate to the layout in your FileMaker solution in which you want the add-on to appear. Enter layout mode and expand the left menu layout object panel. Click on the “add-ons” tab. Click +, select an add-on, and click Choose. The add-on will appear in the add-ons list and is available to place on any layout. Simply drag the add-on from the list onto the layout.

    ]]> Conclusion

    Using add-ons makes installing features in your custom FileMaker solution faster and easier than ever before. You can install pre-made add-ons, or create your own, saving time and effort. Check out our popular Google Calendar Integration demo file that we packaged as an add-on for this article’s sample file, and contact us if you would like help creating your own add-on.

    ]]>
    <![CDATA[FileMaker Solution Upgrade Tool]]> https://dbservices.com/blog/filemaker-solution-upgrade-tool https://dbservices.com/blog/filemaker-solution-upgrade-tool Wed, 20 May 2020 12:01:00 -0400 Upgrading your custom FileMaker application used to require migrating data or manually following a complex set of instructions which would take quite a bit of time to complete. Now FileMaker has released a command line tool that will upgrade your custom application in a matter of minutes. At the moment, the FileMaker Solution Upgrade Tool is considered to be a preview software and is subject to change.

    In the video below I will walk you through the process of upgrading your FileMaker custom app to the newest version using the new FileMaker Solution Upgrade Command Line Tool.

    ]]> New Privilege

    A new extended privilege has been created for this process. In order to run the patch file the user must have a full access account or at least have the fmupgrade privilege.

    ]]> If the patch file is an encrypted xml file, then you will open up the source file first and the provided account’s suffix of the fmupgrade privilege extension will be used as a decryption key for the patch file. An example of this would be creating an upgrade passkey (such as MyPass123) and appending it to the end of the privilege extension – fmupgradeMyPass123.

    What The Tool Transfers Over

    It’s important to know that this tool transfers over everything except for your FileMaker data. You will still need to use the data migration tool if you’re planning on doing that. You can find the article including the download for our FileMaker Data Migration Companion here.

    Creating The Command

    Once you’ve downloaded the command line tool, you’re ready to start creating the command. The first step you want to take in creating your command is generating the GUIDs for versions 01 and 02 of your applications, which will look something like this:

    ]]> The generateGUIDs command is important because it ensures that all objects have a unique ID.

    Once you’ve generated the GUIDs, you will then save the newly generated copies of the files as XML. It is important that you use a diff tool when creating your patch file. In my video I show you which tool I use online for comparing my XML files.

    For reference, the skeleton of the patch file should look like this:

    ]]> You want to wrap each change in <AddAction></AddAction>. In the above example, I have wrapped a value list between the “<AddAction>” tag. Another tag that you can utilize is the <DeleteAction> tag, and as the name implies, this tag allows you to remove objects from your solution.

    After you’ve created the patch file, you will run a set of commands that look similar to this:

    ]]> If you’ve successfully upgraded your file you will see the output, “Patch File Applied”.

    Best practice is to test the patch file on a copy of your original FileMaker solution to ensure that the upgrade will work. Once you’re confident in your patch file, you as the developer can run the command to upgrade the first version of the customer’s app or you can wrap the tool and the patch file into a batch script and distribute this to the customer.

    Conclusion

    The release of the FileMaker Solution Upgrade Tool is a welcome addition for both developers and clients. Now, upgrade your FileMaker app takes minutes and applying any code changes is an automated process.
    Contact us if you need assistance with upgrading your custom FileMaker application!

    ]]>
    <![CDATA[Surveys for Success: The Glioblastoma Foundation]]> https://dbservices.com/blog/surveys-for-success-glioblastoma-foundation https://dbservices.com/blog/surveys-for-success-glioblastoma-foundation Wed, 29 Apr 2020 00:00:00 -0400 DB Services has been proudly giving back to the community for years. Now we are partnering each quarter with a charity to donate for each survey we receive! Our new Surveys for Success program is our way of saying thank you to our clients for filling out our surveys and to also let you know how we are paying it forward.

    glioblastoma fundraiser photo

    The DB Services family is impacted by this disease personally, and for that reason, the charity we are partnering with for Q2 is The Glioblastoma Foundation. Glioblastoma is one of the most aggressive and deadly forms of brain cancer, and The Glioblastoma Foundation seeks to transform care and treatment for the disease. We are proud to support The Glioblastoma Foundation's mission to fight this disease with further research and better care for Glioblastoma patients.

    We are donating $10 for every survey that our clients fill out to The Glioblastoma Foundation, and our goal for Q2 is to get at least 100 surveys back so that we can donate $1,000 in total. Our donations would not be possible without the help of our amazing partnerships and for that, we thank you! Each survey we receive is an additional donation towards The Glioblastoma Foundation. Your feedback now can positively impact others. You can help by simply filling out our surveys and together we can help others!

    ]]>
    <![CDATA[Claris Connect Utilities]]> https://dbservices.com/blog/claris-connect-utilities https://dbservices.com/blog/claris-connect-utilities Wed, 15 Apr 2020 00:00:00 -0400 Claris Connect is a great tool to help organizations automate workflows, integrate their digital services, and reduce user errors. Ultimately, this saves a lot of time! A 2017 Global study estimated that workers lost 69 days per year to administrative tasks. Organizations of all kinds are prioritizing automation to stay competitive, improve productivity, and increase employee satisfaction.

    If you haven’t already, be sure to check out our overview of Claris Connect. In this article, we’re looking at Claris Connect Utilities. Think of utilities as powerful connector elements for your flows. You can use them to re-format the data you get from apps, add business rules, or just make your flow easier to manage as you build complexity. In this article, we’ll tour the utilities offerings and demonstrate two flows: one to call an API for current exchange rates and post an alert when rates are favorable, and another to read the text of a PDF email attachment and determine if the document should be forwarded to another party.

    ]]> A Closer Look at Utilities

    Currently, Claris Connect offers 13 utilities, shown below. Within each utility is a selection of actions, and in some cases, triggers. We'll go through each one to highlight how to they can be used in a flow.

    claris connect utilities

    I'll go a little out of order here, starting with Variables, then highlight some special Utilities at the end:

    • Variables
    • Calculations
    • Cryptography
    • Dates
    • Documents
    • Images
    • Text
    • Lists
    • FTP & SFTP
    • Approvals
    • Schedules
    • Webhooks

    Variables

    Variables may be the most familiar tool to developers. There are some significant differences between how variables are handled in Claris Connect compared to FileMaker. For starters, you don't have to store results of previous action steps in a variable. When selecting inputs for a new Action, If-Then, or Repeat step, you can expand any previous step to view and select its results, and even use the search feature to find what you are looking for:

    claris connect select input

    However, you may still find it useful to store certain results in a variable. Previously defined variables are always at the top of your selection options— not in chronological order with the flow steps— making them even easier to find. And you can redefine the value of a variable as you progress through the flow, just as you would in a FileMaker script.

    Variables have an important additional trait: this is the only utility that lets you concatenate text.

    Always be sure to test your flow steps as you go, even the very simple ones. Without test result data, you won't have access to that step's output as you craft your flow.

    Calculations

    This is your calculator and then some. The actions Add numbers and Subtract numbers can be performed on two numbers only, whereas Multiply and Average are performed on a comma-separated list.

    claris connect calculations utility

    With Return random number, the result is a whole number between (and including) the two values you specify. This differs dramatically from FileMaker's Random function, which returns a decimal value between 0 and 1.

    For most of your calculations, you'll want to use Calculate expression. This lets you construct a mathematical expression using parentheses, operators like +, *, and ^, and other functions like floor, sqrt, abs, and PI. The syntax is based on Java Math, but always test your results. Not all methods are available in Claris Connect.

    Cryptography

    This utility has 3 actions. Hash generates a hash for a text string, which is useful for checking whether stings are identical, and, as the utility name implies, encrypting! HMAC creates a hash-based message authentication code using a key. Both functions require a hash algorithm (MD5, SHA1, or SHA256) and an encoding parameter (Base64 or Hex). Finally, the UUID action generates a universally unique identifier.

    Dates

    This is actually more like a “Dates and Times” utility, because many of the options work with timestamp data, instead of simple dates. Get current date returns the current timestamp in YYYY-MM-DD HH:MM:SS format. You can use Add date or Subtract date to offset a timestamp in increments of years, months, days, weeks, hours, minutes, and/or seconds.

    Note that Days between dates returns a whole number of days, so choosing parameters that are different times on the same day will return 0 days:

    claris connect days between datesclaris connect days between dates response

    Format date currently offers 16 date formatting options, including ISO and human-friendly text strings, to easily send date and time information to any app you've connected to Claris Connect using that app's date formatting requirements.

    Documents

    Documents has two main kinds of actions: Extract text actions and Convert actions. Extract text actions pull text from .pdf, .doc, .docx, .png, .jpeg, or .rtf files, while Convert actions transform JSON to XML to CSV in each direction.

    Images

    This utility pulls metadata from an image, which you specify as a url. Get image location returns GPS data if available. Get image size returns the megapixels, height and width, and file size. Get image file information returns the file name, type, and extension, as well as the MIMEType and compression. Finally, if the information is available, Get camera settings returns a wealth of information about the camera settings, including the make and model of the camera, shutter speed, flash, and more.

    Text

    This offers some expected formatting choices like Lowercase and Title case, but a lot more, too. Use the Text Utility to:

    • generate random passwords based a set of requirements (length, necessary capital letters, special characters, etc)
    • generate a random hexidecimal by specifying the byte length
    • encode/decode Base64
    • isolate the domain in a url or email
    • use a Regular Expression to parse text
    • Replace pattern, just like the FileMaker Substitute function
    • and more

    Remember that you don’t use the Text Utility to combine existing text, but rather to manipulate text you already have from previous flow actions, or generate random strings.

    Lists

    Most actions in the List Utility can be performed on a comma-separated list or on an array. Use the List Utility to:

    • merge or reverse lists
    • return the maximum or minimum value in a list that contains only numerical items
    • get element by a zero-based index
    • remove duplicates
    • convert a list to text (and vice versa) by specifying a separator
    • get the number of elements in a list
    • add, remove, or replace a value in a list, specifying position as a zero-based index

    FTP and SFTP

    These utilities have the similar action options, such as uploading or downloading a file, getting directory contents, and deleting a file or folder. You connect your account much in the same way you do when you first connect an app to Claris Connect. Once you set it up, your credentials are saved for future use across flows within the same project:

    claris connect configure FTP

    Approvals

    Claris Connect is especially unique in its Approvals offering, which is built right into the platform. The overview of Claris Connect highlights this feature in the demo video. Without configuring any email settings or other account information, you can create an approval workflow simply from the New approval action. Once your approval requests are out in the world, you can manage them from the Approvals area of Claris Connect, separate from the flows that created them:

    claris connect manage approvals

    Schedules

    The Schedules Utility can be used as a flow trigger, not just an action. You can think of this like a FileMaker server scheduled script. A scheduled flow can run every hour, day, week, or month. You can also create a custom schedule using a cron expression. Schedules also has two action options: Wait for a period of time, and Wait until a specified time. You can use these actions to pause your flow for up to one week.

    Webhooks

    Webhooks let you extend Claris Connect even more. Like the Schedules Utility, you can use a Webhook as a trigger to start a flow. You can also use this utility inside a flow to reply to the initial trigger with JSON data, and to make HTTP Get, Post, Put, and Patch requests. In the video, we show a scheduled flow that queries an exchange rate API, uses the Calculation Utility to calculate the new price of a foreign product, and alerts a Slack channel if prices are favorable.

    In Conclusion

    Claris Connect comes with a broad toolkit of both Apps and Utilities. Together, these features allow you to extend the services you already use, in real time, to automate your workflows and make your organization more efficient and effective. Contact us to see if Claris Connect is a good fit for you, and how you can make the most of what it has to offer.

    ]]>
    <![CDATA[COVID-19 Update]]> https://dbservices.com/blog/covid-19-update https://dbservices.com/blog/covid-19-update Wed, 25 Mar 2020 00:00:00 -0400 DB Services would like to extend well wishes to all during this COVID-19 pandemic. We know this is a stressful and concerning time for many, and we are sending positive thoughts to all of our customers and connections around the country--and the globe.

    DB Services is currently taking all CDC and State of Indiana recommended precautions to protect our employees. At this time, all DB Services employees are working remotely from home in order to do our part to stop the spread of coronavirus.

    coronavirus quarantineHowever, this does not change our dedication to helping our customers succeed with their custom software. All DB Services developers and employees have access to their phone and computer systems and video for meetings in order to assist our customers during this time, and our work hours have not changed.

    With this in mind, please do not hesitate to reach out if you are in need of any services regarding FileMaker or Salesforce. We are looking forward to new, exciting projects related to COVID-19 and to provide services as needed to our current clients. Whether you are using this “downtime” to begin new internal projects or if you’re just looking for some help to set up a work-from-home station, we are here to help.

    DB Services is here for you during this increasingly difficult and confusing time. Please give us a call at 888-488-0191 or fill out our contact form if we can assist you in any way!

    ]]>
    <![CDATA[Claris Connect Overview]]> https://dbservices.com/blog/claris-connect-overview https://dbservices.com/blog/claris-connect-overview Tue, 03 Mar 2020 00:00:00 -0500 Claris Connect, the latest product from Claris International, Inc., is a "no-code" platform that allows organizations to quickly connect multiple cloud services together like QuickBooks Online, Box, Gmail, etc. to build high-value business processes. It is the result of Claris' acquisition of Stamplay, an Italian startup that notably won a contest to make the best use of Visa's new APIs. Perhaps the best way to describe Claris Connect comes from Stamplay's cofounder Giuliano Iacobelli, who says it is "LEGO for APIs". In this article, we'll go over some of the "LEGO pieces" that will allow you to build advanced workflows bringing all your apps and data together.

    In the following video, we create an advanced Flow that is integrated with FileMaker, FormStack, and Google Calendar (Coming Soon!) all in under 15 minutes.​

    ]]> Services

    Claris has been busy adding services to Claris Connect, and the number of services continues to grow. Connecting to all these services is usually as easy as logging in and authorizing access to the app. Claris Connect handles the rest. Below is a list of what what was available on day one:

    Active Campaign Docparser Google Translate QuickBooks
    Asana Docusign Mailchimp Slack
    AWS Lambda Dropbox Mailgun Stripe
    AWS SES Eventbrite Mailparser Trello
    AWS SNS FileMaker Cloud MS SQL Server Twilio
    AWS SQS FileMaker Server MySQL Server Twitter
    Box Formstack Particle Typeform
    Calendly Freshdesk Pipedrive Wufoo
    Clearbit Google Maps PubNub Zendesk

    For a current list of available applications and the functions available for each app, check out the Claris Connect App Directory.

    Get in the Flow

    Claris Connect works by building Flows. Flows are a way to create a common business process that might involve multiple different actions from separate services. Out of the box Claris Connect includes some prebuilt Flows to help get you started, or you can build your own. Some of the prebuilt Flows include adding attendees to a Mailchimp mailing list when they sign up for an event through EventBrite, or creating a new Zendesk ticket from a Typeform submission. Flows have access to the data of all previous actions making it easy to pass data from one step to the next.

    Claris Connect - Get in the Flow

    FileMaker

    We are extremely excited by how easy it is to integrate Claris Connect with FileMaker. You can trigger a Flow via a FileMaker script step, by using insert from URL. Claris Connect also has a host of actions it can perform on a FileMaker file such as creating a record, editing a record, getting a record by id, deleting a record, performing a search, and executing a FileMaker script. Behind the scenes, Claris Connect is using the FileMaker Data API to do all this, so you need to make sure that you've enabled the fmrest extended privilege set in your FileMaker file.

    Claris Connect - FileMakerUtilities

    Often times when you are building out your flows, you'll need to format the data differently between services. For instance, FileMaker likes its dates to be formatted as MM/DD/YYYY, while most web-based services want dates formatted YYYY-MM-DD. Utilities allow you to format and manipulate data and other special use cases to help you accomplish your goals. Below is a brief overview of some of the utilities available to you.

    Claris Connect - UtilitiesCalculations Utility

    The Calculation Utility allows you to do simple math on any previous data. You can add, subtract, multiply, average, return a random number, or build out complex expressions that perform multiple calculations.

    Dates Utility

    The Dates Utility lets you add time to a date, subtract time, get the number of days between two dates, grab the current date, or format a date.

    Documents Utility

    The Documents Utility is more powerful than one might originally think. It allows you to extract text from a .pdf, .doc, .docx, .png, .jpg. It also allows you to translate data between the following formats; JSON to XML, JSON to CSV, XML to JSON and CSV to JSON.

    Text Utility

    The Text Utility is especially powerful. It allows you to format your data any way you want, and can help you extract info like URLs or email addresses, though you might need to learn a bit of Regular Expression to access the full power of this utility.

    Pricing

    Developer FileMaker Plus Essentials Standard
    Pricing $19.99 per month $49.99 per month $99 per month $249 per month
    Active Flows Unlimited Unlimited 15 Unlimited
    API Calls 500/month 10k/month 10k/month 50k/month
    Apps Unlimited Unlimited Unlimited Unlimited
    FileMaker Apps Unlimited Unlimited Unlimited Unlimited
    Collaboration Yes Yes Yes Yes
    Update Time Real-time Real-time Real-time Real-time
    SSO Yes Yes Yes Yes

    Conclusion

    Although Claris Connect and FileMaker are different products, it is easy to see why Claris acquired Stamplay: both share the goal of helping problem solvers transform workplaces by making them more efficient and effective. Claris Connect allows one to quickly and easily create business process workflows across multiple apps and services, without extensive time or coding knowledge.

    Our consultants are ready to help you make the most of Claris Connect. Contact us today for assistance with Claris Connect!

    ]]>
    <![CDATA[FileMaker Shopify Integration]]> https://dbservices.com/blog/filemaker-shopify-integration https://dbservices.com/blog/filemaker-shopify-integration Thu, 13 Feb 2020 00:00:00 -0500 Shopify is used by more than a million businesses in over 175 countries, including Nestle and Staples, making it one of the leading e-commerce companies in the world. By integrating FileMaker and Shopify, you have the ability to easily create, update, and delete nearly all aspects of your online business straight from your FileMaker system. Running Shopify from your existing FileMaker solution can save you time and money by eliminating the pain of double data entry and can keep the two constantly up-to-date.​

    ]]> Connecting to Shopify

    Shopify uses basic authentication, making it incredibly simple to make API calls. The only information you need is the API Key, the API password for your private app, your store's name (with hyphens instead of spaces), and the specific endpoint for the call that you are trying to make.

    To retrieve your API Key and password, you simply create a new private app on your Shopify dashboard. The key and password will be automatically generated.

    FileMaker Shopify Private App Setup
    Once you have the key and password, using Shopify’s Rest API couldn’t be easier to use. As an example, the call to pull orders would look like this:

    {API Key}:{API Password}@{Store-Name}.myshopify.com/admin/api/2020-01/orders.json

    Capabilities

    The included demo file specifically covers pulling orders from Shopify, but that is just the tip of the iceberg. Shopify’s API has endpoints for pretty much any type of call you would ever want to make. From creating or updating customers, to creating products, to pulling order information from a given date range, integrating with Shopify can handle just about any action you’d want to take straight from FileMaker.

    FileMaker Shopify Insert From URL

    The API documentation will tell you everything you need to know for each call you are trying to make. It even shows you any query parameters that can be added to your call to receive more specific information. For instance, you can append the created_at_min query parameter to show all orders created at or after a specific time. Shopify measures time by UTC, so be sure to include your UTC offset at the end of the call so that the time that you're attempting to query is relevant to you. Ours is -5:00.

    {API Key}:{API Password}@{Store-Name}.myshopify.com/admin/api/2020-01/orders.json?created_at_min=2020-02-05T15:00:-5:00

    Shopify's API will also give great examples of the response information that you will receive from a successful call.

    FileMaker Shopify API Response
    With the JSON that you receive from your request to Shopify, you can store the data into a field or variable and then use FileMaker's JSONGetElement function to pull JSON values using the JSON keys.

    Conclusion

    Integrating FileMaker with Shopify is not only incredibly simple, but incredibly powerful. With basic calls you will be creating products, updating orders, and keeping track of billing, all from your FileMaker system in no time. Contact us if you would like help integrating your FileMaker application with Shopify!

    ]]>
    <![CDATA[FileMaker Cloud Schedule Manager]]> https://dbservices.com/blog/filemaker-cloud-schedule-manager https://dbservices.com/blog/filemaker-cloud-schedule-manager Wed, 29 Jan 2020 00:00:00 -0500 Claris International, Inc. has recently released two new products: FileMaker Cloud and FileMaker Cloud Essentials. Both platforms wrap FileMaker Licensing and Cloud hosting into one simple, annual price. However these products introduce an important update: FileMaker ID (FMID). FileMaker ID is an integrated sign-on system that will allow access to all your files hosted on FileMaker Cloud, and requires all users and developers to create their own unique IDs.

    In order to use the FileMaker Admin API--and therefore the FileMaker Cloud Schedule Manager-with FileMaker Cloud or FileMaker Cloud Essentials, you must have a FileMaker ID. This update is excluded from FileMaker Cloud for AWS, as Claris will discontinue support for this product in 2021.

    We have updated our Cloud Schedule Manager to now be compatible with FileMaker Cloud, FileMaker Cloud Essentials, AND FileMaker Cloud for AWS. Let's take a look at the updated FileMaker Cloud Schedule Manager!

    ** As of Claris FileMaker Cloud 19.3, you do not need a 3rd-party tool to create a schedule. Now, these can be scheduled directly within the cloud console itself.

    ]]> Requirements
    • An instance of FileMaker Cloud Standard, FileMaker Cloud Essentials, or FileMaker Cloud for AWS.
    • FileMaker ID. This is not needed if your custom apps are hosted on FileMaker Cloud for AWS, as this product does not have the FileMaker ID update.
    • Amazon's Javascript SDK, FileMaker IDs are provided by Amazon's AWS Cognito and FileMaker recommends using Amazon's SDK.
      • To make this easier we've created an AWS Lambda function, Lambda being a way to run code without needing a backend, so you don't have to worry about having a dedicated Node server just to authenticate with. Download the sample file to get the AWS Lambda deployment package so you can set up your own Lambda.

    If you feel overwhelmed by the technical terms and steps to set up the FileMaker Cloud Schedule Manager, contact us for assistance.

    Using the API

    The FileMaker Cloud Admin API uses a standard FileMaker REST API which allows you to gather info and interact with your server and the files on the server. Some of the things you can do with the API are listed below.

    • Create, edit, delete server side schedules
    • Get a list of schedules
    • List all databases
    • Open, Close, Pause, or Resume a database
    • Disconnect clients
    • Send a message to clients

    More info on how to interact with API can be found in the FileMaker Cloud 18 Admin API Guide.

    Authenticating

    The latest update to the Schedule Manager is the ability to authenticate with FileMaker Cloud using your FileMaker ID. We have added a new section within Server Setup for server type. Selecting the option of FileMaker Cloud will require further setup to allow authentication. The required fields for FileMaker Cloud authentication are:

    • AWS Lambda Base URL
    • FileMaker ID Username
    • FileMaker ID Password

    After adding this information you will be able to test the setup to confirm that the id tokens are being generated properly.

    Creating Schedules

    the dashboard of the schedule manager displaying a list of all files and schedulesMost of the functions in the API are already available from the FileMaker Cloud Admin Console, but at the moment the only way to create schedules is through the Admin API. This can be a frustrating process as there are many different flags and types that must be set by number and all the validation required to create them correctly. All of this is handled for you in the FileMaker Cloud Schedule Manager.

    a card window displaying the edit schedule layoutSecurity

    Please ensure that you encrypt this file before use as it does store username and password information needed to access the admin console and FileMaker files. At the moment there is no good way to exclude this information, and the Admin API returns file credentials in the schedules' rest calls. Also make sure to add a full access account with a strong password and disable the default admin account.

    Conclusion

    The FileMaker Cloud Schedule Manager allows you to easily manage multiple Cloud server schedules from one user-friendly interface. If you want a private server with easier setup and management, excellent network speeds, automated security updates, and much more, then FileMaker Cloud is a great way to go. We're excited about the direction of FileMaker Cloud and believe that this is the future of hosting FileMaker applications.

    Have questions about the new FileMaker Cloud or Cloud Essentials, or need help setting up the FileMaker Cloud Schedule Manager? Give us a call at 888-488-0191 or fill out a contact form here for more information.

    ]]>
    <![CDATA[FileMaker Cloud Essentials]]> https://dbservices.com/blog/filemaker-cloud-essentials https://dbservices.com/blog/filemaker-cloud-essentials Wed, 22 Jan 2020 00:00:00 -0500 On January 22nd, 2020, Claris International, Inc. announced the release of FileMaker Cloud Essentials. This product is the latest innovation by Claris, and is another step forward towards the vision of becoming a "Cloud-First" Workplace Innovation Platform. The bundling of FileMaker licensing and hosting together for an annual price allows for organizations to quickly and easily create a custom application without the hassle of server setup and maintenance.

    Is FileMaker Cloud Essentials right for me?

    Your organization may be a perfect fit for FileMaker Cloud Essentials based on the following criteria:

    1. Your organization will have 5-10 FileMaker users.
    2. Your organization will have no more than 3 FileMaker applications to be hosted.
    3. Your organization is new to FileMaker and/or a custom Workplace Innovation Platform.
    4. Your organization does not have the time or resources to manage a server.
    5. Your organization will not need more server space than a t2.large AWS Cloud server can provide.

    The Basics

    The FileMaker Cloud Essentials product is the perfect opportunity for small-to-medium sized businesses to create their own Workplace Innovation Platform to be hosted on the Cloud.

    FileMaker Cloud Essentials allows for 5-10 users and up to 3 single-file database applications with an annual license. Additionally, 2 GB of storage is allowed per user, 24 GB of Data API transfer per user per year, and the solutions are hosted on an Amazon Web Services (AWS) t2.large Cloud instance.

    Included with your annual Cloud Essential license is access to all three FileMaker platforms: FileMaker Pro Advanced, FileMaker WebDirect, and the mobile platform FileMaker Go. Your system will also be secure due to end-to-end encryption, and you can rest easy knowing that your Cloud server is monitored around-the-clock by Claris.

    24/7 dedicated support is also included free for the first year with your Cloud Essentials license.

    Pricing

    DB Services is a Certified Reseller of the FileMaker Cloud Essentials product. FileMaker Cloud Essentials is priced competitively to allow smaller organizations to join the digital transformation to Cloud-based software.

    FileMaker Cloud Essentials starts at $223 per seat annually through DB Services, with a minimum of 5 seats required and maximum of 10 seats. Because this product includes hosting through the Cloud, your licensing and hosting costs are bundled together for one simple, annual price. This will also position you to be able to use Claris Connect when released later in Q1 2020.

    Multi-year discounts are also available for the FileMaker Cloud Essentials product.

    What if I need more?

    If you are in need of more users, Cloud server space, or have more than 3 applications you would like to host, FileMaker Cloud Standard may be a good fit. The FileMaker Cloud Standard product allows for 5+ users, 125 applications, larger AWS Cloud server instances, and more storage per user. Claris and DB Services are currently offering discounts through September 25th, 2020 for existing FileMaker users to migrate to FileMaker Cloud Standard.

    FileMaker Cloud Essentials FileMaker Cloud Standard
    5-10 users 5-100+ users
    t2.large Varies based on number of users.
    Host 3 apps Host 125 apps

    On-premises server FileMaker licensing is also available. Claris and DB Services are also providing discounts for existing FileMaker users to migrate to annual, on-prem licensing.

    Learn More

    DB Services has two in-house Licensing Specialists available to help you find the best licensing for your organization. Our Specialists work directly with Claris to get the best pricing possible on FileMaker licensing of all kinds, and will be happy to evaluate your use cases for FileMaker and provide suggestions on licenses for your organization.

    Give us a call at 888-488-0191 or fill out our Contact Form here to talk with one of our Specialists and get a FileMaker Licensing quote today!

    ]]>
    <![CDATA[FileMaker Squarespace Integration]]> https://dbservices.com/blog/filemaker-squarespace-integration https://dbservices.com/blog/filemaker-squarespace-integration Wed, 08 Jan 2020 00:00:00 -0500 Squarespace is one of the largest all-in-one website building and hosting providers with $300 million in total revenue in 2017, and is currently hosting over 350 thousand websites. This makes Squarespace a useful tool to expand your business by starting a professional looking website. And when you add FileMaker to the mix, you can streamline the process of dynamically showing data from your FileMaker app on your Squarespace website.

    ]]> Custom Code with Squarespace

    As an end user, you do not have access to the server to host your own web files. Everything that Squarespace hosts is managed by Squarespace. Because of that, it can be a bit challenging adding dynamic content to your site. However, there are a couple different ways you can display data from your FileMaker database on your Squarespace website.Squarespace Logo

    Code Block Element

    • Requires separate hosted web page on another server.
    • Access to the data via the FileMaker Data API.
    • Slower performance.
    • Poor SEO.

    Squarespace Developer Mode

    • Turning on Developer Mode gives you access to your Squarespace template files directly.
    • Allows you to put your own content on your site via SFTP.
    • SEO friendly.
    • Custom pages are not editable from Squarespace drag and drop templating tool.
    • Template will no longer receive updates from Squarespace.
    • Turning off developer mode removes custom content from site.

    Enabling Developer Mode

    The first thing you will need to do is enable developer mode. With an admin account in Squarespace, go to the configuration page of your website and go to Settings->Advanced->Developer Mode.

    Squarespace Developer Mode

    From there you will need to toggle on Developer Mode. Once Developer Mode is turned on, you will also want to take note of the username, hostname and port under the Connectivity Details section as we will need that information later. Please note that Developer Mode is only available with a Business or Commerce Squarespace plan.

    Squarespace Template Static Page

    In order to display content generated from FileMaker, we will be using the Static Page feature for a template. Each static page created also needs an accompanying configuration file that provides basic information for Squarespace for the page (more on this to follow). Once a Static and Conf Page are created, it will show up as a page on the Pages menu inside the Squarespace editor. Static pages will also pull in your header and footer, so all CSS will also come through. Keep in mind that a static page is exactly what it sounds like, a page that Squarespace can not change and can not be updated from the normal Squarespace updater.

    Pushing Updates from FileMaker

    To push updates to Squarespace, you will need to SFTP files to Squarespace. Before you begin, as of FileMaker 18, you can't natively make SFTP requests, so a plugin is needed. We suggest using the BaseElements Plugin as it is a free and powerful plugin. To upload the Page and Conf files, you will need to first create a .page and .conf file using FileMaker's Data script steps, then pull the file reference into FileMaker to be sent.

    Request:

    Create Data File [ "$filePath" ; Create folders: On ]
    Open Data File [ "$filePath" ; Target: $dataFile ]
    Write to Data File [ File ID: $dataFile ; Data source: $htmlOrConfigurationText ; Write as: UTF-8 ]
    Close Data File [ File ID: $dataFile ]
    Set Variable [ $file ; Value: BE_FileImport ( filePathFMToBE ( $pageFilePath ) ) ]
    Set Variable [ $url ; Value: "sftp://dev.squarespace.com:2030/dbservices/pages/db-static.page" ]
    Set Variable [ $result ; Value: BE_FTP_Upload ( $url ; $file ; $user ; $pass ]
    


    FileMaker Squarespace Integration

    We strongly suggest taking a look at our accompanying demo file as it contains a quick way to get started and a few useful custom functions.

    Conclusion

    Integrating your FileMaker app with your Squarespace website will ensure your website has up-to-date information and by using the Static Page method, your SEO will stay strong. Feel free to contact us if you need further assistance or to discuss getting your Squarespace website integrated with FileMaker.

    ]]>
    <![CDATA[Filemaker Twilio Integration]]> https://dbservices.com/blog/filemaker-twilio-integration https://dbservices.com/blog/filemaker-twilio-integration Thu, 12 Dec 2019 00:00:00 -0500 Twilio is used by many major corporations such as LyftTwitter, and AirBnB to send texts to communicate information to their customers. Integrating Twilio with FileMaker can give you the ability to easily send appointment reminders, sales discounts, and much more straight to your clients' phones with just a few lines of code.

    ]]> Account Set-Up

    To integrate with Twilio, you'll need to first sign up for an account. Twilio offers a free trial which gives you a $15 budget to play with. You are only charged 1.5 cents per text sent and can upgrade to a full account when your original $15 credit runs out.

    Once your account is set up, you will need to buy a phone number to send the texts from. You can do that by navigating to the Phone Numbers section and selecting "Buy A Number".

    FileMaker Twilio Buy A Number Screen
    Once you've found a number you like, you can typically purchase it for one or two dollars per month.

    The information you'll need to successfully authenticate your account appears on the Twilio Console Dashboard. You'll just need to know your Account ID and the Auth Token.FileMaker Twilio Console Dashboard

    Authentication

    Twilio uses HTTP Basic authentication to authenticate your account. All you need to do to ensure your account is usable is insert the Account ID and Auth Token in place of the {accountID} and {authToken} in the following url. In FileMaker, use an "Insert from URL" script step to make the call and save the result in a variable .

    https://{accountID}:{authToken}@api.twilio.com/2010-04-01/Accounts/{accountID}

    The call will return some XML that includes the attribute tag <Status> which will either display "404" if the account is not found, "401" if the account is found but the Auth Token is incorrect, or "active" if the account is able to be authenticated.

    Sending a Text

    To send a text in FileMaker, you need to use an "Insert from URL" script step to make the following call

    https://{accountID}:{authToken}@api.twilio.com/201...

    as well as the appropriate cURL options. To set up the cURL options, you need the number you're sending your text from, the number you're sending the text to, and the body of the text.

    With these three components, you should store the cURL information in a variable by replacing each part of the following cURL options with your relevant information. Use this variable as the "cURL Options" of your "Insert from URL" step.

    curl -X POST {url}<br> --data-urlencode "Body={body}"<br> --data-urlencode "From={fromNumber}"<br> --data-urlencode \"To={toNumber}"

    When the "Insert from URL" step is called, the text will immediately be sent to the recipient.

    Conclusion

    With Twilio, you can easily send texts to customers stored in your FileMaker database. With these texts, you can keep your customers informed, up-to-date, and in constant communication with your organization. Contact us if you would like help integrating Twilio and FileMaker.

    ]]>
    <![CDATA[FileMaker RingCentral Integration]]> https://dbservices.com/blog/filemaker-ringcentral-integration https://dbservices.com/blog/filemaker-ringcentral-integration Wed, 20 Nov 2019 00:00:00 -0500 Cloud-based communication and collaboration is taking ahold of businesses everywhere, from messaging apps such as Discord and Slack to VoIP services like Vonage and Intermedia Unite. RingCentral, voted PC Mag's Best Business VoIP Provider of 2019, has put itself in the forefront of cloud VOIP providers because of its intuitive interface and ability to integrate with other services. And with a simple webhook, you can add screen pop notifications to your FileMaker application when users receive calls from RingCentral.

    Let's take at look at how to achieve this.

    ]]> What Is Needed
    • RingCentral Developer account.
    • RingCentral Production ready app (With Read Accounts, Call Control, and Webhook Subscriptions permissions active).
    • A webhook file.
    • Your FileMaker solution hosted on a FileMaker Server.

    How To Setup

    RingCentral Developer account - If you already have a RingCentral account, you can log into the developer portal. If not, you can sign up for free developer account.

    RingCentral Developer Portal RingCentral Production ready app - From the developer portal create a new app. You can create as many apps as you'd like, and as long as the app is not in production, you can edit them as much as you like from the app's settings. When creating an app you will also need to specify several items, these being; app name, app description, application type, platform type, and permissions. And to use screen pop notifications add the following permissions: Read Accounts, Call Control, and Webhook Subscriptions.

    RingCentral App Settings Screen Now that your app has been created, you will need to get it approved for production, which you can track on the app's dashboard. Each app will have graduation requirements before you are able to apply for production. These requirements are:

    • 5+ API calls per each used endpoint
    • <5% of 400 errors
    • Exercise all requested permissions

    To meet these requirements you can use your sandbox credentials in your FileMaker solutions to make the API calls or you can use RingCentral's API Reference.

    Webhook file - This web script, such as a PHP or node script, is what connects RingCentral to FileMaker. When a user gets a call in RingCentral, RingCentral's API will pass that call's information to the webhook file, and the webhook file will in turn pass the information to your FileMaker solution using the Data API. The webhook file must be hosted on a web server and must be accessible over the web to RingCentral's API.

    FileMaker Solution - In our FileMaker solution we will create a subscription to track telephony sessions using "/restapi/v1.0/account/~/telephony/sessions" as our event filter. To create this subscription we will need the RingCentral login of an admin user, the client secret, and client ID. For client ID and secret, there will be different values for sandbox and production. For testing, sandbox or production must be specified. When we create a subscription we have to specify a delivery mode address; this address is the URL to our webhook file.

    FileMaker RingCentral Integration Subscription Setup Screen

    Users will need to use their RingCentral credentials to get their extension IDs; this is what we will use to know which notification should go to which user.

    And finally you will need to set up a notification table and a listener table in the FileMaker file. The FileMaker file will create a notification record every time the webhook receives information, and the listener table will link the notification to the user so it will show the correct notification.

    How It All Works

    1. When a user logs into the FileMaker solution, the startup script finds the user in the user table and creates a listener record for them. FileMaker then opens a hidden window on the listener layout which has an onRecordLoad script trigger on it.
    2. When a user receives a call from RingCentral, RingCentral passes the call to the webhook file.
    3. The webhook file runs a script in the FileMaker solution to find the user via their extension and grabs their user ID. It will then find notification with the same information and if one does not exist it will create one.
    4. After the notification record is created the script will find the user's listener record and delete it, causing our onRecordLoad script to trigger.
    5. The OnRecordLoad then performs the screen pop by opening a new window and showing the call's information in front of the user.

    Conclusion

    With a simple webhook, you can integrate your FileMaker solution with RingCentral, providing screen pops, dialing out functionality, and much more. Contact us today if you would like help integrating your FileMaker solution with RingCentral!

    ]]>
    <![CDATA[FileMaker Cloud]]> https://dbservices.com/blog/filemaker-cloud https://dbservices.com/blog/filemaker-cloud Tue, 29 Oct 2019 00:00:00 -0400 Claris has released FileMaker Cloud! Ever since the rebranding from FileMaker to Claris, the company has emphasized a cloud-first approach, and this new product is an important step toward that end.

    FileMaker Cloud is currently best designed for customers who are new to the FileMaker platform. Existing customers interested in FileMaker Cloud can take steps today to prepare for transitioning to Cloud in the future: optimizing for the WAN, removing the need for server-side plugins, and using the Data API for web integrations.

    We're excited about FileMaker Cloud because it allows innovators and business owners to focus on what they are passionate about instead of maintaining server hardware, managing software updates, and constantly worrying if their backups are running properly.

    Let's take a look at the benefits, pricing, requirements, and setup of FileMaker Cloud.

    ]]> Benefits of FileMaker Cloud vs On Prem

    Fast and Simple Setup

    The best part of FileMaker Cloud is the simplicity of speed of setup. Anyone can easily have their server up within minutes. Traditionally, server setup would necessitate purchasing a server computer online or in a store, then setting up the software, hardware, and network, which could take days! FileMaker Cloud keeps everything quick and simple.

    Security and Peace of Mind

    With the data breaches that pervade the news these days, it's easy to worry about security. With FileMaker Cloud, security is made easy. Claris utilizes AWS for its backbone since they have one of the best and most robust server infrastructures. Thus, you don’t have to worry about someone breaking into your office and literally taking all of your data. FileMaker Cloud also comes with an SSL certificate. Normally, this feature would need to be done manually on your own dedicated FileMaker Server machine.

    Additionally, FileMaker Cloud comes with automatic backups that happen every 20 minutes and is stored for 30 days. Of course with your own dedicated machine you can customize this, but FileMaker Cloud comes preset with this and is a part of the easy setup.

    Included Support

    FileMaker Cloud automatically includes standard 1-on-1 support for certain issues such as configuration assistance and migration assistance. Check out more detailed information about standard support on Claris' website.

    Improvements over FileMaker Cloud for AWS

    If you're familiar with Claris' previous cloud offering, most of the above applies to both products. The following benefits pertain solely to FileMaker Cloud:

    • Quicker Setup - Setting up FileMaker Cloud is easier and quicker than FileMaker for AWS.
    • Automatic Scaling - When you set up the server, you don't have to make "AWS decisions" such as instance size and IAM permissions. Depending on your user count, FileMaker Cloud will scale up the server specifications to meet your needs. In particular, your storage space (not including backups) is 6GB * number of users.
    • Licensing is Included - Purchasing FileMaker Cloud covers the entire purchasing process. You don't need to purchase separate licenses or even wait for an email with download links. Once purchased, everything is available in the FileMaker Customer console.
    • Encrypted End-to-End Traffic - FileMaker Cloud now comes with an included SSL certificate, which ensures your data makes it safely across the internet. FileMaker Cloud for AWS only includes a 90-day certificate.
    • Account Management - The FileMaker Customer console keeps account management in one place.
    • FileMaker ID Required - All users must log into their hosted apps using their FileMaker IDs. One must also authorize them as a licensed user in the FileMaker Customer Console. You can get more information about this process in the Setup section.
    • Free Trial - Currently, a free trial is only available for FileMaker Business Partners.

    Pricing

    Pricing starts at $39/user per month for a 1-year subscription, and there are discounts for 2 and 3-year subscriptions and a price break at 100+ users. Qualified educational and nonprofit organizations get a 30% discount off list price.

    Here are a few additional things to note about pricing:

    • Subscriptions are paid annually, not monthly.
    • There are no site licenses for FileMaker Cloud.
    • Anyone accessing your FileMaker application requires a license on your FileMaker Cloud instance. Claris is evaluating special licensing for developers that would not require them to have a license for each FileMaker Cloud instance they access.
    • Additional storage space is available. Extra storage is $6 per 6GB, which will be prorated to the term end date.

    As a reseller, we offer FileMaker Cloud at a discount. Contact us if you are interested in purchasing FileMaker Cloud.

    Requirements & Unsupported Features

    • FileMaker Clients Must be 18.0.3 or Higher – In order to use FileMaker ID, users will need to be on FileMaker Pro/Go 18.0.3+ or WebDirect. Licenses of Pro, Go and WebDirect are included in your purchase of FileMaker Cloud.
    • External Containers Must be Secure – You must store all external container fields securely to host an application on FileMaker Cloud.
    • FileMaker File will be Encrypted At Rest Upon Upload – If your app is not encrypted when you upload, FileMaker Cloud will automatically assign an encryption password. You can view this password in the admin console. We recommend you save this password in multiple locations. If you lose this password, you will not be able to open your FileMaker file.
    • Custom Web Publishing with PHP and XML Unsupported – If you are, or are wanting to integrate with your website for instance, FileMaker Cloud does not support PHP or XML.
    • No SSH Access – FileMaker Cloud does not allow admins to access the server via SSH like FileMaker Cloud for AWS does. If you need assistance with an issue, please contact Claris Support.
    • Server-Side Plugins Unsupported – You won't be able to use any server-side plugins in your application. However, client-side plugins are still compatible.
    • Server Side Script Setup Only Available in Admin API – FileMaker Cloud Admin Console doesn't include an area to set up server-side schedules, but you can set them up via the Admin API. Download our free FileMaker Cloud Schedule Manager to set up and manage your FileMaker Cloud Server Side Scripts.
    • Hosting Locations – As of release, FileMaker Cloud offers hosting in the western United States. Customers farther from the west coast may notice a difference in performance. However, Claris is looking to expand locations in the near future, so be on the lookout!

    Setup

    To set up your FileMaker Cloud go to the FileMaker Store. This page shows useful information about the platform and pricing. We can choose the number of users we need to register, as well as the number of years we’re purchasing FileMaker Cloud. Please note that anyone who needs to log into the app, whether for normal use or or development, must be a licensed user. We’ll discuss what this means in a practical way via FileMaker ID.

    The rest of the process is very similar to purchasing any item from the FileMaker Store. Once we have finished purchasing Cloud, we can set up a FileMaker ID account. This process is also very straightforward, and it only requires an email.

    If you already have an FM ID, you can continue to the FileMaker Customer Console. To get started, agree to the service terms and apply for a unique host name.

    FileMaker Cloud Request Host Name

    Configuration

    FileMaker Cloud Customer ConsoleNow that you're in the console, you’ll want to add FM ID users. Navigate to the Users tab, and invite users through this console. They will receive an email where they can either create an FM ID, or join using their existing FM ID.

    FileMaker Cloud UsersWithin this tab, you can view our available licenses, remove licensing status from users, and remove users from your team if necessary. This allows you to keep external users (e.g. contractors) on your team without taking up unnecessary licenses. The same rule still applies, only licensed users can access your custom application.

    In the Groups tab, you can create groups that give administrators similar capabilities to Active/Open Directory authentication within your FileMaker applications.

    FileMaker Cloud Groups

    In the Hosts tab, you can quickly access the admin console of our server. This admin console is nearly identical to the admin console in FileMaker Cloud for AWS. You can access your files and backups here.

    FileMaker Cloud HostsIn the Settings tab you can update team-level management settings such as changing the team name, allow users to download FM Software, and requiring approval to transfer in/out of the team.

    FileMaker Cloud SettingsIn the Subscription tab you can view your licensed user count, renew your subscription, and view your usage. You can also download your FileMaker software from this tab.

    FileMaker Cloud Subscription

    Conclusion

    If you’re tired of managing an on-prem server or are new to the FileMaker platform, FileMaker Cloud is definitely a solid option. Not only has Claris made a product requiring minimal management, but they also made the setup process extremely easy and straightforward. Contact us if you are interested in purchasing FileMaker Cloud!

    ]]>
    <![CDATA[FileMaker Web Portals with Vue.js]]> https://dbservices.com/blog/filemaker-web-portals-with-vue-js https://dbservices.com/blog/filemaker-web-portals-with-vue-js Thu, 03 Oct 2019 00:00:00 -0400 In FileMaker Web Apps Part I of this series we focused on how you can use Vue.js to extend FileMaker using web viewers. In this article we'll focus on how you can build robust web portals that use FileMaker as the backend and Vue.js as the frontend. This will allow you to build web contact forms, customer portals, e-commerce sites, etc, using data in your FileMaker system.

    Web portals using FileMaker's Data API are a great fit when you have hundreds or thousands of users or if the users are anonymous. In this article we'll go over how to build a very simple customer portal that allows users to log in and see their invoices. We'll build our web app using Nuxt.js which is just an SEO-friendly version of Vue. All of the source code will be available in the FileMaker sample file, so make sure to download it to get access to all the code.

    ]]> Getting Started

    To get started install Node.js and NPM if you don't already have them on the web server, at minimum NPM 5.2.0. Next, open either command prompt in Windows or terminal on a Mac and type the following command.

    $ npx create-nuxt-app <project-name>
    

    Fill in the project name, description, author name, and NPM as the package manager. Then you can pick your favorite UI framework. In this example, we will be using Buefy to get up and going quickly with a huge library of easy-to-use components.

    The CLI will then ask you what backend if any you want to use. In our example, we'll be using Express. Then pick your testing framework of choice and the rendering mode you want, either SSR (Server Rendered) or SPA (Single Page Application). In our example we'll be using SSR with Nuxt. Nuxt makes server-side-rendered Vue apps easier to build, and rendering on server is important for SEO because many web crawlers rank a site poorly that don't work properly without JavaScript. While Google's Googlebot can render JavaScript, it does so at a much slower pace than a traditional static website.

    Finally, include Axios which is what we will use to make HTTP calls to the Data API.

    Backend

    The first thing we'll work on is our backend. It's important to know that you can use whatever backend you want, any will work with the FileMaker Data API. Quite often we will use PHP for our backend, but PHP is not well suited for server-side rendering JavaScript, so we will be using Express today. For our example our backend needs the ability to do a few things:

    • Authenticate and log in a user
    • Log out and destroy a user's session
    • List the logged-in users invoices
    • Load an invoice with all the invoice line items

    In order to make any of these calls, we'll need the ability to generate an auth token. To do so, first update the nuxt.config.js file with info about the host, file, username, and password. Because Nuxt.js is isomorphic (aka universal), we'll have access to settings stored here on the server and client.

    //nuxt.config.js
    module.exports = {
        ...
        fmDatabase: "<filename>",
        fmHost: "https://<<host>>.com",
        fmUsername: "<username>",
        fmPassword: "<password>",
        ...
    }
    

    We'll need the ability to store session data on the server so we can remember who is logged in and keep track of people's auth tokens. To do this install the express-session module from the command line.

    $ npm install express-session
    

    Then include the module in your server/index.js file and configure your Express app to use the session module. Make sure to set the secret to something secure.

    const session = require('express-session')
    app.use(session({
        secret: 'super-secret-key',
        resave: false,
        saveUninitialized: false,
        cookie: {}
    }))
    

    After you've done that you'll have access to the session object inside your route handlers.

    Routing

    Nuxt handles routing a bit differently than a typical Vue + Vue Router setup. Instead of manually creating your routes, you simply add your files to the pages directory and each one will get added to the router automatically. If you follow Nuxt's default naming configuration, Nuxt will automatically set up basic routes for you, and the routes will work with or without JavaScript. Instead of using <a></a> tags in your system, you'll want to use the <nuxt-link></nuxt-link> component that will ensure your pages change without a full reload.

    Another change from Vue Router is that you'll use middleware to route guards to prevent people from accessing data they shouldn't have access to. In our case we'll add a protected.js file to our middleware folder that will ensure our user is logged in before we show them an invoice.

    To set up our pages to call the new protected middleware we'll add a middleware property to our invoice pages Vue instance with an array of all the middlewares the page should load.

    //pages/invoices/index.vue
    export default {
      name: "invoices",
      middleware:['protected'],
      ...
    }
    

    Application State

    Nuxt uses Vuex behind the scenes to handle global application state which makes it easy to keep things in-sync. The one problem we have right now though is that each page reload clears out the Vuex store. Luckily we're already saving our needed data in session variables with our Express backend.

    Nuxt also provides a way to load data into the store on first page load, via the nuxtServerInit action in our store.js file. The nuxtServerInit function has access to both our express request object and to our store, so we can take data from our session and update our user state using a SET_USER mutation. Any other application state could also be saved to the express session if needed.

    Conclusion

    Building a web portal that pulls data from FileMaker might seem like a daunting task, but the reward is well worth it. It allows you to extend your system to reach a much larger audience than with FileMaker alone. FileMaker, Data API and Vue.js are perfect for web portals, contact forms, registration sites, and even pulling real-time inventory data. Contact us today if you would like help building your own FileMaker web portal.

    ]]>
    <![CDATA[FM Quickstart 18]]> https://dbservices.com/blog/fm-quickstart-18 https://dbservices.com/blog/fm-quickstart-18 Wed, 25 Sep 2019 00:00:00 -0400 FM Quickstart, DB Services' completely free and customizable CRM template for FileMaker, is already one of the leading CRM templates in the FileMaker market. Now, with the release of FileMaker 18, we have added even more features and modules to FM Quickstart to help you create your very own Workplace Innovation Platform. The new features and modules include:

      • Production Module on the Dashboard
      • Orders Module
      • Shipments Module
      • Purchase Order Module
      • Returns Module
      • Receiving Module
      • Drag and Drop Documents
      • New Print Forms
      • Module Navigation
      • Production on Hand Calculation

    What's great about FM Quickstart is that it can be used immediately out-of-the-box, and can be easily modified to your business needs.

    Lets take a look at the new features of FM Quickstart 18!

    ]]> The Production Dashboard

    The Dashboard now includes the Production module to go along with the Sales Module. The Production Module shows the unpaid orders and the pending shipments for each customer. All the transactions are displayed with the status of each order. If you need to change any information on the orders shown, click on the specific order and it will take you to the Orders Module or the Shipments Module.

    FM Quickstart Production ModuleOrders Module

    The Orders Module allows you to manage orders for each customer. You can view the status of each order, including where it is in the shipping process and if it has been paid for.

    FM Quickstart Orders ModuleShipments Module

    The Shipments Module displays all the orders that have been processed and will be shipped. The items that will or have been shipped are displayed at the bottom of the module. You also have the option to go back to the order to view any details by clicking on the "Go To Order" button on the bottom half of the module. When line items are returned you can report it by adding it to the Returns tab. To see the details of the return, click on the item and it will take you to the Returns Module.

    FM Quickstart Shipment ModulePurchase Order Module

    The Purchase Order Module was developed to track orders you put in for inventory. In the module, you will put in the order you sent to your supplier so you know how much you ordered and for what price. When you receive the product from the supplier, you will go to the received section at the top to add the amount of inventory that was delivered. When you put the amount received into the line item, the amount of inventory will change on the product record.

    FM Quickstart Purchase Order ModuleReturns Module

    The Returns Module was implemented to track all returns. You can access the module by going to Setup and clicking on Returns. There you will select the customer and see which items have been returned in the line items tab. The SKU is displayed along with the product, the price it was sold at and the amount returned. The amount being returned and restocked is shown at the right of the module and reflects the amount being returned in the line items. At the top of the module you will see the return progress, which displays the status, received date and the expiration date.

    FM Quickstart Returns ModuleReceiving Module

    The Receiving Module shows shipments that have been received for POs. The details show the status of the product received, order date, delivery date, and the shipping charge. This can also be referenced later for returns of the products shipped.

    FM Quickstart Receiving ModuleDrag and Drop Documents

    Adding documents are now easier with FM Quickstart 18 as you can drag and drop documents into each module. This eliminates the need to search for the document and add it as an attachment.

    Improved Module Navigation

    The navigation of each module has been made easier, specifically with the Quotes, Orders, and Shipment Modules. At the top of each of the modules you will see Quote, Order and Shipment right next to each other. The navigation buttons are linked for the same customer, thus eliminating the need to search for the progress of each order.

    FM Quickstart Module Navigation

    Print Forms

    When printing a quote or order, the form has been modified to be easier to read and better communicate the price. The form displays information relating to the purchase and has each art of the transaction divided so everything is separated. New information has been added which includes:

    • The P.O. Number
    • Salesperson
    • Payment Terms
    • Due Date

    The address of the company billing is included at the top of the form for the customer to reference.

    FM Quickstart New Print FormsProduct on Hand Calculation

    A new function in FM Quickstart is the Product on Hand calculation, which helps track the inventory of each product. This feature can be found in the Product module and is updated with every purchase, shipment and return. When a customer buys a product, the number is reflected to show how many are in process. The same goes for when an item has been shipped, thus affecting the total product on hand.

    FM Quickstart Product on Hand Calculation

    Conclusion

    FM Quickstart is a free CRM that's fully customizable and includes 9 main modules to support your contact, sales, production and shipping needs.

    To begin building your dream custom application, please visit our FM Quickstart website to download the CRM template. It is a free download that is optimized to run on the latest version of FileMaker.

    To learn more about the FileMaker 18 platform, check out our FileMaker 18 Overview article. If you're looking for assistance in customizing FM Quickstart, contact us for a free consultation.

    ]]>
    <![CDATA[FileMaker Cloud Schedule Manager for AWS]]> https://dbservices.com/blog/filemaker-cloud-schedule-manager-aws https://dbservices.com/blog/filemaker-cloud-schedule-manager-aws Tue, 17 Sep 2019 12:02:00 -0400 With the official release of the FileMaker Cloud Admin API, you can now monitor and manage multiple servers from one interface, including the ability to set up server-side schedules, pull a list of logged-in users, send messages to connected users, and much more. And to make interacting with Admin API even easier, we created the FileMaker Cloud Schedule Manager, your one-stop shop to manage server-side schedules on FileMaker Cloud for AWS. The Manager has been updated to work with the Admin API official release and can be downloaded at the end of this article.

    Let's take a look at the FileMaker Cloud Schedule Manager and the official FileMaker Cloud Admin API!

    ]]> Using the API

    The FileMaker Cloud Admin API uses a standard REST API which allows you to gather info and interact with your server and the files on the server. Some of the things you can do with the API are listed below.

    • Create, edit, delete server side schedules
    • Get a list of schedules
    • List all databases
    • Open, Close, Pause, or Resume a database
    • Disconnect clients
    • Send a message to clients

    More info on how to interact with API can be found in the FileMaker Cloud 18 Admin API Guide.

    Creating Schedules

    FileMaker Cloud Schedule SetupMost of the functions in the API are already available from the FileMaker Cloud Admin Console, but at the moment the only way to create schedules is through the new API. This can be a frustrating process as there are so many different flags and types that must be set by number and all the validation required to create them correctly. All of this is handled for you in the FileMaker Cloud Schedule Manager.

    FileMaker Cloud Schedule SetupSecurity

    Please ensure that you encrypt this file before use as it does store username and password information needed to access the admin console and FileMaker files. At the moment there is no good way to exclude this information, and the Admin API returns file credentials in the schedules' rest calls. Also make sure to add a full access account with a strong password and disable the default admin account.

    Conclusion

    The FileMaker Cloud Schedule Manager allows you to easily manage multiple cloud server schedules from one user-friendly interface. If you want a private server with easier setup and management, excellent network speeds, automated security updates and much more than FileMaker Cloud is a great way to go. We're super excited about the direction of FileMaker Cloud and believe that this is the future of hosting FileMaker applications.

    ]]>
    <![CDATA[DB Services Named FileMaker Partner of the Year]]> https://dbservices.com/blog/db-services-named-filemaker-partner-of-the-year-2019 https://dbservices.com/blog/db-services-named-filemaker-partner-of-the-year-2019 Tue, 17 Sep 2019 12:01:00 -0400 db services partner of the year group photo

    On August 8th, 2019, DB Services was named the FileMaker Growth Partner of the Year for the Americas for 2019. This is DB Services’ third consecutive year bringing home this prestigious award from FileMaker, Inc--now rebranded to Claris International, Inc. This award is given annually to each region's FileMaker partner that achieves the highest revenue and brand growth for Claris.

    FileMaker is currently ranked the #1 Workplace Innovation Platform in the world. DB Services’ mission is to make organizations more efficient and effective through the use of custom applications. With over 15 years of experience in FileMaker development, DB Services is dedicated to advocating for and continuing to grow the FileMaker community.

    filemaker partner of year 2019
    “We are proud to be a part of such a great community and humbled to win the FileMaker Excellence Award for Partner of the Year. To win the award three years in a row means that we have great people and great customers. It’s exciting to watch our customers grow and our people grow each year,” said Kevin Hammond, CEO, DB Services.

    Since 2003, DB Services has provided custom applications and workflow solutions to Fortune 500 companies, small businesses, K-12, universities, and non-profit organizations. DB Services is also FileMaker Business Alliance Platinum Member, and offers FileMaker Development, FileMaker Support, FileMaker Training, FileMaker Cloud Hosting, and FileMaker Licensing. Between the 20+ full time Certified FileMaker Developers and FileMaker Growth Partner of the Year for the Americas awards for 2017, 2018, and 2019, DB Services is considered one of the top FileMaker partners in the country.

    For a complimentary consultation contact DB Services at 888-488-0191, or fill out a Contact Form on DB Services' website.

    ]]>
    <![CDATA[DB Services Named to Inc. 5000 List]]> https://dbservices.com/blog/db-services-named-to-inc-5000-list https://dbservices.com/blog/db-services-named-to-inc-5000-list Fri, 13 Sep 2019 00:00:00 -0400 db services inc 5000 2019

    For the first time, DB Services made the annual Inc. 5000 list, which ranks the country’s “fastest-growing innovators” based on overall revenue growth over a three-year period. The Inc. 5000 list has brought attention to America’s growing private businesses since 1982. DB Service was ranked #3494 overall.

    DB Services now joins the ranks of other Inc. 5000 list alumni such as Facebook, Zappos, Pandora, and others. They are also the top ranked FileMaker Platinum Business Alliance Partner on the 2019 Inc. 5000 list and are #42 in the state of Indiana out of 63 other Indiana-based companies.

    Kevin Hammond, CEO of DB Services, discusses a growth strategy mindset: "Each year we have goals of 20% Year over Year growth in revenue. We are fortunate enough to accomplish these growth targets and end up on the Inc 5000 list. This shows that our employees continue to innovate at a high level with our customers and provide value-adding applications for the back office."

    DB Services’ mission is to make organizations more efficient and effective through the use of custom application. Since 2003, DB Services has provided custom applications and workflow solutions to Fortune 500 companies, small businesses, K-12, universities, and non-profit organizations. DB Services is a FileMaker Business Alliance Platinum Member that offers FileMaker Development, FileMaker Support, FileMaker Training, FileMaker Cloud Hosting, and FileMaker Licensing. For a complimentary consultation, contact DB Services at 888-488-0191, or fill out a Contact Form to begin the process.

    ]]>
    <![CDATA[FileMaker, Inc. is Now Claris International, Inc.]]> https://dbservices.com/blog/filemaker-is-now-claris-international https://dbservices.com/blog/filemaker-is-now-claris-international Wed, 11 Sep 2019 00:00:00 -0400 Earlier this year, FileMaker was announced as the top Workplace Innovation Platform in the world, and on August 6th, FileMaker, Inc. announced their rebrand to Claris International, Inc. as well as the acquisition of Stamplay.

    FileMaker Reborn as Claris

    claris filemaker logoThe name change is a return to the original name of the company, which was called Claris from 1986-1998. FileMaker, Inc. has been the name of the organization since 1998, a change that was made to reflect their focus on the FileMaker product. Now as the company looks to expand past just the FileMaker product, it has been rebranded back to their original name Claris. The rebranding to Claris International, Inc. is also a commitment to meet the company’s mission: bringing “power to the problem solvers”.

    Claris International, Inc. CEO Brad Freitag says: “Claris stems from the Latin root ‘clarus,’ which means ‘clear, bright and shining'. Nothing better encapsulates the company’s mission: to empower the problem-solver with smart solutions that work for their business. By extending the reach of our platform as a modern, multi-faceted, and powerful merger of on-premises custom apps and third-party services, our customers can streamline their business processes across the cloud services that they use every day.”

    Claris Connect

    The company also acquired the Italian startup and product Stamplay, and rebranded it Claris Connect. The product will allow users to integrate easily with 3rd party cloud software, connect cloud and on-prem software and quickly integrate common business applications such as MailChimp, Slack, and more.

    The Future of Claris

    Looking ahead, Vice President of Products & Design, Srini Gurrapu forecasts that Claris Next Generation will “leverage the full power of modern workflow apps”, and use AI to create apps “delivered as a service.”

    Kevin Hammond, DB Services CEO, is looking forward to the future of Claris. "Claris International is now the parent company of the platform and FileMaker becomes one of many different offerings to customers. We are very excited about Claris Connect, Claris Next Gen, and Claris FileMaker as they will provide more innovation and value to customers."

    DB Services is a Claris FileMaker Platinum Business Alliance Partner that offers FileMaker Development, FileMaker Support, FileMaker Training, FileMaker Cloud Hosting, and FileMaker Licensing. For a complimentary consultation with one of our Certified FileMaker Developers, contact DB Services at 888-488-0191, or fill out a Contact Form here to get in touch.

    ]]>
    <![CDATA[FileMaker Salesforce Marketing Cloud Integration]]> https://dbservices.com/blog/filemaker-salesforce-marketing-cloud-integration https://dbservices.com/blog/filemaker-salesforce-marketing-cloud-integration Fri, 09 Aug 2019 00:00:00 -0400 As one of the top email marketing platformsSalesforce Marketing Cloud provides the ability to create marketing email campaigns that scale from a handful of customers to millions. And with Salesforce Marketing Cloud's SOAP API and automation tools, you can automatically import email engagement statistics into your FileMaker application and link them to customers and prospects.

    ]]> Setup

    The first step is to create a new app package from the Salesforce Marketing Cloud setup page.

    Salesforce Marketing Cloud App Package SetupOnce created, the client ID, client secret, and base URIs can be used to begin the process of authenticating your FileMaker application with the Salesforce Marketing Cloud SOAP API.

    Authenticating With Marketing Cloud

    Using OAuth 2, example calls to authenticate with the Salesforce Marketing Cloud API and receive an access token are included in the sample file at the end of this article. The body of the token request includes your client Id, client secret, account ID, and grant type. Your account ID can be found on the Salesforce Marketing Cloud dashboard by clicking on your business unit's name. Once an access token has been retrieved, you can use FileMaker's Insert From URL[] script step and supply your SOAP base URI and cURL options to pull statistics from Salesforce Marketing Cloud. You can specify which objects and object properties you would like to retrieve in your request body.

    Parsing the Response

    Salesforce Marketing Cloud Example XML

    The API's response will be returned as an XML object and will require parsing. Using the BaseElements plugin by Goya, we are able to parse out the data we need with the XPath function. In the example file, we download an array of send objects with stats such as, total clicks, opens, bounces, and unsubscribes. A send object contains a collection of information for a batch of emails sent.

    Retrieving Detailed Stats

    To retrieve detailed information on individual users who interacted with a particular email, an automation can be set up on Salesforce Marketing Cloud to export a .csv file of interactions in a specified interval to a business unit's FTP. On FileMaker's end, a script can be used to parse this .csv file from the FTP to create records for individual interactions.

    Marketing Cloud FTP

    First you will need to set up an FTP for your Salesforce Marketing Cloud account. You can do so from the Salesforce Marketing Cloud dashboard by going to your user setup page and selecting FTP Accounts from the Data Management section.

    Marketing Cloud Automation

    To set up a new Salesforce Marketing Cloud automation, select the Automation Studio option from the Journey Builder dropdown menu on the dashboard page. From here, click the New Automation button. This screen features a drag and drop interface to set up different automations.

    Salesforce Marketing Cloud Automation Setup Data Extract

    First, create an automation that has a Schedule starting source and drag a data extract as the first step. The data extract step can be configured to export various fields for each interaction and the file format of the extract. At the minimum, we recommend selecting the following items on the extract:

    • Extract Bounces
    • Extract Clicks
    • Extract Opens
    • Extract Send Jobs
    • Extract Sent
    • Extract Spam Complaints
    • Extract Survey Responses
    • Extract Unsubs
    • Include Test Sends
    • Include Unique Clicks
    • Include Unique Opens

    Salesforce Marketing Cloud Automation Setup File Transfer

    Second, drag a file transfer to the canvas. In this step, the export name and destination can be set. The destination will be selected as the FTP you set up earlier. Since SFTP is used for Salesforce Marketing Cloud and FileMaker's Insert from URL[] script step doesn't support SFTP, data can be imported into FileMaker using the BaseElements plugin. The HTTP_GET, HTTP_GET_File, and Unzip functions can be used to download and unzip the file exported by Salesforce Marketing Cloud. Included with the sample file is an example .csv file of clicks that was generated by a Salesforce Marketing Cloud data extract.

    Conclusion

    If you're looking to automatically import email engagement statistics into your FileMaker application, the Salesforce Marketing Cloud API and automation tools makes downloading data seamless. Contact us if you need help integrating your FileMaker application with Salesforce Marketing Cloud!

    ]]>
    <![CDATA[FM Data Migration Companion]]> https://dbservices.com/blog/fm-data-migration-companion https://dbservices.com/blog/fm-data-migration-companion Wed, 07 Aug 2019 00:00:00 -0400 In our previous article, we discussed the FileMaker Data Migration Tool and all of its great benefits: instead of spending hours building custom migration scripts, you just write a command that automatically transfers data from one file to another. This saves time, money, and headache for everyone involved. And to make the process even easier, we built the FM Data Migration Companion, a FileMaker file that automatically creates the data migration CLI commands for you for both single-file and multi-file FileMaker applications. Let's take a look at how companion works.

    ]]> Adding Latest Data Migration Tool to the Companion

    The first step to using the companion is to place a copy of the latest FileMaker Data Migration Tool into the companion's preferences section. This allows you to keep all of the migration tool’s files in once place and download them wherever you need to. Before running any migrations, you’ll need to insert the file path of the data migration tool in the “Migration Tool File Path” field. Note that a FileMaker Developer Subscription is required to download the data migration tool. Mac users will need the single executable file, while PC users will need a series of files including an .exe file.

    Preparing Your Files

    Once the tool is downloaded, you’ll need to prepare your FileMaker application's .fmp12 file(s) for the migration. One set of files will contain the data (the source files, aka the previous version of the application), while the other set of files will contain the structure and schema (the clone files, aka the new version of the application). Normally, you would grab the paths for every file and use them to create commands. With the FM Data Migration Companion, none of that is necessary. You can use the “Create Folder” button in the “Migration Paths” section to create a timestamped folder on your machine. This folder contains 3 sub-folders: “Source”, “Clone”, and “Output”. Just place the source file(s) in the “Source” folder and the clone file(s) in the “Clone” folder.

    FM Data Migration Companion Folders

    Creating Migration File Sets

    Once your files have been added to the correct folders, click the “Check Migration Folder For Files” button. If you are migrating multiple files, the FM Data Migration Companion will attempt to match the source and clone files together and create individual “migration file sets.” You can also manually create each file set using the “New Fileset” button if you would like. Think of a “migration file set” as an individual migration command: it has source, clone, and output file paths; connection and encryption information; and other various migration instructions. If you have multiple file sets, chances are your access credentials will be the same for each file; this is where “Default Login Information” and “Default Migration Settings come in. Instead of creating the migration settings for each individual file set, you only need to fill them out once and click “Use Default Migration Settings For All Files” and “Use Default Login For All Files.” This applies your credentials and settings to all file sets.

    FM Data Migration Companion Filesets

    Running a Migration

    Now that your settings are all correct, it’s time to run the migration(s). You can do this in two ways: run all migrations at once (if you have multiple file sets) or individually. Regardless of which option you choose, a Terminal or CMD window will pop up and run the migration for you. If you choose to run multiple migrations, each will automatically be run one-by-one in a big chain. A header is printed above each migration in the command line window indicating which file set is currently being migrated (e.g. 2 of 10). The output files will be placed in the “Output” folder by default, but you can change this location on your individual file sets.

    FM Data Migration Companion Command Line Headers

    Conclusion

    The FM Data Migration Companion makes using the FileMaker Data Migration Tool a breeze whether you’re migrating 1 file or 40 files. With this tool, you’ll never have to type another migration command ever again. Contact us if you need help migrating data!

    ]]>
    <![CDATA[FileMaker Web Apps with Vue.js]]> https://dbservices.com/blog/filemaker-web-apps-with-vue-js https://dbservices.com/blog/filemaker-web-apps-with-vue-js Wed, 17 Jul 2019 00:00:00 -0400 There inevitably comes a time in a successful FileMaker application's life where it needs to be extended to the web, usually as a customer portal. WebDirect may suffice as a solution, but if the needs go beyond WebDirect's capabilities, standard web technologies must be used, such as HTML, CSS, Javascript, and a backend scripting language like PHP.

    Building an app on the web can be a daunting task for a FileMaker developer, especially a web app that's as interactive and responsive as a FileMaker app. Luckily, there are Javascript frameworks available to simplify and speed up the process of developing highly dynamic web apps, frameworks such as ReactAngular, and Vue.js. For FileMaker developers we recommend Vue.js as it has many parallels to the way FileMaker works that makes it easier to pick up, and because it's a progressive framework, it can be used as little or as much as you want. And Vue is not only useful for web portals: you can use Vue inside a web viewer to extend what's possible on a FileMaker layout such as tree views, horizontal portals and cross tab reports.

    In this article, we'll go over the different concepts of Vue.js and how these provide some of the interactivity that FileMaker developers expect out-of-the-box with a development platform, and in the video, we'll show you how to make a simple HTML editor using Vue that runs in a web viewer in FileMaker.

    ]]> Why Vue.js?

    Vue.js is a progressive web framework which means it can be used as little or as much as you want. Do you want to drop it into an existing page and just use it for one section? No problem. Do you want to build a full SPA (Single Page Application) with components, lifecycle hooks, state management, and application routing? No problem. If you don't know what all of that is, that's fine, Vue.js will grow with your needs.

    Vue.js is also extremely fast with a small package size. It's very popular with a growing community and has a large number of packages that can be implemented to add things like drag and drop support or form validation. Vue.js has the 3rd most stars in Github's history and is currently being used by almost 4% of the top 10,000 websites in the world. Vue.js is one of the easiest frameworks to get started with as you don't need to learn JSX or anything like you would with React. Vue.js also has one of the best dev tools we've ever used for debugging a web app.

    Let's take a look at some of the features that make Vue.js so great, and what the equivalent would be in FileMaker.

    2-Way Data Binding

    2-way data binding allows you to bind inputs, text, etc on a website to data stored in Vue so when a change is made to the input/text/etc, that change is automatically reflected in the data, and vice versa. This means everything stays in sync. To a FileMaker dev this might not sound so exciting as almost all of our work involves automatic 2-way data binding, but doing so in a web browser is a bit more challenging.

    In the example below, we create about as simple of an app you can get. We have a paragraph tag that displays dynamically the content of 'message'. You can think of 'message' as a field in FileMaker. You'll notice the 'message' property is also declared in our Vue instance.

    Then we have an input. This input can be tied directly to our message field by using the v-model directive. Directives are special attributes that help make our HTML interactive and react to changes in the state of our date. Now whatever we type in the field will show instantly in the paragraph tag above it.

    Computed Properties

    Computed properties allow us to create a value that will be automatically calculated based on the data in our app, and will automatically update if any of the data changes. Think of them as if they are stored calculations in FileMaker, because they will only calculate if a reactive property has changed. This means using Date.now() in a property will always return the date from the first time it ran unless another reactive property is changed.

    Below is a simple computed property that will uppercase our message data property, outputting "HELLO" in our second paragraph tag. All of our computed properties will live inside of the computed object, and each property needs to call a function that returns some data. They don't have to return simple strings or numbers, they can return complex object and arrays as well.

    Filters

    In the previous example, we used a computed property to capitalize our message, but in reality, a better way to do so would be to use a filter. Filters are most commonly used for text, date, and number formatting. They are comparable to the data formatting FileMaker allows in the layout inspector palette. Filters are more flexible in that we can use them over and over, and are not tied to one data property.

    The example below is accomplishing the same goal as before, just using filters. Notice that we're still using our message property in the HTML, we just added a pipe symbol to tell Vue that we wish to use a filter to format our text. Filters are declared in much the same way that computed properties are. The only difference is that they take a value as a parameter in the function. Vue.js will automatically use what is on the left side of a pipe symbol as the parameter.

    Methods

    Vue.js methods are similar to FileMaker scripts. They can be called by events or lifecycle hooks. Events are like object and field triggers in FileMaker and in Vue.js would be things like button clicks, form submits, mouse over, key enter, etc. Lifecycle hooks occur when the Vue instance is created, before it's compiled, compiled, ready, before it's destroyed and destroyed. Think of these as layout and file script triggers.

    You define all your methods as functions under the methods object. Methods can take parameters, such as the 'message' parameter being passed in the 'say' function below. To call the method from your HTML we simply use the v-on:click directive, and pass the parameter from there.

    Conclusion

    Vue.js can help FileMaker developers build highly dynamic web apps on par to the interactivity and responsiveness of a FileMaker application, and can even be used to extend what's possible on a FileMaker layout. And because of similar concepts to FileMaker, Vue should be easier to pick up for FileMaker developers compared to other popular Javascript frameworks. In part 2 of this article, we will build a fully responsive customer portal with the use of Vue and the FileMaker Data API.

    ]]>
    <![CDATA[Filemaker SurveyMonkey Integration]]> https://dbservices.com/blog/filemaker-surveymonkey-integration https://dbservices.com/blog/filemaker-surveymonkey-integration Wed, 12 Jun 2019 00:00:00 -0400 SurveyMonkey is a popular cloud-based survey platform boasting over 20 million questions answered per day. Flexible and user friendly, surveys generated by SurveyMonkey can be used for a variety of purposes, from large company wide reviews to customer satisfaction surveys. Using SurveyMonkey's API you can automatically collect survey responses and data directly into your FileMaker application, allowing you to link your surveys to your FileMaker data.

    ]]> Prerequisites

    In order to integrate FileMaker with SurveyMonkey, you will need a SurveyMonkey account with the Premier service plan. Without this package you will not be able to fully communicate with the SurveyMonkey API. However with the Advantage plan you are granted a 90 day trial period if you would like to test it before pursuing the Premier plan.

    Getting Started

    First you need to create a new app on SurveyMonkey's developer website.

    FileMaker SurveyMonkey Apps

    From there under the settings you can set the scopes of what this app has access to. For the sole purpose of pulling survey responses you will need the following scopes enabled: View Responses, View Response Details, View Surveys, View Collectors, View Webhooks and Create/Modify Webhooks.

    FileMaker SurveyMonkey Scopes

    In addition, you will need to save the access token provided to you by SurveyMonkey for FileMaker to authenticate across the API.

    Creating a Webhook

    Arguably the most useful part of the SurveyMonkey API is that they allow you to tie webhooks to certain actions that can take place on their website. To try out the API you can create a webhook via Postman (SurveyMonkey has a library you can use in their API documentation) or use the demo file attached to this article. You will need to specify the layout and field of your FileMaker application where you want the raw data to be stored. Here is a sample create webhook request:

    {
        "event_type" : "response_completed",
        "name" : "MyWebhook",
        "object_ids" : [ "176444261" ],
        "object_type" : "survey",
        "subscription_url" : "https://your.domain.com/webhook.php"
    }
    

    And the response:

    {
        "event_type" : "response_completed",
        "href" : "https://api.surveymonkey.net/v3/webhooks/3579938",
        "id" : "3579938",
        "name" : "MyWebhook",
        "object_ids" : [ "176444261" ],
        "object_type" : "survey",
        "subscription_url" : "https://your.domain.com/webhook.php"
    }
    

    Receiving the Webhook

    To receive the webhook you will need to create the web script that you specified in the url of the initial webhook creation request. In this article we used PHP. This PHP code is run whenever the webhook is triggered, communicating with FileMaker's Data API to pass the survey's information into your FileMaker application.

    Parsing the Webhook

    You should parse the returned JSON object in the FileMaker script instead of PHP because FileMaker is the one that needs the data. While being the easiest part of the integration, it must be noted that the parsing code will in most cases have to be written to match how your survey(s) are formatted. Due to the plethora of different question and answer types that SurveyMonkey has to offer, writing a catch-all script could potentially be very time-consuming.

    Here is a sample webhook response:

    {
        "event_datetime" : "2019-05-30T19:35:08.362289+00:00",
        "event_id" : "10014567306",
        "event_type" : "response_completed",
        "filter_id" : "176444261",
        "filter_type" : "survey",
        "name" : "MyWebhook",
        "object_id" : "10766574798",
        "object_type" : "response",
        "resources" : 
        {
            "collector_id" : "0123446546",
            "recipient_id" : "0",
            "respondent_id" : "9832489383",
            "survey_id" : "23784237",
            "user_id" : "0439219"
        }
    }
    

    Conclusion

    The SurveyMonkey API allows you to automatically pull in all your survey's data directly into your FileMaker application. With your surveys in FileMaker you can link them up to your employee or customer data to track satisfaction over time and to build a process to handle negative feedback on surveys. Contact us if you would like help integrating your SurveyMonkey surveys with your FileMaker application!

    ]]>
    <![CDATA[FileMaker 18 Overview]]> https://dbservices.com/blog/filemaker-18-overview https://dbservices.com/blog/filemaker-18-overview Wed, 22 May 2019 12:10:00 -0400 A new and exciting version of the FileMaker platform is here! 2019 marks over 34 years for the FileMaker platform. In this article we review what’s new in the FileMaker platform, specifically for FileMaker Pro Advanced 18, FileMaker Server 18, FileMaker Go 18, and FileMaker Cloud for AWS. We highlight some of our favorite new features with in-depth content with videos and sample files. With this release FileMaker continues to prove to be the Workplace Innovation Platform leader.

    What's New?

    • FileMaker Pro Advanced now includes an Import Dialog redesign, introduction of scripted Versioning, native File Manipulation script steps, and the new norm: more security enhancements.
    • FileMaker Go now includes Append to Existing PDF, more barcodes supported, and OAuth 2 login support for iOS SDK with Amazon, Google, or Microsoft Azure.
    • FileMaker Server now includes parity between the FileMaker Data API and the FileMaker PHP API—which is on the deprecation watch list—and the official release of the FileMaker Server Admin API (both RESTful APIs).
    • FileMaker Community launched a new site in April.
    • FileMaker Cloud for AWS 1.18 availability within the week.
    • An all new FileMaker Cloud is coming later this year and will be the first time FileMaker offers a SaaS directly to customers. This will not require a separate AWS account to setup.
    • FileMaker Marketplace is coming sometime later this year, replacing Made for FileMaker and requires developers to resubmit their product.
    • No new price increases, price protection for existing customer ended May 14th.

    FileMaker Pro Advanced 18

    FileMaker Pro Advanced is the flagship desktop application with more enhancements to create custom apps such as an improved file importing workflow, native file manipulation, enhanced security, and many more developer tools that allow you to build and deploy more innovative applications faster than ever before.

    Redesigned Import Records

    A welcomed redesign to the process of bringing data into FileMaker via the File Menu->Import Records, the dialog presents users a much easier way to import data and more possibilities with custom file import delimiters. You can choose any row for the field names, trigger auto-enters on a per field basis, and use type ahead field mapping when dealing with large number of columns to wade through. See the wonderful user experience as Carlos Machado shows you the Redesigned FileMaker Import Records Dialog in action.

    Version Comparison

    The new Save a Copy as XML script step opens up the potential for automating versioning of solutions and is great for teams or managing multiple build outs of the same application. The XML representation provides more detail than the Database Design Report XML most developers use today. See FileMaker Version Comparison in action as Brandon Terrell shows you in a video and sample file.

    Sending HTML Emails

    Sending email is now supported in the Insert from URL script step with SMTP cURL options, which have opened up the ability to send HTML emails directly from FileMaker. Learn about Sending FileMaker HTML Emails as Kevin Boehle walks you through in a video and provides a sample file for download.

    File Manipulation

    What used to require third party plugins can now be done natively in FileMaker: you can work with files on disk, including creating, renaming, deleting, reading and writing. See FileMaker File Manipulation in depth as Victor Perez-Mendoza shows you how and provides a free download as well.

    Security Enhancements

    Many new security improvements are available in FileMaker 18 including the ability to grant administrators account management without giving the them Full Access in Advanced Settings. A new user experience for the Manage Security Dialog box allows you to work more seamlessly when managing accounts including a new Details pane, type ahead, and multi-select. Also Full Access is required by default to reference a file when creating a new application.

    Read more in depth about the new FileMaker 18 Security Enhancements as Andrew Bosworth demos the security updates.

    Script Error Logging

    Now you can log errors while a script is running in FileMaker Pro, similar to how errors are logged when a script runs on FileMaker Server. With the file manipulation script steps, developers can build automatically importing the script error logs into a central table to view errors from all Pro clients. Check out FileMaker Script Error Logging as Austen Gren shows you in a video and sample file.

    While and SetRecursion Functions

    The new While function allows developers to loop in calculations, repeating logic while a condition is true, and then return the result. This gives developers the ability to replace many recursive custom functions. And with the new SetRecursion function, developers can bypass the previous limit of 50,000 iterations. See the new FileMaker While Function in detail as Devin Drake shows you how the function works.

    Open Application at Launch

    Using the Assisted Install file, you can now specify the FileMaker application to automatically launch by default when FileMaker Pro is opened. For those who distribute the application for single purposes such as SBA (Solution Bundle Agreement) or want the end user always to go to the same application this provides more control over your FileMaker user experience.

    FileMaker Pro Advanced Technical Specs

    FileMaker Pro Advanced 18 is supported on Windows 10 Pro and Enterprise, Windows 8.1 Standard and Pro, Windows 7 SP1 Professional and Ultimate, macOS Mojave 10.14, and macOS High Sierra 10.13.

    If you want early access to FileMaker versions, purchase a FileMaker Developer Subscription for $99/per year. The subscription gives you access to the pre-release version, the FileMaker Data Migration Tool, the FileMaker iOS SDK, and more.


    FileMaker Go 18

    FileMaker Go for iPad and iPhone has all the features provided in FileMaker Pro Advanced plus specific iOS features. You will need FileMaker Pro Advanced on the desktop to build your custom application. The new version of FileMaker Go 18 is available in the App Store as a free download.

    Append to Existing PDF

    Users love to create and send PDFs from FileMaker Go and it just got better with the ability to append a new PDF to an existing one via the Save Records as PDF script step's append option on Go.

    Enhanced Barcode Support

    There are many barcode fonts out there and 4 more are now supported in Go 18. Using the script step Insert from Device you can now read PDF417 (IDs), ITF-14 (packages), Aztec (mobile), and Data Matrix (labels, letters, food) barcode types.

    OAuth Support for iOS SDK

    Using the FileMaker iOS SDK you can use MDM (Multi Device Management) to authenticate your application with the same OAuth providers supported in regular FileMaker applications: Amazon, Google, and Microsoft Azure.

    FileMaker Go 18 Technical Specs

    FileMaker Go 18 is supported on iPads and iPhones running iOS 12.1.


    FileMaker Server 18

    FileMaker Server is known for its ease-of-use and ability to run without any problems. The newest version focuses on performance improvements, FileMaker Server Admin Console interface enhancements, security updates, FileMaker Data API enhancements, and the Official FileMaker Admin API.

    Database Engine Enhancements

    FileMaker has enhanced the performance of FileMaker Server's database engine, speeding up finds when many users are connected to the server. Understand more and see some tests of the FileMaker 18 Database Engine Enhancements by Nathan Kiefer with a sample file you can use to do some benchmarking yourself. Expect more improvements to the database engine over time.

    Startup Restoration

    Unfortunately servers do go down unexpectedly due to hardware failure or power outages, but with the new Startup Restoration feature, FileMaker Server will automatically fix corrupt files after the server is restarted. The process validates database entries when a file is first opened and before client access and if the file appears to not have been closed properly then FileMaker Server uses the restoration log (restore*.log) to restore the file to its last consistent state. Nathan's article on the FileMaker 18 Database Engine also discusses Startup Restoration.

    **We recommend disabling Startup Restoration until a bug fix is announced!

    Server Monitoring

    FileMaker Server has been updated to work better with Zabbix, an open-source server monitoring software. You can monitor users, memory, cpu, disk space, network traffic, and processes, and you can trigger events on stats. FileMaker plans to release a white paper and Zabbix templates for FileMaker Server. Understand how to set up Zabbix FileMaker Server Monitoring in a video by Aaron Kaiser.

    FileMaker Data API Enhancements

    The future of FileMaker Custom Web Publishing is the FileMaker Data API and it is now in parity with the functionality provided by the FileMaker PHP API. The Data API now includes XML metadata such as Script Names, Layout Names, and Layout Schema. FileMaker continues to support the FileMaker PHP API for Custom Web Publishing (via Command Line Interface only) and has been clear to developers that web apps should be built using the Data API going forward. Learn more about the Official FileMaker Data API as Mason Stenquist goes in depth about how to use the Official FileMaker Data API in a video.

    Official FileMaker Server Admin API

    The FileMaker Server Admin API allows administrators to create their own interfaces to manage servers. The FileMaker Server Admin API, based on the OpenAPI specification (REST API), was previously in beta until September 27th 2019 in FileMaker Server 17, but with 18 is now officially released. Learn about the FileMaker Server Admin API by Mason showing you how the FileMaker Server Admin API works with FileMaker Cloud for AWS in a video.

    FileMaker Server Admin Console Enhancements

    The FileMaker Server 18 Admin Console now includes more details on schedules such as which ones are currently running, their last success, or their last failed information. You can also see the last time the FileMaker Server was restarted, more clear status of files hosted on server via iconography, and in the command line interface (CLI) you can change the default backup time. All welcomed additions; another one we would like to see in future FileMaker Servers is the ability to view and filter logs without downloading them first.

    FileMaker Server 18 Technical Specs

    FileMaker Server 18 is compatible with Windows Server 2016 Standard Edition, Windows Server 2012 R2 Standard with Update Microsoft KB2919355, macOS High Sierra 10.13, and macOS Sierra 10.12. If you're on Windows Server 2008 it’s a good time to think about moving to FileMaker Cloud. Also worth noting the release of a Spanish FileMaker Server support.

    WebDirect desktop browser support includes Safari 12.x, IE 11.x, Microsoft Edge 44+, Chrome 72+, and mobile browser support includes Safari on iOS 12.x minimum and Chrome 72 on Android 7.x. Note that Firefox is not on the list of supported browsers.

    FileMaker Cloud for AWS

    FileMaker Cloud for AWS was initially released in September 2016 and is a great product for most customers especially if you need to replace your current server hardware or are expanding to a more mobile workforce! 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. FileMaker Cloud 1.18 will support all of the features of FileMaker Server 18. Contact us if you would like help to setup and Manage FileMaker Cloud.


    Summary

    The FileMaker platform continues to be the leader in creating innovative, powerful custom applications for organizations all around the world and works seamlessly across Windows, Mac, iPad, iPhone, and the web. The release of the FileMaker 18 platform further solidifies FileMaker as the Workplace Innovation Platform leader.

    FileMaker Go gives the platform a competitive edge and this version continues to build off its strong foundation. Organizations can create innovative and rapid custom applications for iOS with great ROI. Creating prototype applications on the iPad and iPhone is a matter of hours not months.

    FileMaker 18 is a great release and has features everyone can benefit from. We look forward to building innovative custom applications using the new tools for mobile, web and desktop.

    ]]>
    <![CDATA[Redesigned FileMaker Import Dialog]]> https://dbservices.com/blog/redesigned-filemaker-import-dialog https://dbservices.com/blog/redesigned-filemaker-import-dialog Wed, 22 May 2019 12:09:00 -0400 The new FileMaker 18 Import Dialog has been redesigned to be more user-friendly, flexible and fast. Some of the new features include the ability to select the target fields in a list that can be filtered and the ability to perform auto-enter options individually for each field.

    ]]> What Is New?
    • User-friendly interface
    • Ability to select the target field from a list that can be filtered
    • A custom row can be used as the "Field Names" row in the source file for certain data types
    • Auto-enter options are independent for each field
    • Ability to import data from files using a custom character to separate values

    User Friendly Interface

    The way information is presented makes it easier for the users to understand how the import process works. For example the use of colors to define if the field will be imported or not, or if it will be used to find a match conveys what is going to be done in a very efficient and natural way.

    Redesigned FileMaker Import Dialog User Interface
    In addition FileMaker provides diagrams in a pop-up window of the different operations that could be performed when importing.

    FileMaker Import Dialog Import Methods

    Search Target Field

    FileMaker now allows us to choose the target fields from a list that can be filtered, decreasing the time needed to map fields, especially when including a considerable amount of fields.

    FileMaker Import Dialog Filter Fields

    Use Custom Record As Field Names

    You can now select any row in the import file as the header row (the row containing the field names). All rows in the file before the header row will be omitted.

    Custom Row Header of Source FileExcluded Row When Using Custom Header

    Independent Auto-Enters

    You can choose which auto-enters to fire when importing by clicking on the red gear button located on the right side of each field with auto-enter options.

    FileMaker Import Dialog Choose Which Fields to Fire Auto-Enters

    Custom Character Separators

    You have now the ability to import files that have separators other than commas and tabs, getting rid of the need to preprocess the file before importing.

    FileMaker Import Dialog Custom Delimiter

    Conclusion

    FileMaker greatly improved importing with a more intuitive interface, a more efficient methodology, and more flexible functionality. Contact us if you would like help importing data into your FileMaker application.

    ]]>
    <![CDATA[FileMaker 18 Database Engine Improvements]]> https://dbservices.com/blog/filemaker-18-database-engine-improvements https://dbservices.com/blog/filemaker-18-database-engine-improvements Wed, 22 May 2019 12:08:00 -0400 FileMaker Server 18 brings some exciting database improvements in the form of faster processing of parallel queries and automatically recovering corrupt databases when the server starts up using a transactional log. This auto-correction feature, called Startup Restoration, will save significant time and headaches during disaster recovery of a FileMaker application. Both updates are intertwined within Startup Restoration, which means that added speed and stability are packaged together.

    **We recommend disabling Startup Restoration until a bug fix is announced!

    ]]> Automatic Speed Boosts

    Performance optimization is one of the most time-consuming (and expensive) types of development and is often overlooked or ignored until applications are nearly unusable. This often happens as businesses expand, adding both more users and data which load the server with an ever increasing number of queries.

    Without Startup Restoration (what most users are used to), FileMaker Server handles queries in serial. Each query is put in a single line and assigned a processing "lane" once one opens up, much like a bank line with several tellers. The Startup Restoration feature allows the server to handle queries in parallel. That means, your query goes to the shortest “lane” available and has a better chance of being processed more quickly.

    To get an idea of the impact, the two screenshots below show just how much faster enabling Startup Restoration is.

    FileMaker Server performance statistics for startup restoration enabled

    With Startup Restoration turned on, our example unstored find took a little less than 15 seconds for 10 simultaneous users.

    FileMaker Server performance statistics for startup restoration disabled

    With Startup Restoration off, the same unstored find for the same 10 users took more than twice as long at just under 33 seconds.

    The added efficiency on the CPU is a major part of the benefit. For developers frustrated with a server needing more cores while the CPU usage is hanging around 20%, Startup Restoration will help, allowing you to do more with each core.

    FileMaker Server CPU performance statistics for startup restoration enabled

    The unstored find for 10 users with Startup Restoration easily took up about 60% of the CPU.

    FileMaker Server CPU performance statistics for startup restoration disabled

    The same find for 10 users without Startup Restoration barely topped 30% of the CPU.

    Auto-Recovery

    Startup Restoration also allows the server to auto-recover files on startup if corrupt data is detected. Having Startup Restoration enabled means in addition to more efficient queries, the server also keeps a transactional log of all the data changes occurring in FileMaker. If the server detects an error in the consistency of your FileMaker application, it automatically rolls itself back to the last consistent state by using the transactional log.

    Manual rollbacks to a progressive backup should be even more rare and no one has to worry about them being accidentally turned off. That means added stability and fewer emergencies.

    How Do I Get It?

    In FileMaker 18 Server, Startup Restoration is on by default, but turning it off is a simple command with either the Admin API or the command line. Setting “StartupRestorationEnabled=false” will disable logging. Setting it to “true” will enable the feature. If you are toggling Startup Restoration, you must restart FM Server for it to take effect.

    Example FileMaker Server command line command for startup restoration

    What if you want to know if Startup Restoration is enabled already? You can use the FMSAdmin "Get" command to ask the server for the current setting setup.

    Example FileMaker Server command line command for current startup restoration setting

    When Not To Use It

    Why would you want to turn it off? Startup Restoration comes at a cost: creating and editing records take longer. In our example, creating records with Startup Restoration enabled meant an extra 1.5 seconds per user for 1,000 records.

    FileMaker Server performance statistics for startup restoration enabled

    With Startup Restoration turned on it took just over 2 seconds per user to make 1,000 records.

    FileMaker Server performance statistics for startup restoration disabled

    With Startup Restoration turned off, it only took each user an average of .6 seconds to make 1,000 records.

    For most applications and users, this isn’t likely to be a problem or even noticeable (the additional time per record in our example was .0015 seconds). However, if your application batch creates records, this could mean a pretty significant slowdown. If you have large-scale, predictable batch creations, you may even consider turning transactional logging off while you run those batch creations.

    Start Optimizing

    Almost everything is fast when it is first built, but your FileMaker application isn’t a statue – it changes and grows with your business. The optimization in Server 18 is FileMaker’s way of recognizing that as applications grow in size, FileMaker needs to keep up with the requests. In the same vein, Startup Restoration emphasizes better stability and less downtime caused by corrupt files. While no database engine improvement is a silver bullet for performance or stability, these optimizations are an improvement that will help applications grow with the businesses they serve even more effectively than before.

    ]]>
    <![CDATA[Zabbix FileMaker Server Monitoring]]> https://dbservices.com/blog/zabbix-filemaker-server-monitoring https://dbservices.com/blog/zabbix-filemaker-server-monitoring Wed, 22 May 2019 12:07:00 -0400 Zabbix, one of the largest free and open source server monitor applications with 300,000 installations worldwide, can be used to collect and display metrics from multiple FileMaker servers at once on one interface; therefore, giving you the ability to save time monitoring servers individually. Viewable from a web browser on a central dashboard, these metrics are displayed as charts, graphs, alerts, and reports with information fed in by the machines monitored by Zabbix. Furthermore, when issues are triggered by the monitored machines, notifications can be sent out. Let's take a look at how to set up Zabbix to monitor your FileMaker servers.

    ]]> Initial Setup

    Installation requires setting up a Zabbix server to monitor the various Zabbix agents (or clients). To monitor multiple FileMaker servers, Zabbix agents would be installed on each server machine, which would communicate with the central Zabbix server.

    In the following walkthrough, we used an AWS Ubuntu web server for Zabbix server and a Windows FileMaker server for the Zabbix agent. Zabbix server can only be installed on Linux distributions.

    The first step will be to identify the proper package from Zabbix’s website. This guide will be using Zabbix server version 4.2, Ubuntu 18.04, and MySQL due to our familiarity with each. Zabbix server requires a back end to store the data it collects from the Zabbix agents and a web front end to display the information.

    Setting up Zabbix Server Back End

    First we need to install the server back end and create the database to store our collected data. Download the Zabbix repository by running the following commands from your Zabbix server’s terminal.

    ~$ wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1+bionic_all.deb 
    ~$ sudo dpkg -i zabbix-release_4.2-1+bionic_all.deb 
    ~$ sudo apt update
    

    Next, install Zabbix server with MySQL support.

    ~$ sudo apt install zabbix-server-mysql
    

    Next, create a MySQL Zabbix database with a username of ‘zabbix.' The password is the variable <password> in this example.

    Start the MySQL shell by running the mysql command.

    ~$ sudo mysql
    

    Once in the MySQL shell, create the database and user with the variable <password> replaced with your chosen password enclosed in single quotes.

    mysql> create database zabbix character set utf8 collate utf8_bin;
    mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
    mysql> quit;
    

    Now import the schema for the newly created MySQL database. When prompted for the password, provide the password chosen in the previous step. This may take a while to complete.

    ~$ zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
    

    Set up the config file with the database’s username and password by editing the zabbix_server.conf file located in /etc/zabbix/

    ~$ sudo vim /etc/zabbix/zabbix_server.conf
    ### Option: DBName
    #       Database name.
    #
    # Mandatory: yes
    # Default:
    DBName=zabbix
    ### Option: DBUser
    #       Database user.
    #
    # Mandatory: no
    # Default:
    DBUser=zabbix
    ### Option: DBPassword
    #       Database password.
    #       Comment this line if no password is used.
    #
    # Mandatory: no
    # Default:
    DBPassword=<password>
    

    Setting up Zabbix Server Front End

    Next up is installing the front end and creating the web pages to view the collected data.

    ~$ sudo apt install zabbix-frontend-php
    

    Edit the apache.conf file located in /etc/zabbix/ to have the appropriate time zone by commenting out the line and entering your PHP timezone. Other PHP settings can also be modified here.

    ~$ sudo vim /etc/zabbix/apache.conf
    php_value date.timezone America/Indianapolis
    

    Restart Apache to apply changes.

    ~$ sudo systemctl restart apache2
    

    Finally, start the Zabbix server process and enable it to start at system boot.

    ~$ sudo service zabbix-server start
    ~$ sudo update-rc.d zabbix-server enable
    

    Zabbix server’s front end is accessed via a web browser. In order to be accessible and communicate with Zabbix agents, ports 80, 443, and 10050 need to be opened on the Zabbix server.

    Copy all the files in the /usr/share/zabbix/ directory to a new Zabbix subdirectory in /var/www/html/zabbix.

    First, create a new subdirectory and then copy the files.

    ~$ sudo mkdir /var/www/html/zabbix
    ~$ sudo cp -r /usr/share/zabbix/* /var/www/html/zabbix
    

    In a browser, navigate to http://<server_ip_or_name>/zabbix. You should see the UI for the Zabbix front end. Check that the prerequisites are all OK, and enter the database information on the following screen. This is the information used when creating the MySQL database on the Zabbix server.

    Zabbix Configure DB Connection

    On the next screen, enter the Zabbix server details. The name field is what will be displayed on the menu bar and page titles. You will then get a summary of the information entered before finalizing your install. Once the setup is complete, log in using the default username and password ‘Admin’ and ‘zabbix.’

    Setting up Zabbix Agent (Windows 10)

    On Windows, Zabbix agent runs as a service and can either be downloaded as a zip archive or installed via the command prompt. In this example we’ll be using the zip archive.

    After unzipping the files, choose or create a new directory to store the unzipped folders. For our purposes, we’re using:

    C:\zabbix
    

    Copy bin\zabbix_agentd.exe and conf\zabbix_agentd.win.conf files from the unzipped archive to your chosen directory. Our resulting directory is now

    C:\zabbix
    --bin
    --conf
    --zabbix_agentd.exe
    --zabbix_agentd.win.conf
    

    Next, we’ll need to edit the c:\zabbix\zabbix_agentd.win.conf file. For the ‘Server’ option, specify your Zabbix server’s fully qualified domain name. If you are enabling active checks, also specify the server name in the ‘SeverActive’ option. The ‘HostName’ option can be left blank.

    ### Option: Server
    #   List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
    #   Incoming connections will be accepted only from the hosts listed here.
    #   If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally and '::/0' will allow any IPv4 or IPv6 address.
    #   '0.0.0.0/0' can be used to allow any IPv4 address.
    #   Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.domain
    #
    # Mandatory: yes, if StartAgents is not explicitly set to 0
    # Default:
    Server=<Zabbix server's FQDN>
    ### Option: ServerActive
    #   List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
    #   If port is not specified, default port is used.
    #   IPv6 addresses must be enclosed in square brackets if port for that host is specified.
    #   If port is not specified, square brackets for IPv6 addresses are optional.
    #   If this parameter is not specified, active checks are disabled.
    #   Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
    #
    # Mandatory: no
    # Default:
    ServerActive=<Zabbix server's FQDN>
    

    To install the Zabbix agent service, run the following command from the command prompt as an administrator. Again, in our example our files are placed in C:\zabbix.

    C:\> C:\zabbix\zabbix_agentd.exe -c C:\zabbix\zabbix_agentd.win.conf -i
    

    Now you will be able to manage the Zabbix agent service in the Windows services menu. To bring up the Windows services menu, navigate to

    Control Panel\All Control Panel Items\Administrative Tools
    

    and select ‘Services.’ It can also be opened by simply searching for ‘Services’ from the start menu. From here we can start, stop, and restart the Zabbix agent service as necessary.

    Connecting Zabbix Agent to Zabbix Server

    Zabbix Add Host

    To connect Zabbix server to Zabbix agent, you will need to create a host and add a template.

    On the Zabbix web dashboard, go to Configuration>Hosts>Create host. The Host name field will be the IP address or fully qualified domain name of the Zabbix agent that you want to add. The visible name is what is shown on the Zabbix dashboard. In the Groups field we can add a new group named FileMaker.

    In the Agent interfaces section, again we will supply the IP address of the Zabbix agent and use port 10050. Once all the fields are populated, click Add at the bottom.

    Zabbix Add Template

    Now a template will need to be added to the host. Go to Configuration>Hosts and select the FileMaker Server host that was created. Select the Templates tab from here. A template can be specified in the 'Link new templates' section by searching for a template and then clicking 'Add'. After selecting the template, click update to save your changes. Zabbix provides many templates out of the box and they can all be customized for a user's needs.

    To highlight a starting point, we'll add the "Template OS Windows" template, which includes basic hardware stat monitoring. Once the template is added, we can begin to see some of the data by going to the Monitoring->Graphs tab. From here, we can select the FileMaker Server host and the graph to display.

    FileMaker Templates

    In addition to the included templates, FileMaker has provided templates to monitor Windows, macOS, and Linux FileMaker Servers. These templates include items that monitor various FileMaker server ports, system processes, and triggers to send alerts if something goes wrong. To import custom templates, go to Configuration>Templates and click Import in the top right.

    Conclusion

    Once you have completed the installation process, Zabbix can be used to monitor multiple machines at once, while providing deeper customization to tailor its use to your needs. Contact us if you have any questions or need assistance setting up Zabbix monitoring.

    ]]>
    <![CDATA[Sending FileMaker HTML Emails]]> https://dbservices.com/blog/send-filemaker-html-emails https://dbservices.com/blog/send-filemaker-html-emails Wed, 22 May 2019 12:06:00 -0400 When sending emails to customers, it can often help get their attention by adding a bit of design and creativity to what could otherwise be a boring block of text. With FileMaker you can now send HTML emails without the need for 3rd-party plugins, making upgrading FileMaker easier. Let's take a look at how to send native HTML emails using FileMaker.

    ]]> How To Send

    The Insert From URL script step now supports the SMTP protocol and includes a handful of SMTP cURL options. Using your SMTP server as the URL and the "--mail-from" and "--mail-rcpt" cURL options, you can specify where the email is sent from, who is sending the email, and who is receiving the email. Perhaps most importantly, you can use the "--upload-file" cURL option to upload a text file containing the HTML that you want to send.

    URL

    smtp://<SMTP Server>:<SMTP Port>

    cURL

    --ssl<br> --mail-from "<From Email>"<br> --mail-rcpt "<To Email>"<br> --upload-file $emailBodyFile<br> --user "<SMTP Username>:<SMTP Password>"

    And now that FileMaker can natively read and write files, you can use those script steps to create the HTML file for the email or you can use Base64 Encode and Decode to take the HTML and save it to a file in a container.

    Conclusion

    FileMaker can now send HTML emails natively! By using a little scripting and some simple cURL options, you can send beautifully designed HTML emails, eliminating the need of 3rd-party products and helping you grab your customers attention. Contact us if you would like help sending native HTML emails out of FileMaker.

    ]]>
    <![CDATA[FileMaker File Manipulation]]> https://dbservices.com/blog/filemaker-file-manipulation https://dbservices.com/blog/filemaker-file-manipulation Wed, 22 May 2019 12:05:00 -0400 Included in the release of FileMaker 18 are some new exciting file manipulation scripts steps giving developers the ability to create and edit data files without plugins, saving time and making upgrading FileMaker in the future easier. The following are the new script steps for data files:

    • Close Data Fie
    • Create Data File
    • Delete File
    • Get Data File Position
    • Get File Exists
    • Get File Size
    • Open Data File
    • Read from Data File
    • Rename File
    • Set Data File Position
    • Write to Data File

    Let's take a look at how to use these script steps.

    ]]> Creating and Writing to Files

    While you can create files of any file extension with the new Create Data File script step, there are a few of things to remember when using the new script steps. A file must always be opened first before writing to it or it will result in an error, even files that you just created. The Open Data File step will return the ID of the file which you will later use in the other script steps. In the example below we create a data file, open it, write to it and close it.

    FileMaker Create Open Write File Script Steps

    When writing to the file we recommend to error trap and to close the data file if an error occurs; otherwise the data file will remain locked. The Close Data File step uses the ID returned by Open Data File to close it. A file path cannot be used to close the file.

    Reading, Renaming and Deleting Files

    Just like before, a file must be opened before reading it or renaming it. To delete a file the file must be closed.

    FileMaker Read Rename File Script Steps

    Conclusion

    With the new file manipulation script steps FileMaker applications can natively create, edit, delete, and read data files without a plug-in, making upgrading FileMaker easier. Contact us if you need help with reading and writing files in your FileMaker application.

    ]]>
    <![CDATA[FileMaker 18 Security Enhancements]]> https://dbservices.com/blog/filemaker-18-security-enhancements https://dbservices.com/blog/filemaker-18-security-enhancements Wed, 22 May 2019 12:04:00 -0400 Among the ensemble of new things to play with, FileMaker 18 brings with it a collection of security enhancements. Some of these changes include a redesigned Manage Security dialog aimed towards improved ease of use, an ability to manage FileMaker users without the need to have Full Access privileges, and a security warning for potentially malicious plug-ins.

    ]]> Manage Security Redesign

    The Manage Security dialog has been redesigned, combining the Detail View and Basic View into one new display.

    FileMaker Manage Security Dialog

    Clicking an account name will make the detailed settings of the account slide in from the right, where users can still personalize the settings per the individual. The "Advanced Settings..." button in the bottom left pops up the Extended Privileges, Privilege Sets, and File Access settings in the original Manage Security dialog.

    Managing Users Without Full Access

    Arguably the biggest enhancement lies within the ability for non-Full Access users to manage the security of a FileMaker file. Now non-power users will have the ability to add and manage non-Full Access accounts in the Manage Security dialog without having to contact a developer or an administrator. However since the default privilege sets cannot be changed, accounts with this power will have to use a custom privilege set. This setting can be enabled under the "Edit Privilege Set" menu of the Manage Security dialog.FileMaker Manage User Privilege

    Unsigned Plug-in Notifications

    Additionally FileMaker will now display a notification on startup when an installed plug-in is not signed by its developer.

    FileMaker Plugin Warning

    This is a measure taken to notify users that one or more of their plug-ins could have been potentially tampered with. This dialog gives the user the ability to choose whether they would like to load the unsigned plug-in. Please note that if you auto install unsigned plug-ins in your solution you will have to make sure Set Error Capture is set to Off to for users to get the warning. The auto installer will otherwise fail if Set Error Capture is set to On.

    Conclusion

    Managing security for your FileMaker solutions has become more intuitive and user friendly, while also keeping users more informed of security risks. Contact us if you would like help securing your FileMaker solution.

    ]]>
    <![CDATA[FileMaker Version Comparison]]> https://dbservices.com/blog/filemaker-version-comparison https://dbservices.com/blog/filemaker-version-comparison Wed, 22 May 2019 12:03:00 -0400 One of the more important tools in development is being able to save or compare different versions of your application. This allows for quick and easy identification of any changes, lets developers make rapid updates in small and clear steps, plus can provide the ability to share or reuse code, layouts, and other elements with minimal effort. Using the new Save a Copy as XML feature in FileMaker, this critical functionality can be implemented via a single click or through scripting as a replacement of the previous Database Design Report (DDR). Taking this XML and using a diff tool, organizations will be able to track changes between versions of their FileMaker application.

    ]]> Save a Copy as XML

    FileMaker Save a Copy as XMLWhile the original DDR function still exists for now, a new option has been added in the Tools menu to "Save a Copy as XML". When you select this tool you will be prompted to choose a save location and enter a file name. This will be set to your file name by default, and no other settings or configuration is necessary. Once you choose Save, FileMaker will create a new XML file in your specified location that is an XML serialization of your FileMaker file excluding record details.

    What About the DDR?

    Initially just being able to save an XML copy of a FileMaker file can sound quite similar to the existing Database Design Report option; however the Save a Copy as XML feature is meant to be an XML serialization while the DDR is not. For example Save a Copy as XML includes encrypted account credentials as they would be required to have a complete serialization of a FileMaker file's schema and structure while the DDR doesn't include this information.

    Benefits of Scripting

    For even more control, there is a new script step also called "Save a Copy as XML" that allows you to automatically save an XML representation of the solution.

    FileMaker Version Comparison Script

    With this step a developer can easily create a script and set it up on a server schedule to automatically generate daily version records of an entire application, and these files can then be archived for security and referenced as needed.

    Version Comparison

    In order to use this feature to the fullest, you will want to employ a diff tool to view the changes between two versions of your database that you have saved as XML. You can find many different applications that will perform this task both directly online or as downloadable programs, and it may already be an available option or extension in your existing text editor such as Visual Studio Code or Notepad++. Once you run the differential on your XML copies, you will be able to easily identify what has been updated between each version.

    FileMaker Version Comparison Diff

    Conclusion

    Save a Copy as XML is a fantastic addition to the FileMaker platform, providing a way to run differential comparisons on a solution. Contact us if you need help incorporating this excellent new feature into your FileMaker application!

    ]]>
    <![CDATA[FileMaker Script Error Logging]]> https://dbservices.com/blog/filemaker-script-error-logging https://dbservices.com/blog/filemaker-script-error-logging Wed, 22 May 2019 12:02:00 -0400 For many years FileMaker Server has automatically logged errors in server side scripts, but now with FileMaker 18 developers have to ability to log script errors client side in FileMaker Pro and Go, saving time troubleshooting issues with scripts. And with the new file manipulation script steps, developers can automatically import script error logs into a centralized table to quickly view errors across all clients.

    ]]> A Simple-to-Use Script Step

    Error logging can now be accomplished with a simple script step: Set Error Logging [ On/Off ].

    FileMaker Script Error Logging Script Step

    And because you can control when error logging occurs you can prevent unnecessary log entries from being created. Additionally you can set up a “custom debug info” calculation, the result of which will be added to each log entry of the script allowing developers to log dynamic information the moment an error occurs.

    The Log File

    FileMaker Script Error Log

    When enabling error logging in a script, FileMaker will create a single file named “ScriptErrors.log”, which will be created in the user’s Documents folder if it doesn't already exist. Each log entry will include the following pieces of information: the name of the file, account, script, script step, error code, timestamp, session number, and custom debug information. Set Error Logging is currently only supported on FileMaker Pro and Go, not WebDirect, nor FileMaker Server.

    Collecting Log Files

    FileMaker Script Error Log Display

    To really make these log files useful you should consider automatically importing them into a centralized table so the information is in one location and easily searchable by a developer. For example you could import the log every time a user closes the FileMaker application via the OnLastWindowClose trigger. Having an easily accessible error log can go a long way when something has gone wrong and troubleshooting becomes necessary.

    Conclusion

    Script error logging is no longer relegated to only FileMaker Server: it is now available in both FileMaker Pro Advanced and FileMaker Go, to help troubleshoot errors in client side scripting. In a future version of the FileMaker platform we would love the ability to enable or disable script error logging on FileMaker Server to prevent unnecessary log entires. In the mean time download the sample file to check out the client side script error log in action!

    ]]>
    <![CDATA[FileMaker While Function]]> https://dbservices.com/blog/filemaker-while-function https://dbservices.com/blog/filemaker-while-function Wed, 22 May 2019 12:01:00 -0400 Sometimes smallest features offer the biggest impact. The new While function, which gives the ability to loop within a calculation, drastically reduces the need for one-off recursive custom functions, speeding up development in any part of FileMaker that requires looping in a calculation. Let's take at how it works.

    ]]> How It Works

    The format of a while function is broken into four parts: initial variables, the condition, logic, and the results. The function repeats the logic section until the condition is false; that is how the function provides the ability to loop. In the example below the While function returns a list of numbers 1 through 5:

    While ( 
        [ 
         count = 1; 
         numberList = "" 
        ]; 
        count < 6 ; 
        [
         numberList = numberList & (count) & "¶"; 
         count = count + 1 
        ]; 
    numberList 
    )
    

    The function returns:

    1
    2
    3
    4
    5
    

    Notes

    • Initial variables are available throughout the loop of the function.
    • You can define multiple initial variables by enclosing them in brackets, similar to how let functions work.
    • Variables that need to retain information from each iteration must be defined in the initial variable section otherwise their values are empty in the next iteration.
    • To prevent infinite loops the while function will return "?" after the number of iterations exceeds a limit.
    • The default limit is 50,000 iterations. Use the new function, Set Recursion, to set a new limit to the number of iterations.

    Conclusion

    With the advent of the While function, development of FileMaker applications will become a simpler and quicker process, eliminating the need for one-off recursive functions. Download the demo file to try out the new function.

    ]]>
    <![CDATA[FileMaker Square Integration]]> https://dbservices.com/blog/filemaker-square-integration https://dbservices.com/blog/filemaker-square-integration Wed, 03 Apr 2019 00:00:00 -0400 Square is one of the most popular in-person credit card processing systems available with over 2 million sellers using square today. Using the Point of Sale API, Square allows you to easily integrate with their Point of Sale app to quickly process in-person payments from your FileMaker application on mobile devices.

    ]]> What You Need

    You must have a Square account and a Square Reader for all mobile devices you want to accept payment on. You will also need to have your FileMaker application hosted on a FileMaker Server, have the FileMaker Data API enabled on FileMaker Server, and enable the fmurlscript “Allow URLs to perform FileMaker scripts” and fmrest “Access via FileMaker Data API” extended privileges for all users pushing charges to Square.

    FileMaker Square Process Flow source:https://docs.connect.squareup.com/payments/pos/overview

    How It Works

    Your FileMaker application will determine the total charge to the customer and pass the transaction information to the Square POS app. The mobile device automatically opens the POS app and the charge amount is pre-populated in the transaction presented to the customer. Once the transaction is completed, the results are sent via a callback URL, which references PHP code to open your FileMaker application and pass in the results of the transaction from Square.

    Creating Your Square Application

    First install the Square Point of Sale app from the App Store (available on iOS and Android). Then create a Square application on your Square developer dashboard. To do this, sign in to your developer portal online and click “New Application”.

    FileMaker Square Developer Portal

    Next enter your web callback URL by clicking into the application you created, selecting the “Point of Sale API” tab, and entering your Web Callback URL. Square requires that we use an HTTPS URL and not an FMP URL. This URL will be a link to a PHP script that acts as an FMP URL and will reopen your FileMaker application after the Square transaction completes. It needs to include parameters to reference your FileMaker file and call the FileMaker script that will handle the response data from Square.

    FileMaker Square Callback URL

    Keep in mind you will have to purchase an SSL certificate for the domain you use to host your PHP code as Square requires HTTPS for Web Callback URLs.

    Pushing a Transaction to Square

    Now that you’ve configured your Square application in the developer portal and have hosted your PHP script on a secure web server, you can start pushing transactions to Square from FileMaker. To push the transaction to Square, you will need to call the Square app with the Square URI scheme and pass information to prepopulate the transaction in the form of a JSON object. Here is an example of the JSON object.

    {
        "amount_money" : 
        {
            "amount" : "0",
            "currency_code" : "USD"
        },
        "callback_url" : "https://api.dbservices.com/Test/SquareArticle/LaunchFMPURL.php?host=cloud.dbservices.com&database=DB_Services_FileMaker_Square_Integration&script=Square_Process_Payment",
        "client_id" : "sq0idp-mRVxvaQDqPVVacCJDPn2zg",
        "notes" : "",
        "options" : 
        {
            "supported_tender_types" : [ "CREDIT_CARD", "CASH" ]
        },
        "version" : "1.3"
    }
    

    Make sure to URL encode the JSON object and append it to the end of the URL “square-commerce-v1://payment/create?data=”. Use the Open URL script step to open the Square POS app.

    One important note to remember is that Square reads the transaction amount in cents, so if you’re passing dollar values, you need to multiply them by 100 before passing them through the API.

    Passing Back Transaction Results with PHP

    Included in the demo file is a PHP file used to pass the Square transaction results back to your FileMaker application. This PHP code handles the JSON data passed from Square and essentially builds an FMP URL used to re-open your FileMaker application and call a script. This is how we retrieve our result data in the FileMaker script that is called by Square. An example of the result data is shown below.

    {
        "client_transaction_id" : "C33DC0BB-98B4-4E7E-BB0E-9764C46E5A15",
        "status" : "ok",
        "transaction_id" : "WO873ceEC5bOO4KtzCFtaNzeV"
    }
    

    The only catch to this, is that on iOS devices, Safari will always be the browser that handles the FMP URL sent by the PHP code. Unfortunately Safari always prompts the user to open FileMaker Go and there is no way to disable this. So users will have to click “Open” or the FileMaker application won’t open. This can cause issues because the transaction could have completed or canceled and your FileMaker application wouldn’t know the difference.

    Processing Payment in FileMaker

    This is the easiest part of the integration. Once the PHP code opens your FileMaker application it will run the specified script. You will want to grab the data from Square and tie it to your charge record. In the demo file, we store the entire result in the response field and store the transaction ID in a transaction ID field.

    Conclusion

    The Square Point of Sale API allows you to quickly and easily process in-person payments on mobile devices, while linking your Square transactions with your FileMaker records. This eliminates the risk of human error while taking payment with Square. Contact us if you need help integrating your FileMaker application with Square!

    ]]>
    <![CDATA[FileMaker: A Workplace Innovation Platform]]> https://dbservices.com/blog/filemaker-a-workplace-innovation-platform https://dbservices.com/blog/filemaker-a-workplace-innovation-platform Fri, 01 Mar 2019 00:00:00 -0500 In 2018 a new report emerged to categorize software specifically made for building custom solutions for businesses. This new report labels FileMaker and similar software as “Workplace Innovation Platforms”.

    Let's take a look at what a Workplace Innovation Platform is and how can it improve your business!

    What is a Workplace Innovation Platform?

    FileMaker, as the leader of the Workplace Innovation Platform category, defines it this way:

    “A Workplace Innovation Platform like FileMaker allows you to build custom apps to match the unique needs of your business and help to better connect your systems, processes and employees.”

    G2 Workplace Innovation Platforms Grid

    G2 Crowd—a business software review site—also launched a Workplace Innovation Platform report in January 2019, and they offer an objective definition and list of requirements for these types of platforms. In order to be considered a Workplace Innovation Platform on G2 Crowd, the software must meet the following requirements:

    • Provide both visual design and full-stack development tools
    • Provide collaborative application management and secure communication capabilities
    • Facilitate cross-platform availability via on-premise, cloud, or hybrid deployment
    • Provide integration tools for connecting to systems, services, and platforms
    • Provide a partner network, learning resources, marketplace, and/or user community

    Additionally G2 Crowd allows for customers of different Workplace Innovation Platforms to review the software in that report, and then ranks them based on market presence and customer satisfaction. Other platforms contained in this report by G2 Crowd include Airtable, Salesforce Lightning, K2, Quick Base, and others.

    As seen on the G2 Crowd grid as of Feb 2019, FileMaker, Inc. leads in both reports, and is considered the leader in the category of Workplace Innovation Platforms.

    What a Workplace Innovation Platform Can Do for You

    The benefits of a Workplace Innovation Platform for your business are vast. FileMaker lists 5 primary reasons to invest in a custom application in the workplace:

    1. Allows you to "escape the work rut” of tedious manual tasks
    2. “Bridges the gap” between current software used in the business
    3. Meshes your innovative ideas and expertise with your business’ software
    4. Provides the opportunity to go fully paperless
    5. Moves your business towards mobility

    Additionally FileMaker conducted a State of the Custom Apps study in 2018 to find out how custom applications have impacted businesses who use them. The customers surveyed belonged to businesses of all sizes and industries, and were located in North America, Europe, and Japan.

    Out of 370 FileMaker customers surveyed:

    • 93% were able to reduce inefficient tasks
    • 91% increased team productivity
    • 76% reported a return on investment (ROI)
    • 70% saw an increase in customer satisfaction

    Workplace Innovation at DB

    In our own words, a Workplace Innovation Platform such as FileMaker is a software platform that allows businesses of any size or industry to create a custom application that solves problems and paves the way for innovation and efficiency.

    Put simply, DB Services uses FileMaker to transform and innovate the way businesses operate.

    Whether it's integrating several scattered business applications into an all-in-one solution for a company, eliminating tedious data entry, or allowing businesses to take their FileMaker solution out in the field via iPads or iPhones--we've done it all.

    Check out our Case Studies to see just a few of the ways that DB Services has used FileMaker to innovate workflows for businesses across the country.

    Conclusion

    Workplace Innovation Platforms such as FileMaker can provide fantastic benefits to organizations, regardless of size, industry, or location, allowing them to transform and innovate the way they do business.

    If you’re ready to see what FileMaker can do for you, contact us today for a free initial consultation!

    ]]>
    <![CDATA[FileMaker OneDrive Integration]]> https://dbservices.com/blog/filemaker-onedrive-integration https://dbservices.com/blog/filemaker-onedrive-integration Tue, 05 Feb 2019 00:00:00 -0500 OneDrive and Microsoft Office 365 is one of the most popular business software packages and services on the planet. Its reach has expanded 238% since 2014 and 81% since 2016. And with the Microsoft OneDrive API, integrating has never been easier. OneDrive is excellent for sharing documents with other people without giving them access to your FileMaker system and allows for editing files without the hassle of downloading, editing, then re-uploading. We will walk through how to use the Microsoft OneDrive API to upload documents, list documents in a folder, and download documents, allowing your documents to be stored and shared easily in the cloud to keep your FileMaker database lean and mean.

    ]]> What You Need

    You must have a OneDrive account to use this article’s integration which is included in the Office 365 package. Also make sure you have admin access to your Office 365 subscription if you have a business or school user account.

    Creating a Microsoft Graph Application

    Make sure you create an Azure AD Tenant first if you are using a personal account and not a work or school account. Similar to other API integrations, you need to create an app first. Go to the application registration portal and add a new registration. Fill in the name of your app and select the supported account types. Select the "Accounts in any organizational directory and personal Microsoft accounts" if you want to allow any valid Microsoft account to log in, the other options are for business accounts generally. Fill in a valid URL for the redirect URI. It doesn't matter what it is as long as it is valid. Click Register. From the overview screen grab the Application (client) ID.

    Microsoft OneDrive App RegistrationManaging App Permissions

    Microsoft OneDrive requires that each user give the app permissions to be able to read/write data from their OneDrive. Before users can give permissions, you need to set up the default permissions on the application registration page. You'll need one delegated permission for this OneDrive Integration. Click API permissions, then click Add a Permission. Then select Microsoft Graph and Delegated permissions.

    FileMaker Onedrive Permissions

    Client Secret

    You'll need to also create a client secret for your app. On the sidebar go to the Certificates & secrets section and click new client secret. You can designate the name and how long you want the secret to last. For this example, we'll set it to never expire.

    FileMaker OneDrive Client Secret

    Authenticating With Microsoft Graph

    Once you have your API information, you will need to authenticate your solution with the OneDrive API. The sample file at the end of the article has the calls & web viewers that you can reference to authenticate FileMaker with OneDrive.

    When the user clicks the Connect button, they will be asked to log in to their Microsoft account and approve delegated permissions for the application.

    After the user logs in, a FileMaker script parses the redirected page’s URL for the client ID and auth codes that will be used for requests to OneDrive.

    FileMaker OneDrive Login Screen

    Making Requests And Parsing The Response

    Microsoft OneDrive API supports multiple types of requests such as HTTP POST, GET and DELETE. You can perform all actions by using the native Insert from URL[] script step and giving it a valid URL and cURL options including required fields within the JSON body specified by the documentation.

    Here’s a sample request body to download files from a folder. Note how the DateTime element is formatted. For more details, refer to Microsoft OneDrive documentation under the List Children Page.

    -X GET https://graph.microsoft.com/v1.0/me/drive/items/E9... "Authorization: Bearer EwBwA8l6BAAURSN/FHlDW5xN74t6GzbtsBBeBUYAAROJk..."

    The response will have an array of documents from the selected folder and will include URLs to the thumbnails so we can download those in a bit. You'll also notice that some of the object names are prefixed by "@odata." which will not work with FileMaker's built-in JSON functions, because FileMaker does not allow periods in an objects name. If you need to read one of these properties, you can simply substitute the entire object to remove the prefix.

    Substitute ( $response ; "@odata." ; "" )
    

    Downloading Files

    Downloading a file is relatively easy once you know a quirk of the FileMaker cURL library. By default when you try to download a file it first authenticates your call, and then redirects you to download the file. FileMaker will not follow the redirect and won't return anything unless you include the -L or --location flag in your cURL command. Another tip is that you can pass the --output flag with a URL encoded file name when downloading, to ensure the downloaded file has the correct name.

    -X GET https://onedrive.live.com/?id=E9953196A1CE2F19%2129992
    --header "Authorization: Bearer EwBwA8l6BAAURSN/FHlDW5xN74t6GzbtsBBe..."
    -L
    --output Screen%20Shot%202019%2D01%2D14%20at%204%2E54%2E41%20PM%2Epng
    

    Uploading Documents

    Uploading files to OneDrive is a bit more difficult. OneDrive provides 2 API methods for uploading docs, one for files under 4MB and another resumable upload method for larger files. We will strictly be using the resumable upload method as it is more flexible. The first thing you need to do is to create an upload session. The documentation is not very clear on how to do this. You'll need the folder ID you want to upload to and the filename URL encoded. When constructing the URL you'll need colons after the folder and filename, though the documentation makes no mention of this.

    -X POST  https://graph.microsoft.com/v1.0/me/drive/items/E9953196A1CE2F19!29992:/picture%2Epng:/createUploadSession
    --header "Authorization: Bearer EwBwA8l6BAAURSN/FHlDW5xN74t6GzbtsBBeBUYAAQScvI1+tUkC1GcS1z+E6..." 
    --header "Content-Type: application/json" 
    -d { 
       "@microsoft.graph.conflictBehavior": "rename", 
       "description": "description", 
       "fileSystemInfo": { 
          "@odata.type": "microsoft.graph.fileSystemInfo" 
       }, 
       "name": "Screen Shot 2019-01-14 at 4.54.41 PM.png"
    }
    

    This will return an uploadUrl that you'll use to actually upload the data to.

    {
      "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.uploadSession",
      "uploadUrl":"https://api.onedrive.com/rup/e9953196a...",
      "expirationDateTime":"2019-01-31T18:16:08.186Z",
      "nextExpectedRanges":["0-"]
    }
    

    After you have the uploadUrl you need to calculate the content range of the file so we can tell the API what bytes we are uploading. You can use GetContainerAttribute ( TABLE::container ; "fileSize" ) to get the size of the file in bytes. From there you just can determine the content range. The range starts at zero, while the total starts at one, meaning a 25-byte file will have a content range of 0-24 and a total byte size of 25, thus setting the content range to 0-24/25 is telling the API that we are uploading the entire file. To actually upload the contents of a container you'll first set a variable with the contents of the container and then you'll use that variable with the -T or --upload-file flag.

    -X PUT https://api.onedrive.com/rup/e9953196a...
    --header "Content-Range: bytes 0-24/25" 
    -T $data
    

    Displaying Files and Folders in FileMaker

    One thing you'll want to keep in mind when working with the API is that you'll need to store a representation of all the files and folders as records in your FileMaker solution. In the sample file, I have a file table to store the document names, OneDrive ID, size, etc. You might also want to include a container field to store a thumbnail of your files as well, which are quite small at around 100px by 100px. OneDrive will also generate thumbnails of file types FileMaker doesn't natively support such as Word and PowerPoint.

    FileMaker OneDrive List Files

    Conclusion

    The Microsoft OneDrive API can help keep your database size down, make sharing files easier, and allowing you to edit files without downloading and re-uploading to FileMaker. Contact us if you need help integrating your FileMaker solution with OneDrive!

    ]]>
    <![CDATA[FileMaker Adobe InDesign Integration]]> https://dbservices.com/blog/filemaker-adobe-indesign-integration https://dbservices.com/blog/filemaker-adobe-indesign-integration Wed, 09 Jan 2019 00:00:00 -0500 Wouldn't it be great to save time and money by automating repetitive Adobe InDesign processes and eliminating double data entry? With FileMaker, you can easily create XML which can be imported directly into InDesign. With a bit of additional development, you can even automate the process of placing text and photos directly on the page for designs that rarely need adjustments. We will show you how to use FileMaker and Adobe InDesign to make elegant designs with just a few clicks.

    ]]> Using XML

    Adobe InDesign has the ability to directly import XML to create individual parts which can be easily manipulated on your publication. Using FileMaker you can create this XML with a script that loops through the items that you wish to display on your InDesign document and creates opening and closing tags that separate the individual items.

    <NewsItem SIZE="Half Page Ad - Bottom"TMPL="Half Page Ad - Bottom" TYPE="article"><br> <Headline>Lorem ipsum</Headline><br> <Body>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut feugiat.</Body><br> </NewsItem>

    Each item, when imported into InDesign, will then be able to be dragged and dropped directly onto the page and resized or edited to fit your needs.

    Using FileMaker Templates

    Using FileMaker you can create templates to predetermine the position of the items you intend to display. With relatively simple Javascript, you can iterate through the items that you have imported into InDesign and place the items in the publication based on the templates you created in FileMaker.

    FileMaker InDesign Javascript for Placement

    This eliminates the need to do any major rework for repetitive designs, such as magazine pages or basic flyers.

    Using Third Party Integration Methods

    There are products that can be purchased which can also make integrating with InDesign even simpler. EasyCatalog by 65bit can be used for cataloging a database. This product links directly to FileMaker and can easily synchronize the information on the page with the information from FileMaker, keeping your document up to date.

    65 Bit EasyCatalog
    Photo Courtesy of www.65bit.com


    InData and Xdata by emSoftware allows you to make templates with bracketed text to use as placeholders for any kind of data. You can then import the data with a single click and InData/Xdata will run through your FileMaker database to create InDesign files populated with the accurate information.

    EmSoftware InData•Xdata

    Photo Courtesy of emsoftware.com


    Conclusion

    Adobe InDesign can easily use XML made straight from your FileMaker solution! With a little bit of scripting you can make complex XML which can be imported directly into InDesign to save you time and money by automating the tedious parts. If you need further assistance or are interested in integrating FileMaker with Adobe InDesign, contact us for a free consultation.

    ]]>
    <![CDATA[FileMaker Outlook Calendar Integration]]> https://dbservices.com/blog/filemaker-outlook-calendar-integration https://dbservices.com/blog/filemaker-outlook-calendar-integration Mon, 17 Dec 2018 00:00:00 -0500 Outlook and Microsoft Office are one of the most popular business software packages and services on the planet, with Outlook.com alone boasting over 400 million users in 2018. And with the Microsoft Graph API, integrating with Outlook and its calendar has never been easier. In this article we will walk through how to use the Microsoft Graph API to automatically create events in Outlook Calendar using FileMaker, streamlining event and scheduling management in your FileMaker solution by eliminating double data entry.

    ]]> What You Need

    You must have Office 365 to use this article's integration, as the Microsoft Graph API does not support Outlook hosted on Exchange Server. Also make sure you have admin access to your Office 365 subscription if you have a business or school user account.

    Creating a Microsoft Graph Application

    Make sure you create Azure AD Tenant first if you are using a personal account and not work school account. Similar to other API integrations, you need to create an app first. Go to the application registration portal and add an app (Note: the video shows old application registration page. New process will have you start from Azure portal as of May 1st, 2019). Click New Registration, give it any name, and select account type depending on who will be connecting to this application.

    microsoft-outlook-azure-setupmicrosoft-outlook-create-application

    Then click on Certificates & secrets tab and create new client secret. Don't have expiration date unless there's specific reason to do so.

    microsoft-outlook-create-secret

    Managing App Permissions

    Microsoft Graph requires that each user give the app permissions to be able to push and pull data to and from their Outlook Calendar. Before users can give permissions, you need to set up the default permissions on the application registration page. There are two types of Microsoft Graph permissions: delegated permissions and application permissions. For purpose of this article, we will be using delegated permissions to talk to Outlook Calendar as a user instead of as an application.

    For this Outlook Calendar Integration you will need to add the following delegated permissions:

    • Calendars.ReadWrite
    • Calendars.ReadWrite.Shared
    • User.Read

    Microsoft Graph API Permission

    Authenticating with Microsoft Graph

    Once you have your API information, you will need to authenticate your solution with the Microsoft Graph API to connect to Outlook Calendar. The sample file at the end of the article has the calls & web viewers that you can reference to set up initial authentication between Outlook and your new Graph application.

    When the user clicks Connect button, they will be asked to log in to their Outlook account and approve delegated permissions for the application.

    After the user logs in, a FileMaker script parses the redirected page's URL for the client ID and auth codes that will be used for requests to Outlook.

    Microsoft Permission Screen

    Making Requests and Parsing the Response

    Microsoft Graph API supports multiple types of requests such as HTTP POST, GET and DELETE. You can perform all actions by using native the Insert from URL[] script step and giving it a valid URL and cURL options including required fields within the JSON body specified by the documentation.

    Here's a sample request body to create a calendar event. Note how the DateTime element is formatted. For more details, refer to Microsoft Graph's properties under the event page.

    {
        "End" : 
        {
            "DateTime" : "2018-12-12T11:00:00",
            "TimeZone" : "Eastern Standard Time"
        },
        "Start" : 
        {
            "DateTime" : "2018-12-12T10:00:00",
            "TimeZone" : "Eastern Standard Time"
        },
        "Subject" : "Test 123"
    }
    

    If you make a successful request, the API will return a JSON-encoded body. You can check if you encountered any errors by looking at the following function after the Insert from URL[ ] step:

    Get ( LastExternalErrorDetail )
    

    This function will return 200 on success; otherwise the API encountered an error. If your call was successful, you'll get response a JSON-encoded response body like below with event ID and change key that you will need to use when updating events:

    {
        "@odata.context" : "https://graph.microsoft.com/v1.0/$metadata#users('gmoon%40dbservices.com')/calendar/events/$entity",
        "@odata.etag" : "W/\"eyoqZr4V6UOE23scd9kKdQABYJFSxw==\"",
        "attendees" : [],
        "body" : 
        {
            "content" : "",
            "contentType" : "text"
        },
        "bodyPreview" : "",
        "categories" : [],
        "changeKey" : "eyoqZr4V6UOE23scd9kKdQABYJFSxw==",
        "createdDateTime" : "2018-12-11T18:26:21.48905Z",
        "end" : 
        {
            "dateTime" : "2018-12-12T17:00:00.0000000",
            "timeZone" : "Eastern Standard Time"
        },
        "hasAttachments" : false,
        "iCalUId" : "040000008200E00074C5B7101A82E00800000000525905047F91D4010000000000000000100000002EF55A9CBBF9F8429AA5DF86AE8FB2CF",
        "id" : "AQMkADAwATM3ZmYAZS0wYTI1LWI1N2ItMDACLTAwCgBGAAADVUTIWkB8vk_xO5-ko1YImAcAeyoqAGa_FelDhNt7HHfZCnUAAAIBDQAAAHsqKgBmvhXpQ4Tbexx32Qp1AAFghoJ2AAAA",
        "importance" : "normal",
        "isAllDay" : false,
        "isCancelled" : false,
        "isOrganizer" : true,
        "isReminderOn" : true,
        "lastModifiedDateTime" : "2018-12-11T18:46:23.4155607Z",
        "location" : 
        {
            "address" : {},
            "coordinates" : {},
            "displayName" : "",
            "locationType" : "default",
            "uniqueIdType" : "unknown"
        },
        "locations" : [],
        "onlineMeetingUrl" : null,
        "organizer" : 
        {
            "emailAddress" : 
            {
                "address" : "example@outlook.com",
                "name" : "Gayoung Moon"
            }
        },
        "originalEndTimeZone" : "Eastern Standard Time",
        "originalStartTimeZone" : "Eastern Standard Time",
        "recurrence" : null,
        "reminderMinutesBeforeStart" : 15,
        "responseRequested" : true,
        "responseStatus" : 
        {
            "response" : "organizer",
            "time" : "0001-01-01T00:00:00Z"
        },
        "sensitivity" : "normal",
        "seriesMasterId" : null,
        "showAs" : "busy",
        "start" : 
        {
            "dateTime" : "2018-12-12T16:00:00.0000000",
            "timeZone" : "Eastern Standard Time"
        },
        "subject" : "4 PM Test",
        "type" : "singleInstance",
        "webLink" : "https://outlook.live.com/owa/?itemid=AQMkADAwATM3ZmYAZS0wYTI1LWI1N2ItMDACLTAwCgBGAAADVUTIWkB8vk%2BxO5%2Fko1YImAcAeyoqAGa%2BFelDhNt7HHfZCnUAAAIBDQAAAHsqKgBmvhXpQ4Tbexx32Qp1AAFghoJ2AAAA&exvsurl=1&path=/calendar/item"
    }
    

    Things to Think About

    • It's important to note that if you change permissions on the application registration page, users will have to reauthenticate and give the application those new permissions. Same thing needs to happen if you delete and regenerate your application password for whatever reason.
    • Some users won't have permission to allow application access to their Outlook calendar. Make sure your 365 administrator gives this to each of them before trying to sync calendar events.
    • If you want to display a personal calendar in FileMaker via a web viewer, users will need to log in each time that specific layout refreshes. We recommend that you use a public calendar that anyone can see to avoid the need to constantly relog in.
    • You will need to refresh your access token at least once every hour, as the token expires after 60 minutes. We recommend that you error trap for HTTP code 401 after a request, refresh the token if there's a 401, and then retry the original request.

    Conclusion

    The Microsoft Graph API can help streamline your event and scheduling workflow by giving you the ability to sync your Outlook calendar flawlessly with your FileMaker solution. Contact us if you need help integrating your FileMaker solution with your Outlook Calendar!

    ]]>
    <![CDATA[Mail Merge with FileMaker]]> https://dbservices.com/blog/mail-merge-with-filemaker https://dbservices.com/blog/mail-merge-with-filemaker Wed, 14 Nov 2018 00:00:00 -0500 If you currently hand type your business's envelopes, letters, and other complex documents like proposals and legal forms, you would greatly benefit from using mail merge.

    Mail merging, the process of filling in a template document with records from a data source, saves countless hours of double data entry and reduces human error; instead of typing out each recipient's information, Microsoft Word (or another similar word processor) automatically does all the work for you. In addition it is possible to create mail merges with records from your FileMaker system to save even more time.

    ]]> Basics of Mail Merge

    To create a mail merge, you need two things: a template and a data source. In this example, we will be using Microsoft Word to create a template, and FileMaker as the data source. If you do not have Microsoft Word, there are plenty of other free word processors out there that are able to perform mail merges.

    Exporting FileMaker Records

    In order to prepare your FileMaker records for mail merging, you need to export them as a .mer file. To export a merge file:

    1. In your FileMaker system, get into the found set of records you would like to merge with your template.
    2. Click “File” > “Export Records,” change the file type to “Merge,” and choose where you want to save your file.
      FileMaker Export Records Dialog
    3. In the “Specify Field Order for Export” dialog, chose the fields you want to be able to merge in your template file and click export.

    Your mail merge data source can be other file types, but a .mer file is certainly the easiest to create from FileMaker.

    Creating Your Mail Merge Template

    Because mail merging has been around for a while, many people will already have their templates ready. In case you don’t, however, the process is very straight forward:

    1. Create a document with your preferred word processor.
    2. Choose the .mer file that you exported earlier as your data source. To do this in Microsoft Word 2016, click “Mailings” > “Select Recipients” > “Use an Existing List” and find your .mer file.
    3. Place fields in the template where necessary. In Word, click “Mailings” > “Insert Merge Field” and select the field you wish to place in the document.
    4. If you wish to view what your filled out template looks like in Word, click “Mailings” > “Preview Results”.

    Now your template is all set for merging! You can reuse this template for later mail merges. The image below shows what your Word document will look like before and after the mail merge respectively.

    Mail Merge with FileMaker Before and After

    Things To Note

    • There are more ways to make the process even easier! We have created a FileMaker file that allows users to export contact records and a mail merge template with a few simple clicks.
    • If you change the name of a field in FileMaker that is also used in your mail merge, you will need to update the corresponding variable in your template file.
    • If your solution requires more automation, you can use FileMaker plugins like 360Works Scribe or MonkeyBread Software to automatically generate documents without the need for exporting records.
    • You can also use AppleScript instead of plugins to automatically generate documents out of FileMaker, but you will still need to export the .mer file and have AppleScript automatically run the mail merge in Word or a similar word processor.

    Conclusion

    Using mail merge with FileMaker is a highly efficient technique at generating documents as simple as letters to as complex as proposals or legal forms. Feel free to contact us if you would like assistance generating documents from your FileMaker system!

    ]]>
    <![CDATA[FileMaker Walmart Integration]]> https://dbservices.com/blog/filemaker-walmart-integration https://dbservices.com/blog/filemaker-walmart-integration Wed, 17 Oct 2018 00:00:00 -0400 Walmart is the largest retailer in the world with $485.9 billion in total revenue in 2017, and reaches over 100 million users a month on Walmart.com. This makes Walmart a useful tool to expand your customer base. And with FileMaker, you can streamline the process of working with Walmart.com by integrating your FileMaker app with Walmart Marketplace.

    ]]> Becoming a Partner with Walmart

    Before you can connect your FileMaker app with Walmart, you must first have an account. The onboarding process for Walmart Marketplace is free; however it requires you to be approved based on a series of questions about your business. After you submit your application, Walmart will review it and will let you know if you qualify to be a partner and they will give you a sellers account. From there, you will be able to start integrating with the Marketplace API.

    Getting your Keys to the API

    Once you are a Walmart partner, the first step of the integration is to generate and obtain your API keys. Go to the Developer Center and select your account. From here you will be able to navigate to the API Keys page.

    FileMaker Walmart Developer CenterFrom the API Keys page, you will see your Client ID and Client Secret (if either of these are empty, or you would like them changed, click the Reset Client Id and Client Secret button). You will then need to copy these to use later. Keep the secret in a safe place as this is essentially your password and should not be shared with anyone else. As of September 27th, 2018, Walmart has upgraded their authentication methods to use a token-based authentication vs the signature-based method. This greatly simplifies the authentication while still maintaining a high level of security, so you will want to make sure you grab the right information.

    FileMaker Walmart API Keys

    Authentication

    Once you have your API information, you will need to authenticate your solution with Walmart Marketplace API. At a high level, in order to authenticate your solution, you will need to get the token by using an Insert from URL with token address and the correct cURL information.

    Set Variable [ $url ; Value: "https://marketplace.walmartapis.com/v3/token" ]
    Set Variable [ $data ; Value: "grant_type=client_credentials" ]
    Set Variable [ $auth ; Value: Base64Encode ( $clientID & ":" & $clientSecret ) ]
    Set Variable [ $cURL ; Value: "-X POST" & ¶ &
                    "-H \"Accept: application/json\"" & ¶ &
                    "-H \"Authorization: Basic " & $auth & "\"" & ¶ &
                    "-H \"Content-Type: application/x-www-form-urlencoded\"" & ¶ &
                    "-H \"WM_QOS.CORRELATION_ID: " & $randomString & "\"" & ¶ &
                    "-H \"WM_SVC.NAME: Walmart Marketplace\"" & ¶ &
                    "-H \"WM_SVC.VERSION: 1.0.0\"" & ¶ & 
                    "--data @$data" ]
    Insert from URL [ $result ; $url ; cURL options: $cURL ; Do not automatically encode URL ]
    

    The result will be a JSON-formatted text containing an access token. You will need to use this token to make other calls. The token only lasts for 15 minutes, so you will need to repeat this process in your code to get a new token.

    Making Requests and Parsing the Response

    Before you make requests, it is important that you understand JSON and cURL. Once you are comfortable with those, look through the Walmart Marketplace Docs. There you will be able to see all of the functions that you can use, such as pulling, tracking, and acknowledging orders, pulling and updating inventory, and more. The Get Inventory request will pull a item by its SKU and return the inventory information.

    Request:

    Set Variable [ $url ; Value: "https://marketplace.walmartapis.com/v2/inventory?sku=1234" ]
    Set Variable [ $cURL ; Value: "-X GET" & ¶ &
                    "-H \"Accept: application/json\"" & ¶ &
                    "-H \"Authorization: Basic " & $auth & "\"" & ¶ &
                    "-H \"WM_QOS.CORRELATION_ID: " & $randomString & "\"" & ¶ &
                    "-H \"WM_SVC.NAME: Walmart Marketplace\"" & ¶ & 
                    "-H \"WM_SEC.ACCESS_TOKEN: " & $accessToken & "\"" & ¶ & 
                    "-H \"Content-Type: application/x-www-form-urlencoded\"" ]
    Insert from URL [ $result ; $url ; cURL options: $cURL ; Do not automatically encode URL ]
    

    Response:

    {
     "sku":"1234"
     "quantity":
      {
       "unit": "EACH",
       "amount": "0"
      },
     "fulfillmentLagTime":1
    }
    

    I strongly suggest taking a look at our accompanying example file as certain portions of the API can be a bit tricky. For instance, the API does not handle the standard carriage return FileMaker uses for new lines, so you must use char ( 10 ) to denote a new line in order for the Walmart API to handle the request correctly.

    Conclusion

    Integrating your FileMaker app with Walmart Marketplace will streamline your workflow allowing you to take on more orders with the confidence that you will still make your deadlines. Feel free to contact us if you need further assistance or to discuss getting your Walmart account integrated with FileMaker.

    ]]>
    <![CDATA[IoT, FileMaker, and You]]> https://dbservices.com/blog/iot-filemaker-and-you https://dbservices.com/blog/iot-filemaker-and-you Thu, 13 Sep 2018 00:00:00 -0400 The Internet of Things (IoT) is quickly taking over our day to day interactions with the world. Forbes has predicted the global IoT market to grow to $8.9T in 2020, while the manufacturing and healthcare industries are predicted to spend $890B and $1.335T respectively. Is IoT a good fit for your business? We take a look at how the the Internet of Things can help improve your productivity and quality.

    Let's first define IoT. To put it simply, IoT is connecting any device to the internet. Now you may be thinking my cell phone connects to the internet, is it an IoT device? The answer would be yes. However for the purpose of this discussion we are focusing on use cases that can be applied to a common business problem using a simple device: a button.

    ]]> IoT in Business

    IoT has many uses today from inventory control, temperature monitoring, asset management, and product optimization. Much like FileMaker itself many IoT solutions are custom built to fit the needs and requirements of the individual business. Let us imagine your company produces the latest and greatest widget. These widgets require material to be supplied to each machine. As the material supply for each machine can run out at random times, how will you know when to resupply?

    Many companies rely on radios or other employees to constantly monitor and check to ensure the material remains supplied. What if each machine had a simple mechanism to request new material, allowing your FileMaker application to simultaneously gather metrics and notify key people when a machine needs material, maintenance, or went offline.

    IoT to the Rescue

    Amazon IoT Button

    Amazon's AWS IoT Button is a cloud-programmable button that allows for a quick setup to get you up and running. We chose this for our article because of its simple deployment and programming. For a larger scale deployment a custom IoT device can be built from scratch to fit your business needs. This button allows you to configure 3 separate button pushes (short, long, and double), which can be used to trigger separate actions within your custom FileMaker Application.

    Integrating with FileMaker

    Continuing with the AWS approach we look to AWS Lambda to handle the communication between the physical world and digital world. Lambda is serverless computing allowing you to run code without provisioning or managing servers. You pay only for the compute time you consume - there is no charge when your code is not running.

    AWS Lambda Configuration

    AWS Lambda acts as a middle man between the physical button and the FileMaker application. The sample code provided for Lambda is written in node.js. It allows you to enter your own information as environmental variables making it even simpler for you to configure.

    AWS Lambda FileMaker Configuration

    When the IoT button is pressed, Lambda will perform our node.js code that makes use of the FileMaker Data API to communicate with FileMaker Server. In this example we create a record in a WEB_LOG table then perform a script to handle the type of button pushed. Out of the box the button can distinguish between a single, double, or long click type.

    {"serialNumber":"8675309","batteryVoltage":"1714mV","clickType":"SINGLE"}
    

    The beauty of this approach is that with the power of FileMaker scripting you can do anything with this information. Just a few ideas to get you started.

    • Display a chart on a dashboard to monitor the count of maintenance requests by department.
    • Broadcast on a series of TV monitors throughout the facility for everyone to keep an eye on production status.
    • Email or send a text message to key members of the company.
    • Fully automate your reorder process by creating a PO within FileMaker and integrating suppliers to purchase inventory.

    Conclusion

    Integrating your custom FileMaker app with a custom IoT solution gives you endless possibilities to streamline, monitor, and create an overall better business environment. Feel free to contact us if you need further assistance or to discuss getting your IoT device integrated with FileMaker.

    ]]>
    <![CDATA[FM Quickstart 17]]> https://dbservices.com/blog/fm-quickstart-17 https://dbservices.com/blog/fm-quickstart-17 Mon, 06 Aug 2018 00:00:00 -0400 FM Quickstart is a free FileMaker template built by our team of certified developers to allow you to quickly create a custom application for your organization. It's designed to use the latest version of FileMaker and has 8 main modules to work with:

    • Dashboard
    • Companies
    • Locations
    • Contacts
    • Quotes
    • Invoices
    • Reports
    • Setup

    What's great about FM Quickstart is that it can be used immediately out-of-the-box, or can be easily modified to fit your business needs.

    Let's go ahead and take a look at each module:

    ]]> Dashboard

    The Dashboard module displays actionable items such as open quotes and the prospects that you will follow up with. You have the option to create new contacts, new quotes, or new invoices quickly for your convenience by using the Quick Actions in the top right.

    fm quickstart 17 dashboard

    Companies

    The Companies module is new and used to manage companies you work with. You can input company information, the industry they are in and where they are located. You also have the ability to associate the salesperson with the company and identify what type of contact they are. At the bottom of the page you can create the contacts that work for the company and it will sync with the contacts module.

    fm quickstart 17 companies

    Locations

    The locations module is new and allows you to track locations of companies you work with. Google Maps is embedded into the module so you can view the location and get directions. Below the address information you can add the contacts that work at the company location. This will also apply the address location to the contacts.

    fm quickstart 17 locations

    Contacts

    The contacts module displays a list of all your business's contacts. You can enter in their name, title, company, source of contact, address, which account manager is assigned to a contact, and methods to reach the contact (such as phone numbers and email addresses). For more detailed information about the contact, you can view the follow up dates, quotes, invoices, documents, and notes associated with them.

    fm quickstart 17 contacts

    Quotes

    The Quotes module allows you to manage quotes for each customer or prospect. You can view the status of the quote and when it was last updated by the salesperson, and can quickly add line items with an easy-to-search product selector. And to make the flow from a quote to an invoice as smooth and efficient as possible you can create an invoice from a quote.

    fm quickstart 17 quotes

    Invoices

    The Invoice module is used to track invoices sent out to customers and the status of them. You can apply as many payments as needed in the Payments tab, and can view the amount due on the bottom right. And if there are any documents that you'd like to store with the invoice, you can do so in the Documents tab.

    fm quickstart 17 invoices

    Reports

    The Reports module is used to run reports on the data in your application in a centralized location, and already has included an accounts receivable report and a sales report. You can select the criteria you want for the report before running it, such as date range, customer, etc., that way you can slice and dice your data to get the answers you were looking for. And the reports themselves are interactive, allowing you to view the details of an invoice as needed.

    fm quickstart 17 reports

    Setup

    The Setup module is a place for administrators to enter data needed to support the main modules. The setup modules are:

    • Preferences: Allows you to input application-wide settings, including the information of your company, such as your address and logo. The logo will appear on the top right corner of every screen in the application.
    • Products: Allows you to manage the products that you sell to your customer.
    • Users: Allows you to manage the users of the application, including their access privileges.

    fm quickstart 17 setup

    Conclusion

    FM Quickstart is a free FileMaker CRM that's fully customizable and works out-of-the-box with 8 main modules to support your contact and invoicing needs.

    To begin your custom application journey, please visit our FM Quickstart website to download a copy of the template. It is a free download and has been optimized to run on the latest version of FileMaker.

    And to learn more about the FileMaker 17 platform, check out our FileMaker 17 Overview article.

    ]]>
    <![CDATA[FileMaker Gmail Integration]]> https://dbservices.com/blog/filemaker-gmail-integration https://dbservices.com/blog/filemaker-gmail-integration Tue, 10 Jul 2018 00:00:00 -0400 In 2016, Google announced that Gmail has over 1 billion monthly active users. Many companies even leverage Gmail to set up accounts using their company domain name. If you have a FileMaker CRM, or are wanting to have one, adding your email correspondence will help improve the visibility you have over communications with contacts. In this article we will demonstrate how you can import your HTML emails from Gmail directly into your FileMaker system.

    ]]> Creating a Free Developer Account

    The first step of this integration is to create a project in the Google Developers Console if you do not already have one. Once you have created a project, you will then need to enable the Gmail API. Once it is enabled, go to the menu and go to APIs & Services > Credentials. We will need an OAuth 2.0 client ID and secret. If you have not done this before, you will need to create these credentials and set up the OAuth consent screen. We will be using HTTP requests, so you will want to mark that the API will be accessed via a web browser client. You will also need to set the redirect URI to https://dbservices.com or any valid website that will not redirect to something else.

    Google Authentication

    This is only used as a landing page for authentication and does not need to be anything special. Once the Client ID has been created, copy the Client ID and Client Secret into your solution. Keep your client secret hidden from the world as the combination of the Client ID and Client Secret will be used to authorize your solution to access the end user's account.

    Authenticating with Google and OAuth 2.0

    Once you have your API information, you will need authenticate your solution with the Gmail API. Google provides an OAuth 2.0 playground to view how to authenticate, or you can reference our sample database which accompanies this article. At a high level, in order to authenticate your solution, place the user into a web viewer at the API authentication endpoint. This will prompt the user to log in with their own credentials and choose the account to allow your solution to make the connection. Once they have agreed, they will be sent to the address specified in your redirect URI that was passed in the authentication request. When the user is redirected to the new address, the address will now have a URL encoded parameter, which will be the code needed for the next step.

    Set Variable [ $code ; Value: "https://dbservices.com/?code=058baec5-cfd7-42ae-b3ea-c0683fa4b6b5" ]
    

    Once you have extracted the code, you will use the code provided, along with your ID and secret to get your access token which will be used to make any API requests.

    Making Requests and Parsing the Response

    Before you make requests to the Gmail API, it is important that you understand JSON and cURL. Importing emails from Gmail requires 4 main requests: List Messages, Get Message, Get Attachment, and Modify Message. The List Message request will be needed to pull all messages based on the query provided. For example, you can find all emails after a certain timestamp by using the following:

    Set Variable [ $cURL ; Value: "-X POST
                                   --header \"authorization: Bearer XXXXXXX\"" ]
    
    Insert from URL [ Select ; With Dialog: Off ; $result ; ""https://content.googleapis.com/gmail/v1/users/me/messages?q=after%3A" & $startTimestamp" ; $cURL ; Do not automatically encode URL ]
    

    Keep in mind that the timestamp will need to be formatted for UNIX. Once a successful request has been made, a JSON-encoded response will be returned with the list of message IDs. You will then be able to use the function JSONGetElement() to pull any information out of the response that you wish.

    {
     "messages": [
      {
       "id": "1234567890",
       "threadId": "8675309"
      }
     ],
     "resultSizeEstimate":1
    }
    

    For example, you can get the ID by using the following function:

    Set Variable [ JSONGetElement ( $result ; "messages[0]id") ]
    

    Now that you have the ID of the message, you can use the Get Message request, which will give you the details of the message. Some messages will include an attachment ID, which you will then need to use the Get Attachment request. Finally, if you need to mark the message as read, or archive it, or just change where the message is located, you will need to use the Modify Message request. The Modify request is a little different from the others as it is a POST rather than a GET, so you will have to pass the extra information as JSON in the cURL options.

    Set Variable [ $cURL ; Value: "-X POST
                                   --header \"authorization: Bearer XXXXXXX\"
                                   --header \"Content-Type: Application/json\""
                                   --data @$modifyJSON" ]
    
    Insert from URL [ Select ; With Dialog: Off ; $result ; "https://www.googleapis.com/gmail/v1/users/me/messages/" & $messageID & "/modify" ; $cURL ; Do not automatically encode URL ]
    

    I strongly suggest taking a look at our accompanying example file as certain portions of the API can be a bit tricky. For instance, pulling the details of the message is a little complicated and you will need to implement loops to traverse through the response to grab the specific information that you need.

    Conclusion

    Integrating your FileMaker app with Gmail will greatly improve your business's visibility over communication with your company's contacts. Feel free to contact us if you need further assistance or to discuss getting your Gmail account integrated with FileMaker.

    ]]>
    <![CDATA[FileMaker 17 Starter Solutions]]> https://dbservices.com/blog/filemaker-17-starter-solutions https://dbservices.com/blog/filemaker-17-starter-solutions Thu, 28 Jun 2018 00:00:00 -0400 The FileMaker Starter Solutions are here for you to start your journey in developing your dream application. FileMaker comes with 6 Starter and 16 Sample templates that assist in starting a new application and allow you to customize it to your business needs.

    The Six Starter Solutions are:

    • Assets
    • Contacts
    • Content Management
    • Inventory
    • Meetings
    • Tasks


    The 16 Sample Solutions are:

    • Assets
    • Contacts
    • Content Management
    • Estimates
    • Event Management
    • Expense Report
    • Inventory
    • Invoices
    • Meetings
    • Personnel Records
    • Product Catalog
    • Projects
    • Research Notes
    • Resource Scheduling
    • Tasks
    • Time Billing

    The 6 starter solutions are simple and a great springboard to create new FileMaker apps to manage your business. If however you need more advanced solutions, check out the 16 sample solutions. They have more features than the starter solutions, and may ultimately be a better fit for your business needs.

    Additionally, DB Services offers FM Quickstart, a free and totally unlocked CRM FileMaker template. FM Quickstart offers a feature-rich starter solution for managing contacts, orders, calendars, tasks, and more in FileMaker that is easy to use and customize.

    ]]> Difference From Past Years

    All 6 Starter Solutions have been designed with Universal Touch theme. The new theme includes a variety of styles so you can more easily combine the different styles in the same layout. And when you install FileMaker Go on your iPad/iPhone, it comes with 4 sample solutions: Contacts, Event Management, Invoices, and Projects. To modify the FileMaker Go solutions you will need to email them to your desktop and make changes in FileMaker Pro Advanced.

    Creating a New Application

    To create a new starter solution, simply open FileMaker Pro Advanced and the launch center will come up. If you don’t already own FileMaker, you can download a free FileMaker Trial to give the templates a try.

    From here go to Create New. You can choose one of the 6 Starter Solutions or you can scroll down to the samples to view the 16 Sample templates.

    filemaker 17 starter solutions page 1

    filemaker 17 starter solutions page 2

    The starter solutions are designed for the desktop, but can be accessed on an iPhone, iPad, or Webdirect. If you would like layouts customized to iPhones, iPads, or WebDirect, check out the sample solutions.

    Let's take a look at the 6 starter solutions.

    Assets

    The Assets starter solution is designed to track office assets, where the assets are purchased, and who is using them. Once the information is put in, the name, type, purchase date, price and used by date are at the top of the page for improved readability.

    filemaker 17 assets starter solution

    Meetings

    The Meetings starter solution is used to track meetings, along with setting agenda topics and assigning action items for each meeting. The meeting information is presented at the top of the page for improved usability. The starter solution gives you a tab on the right to write down any notes you may have for the meeting and also put it at the top of the page. The starter solution also includes the topics and action items tabs to put in information but with a different layout to make it easier to navigate.

    filemaker 17 meetings starter solution

    Contacts

    The Contacts starter solution is used to manage personal and business contact information for several individuals. Below the picture you are able to input the contact name and job title and to the right you are able to enter and view additional information such as addresses and phone numbers. Once this information is put into the template, the contact name and company displays at the top for usability.

    filemaker 17 contacts starter solution

    Content Management

    The Content Management starter solution is used for collecting and organizing documents, images, music etc. At the top of the page it displays the name, the type of product/service, the status of it, and the location of it. This new addition makes it easier to quickly identify the record you are looking at.

    filemaker 17 content management starter solution

    Inventory

    The Inventory Starter Solution can be used to manage inventory levels of products and supplies, along with tracking part numbers, transaction history, and more. The template has made significant changes by first changing where the information in inputted. The three tabs are for the part, the cost of the part, and the stock of it. In the part tab it gives the option to put in the part number, barcode, description, location and date. With the cost tab you can calculate the unit cost and unit price, along with making it taxable. Below the category line is a stock button that can be used to order more of the product/part. Once all the information is put in, the name, part number, units on had, and availability is displayed at the top of the page to alert you of the part's current status.

    The Inventory Starter Solution is a great starting point for creating an inventory module as it contains only 2 tables: products and inventory transactions.

    filemaker 17 inventory starter solution

    Tasks

    The Tasks starter solution can be used to track tasks and the priority, status, and due dates of those tasks, and you can add as many assignees to the task as you wish. Any attachments are added to the right of the assignee with a description of the attachment available. Below the attachment is the overall description of the task. After all this information is put in, the task, status of the task, category and due date are displayed at the top for ease of use.

    filemaker 17 tasks starter solution

    Conclusion

    FileMaker has continued to improve upon the starter solutions from years past to make it easier for you to create your own solution, and with now 6 starter solutions to compliment the 16 sample solutions, you have more options than ever before.

    If you are looking for a CRM and the starter solutions are not fitting your business needs, check out our own template, FM Quickstart. It is a free download and has been optimized to run on the latest version of FileMaker.

    And to learn more about the FileMaker 17 platform, read our FileMaker 17 Overview article.

    ]]>
    <![CDATA[FileMaker 17 Overview]]> https://dbservices.com/blog/filemaker-17-overview https://dbservices.com/blog/filemaker-17-overview Tue, 15 May 2018 12:08:00 -0400 A new and exciting version of the FileMaker platform is here! 2018 marks over 33 years in business for FileMaker, Inc. In a collection of articles, we review what’s new in the FileMaker platform, specifically the features for FileMaker Pro Advanced 17, FileMaker Server 17, FileMaker Go 17, along with FileMaker Cloud. Below you will find an overview of our favorite features with links to our more in-depth articles and example videos.

    What's New?

    • New features includes native support for Found Set Portals, redesigned layout tools, multiple email attachment support, and create directories option when saving files.
    • New mobile features include Local Notification support, auto-complete data entry improvements, keyboard shortcut support, sensor function support (battery, location, altitude, speed, acceleration, magnetic, steps, air pressure), and drag and drop via iOS split screen.
    • FileMaker User Licensing is the default licensing moving forward. This is similar to FileMaker Licensing for Teams (FLT) and includes FileMaker Pro Advanced as the default client. You can now install up to 3 FileMaker Servers for more flexibility for deployment and testing servers. You will also receive a single license key for all products. Overall welcomed simplicity to licensing.
    • The new FileMaker Data Migration Tool allows you to migrate your data from one version of your application to another saving you hours when deploying a new version of your FileMaker application.
    • FileMaker Server on premise now includes a new admin console interface similar to the FileMaker Cloud (via Amazon Web Services) and the official release of the FileMaker Data API (RESTful API) with support to upload data into container fields and run FileMaker scripts.
    • FileMaker Cloud for Amazon Web Services (AWS) running CentOS Linux continues to improve and has reached parity for new features supported by FileMaker Server 17. You must have annual licensing in order to use FileMaker Cloud.
    • FileMaker 17 Trial is now for 45 day, giving you more time to check out the product when building a custom application up from 15 days.

    FileMaker Pro Advanced 17

    FileMaker Pro Advanced is the default client moving forward, and while the advanced tools are off by default, you can easily turn them in preferences by selecting “Use Advanced Tools”. FileMaker is a well-rounded platform and this release provides improvements to create custom apps such as improved layout design tools, improved usability, and enhanced security, allowing you to build more sophisticated applications faster than ever before.

    Create Custom Apps

    Upon launching FileMaker Pro Advanced you now see from the File menu a Create Window option that provides you a way to begin with either a Blank application, Converting data to a New Application, or Learn more with a link to the new FileMaker Custom App Academy.

    You can also begin with a starter application or sample application. The new starter applications include Assets, Contacts, Content Management, Inventory, Meetings, and Tasks and all include a good foundation for new applications. The sample applications are the same as prior versions and include Assets, Contacts, Content Management, Estimates, Event Management, Expense Report, Inventory, Invoices, and Meetings, Personnel Records, Product Catalog, Projects, Research Notes, Resource Scheduling, Tasks, and Time Billing.

    Add-On Tables

    In addition you can now add Add-on Tables to your custom apps. Quickly add a common feature which inserts a table, relationship, and portal to the screen for common modules you may want to add in your custom FileMaker applications. The Add-on Table list includes Action Items, Addresses, Attachments, Companies, Email Addresses, General Info, Inventory Transactions, Notes, People, Phone Numbers, and Topics.

    The relationship graph also now shows on the right the text, “If you add a portal to a layout and choose New Add-on Table, new table occurrences are created here for you. Or you can work with the relationships graph yourself. For guidance on creating relationships, see the Custom App Academy.”

    With Add-On Tables we see great potential in the FileMaker Platform for building more rapid applications and potentially bolting on third party products. See FileMaker Add-On Tables in action as Kevin Boehle shows you in a video.

    Found Set Portal

    You can now display the current found set of records in a portal without any extra programming or the need to create a self-join relationship to your table. No additional relationship will be added to your relationship graph. Learn about the FileMake Current Found Set Portal in detail as Nathan Kiefer walks you through the feature in a video

    Redesigned Layout Tools

    You can now work with objects in a group without ungrouping them, allowing you to resize, move, and format individual objects that are in a group without the laborious process of ungrouping them first then later regrouping the objects.

    The Inspector window and Field Picker have been improved so they are no longer floating windows by default allowing you to use the tools more easily especially with multiple monitors as you create and edit layouts.

    Field Picker

    The Field Picker can be resized, great if you are using long field names so you can easily see the fields. Also there is a new Control Style options you can set before dragging a field to a layout so the field appears as desired. Options include Edit Box, Drop-Down List, Pop-Up Menu, Checkbox Set, Radio Button Set, Drop-down Calendar, or Concealed Edit Box. In addition, The Layout Objects window introduced in FileMaker 16 is now a part of the Field Picker allowing you to toggle between Fields and Objects.

    Inspector Window

    The Inspector Window now anchors to the right of your window in layout mode and allows you to toggle your views between Position, Styles, Appearance, and Data. You can still create additional floating Inspector Windows if desired.

    Universal Touch Theme

    A new Universal Touch theme is available that is used by starter applications and add-on table, designed to be simple and work well with iOS apps. The neutral color palette should allow you to customize the theme easily by adding your desired colors to a few styles quickly.

    Multiple Email Attachments

    When sending email directly from FileMaker you can now attach multiple files to the email. The Send Mail script step allows you to insert multiple paths to send multiple files. In prior versions you had to use a third party email plugin to automate sending an email with multiple attachments.

    Create Directories Option

    Script steps that export or save files now include a Create Directories option. In prior versions you had to manually create the folders using a third party plugin and now FileMaker will allow you to do this very easily. Now you can save a PDF or Excel spreadsheet to a subfolder on a user's desktop and have FileMaker create that subfolder.

    Copy and Paste Custom Menus

    You can copy and paste custom menus from one file to another. Developers will rejoice who have built up custom menus as part of their solutions or have multiple files that you wish to streamline custom menus across.

    Show Custom Dialog

    You can now use variables for input fields in custom dialogs. When specifying the input field you can now select variable as the value. No longer will you have to use a global field and now you can use simple variables you define in your script.

    Account Lockout

    Users who fail to log in to a hosted file local account several times will be locked out of the application for several minutes. This will help prevent brute force attacks on FileMaker Servers.

    FileMaker Pro Advanced Technical Specs

    FileMaker Pro Advanced 17 is supported on Windows 10 Pro and Enterprise, Windows 8.1 Standard and Pro, Windows 7 SP1 Professional and Ultimate, macOS High Sierra 10.13, and macOS Sierra 10.12.


    FileMaker Go 17

    FileMaker Go is for iPad and iPhone users and has all the features provided in FileMaker Pro Advanced plus specific iOS features listed below, except for developer tools. You need FileMaker Pro Advanced on your desktop to build your application. The new version of FileMaker Go 17 is available in the App Store.

    Local Notifications

    A new script step Configure Local Notification is now available that allows you to display a notification alert to an iOS device when FileMaker Go is not running or is in the background. You can queue or clear a local notification for an iOS device. Learn about FileMaker Push Notifications as Kiyan Allaei demonstrates how to use the new Configure Local Notification script step in a video.

    Sensor Functions

    You can now return the value of a specified sensor for an iOS device using the GetSensor( ) function. Available sensors include Battery, Location, Attitude, Speed, Acceleration, Magnetic, Step Counts, and Air Pressure. Learn about FileMaker Sensor Functions as Armen Nahapetian demonstrates how to use the new GetSensor script step in a video.

    Auto-Complete

    Data entry in FileMaker Go will be as easy as doing data entry on FileMaker Pro Advanced as you can now add values from a value list using auto-complete. Even if you're not using auto-complete and have large value list you will see improvements. This is a great welcome to mobile customers using FileMaker Go.

    Keyboard Shortcuts

    Users who use Bluetooth keyboards when working with FileMaker Go now have common keyboard shortcuts available like Find Mode. Hold down the Command key and you will see all the shortcuts available. Available shortcuts include New Record, Duplicate Record, Delete Record, Omit Record, Show All Records, Find Mode, Modify Last Find, Sort Records, Print, Close Window, Help, and Launch Center. A great addition for power mobile users.

    Drag and Drop

    From within the FileMaker Go application via split screen you can drag and drop an image, file, and text data. For those who utilize split screen this will create a better user experience between your application and other apps you use. You can drop from FileMaker Go to other applications if they support drag and drop too.

    FileMaker Go 17 Technical Specs

    Requires iOS devices running iOS 11.2 or later on the iPad or iPhone devices.


    FileMaker Server 17

    FileMaker Server is known for its ease-of-use and ability to run without any problems. The newest version focuses on an entirely new admin console interface, performance improvements, security updates, and many enhancements related to the FileMaker Data API, FileMaker Admin API (beta), and the FileMaker Server Admin Console.

    FileMaker Data API Official

    The future of FileMaker Custom Web Publishing is now live and no longer in beta supporting new features such as uploading containers and calling FileMaker scripts. FileMaker continues to support the FileMaker PHP API for Custom Web Publishing (via Command Line Interface only) and has been clear to developers for over a year that your web apps should be built using the new REST API. Learn more about the Official FileMaker Data API as Mason Stenquist goes in depth about the Official FileMaker Data API in a video.

    FileMaker Server Admin Console

    The FileMaker Server Admin Console has been redesigned with a more responsive, simpler user interface. The interface looks similar to the FileMaker Cloud interface and is much more responsive than the previously-built-on-Java admin console, embracing modern responsive web design via HTML and Javascript. New notifications allow you to easily see messages from the Admin Console. See the simplicity of FileMaker Server 17 Admin Console as Kaz McLamore shows you what to expect in the new FileMaker Server 17 Admin Console in a video.

    FileMaker Server Admin API

    The FileMaker Server Admin API allows administrators to create a web interface to manage servers. The FileMaker Server Admin API was previously only available on FileMaker Cloud but is now available for on-premise FileMaker Servers and is in beta till September 27th, 2019. Learn about the FileMaker Server Admin API by checking out a previous article when the FileMaker Server Admin API was released for FileMaker Cloud as Mason shows you how the new FileMaker Server Admin API works with FileMaker Cloud in a video.

    FileMaker Server 17 Technical Specs

    Compatible with Windows Server 2016 Standard Edition, Windows Server 2012 R2 Standard with Update Microsoft KB2919355, macOS High Sierra 10.13, and macOS Sierra 10.12. If you're on Windows Server 2008 it’s a good time to think about moving to FileMaker Cloud.

    WebDirect browser support includes Safari 11.x, IE 11.x, Microsoft Edge 41+, Chrome 64+. Mobile browsers Safari on iOS 11.2 minimum and Chrome 64 on Android 7.x. Note that Firefox is not on the list of supported browsers.


    FileMaker Cloud

    FileMaker Cloud was initially released in September 2016 and is a great product for most customers to consider especially if you need to replace your current server hardware! 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. FileMaker Cloud 1.17 will support most of the features of FileMaker Server 17. This is the first release in which FileMaker Cloud is on parity to FileMaker Server 17 upon release. The FileMaker Data API is no longer a trial for FileMaker Cloud. Read about FileMaker Cloud 1.16 released in November 2017 for AWS from Kiyan Allaei.


    FileMaker Data Migration Tool

    Going from a development version of your application to a production version now has gone from days to hours, and from hours to minutes with the new FileMaker Data Migration Tool. For customers with large amounts of data this is a huge deal. Learn more about the FileMaker Data Migration Tool as Ethan demonstrates in a video and includes a download file to make the tool easy to use for you.


    FileMaker User Licensing

    As of launch of FileMaker 17 there is a new licensing model in place. FileMaker’s goal is to continue to create simplicity in understanding licensing for new and existing customers across all the products in the platform. Just count the number of users who will access your FileMaker application and that is number of seats you need to license your app. Users can use the entire platform and administrators can now deploy FileMaker Server up to 3 times.

    No longer can you buy just an individual product; instead users have access to the entire FileMaker platform. As one of the top FileMaker Partner Resellers in the world, Jared Ellison will set your expectations for FileMaker User Licensing as he discusses the new and improved licensing and how customers immediately transition to FileMaker User Licensing.


    Summary

    The FileMaker platform continues to be the leader in creating innovating 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 17 platform further emphasizes this.

    FileMaker Go continues to give the platform a competitive edge and this version has many updates related to iOS. Organizations can create innovative and rapid custom applications for iOS with infinite ROI. Creating prototype applications on the iPad and iPhone is a matter of hours not months.

    FileMaker 17 is a great release and has features everyone can benefit from. We look forward to building innovative custom applications using the new tools for Mobile, Web and the Desktop.

    ]]>
    <![CDATA[FileMaker Go Push Notifications]]> https://dbservices.com/blog/filemaker-go-push-notifications https://dbservices.com/blog/filemaker-go-push-notifications Tue, 15 May 2018 12:07:00 -0400 With the release of the FileMaker Go 17, you can now create a push notification on the user's iOS device. This script step gives you the ability to not only customize the push notification, but also to run scripts after the user interacts with the notification.

    Previously there was no way to notify the user if FileMaker Go was either running in the background or closed entirely; however, since iOS provides "local notifications" you can now set up notifications to be triggered at a certain date or time or even if the user's device comes within range of an iBeacon.

    Let's take a look at how you can set up push notifications using FileMaker Go.

    ]]> How to Set Up a Notification

    There are two main choices in the Configure Notification script step; "Queue" and "Clear". The "Clear" option allows the developer to specify the name of the notification that will be deleted in the form of a calculation. The "Queue" option does the opposite, configures a local notification based on several specified settings

    • Notification name
    • Script triggered on notification interaction
    • Timed delay for when the notification will trigger
    • Title of notification
    • Body text of notification
    • Button labels (maximum of 3 buttons)
    • Setting buttons to bring application to foreground

    The same script will always trigger regardless of which button is selected; however, the script parameter will be set to a return delimited list, with the name as the first value, the button label as the second value, and a Boolean representing whether or not the application was brought to the foreground.

    FileMaker Push Notifications Setup

    Here is an example of the Configure Notification script step, that has two buttons set up, with one bringing FileMaker Go to the foreground and the other leaving it in the background.

    The notification created in this example will return the following list if the second button is selected.

    FileMaker Push Notification Result

    If notifications are disabled on the iOS device, the notifications will not appear, and the triggered script will be given the parameter "NotificationNotAllowed". If notifications are enabled and the user presses the notification itself and not one of the options, the triggered script will be given the parameter "NotificationSelected".

    What If FileMaker Go is in the Background?

    Since notifications will often appear when FileMaker Go is not in the foreground, there are different behaviors that will occur based on the status of the application.

    If Go is not running when the user interacts with a notification that triggers a script, Go will launch and run its regular startup process before running the triggered script. If the user dismisses the notification and there is no triggered script, Go is not launched.

    If Go is running in the background but not closed, re-authentication may need to be done based on the file's security settings before any triggered scripts can run; if re-authentication fails, Go will not launch. By default, Go will be brought to the foreground when a script is run; however, if specified, triggered scripts can run on the application without bringing it to the foreground. Apple's guidelines state that the application only needs to be moved to the foreground if there is required user action, if not it is best to keep the app in the background.

    Conclusion

    The ability to set local notifications in FileMaker now enables us to grab users' attention even if they are not using FileMaker Go. You can notify users at a specified date and time or if they come within range of an iBeacon or geofence. Using push notifications can help streamline users to where they need to be, saving them time and eliminating the need to create outside reminders for daily tasks.

    ]]>
    <![CDATA[Official FileMaker Data API]]> https://dbservices.com/blog/official-filemaker-data-api https://dbservices.com/blog/official-filemaker-data-api Tue, 15 May 2018 12:06:00 -0400 In FileMaker 16 we were introduced to the trial version of the FileMaker Data API, but with 17 the Data API is now live and ready to take the place as FileMaker's Custom Web Publishing technology of choice. With the removal of the ability to control the PHP or XML API from the FileMaker Server Admin Console and only allowing you to enable/disable it via the command line, it's pretty clear that FileMaker sees the Data API as the future.

    The 2 biggest additions to the Data API are the ability to run scripts and the ability to upload directly into a container field, but they've also completely modified every single call from the trial version. Most of the changes are small, but they are worth going over, and you'll want to update before September 27, 2018 as that is when the trial of the Data API expires for FileMaker Server 16. 

    ]]> Data Available per User

    The amount of data you'll have available is 2 GBs per user, per month, and will be shared and tracked annually.

    FileMaker Data API - Data Available per User

    You can view your current data usage on the FileMaker Server Admin Console. Keep in mind that transferring lots of container data could use your data faster.

    Enabling Data API

    To use the Data API, you'll need to enable it in a few places. If you are using FileMaker Cloud the Data API will be enabled by default, but if you are using FileMaker 17 Server you'll need to enable it in the admin console. Once logged in you can find the setting under Connectors > FileMaker Data API. You'll also have to enable the privilege set for the account you'll be signing in with and ensure it has "Access via FileMaker Data API - FMS only (fmrest)" checked under file > manage > security.

    FileMaker Data API Admin Console SettingAuth Changes

    The FileMaker Data API now uses a more standardized authentication method. You'll still have to get a session token from FileMaker that is good for 15 minutes, only instead of passing the username and password as in your post body, you'll need to send them as a basic authorization header where the username and password are base64 encoded. You'll also have to send an empty JSON object in the body.

    -X POST 
     https:///fmi/data/v1/databases//sessions 
     -H 'Authorization: Basic YWRtaW46cGFzc3dvcmQ=' 
     -H 'Content-Type: application/json' 
     -d '{}'
    

    Results:

    {
     "response": {
        "token": "41a699b37017c9fa10d140e4bf820727f57b2447036dcdd821"
     },
        "messages": [
     {
        "code": "0",
        "message": "OK"
     }
     ]
    }
    

    You can download Postman to test API calls, which is the tool used in this article's video. You can also download the Postman collection at the bottom of this article to help you get started making REST calls.

    Each additional call to work with the data will require that you pass the token in the header. Instead of using the custom FM-Data-token headers now, you'll use standard Authorization headers, and you'll now have to prepend "Bearer" before your session token.

    -X GET 
     https:///fmi/data/v1/databases//layouts/feed/records 
     -H 'Authorization: Bearer 41a699b37017c9fa10d140e4bf820727f57b2447036dcdd821'
    

    Data API Scripts

    You can now run a FileMaker script using the Data API, which is crucial to making an awesome web solution work with FileMaker, but there are some quirks to keep in mind. For instance there is no Run Script command; instead, you can call up to 3 scripts per request:

    • Pre-request
    • Pre-sort
    • After-sort

    And you can only run scripts for the following commands:

    • Create Record
    • Delete Record
    • Get Record
    • Get Records
    • Find Records

    We recommend that you use the Create Record command when you want to run a script, and create a record in a log table to keep track of all the script commands that are coming into your FileMaker system. The other issue with running a script from some of the other commands is that if you do not find any records, your script and pre-sort script will not run. The pre-request script would still run though.

    Uploading Into Container Fields

    A new trick that FileMaker has learned, that no previous Custom Web Publishing API could do, is upload directly into a container field. With past APIs your best bet was to upload to your web server and then send the url location of the upload and have a FileMaker script Insert from URL that location. Now you can upload directly to a container field. To do so you'll need to post the data to a URL that specifies the layout, record, container name, and container repetition. This is also the only API call that requires the content-type header to be set to multipart/form-data. And finally the cURL key name needs to be "upload"

    -X POST 
    https:///fmi/data/v1/databases//layouts/feed/records//containers//
    -H 'Authorization: Bearer 41a699b37017c9fa10d140e4bf820727f57b2447036dcdd821' 
    -H 'content-type: multipart/form-data' 
    -F 'upload=@C:\Users\Administrator\Pictures\test.png'
    

    Responses

    The responses have changed a bit too. As you can see below, in 17 the response now puts all data in response.data, and error codes are now located at messages[0].code implying you could have multiple errors returned.

    FileMaker 16

    {
      "errorCode": "0"
      "data": "[{
        "fieldData": { 
          ... 
        },
        "portalData": {  
          ...
        }
      },
      "modId": 2, 
      "recordId": 123
      }]"
    }
    

    FileMaker 17

    {
      "response": {
        "data": [
        {
          "fieldData": {         
             ... 
          },
          "portalData": {
             ... 
          },
        "modId": 2, 
        "recordId": 123
        }
      ]
      },
      "messages": [{"code":"0","message":"OK"}]
    }
    

    It will also now always return a message whether there was an error or not and will return "OK" if there were no errors. Grouping the data and messages this way helps to separate things a bit nicer and gives more flexibility to add additional metadata in the future such as field and layout information which was available in previous CWP APIs.

    Why All the Changes?

    Although the FileMaker Data API has changed quite from the trial, the changes help make the API similar to the Admin and Cloud API, making it easier to learn them all. Also the addition of the v1 in the URL paths is important for ensuring FileMaker is able to make changes in the future without breaking existing integrations, and simply have new integrations use the v2 path etc as new versions are released.

    By moving everything towards industry standards it makes it much easier to have web developers integrate with FileMaker as they don't have to learn a custom API--they just use the same restful API calls they use to integrate with any other software out there--which will ultimately result in better and more web integrations.

    Conclusion

    Now that the FileMaker Data API is officially live, we recommend using it for all future web integrations. You should also consider switching current web integrations over to the Data API as the XML and PHP APIs will likely be deprecated in future versions. Contact us if you need help integrating with the Data API.

    ]]>
    <![CDATA[FileMaker User Licensing]]> https://dbservices.com/blog/filemaker-user-licensing https://dbservices.com/blog/filemaker-user-licensing Tue, 15 May 2018 12:05:00 -0400 As of FileMaker 17 a new and improved licensing program called FileMaker User Licensing is available. FileMaker is no longer selling individual products; instead they are selling the entire platform for users. As FileMaker Growth Partner of the Year for the Americas we are one of the top FileMaker Partner Resellers in the world. Here we provide you with what to expect with the new FileMaker User Licensing program.

    • FileMaker User Licensing requires a minimum of five users to purchase. Any customer can now add users in increments of one, before you had to add users in packs of five users.
    • FileMaker's previous default licensing program, FileMaker License for Teams (FLT), has been replaced along with the Legacy Licensing programs AVLA, VLA, AFLT, and FLT. All customers will be immediately transitioned to FileMaker User Licensing when your license keys arrive via email.
    • FileMaker User Licensing comes with the entire FileMaker Platform: FileMaker Server, FileMaker Pro Advanced, FileMaker Go, FileMaker WebDirect, and the FileMaker Data API.
    • All customers will receive a single license key for each contract and the license key will not change from version to version.
    • You will be able to install up to 3 FileMaker Servers with FileMaker User Licensing. Great for customers who have multiple servers and utilize testing servers and/or backup servers. Only 1 FileMaker Server can be used for FileMaker Cloud.
    • FileMaker Cloud hosting must be done on annual licensing, as it will not work on perpetual (bought outright) licenses.
    • User pricing is tiered based on 5-9 users, 10-24 users, 25-49 users, 50-99 users, 100-249 users, 250-499 users, and 500+ users. Some customers may save money, while others may pay more based on user count.
    • Perpetual licensing is still available though not recommended for most business cases and is 3x the price of Annual licensing.

    Along with FileMaker User Licensing, Concurrent Connection Licensing and Site Licensing continue to be available and have been updated. The new license program brings simplicity, the biggest being that FileMaker Pro has been replaced with FileMaker Pro Advanced for all users. For those who currently have a FileMaker License contract, you will automatically update to the new licensing programs and will be receiving the new FileMaker User Licensing download links, license keys, and new FileMaker License Certificate for FileMaker Server installations via email.

    FileMaker Pro Advanced

    FileMaker Pro Advanced is the only desktop offering moving forward. FileMaker Pro is no longer an option, so everyone has access to FileMaker Pro Advanced developer tools. To make this offering more exciting, FileMaker Pro Advanced works both online and offline unlike FileMaker Licensing for Teams with FileMaker Pro.

    What is a User

    A user is a unique person who will access the FileMaker Platform. They can use or create FileMaker apps on an iPad, iPhone, Mac, Windows, or the Web. With user licensing, FileMaker is moving away from only offering 5 user packs and you can increment 1 user license after starting at 5 users. If you currently have a FileMaker license, you will automatically transition to the new licensing program.

    Existing Customers Transition

    filemaker user licensingFileMaker Licensing for Teams (FLT) and FileMaker Volume Licensing (VLA) customers will be transitioned to the new FileMaker User Licensing when your license keys are sent via email. With FileMaker User Licensing you get 3 servers with it as well.

    License Keys

    With your license for FileMaker 17, you will only get 1 license key for all the product installations and it will not change for each release. If you have multiple contracts you will receive a key for each contract, but we will work with you to merge the contracts into 1 as your contract comes up for renewal 90 days out.

    You will need to download and install the FileMaker License Certificate for each FileMaker Server when installing or changing the number of users licensed vs entering in a new license key as in the past. So remember to also download the FileMaker License Certificate which is an encrypted form of the Customer FileMaker License Agreement from the Electronic Software Download (ESD) page when preparing to install FileMaker Server.

    Concurrent Connection Licensing

    Concurrent connection licensing is 3x the price of regular FileMaker licensing. Ideal for when you have anonymous or occasional users of your FileMaker system. You get 1 FileMaker Server plus the amount of concurrent connections starting at 5 connections. You can put the concurrent connections on either a regular server or a cloud server as long as you have annual licensing. Anonymous users cannot use FileMaker Pro Advanced; therefore, they will have to access their FileMaker application through FileMaker Go and/or FileMaker WebDirect only.

    For those of you that have FileMaker Pros and a FileMaker Server with 10 concurrent connections, you will get 2 license keys, one for FileMaker Concurrent Licensing and one for FileMaker User Licensing. The user licensing can be used on the concurrent connections server without taking away any connections. This will allow you to just use 1 server instead of setting up multiple servers. With Concurrent Connections Users, you cannot have these users use the FileMaker User License server unless you buy a user license for each of these users.

    Site Licensing

    Site licensing is very similar to how it was before, defined by the total headcount (full-time employees, part-time, and contractors in your organization), not just by who uses FileMaker, and starts at 25 seats. One thing to take into consideration is that the EULA states that you must maintain compliance with your headcount number. If the headcount in your organization exceeds the site license count by 10% or more at anytime during the term of your contract, you must add new seats immediately. You also get as many FileMaker Servers as the total headcount including FileMaker Cloud. That's alot of servers and a technical change in the EULA which used to say unlimited FileMaker Servers.

    Site Licensing saves many organizations money when organizations have a headcount over 15 and most of the organization uses the FileMaker platform. Site Licensing is NOT available on the FileMaker Store. Call us for a quote for Site Licensing if most of your organization uses the FileMaker platform.

    FileMaker Data API

    The FileMaker Data API is the default way to build custom websites that push or pull data from FileMaker Server and is different then FileMaker WebDirect. With the FileMaker Data API, you are allowed an unlimited data transfer amount of inbound API calls (calling other websites from FileMaker Server). For Outbound API Calls (calling the FileMaker Server from other applications) you have a shared annual data transfer limit. It is calculated by multiplying the number of users licensed, or concurrencies, X 2GB per month X 12 months to get the Shared annual data transfer amount allowed. So each user will give you 24GB of data that is shared. That's quite a bit of data. If you are wanting to add more data, contact us or your FileMaker Sales rep directly for a quote.

    FileMaker Shared Hosting

    FileMaker Shared hosting customers will find that after installing FileMaker Pro Advanced 17 you will not be able to connect to your FileMaker Shared Hosting provider. The last supported client version for shared hosting is FileMaker 16 as FileMaker only supports two versions back. You will see a message when bringing up the host, "The host does not support this version of FileMaker" as the FileMaker EULA (End User License Agreement) no longer allows shared tenants for FileMaker Server as of FileMaker 14. Contact us to get a quote to move you to your own FileMaker Server or a FileMaker Cloud Server on the leading cloud provider Amazon Web Services (AWS).

    Price Protection

    You have price protection for up to 1 year (May 2019) from the launch of FileMaker 17 User Licensing to renew at your previous license program rates. You have the same options to renew for 1, 2, and 3 years. When renewing for 2 years you get 10 percent off and for 3 years you get 20 percent off. If you need to downgrade, you will receive up to 3 servers via a downgrade too.

    Summary

    The new and improved FileMaker User Licensing program makes understanding FileMaker Licensing easier and provides more convenience to you moving forward, as you get the entire platform at your disposal instead of individual products. If you have multiple contracts you will receive multiple keys so consolidating your contracts is always recommended and we can help you consolidate contracts. Contact us if you have any questions and we will help guide you to the best FileMaker Licensing for your FileMaker application use case.

    ]]>
    <![CDATA[FileMaker Go Sensor Functions]]> https://dbservices.com/blog/filemaker-go-sensor-functions https://dbservices.com/blog/filemaker-go-sensor-functions Tue, 15 May 2018 12:04:00 -0400 In addition to being a leader in Rapid Application Development, FileMaker empowers developers to creatively implement solutions for a wide variety of business cases. FileMaker engineers have expanded the developer’s toolbox by incorporating access to the internal sensors of iOS devices for FileMaker Go users. The dynamic single GetSensor function takes one of 19 primary parameters and returns in real-time data from the accelerometer, gyroscope, compass, or barometer in your device.

    ]]> The Function

    The parameters that can be used with the new function include:

    • GetSensor ( “batteryLevel”)
    • GetSensor ( “batteryStatus” )
    • GetSensor ( “location” { ;accuracy; timeout} )
    • GetSensor ( “locationValues” { ;accuracy; timeout} )
    • GetSensor ( “attitude” )
    • GetSensor ( “rotationRate” )
    • GetSensor ( “accelerationByUser” )
    • GetSensor ( “accelerationByGravity” )
    • GetSensor ( “rotationRate” )
    • GetSensor ( "speed" {; accuracy; timeout} )
    • GetSensor ( "heading" {; accuracy; timeout} )
    • GetSensor ( "magneticField" )
    • GetSensor ( "compassMagneticHeading" {; accuracy; timeout} )
    • GetSensor ( "compassTrueHeading" {; accuracy; timeout}
    • GetSensor ( "stepCount" {; forPastSeconds} )
    • GetSensor ( "stepDistance" {; forPastSeconds} )
    • GetSensor ( "stepFloorsUp" {; forPastSeconds} )
    • GetSensor ( "available" )
    • GetSensor ( "airPressure" )

    FileMaker Go Available Sensors

    Use Cases

    There are many practical uses for employing device sensors. The new functions could be used to help track employee activity out in the field or notify a user with a low battery before they attempt to run a lengthy scripted process. Remember that sensor availability varies between iPad and iPhone models! GetSensor (“available”) should be used to validate which sensors are available on a particular device before executing the GetSensor function with other parameters in your custom apps. In our demonstration we incorporate this new functionality to produce a fun, simple pedometer.

    Conclusion

    Using this simple but dynamic function you can integrate the sensors in your device with your FileMaker Go optimized solution. Feel free to contact us if you need further assistance or to discuss getting your iOS device's sensors integrated with FileMaker.

    ]]>
    <![CDATA[FileMaker Server 17 Admin Console]]> https://dbservices.com/blog/filemaker-server-17-admin-console https://dbservices.com/blog/filemaker-server-17-admin-console Tue, 15 May 2018 12:03:00 -0400 FileMaker Server 17 has a completely overhauled user interface for the admin console. It’s faster, easier to understand, more powerful, and a whole lot prettier. But beyond these aesthetic improvements FileMaker made quite a few changes under the hood. In this article, we’re going to showcase some of the coolest new features of FMS 17's Admin Console along with a few tips to help get you started with the new admin console.

    ]]> When you open the new admin console for the first time you might feel a wave of relief wash over you. You can relax, this is normal. If you’ve been using FileMaker Cloud, you’ll find the new admin console refreshingly familiar. If you haven’t, you’ll just find it refreshing. Several under-utilized options have been completely removed from the interface and can no longer be configured here. Most of these options can still be configured via the CLI (Command Line Interface). As we go, I’ll indicate a few places where this has happened.

    filemaker server 17 admin consoleThe new UI is easier on the eyes but perhaps the most underrated improvement is the actual writing. Paragraphs have been replaced by shorter, more readable snippets that explain things briefly and in natural language. If you ever rely on help text, you will find that it is quite a bit more helpful now.

    Dashboard

    The first thing you’ll see after a successful login is the new dashboard. Go ahead and take a moment to bask. You've earned this.

    When you’re ready, let’s review.

    The age-old sidebar has been replaced with a more familiar top-tier nav system.

    filemaker server 17 admin console top tier nav

    The redesigned dashboard answers your most pressing questions as soon as you open the admin console.

    • How many files are being served?
    • How many clients are connecting and how?
    • Which of these connections count against my server limit?
    • Are we nearing our limits for connections or API usage?
    • Is the server running out of space, memory, or bandwidth?
    • Are there any important server events that I should know about?
    • What’s my server IP and name?

    See that super cool lookin’ graph in the corner? That's our new activity widget!

    filemaker server 17 admin console system statisticsThe console now shows you a graphical representation of your system statistics and how they’ve changed over time (by default the last 3 minutes).

    Backups

    Perhaps the most significant advancement in FileMaker Server 17's Admin Console is its new backup features and options. The new admin console gives you more control over how your backups are managed, protected, encrypted, and created. The new backups are now independent from other types of schedules and you can run a backup without having to create a server schedule.

    FileMaker Server Backups

    Automatic Backups

    FileMaker now automatically backs up all databases once a day and keeps the last seven backups.

    Want to customize that schedule? Too bad, it’s automatic. This default schedule cannot be changed, disabled, worked around, or ignored. So the good news is that these backups happen automatically and they can’t be disabled or turned off!

    Yes, you can still create your own backup schedules here too.

    Back Up Now

    Great life advice. Also, a new feature!

    We have On-Demand backups! Click the “Back Up Now” link to immediately back up any files being hosted.

    filemaker server 17 admin console-on demand backup button

    By default, any On-demand backups are “protected" and cannot be deleted from the admin console (but don’t rely on this, see below).

    Manage and Preserve Backups

    You can use this new backups tab to manage the actual backups themselves too! All of your system backups are referenced here. You can delete, organize, and label your backups.

    FileMaker Server 17 will also let you preserve a backup, allowing you to keep it indefinitely. By default any On-Demand backups are preserved.

    filemaker server 17 admin console preserved backupsIf you want to delete a preserved backup, navigate to the preserved backups tab and you'll be able to delete them after a double confirmation.

    If you delete the backup directly from the File Explorer (Windows) or Finder (Mac), the backup will still show up in the admin console list until you delete it through the admin console. In other words FileMaker isn't storing a live link to the file, so best practice is to delete the backup from the admin console.

    Backups: Other Cool Stuff

    • You can label your backups now! Doesn’t change the file name but categorizing can help keep you organized.
      filemaker server 17 admin console edit backup label
    • Progressive backups can be enabled here and the default interval is 5 minutes. You can change the interval using the fmsadmin command through the CLI.

    Other Notable Changes

    • FMS no longer supports admin groups. Instead, you can configure a single admin username and password from the administration tab
    • You can now store your encrypted databases in a separate folder dedicated to secure storage. Only secure databases can be placed here.
      • Configure this in the “Folders” section of the “Configuration” tab.
        filemaker server 17 admin console secure storage folder
      • The default folder will allow either encrypted or unencrypted files

    In Closing

    I hope you're as excited about the new FileMaker Server as I am! The new user interface will give our eyes a good time, the backups will keep our data intact, and the new console structure will speed up our work by showing more relevant options.

    If you've got a copy of server and want some awesome databases to host there, give us a call!

    ]]>
    <![CDATA[FileMaker Current Found Set Portal]]> https://dbservices.com/blog/filemaker-current-found-set-portal https://dbservices.com/blog/filemaker-current-found-set-portal Tue, 15 May 2018 12:02:00 -0400 With the addition of the Current Found Set Portal, FileMaker has added the ability to easily create one of the most common trends in modern applications - the Master Detail.

    The Current Found Set portal is a portal that displays a list of the records in the current found set. It updates as the found set changes, and allows the user to navigate between records in the set simply by clicking on them in the portal.

    The power and elegance of the Master Detail lies in giving you the ability to quickly choose between a list of options and instantly bringing up the detailed information associated with it without changing windows or views. This allows the user to quickly scan a set of data and navigate through it without having to reload new pages or windows.

    ]]> What is a Current Found Set Portal?

    FileMaker's solution to the creation of a Master Detail is through an old stand-by: the portal. However, this portal is special. Instead of referencing a related table, this portal references the current found set. This allows the developer to create a list of the set of records the user is currently looking at on a form view layout. That means, instead of needing to create a list view layout to scroll through a list of customers, you can look through your Master Detail list on a form view layout.

    Even more useful is that FileMaker has included the ability to click on a record in the portal and have FileMaker navigate to that record within the found set, no additional scripting required. You can now navigate to the customer you were looking for without losing your place in the customer list or even leaving the list at all. No more need to navigate between a list view and a form view to search through records.

    filemaker current found set portal master detail

    How to Make a Current Found Set "Master Detail" Portal

    Creating a Current Found Set portal is much like creating any other portal. Using the portal creation tool, you create the outline of the portal you want and once you release the mouse, you will be prompted to “Show records from:". You simply select "Current Table ([Table Name])”. Most of the portal options you would usually have (like sorting and filtering) are disabled in the Current Found Set portal - giving you even less to set up. To achieve those effects, you need to sort and filter the found set itself since the Current Found Set portal will only show records from that found set.

    filemaker current found set portal setup

    Using Current Found Set Portals for Clear Find Requests

    FileMaker's ability to make find requests can occasionally pose a challenge for some users who may be new to the system or don't often do manual finds. Especially the concept of and/or finds. One of the interesting use cases for the Current Found Set portal, is it's ability to track find requests. The portal will display one row for each find request made, just like it would if you were creating new records in a table. This makes it much easier to read the requests made, especially if there are a number of finds that need to be executed at once.

    filemaker current found set portal find mode

    Wrap Up

    Creating a Master Detail with FileMaker's Current Found Set portal is a great way to modernize your application, and make things easier and faster for the people using the system. Users who find the list view cumbersome to use and avoid their list screens may find that a well-placed Master Detail portal allows them to do their work more efficiently and intuitively. Users will no longer have to navigate between two different views to click through a series of records - they can stay on their screen and in their rhythm. This is especially useful in the modern era, when Master Details show up in many applications users are already familiar with.

    While the Master Detail does not sound the end for list views entirely (which are still very useful for reports and other goals), the Master Detail does mean that many list views can be replaced with a view that works better for users. Contact us if you would like some help leveraging the power of Master Details in your system.

    ]]>
    <![CDATA[FileMaker Add-On Tables]]> https://dbservices.com/blog/filemaker-add-on-tables https://dbservices.com/blog/filemaker-add-on-tables Tue, 15 May 2018 12:01:00 -0400 Creating a new app can be a daunting task for developers, especially those who are just starting out. Fortunately, FileMaker has made it easy to build something new without needing a working knowledge of relational graphs. Creating from the App Library (aka Add-On Tables) allows developers to import modules directly into their application with pre-built tables, fields, and relationships using just a few clicks of the mouse.

    ]]> How It Works

    To import an add-on table to a FileMaker application, first add a portal to the layout you want to have the module show up on. Under portal setup, click "New Add-on Table" under the "Show records from" drop-down menu, and choose from one of 11 different types of tables. Each type of table has its own set of associated fields to allow the user to add relevant information to each record being created.FileMaker Add-On Tables ListWhen a type of table has been chosen and named, the portal will appear on the layout with all of the relevant fields included. This feature also includes a button, complete with a script used to add new records to the portal for extreme ease-of-use.

    FileMaker Add-On Tables Attachment Table
    FileMaker Add-On Tables Attachments Table

    At the same time, a table is created in the relationship graph linking the relevant field from the base table to the relevant field of the new table (In many cases, this would be the primary key of the base table to the foreign key of the new table) saving the user both the time and the trouble of having to create the relationship themselves.

    FileMaker Add-On Table Relationship Graph
    FileMaker Add-On Table Relationship Graph

    Pro Tip: Add your portal outside of the layout at the top so that you can easily find the new record button that FileMaker automatically adds at the bottom of the portal.

    Conclusion

    While these add-on tables and portals are not intended as replacing fully finished apps, or replacing the need to use the relationship graph at some point, they are a great foundation for any user. These templates save the user plenty of time and give them a much simpler way to understand the power of relational data and helps in learning how tables interact with one another.

    ]]>
    <![CDATA[FileMaker Data Migration Tool]]> https://dbservices.com/blog/filemaker-data-migration-tool https://dbservices.com/blog/filemaker-data-migration-tool Sat, 12 May 2018 00:00:00 -0400 It’s best practice to work on a sandbox version of a FileMaker database, but historically the FileMaker platform did not offer an out-of-the-box tool to migrate data from a live solution to a new version. This means that developers were encouraged to work on live files or build custom migration scripts; both of these options increase costs, cause significant downtime for maintenance, and disrupted live users. Fortunately, FileMaker now offers a data migration tool that migrates data from one file to another with speeds around 10x faster than a custom script. To make this process easier, we have created a companion file (download link below) that allows you to run automatically run data migrations for multi-file solutions.

    ]]> Basic Requirements

    A FileMaker Developer Subscription is required to download the data migration tool.

    Once the tool is downloaded, you will need two more things: an .fmp12 file with the data you want to transfer (the source file), and a clone of the .fmp12 file you want to transfer that data to (the clone file). Once you have those, you need to make sure the following conditions are met:

    • The cloned file doesn’t have any records in it.
    • All the files involved are closed.
    • You have local access to the files with full access accounts and encryption passwords (if applicable).

    Creating the Command

    With the basic requirements in place, you can begin creating the command that migrates the data. The syntax, taken from FileMaker’s official documentation, is as follows:

    FMDataMigration 17.0.1 (xx-xx-2018)
    Description: Migrates all record data from a source FileMaker Pro file to a copy of a clone file.
    Usage: FMDataMigration -src_path <path> -clone_path <path> [<other options>]
    -src_path <source file path>
    -src_account <source Full Access account> (default is Admin)
    -src_pwd <source Full Access password> (default is blank)
    -src_key <source decryption key>
    -clone_path <clone file path>
    -clone_account <target Full Access account> (default is Admin)
    -clone_pwd <target Full Access password> (default is blank)
    -clone_key <target decryption key>
    -target_path <target file path> (default is source path with " migrated" added)
    -v (verbose mode)
    -q (quiet mode)
    

    When actually creating your command, you will want to put all of the parameters on the same line. So it will actually look more like this:

    '/Users/username/Desktop/Data Migration Tool/FMDataMigration' -src_path 
    '/Users/username/Desktop/Data Migration Tool/Source File.fmp12' -src_account 'Admin' -src_pwd 'password' 
    -src_key 'decript_key' -clone_path '/Users/username/Desktop/Data Migration Tool/Data File.fmp12' 
    -clone_account 'Admin' -clone_pwd 'password' -clone_key 'decript_key' -target_path 
    '/Users/username/Desktop/File With Migrated Data.fmp12' –v
    

    Once your command is created, paste it in either Terminal (Mac) or Command Prompt (Windows), and press enter.

    FileMaker Data Migration Tool CLI

    A few notes about parameter values:

    • If you decide to specify a target path, it must be different than the source and clone paths.
    • If a file already exists at the specified target path, the data migration tool will stop you from executing the command.
    • Verbose mode will display all information about the data transfer and in the command module, and quiet mode will display nothing.

    If you don't want to type all of this information out in a command prompt, you can use our companion file (download link below). Using the companion file, you can easily run a data migration for multi-file solutions.

    What Transfers Over

    After you successfully run the migration, a new file will be created. The new file will have the schema of the clone, and the data from the data file. The data carried over from the data file will be the:

    • FileMaker accounts
    • Records
    • Next serial numbers
    • Indexes
    • Internal Record IDs, aka Get( RecordID ) for each record will be transferred over
    • Custom value lists that have been modified

    All other information (privilege sets, layouts, table occurrences, etc.) will be inherited from the clone. Furthermore, only modified value lists with custom values will be transferred into the new file from the data file. Value lists not in the clone will not be created in the new file, and value lists using table occurrences will be inherited from the clone.

    While FileMaker accounts transfer over, privilege sets do not. Any accounts that are given a privilege set not in the clone will be given an empty privilege set called “Unmapped Privilege Set”.

    FileMaker Unmapped Privilege Set

    If you create fields, tables, or table occurrences in the source database after making the clone, these will not be created in the new file. Any data in these fields will not be transferred over. Also, using the data migration tool does not fire auto-enters.

    Field Mapping

    When transferring the data over to the new file, the data migration tool will try to map the fields by name first, then by FileMaker’s internal ID. This means that if you change the name of a field in the source file after making the clone, it will still map those two fields together. However, if you change the name of a field, then create a new field and give it the old name of the first field, the data will be transferred to the new field instead of the first field.

    Conclusion

    FileMaker’s data migration tool is the easiest and quickest way to transfer data from a live database to an updated version. Utilizing this tool correctly can save both time, money, and the headache that can come with live development. Feel free to contact us if you need any further assistance or if you would like to discuss getting your data transferred.

    ]]>
    <![CDATA[FileMaker EDI Integration]]> https://dbservices.com/blog/filemaker-edi-integration https://dbservices.com/blog/filemaker-edi-integration Wed, 18 Apr 2018 00:00:00 -0400 Electronic data interchange (EDI) is used by businesses to electronically exchange standard business documents. EDI standards help reduce cost of processing email or mail-in orders and can speed up business by simplifying communication between two companies. Amazon, Walmart and many other companies use established EDI standards to process their orders securely.

    Supply Chain Insights published a study showing that 55% of customer orders are received via EDI, placing EDI on the #1 spot of multi-party business exchanges. Integrating EDI with your FileMaker solution can automate your order processing and allow you to connect to large retail partners using this technology.​

    ]]> EDI Standards

    Handling EDI can be tricky when there's multiple standards in play and with retailers having different sets of fields they require in order to process requests. EDI platforms like SPS Commerce can help you figure out the required fields for a particular document and industry, and translate a simpler XML format provided by the platform to the actual standard's format.

    To illustrate how complex a standard's format can be, and why platforms like SPS Commerce provide XML versions of these complex formats, below is an example of a purchase order written in EDIFACT EDI standard.

    UNB+UNOA:1+US::US+50138::THEM+140531:0305+001934++ORDERS'
    UNH+1+ORDERS:91:2:UN'
    BGM+220+A761902+4:20140530:102+9'
    RFF+CT:EUA01349'
    RFF+AAV::C'
    TXT+THIS IS WHAT AN EDI MESSAGE WOULD LOOK LIKE... '
    NAD+BY++OUR NAME PLC::::+++++EW4 34J'
    CTA+PD'
    COM+01752 253939:TE+01752 253939:FX+0:TL'
    CTA+OC+:A.SURNAME'
    COM+2407:EX'
    CTA+TI+:B.BROWN'
    COM+0:EX'
    CTA+SU'
    COM+0161 4297476:TE+01752 670633:FX'
    UNT+15+1'
    UNZ+1+001934'
    

    And below a purchase order document like above but written in XML format:

    <PurchaseOrders>
      <PO>
        <ID>123</ID>
        <date>4/3/2018</date>
        <customer>DB Services</customer>
        <firstName>Gayoung</firstName>
        <lastName>Moon</lastName>
        <email>gmoon@dbservices.com</email>
        <item>Sunglasses</item>
        <price>200</price>
        <quantity>1</quantity>
      </PO>
      <PO>
        <ID>234</ID>
        <date>4/4/2018</date>
        <customer>DB Services</customer>
        <firstName>Test</firstName>
        <lastName>Customer</lastName>
        <email>gmoon@dbservices.com</email>
        <item>Desk</item>
        <price>400</price>
        <quantity>3</quantity>
      </PO>
    </PurchaseOrders>
    

    Not only is the XML version easier to read and follow, it's much easy to program, especially considering that one EDI document can have thousands of possible fields to pick from, as EDI is used across almost every industry.

    General Approach to EDI Integration as a Vendor

    EDI platforms like SPS will require that you read or write XML files from an FTP server they provide. In the case of handling purchase orders from a retailer like Target, your FileMaker system will need to periodically scrape the FTP server's purchase orders folder for all new PO documents, import them into your FileMaker system, and delete them from the folder. Then you will parse each PO XML document in FileMaker and create or update purchase orders in your database. For example, you could use the xmlGetElement function from the demo file to parse the purchase order XML.

    Set Variable [ $ID ; Value: xmlGetElement ( $eachPO ; "ID" ) ]
    Set Variable [ $date ; Value: xmlGetElement ( $eachPO ; "date" ) ]
    Set Variable [ $customer ; Value: xmlGetElement ( $eachPO ; "customer" ) ]
    

    If your retailer requires it, you will also create an purchase order acknowledgement notice XML file and upload it to the FTP server in a different folder. The insert from URL cURL options would look something like this:

    "--user " & $user & ":" & $pwd & " --ftp-ssl" & 
    " --upload-file $xmlfile --header \"Content-type: application/xml\""
    

    As your employees process new purchase orders, statuses of each purchase order will change and your FileMaker system will need to create another type of EDI XML document with all active purchase order status and shipping information. This document will then be uploaded to the corresponding location on the FTP server.

    In addition some retailers require frequent updates on your inventory levels, which is another type of EDI document, called an inventory query document, that you will need to create create and upload to the FTPS server.

    Check out the demo file below to see simple EDI examples. The file uses the native FileMaker Insert from URL script step to connect to FTP and BaseElements plugin to parse XML documents.

    Conclusion

    If you want to work with retailer giants like Walmart, Target, etc, you will be required to process orders using EDI. And handling orders this way can allow your company to work on them real time and cut down on time spent manually communicating your inventory and order status. Contact us if you need help with integrating your FileMaker system with an EDI platform.

    ]]>
    <![CDATA[FileMaker HubSpot Integration]]> https://dbservices.com/blog/filemaker-hubspot-integration https://dbservices.com/blog/filemaker-hubspot-integration Wed, 21 Mar 2018 00:00:00 -0400 HubSpot is an online marketing and sales tool that helps convert leads and close customers. HubSpot reported that total revenue was $375.6 million in 2017, up 39% compared to 2016. Many companies with both HubSpot and FileMaker find themselves ending 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 HubSpot.​

    ]]> Creating a Free HubSpot Developer Account

    The first step of this integration is to create a HubSpot developer account. Once you have an account, you will then need to create a new public HubSpot application. Under the application details, at a minimum for our example you will need to check the Basic OAuth functionality and Contacts options.

    Hubspot Developer Account Setup

    Those will allow you to use the OAuth authentication and interact with the end user's HubSpot Contacts. Also, copy the Client ID and Client Secret from the application. You will need this information later.

    Hubspot LogoAuthenticating with HubSpot Using OAuth 2.0

    Once you have your API information, you will need to authenticate your solution with the HubSpot API. For any questions regarding how requests should be built, please reference the HubSpot API Documentation. To authenticate your solution, place the user into a web viewer at the API authentication screen. This will prompt the user to log in with their own credentials and choose the account to allow your solution to make the connection.

    FileMaker HubSpot Authentication

    Once they have agreed, they will be sent to the address specified in your Redirect URI that was passed in the authentication request. When the user is redirected to the new address, the address will now have a URL Encoded parameter, which will be the code needed for the next step.

    Set Variable [ $code ; Value: "https://dbservices.com/?<strong>code=058baec5-cfd7-42ae-b3ea-c0683fa4b6b5</strong>" ]
    

    Once you have extracted the code, you will use the code provided, along with your ID 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 HubSpot API requests require additional parameters. The Create Company request, for example, is a POST request which requires additional fields like the company, description, and many other optional settings for the company. These fields will need to be JSON-encoded text, passed as the parameter.

    Set Variable [ $cURL ; Value: "-X POST
                                   --header \"authorization: Bearer 
                                   --header \"accept: application/json\"
                                   --header \"content-type: application/json\"
                                   --data @$data" ]
    
    Insert from URL [ Select ; With Dialog: Off ; $result ; "https://api.hubapi.com/companies/v2/companies" ; $cURL ; Do not automatically encode URL ]
    

    Once a successful request has been made, a JSON encoded response will returned. You will then be able to use the function JSONGetElement () to pull any information out of the response that you wish.

    {
        "additionalDomains" : [],
        "companyId" : 725558396,
        "isDeleted" : false,
        "mergeAudits" : [],
        "portalId" : 4332469,
        "properties" : 
        {
            "createdate" : 
            {
                "source" : "API",
                "sourceId" : "API",
                "timestamp" : 1520270442248,
                "value" : "1520270442248",
                "versions" : 
                [
                    {
                        "name" : "createdate",
                        "source" : "API",
                        "sourceId" : "API",
                        "sourceVid" : [],
                        "timestamp" : 1520270442248,
                        "value" : "1520270442248"
                    }
                ]
            },
            "description" : 
            {
                "source" : "API",
                "sourceId" : null,
                "timestamp" : 1520270442248,
                "value" : "Database Services",
                "versions" : 
                [
                    {
                        "name" : "description",
                        "source" : "API",
                        "sourceVid" : [],
                        "timestamp" : 1520270442248,
                        "value" : "Database Services"
                    }
                ]
            },
            "hs_lastmodifieddate" : 
            {
                "source" : "CALCULATED",
                "sourceId" : null,
                "timestamp" : 1520270442248,
                "value" : "1520270442248",
                "versions" : 
                [
                    {
                        "name" : "hs_lastmodifieddate",
                        "source" : "CALCULATED",
                        "sourceVid" : [],
                        "timestamp" : 1520270442248,
                        "value" : "1520270442248"
                    }
                ]
            },
            "name" : 
            {
                "source" : "API",
                "sourceId" : null,
                "timestamp" : 1520270442248,
                "value" : "DB Services",
                "versions" : 
                [
                    {
                        "name" : "name",
                        "source" : "API",
                        "sourceVid" : [],
                        "timestamp" : 1520270442248,
                        "value" : "DB Services"
                    }
                ]
            }
        },
        "stateChanges" : []
    }
    

    For example, you can get the newly created company ID by using the following set of functions:

    Set Variable [ JSONGetElement ( $result ; "companyId") ]
    

    Conclusion

    Integrating your FileMaker app with your existing HubSpot account will greatly improve your business's efficiency. You can create, update, query, or delete just about any entity you would like all from within FileMaker. Feel free to contact us if you need further assistance or to discuss getting your HubSpot account integrated with FileMaker.

    ]]>
    <![CDATA[Google Charts in FileMaker]]> https://dbservices.com/blog/google-charts-in-filemaker https://dbservices.com/blog/google-charts-in-filemaker Wed, 21 Feb 2018 00:00:00 -0500 FileMaker Google ChartsFileMaker offers many different options for charting, but if you need a chart that is not available in FileMaker, you should consider using Google Charts. Google Charts is a free Javascript framework that can be used in conjunction with web viewers in FileMaker to extend your charting capabilities. Since native FileMaker charting is much quicker and simpler to set up, let's look at some Google Charts.

    Only Available in Google Charts

    • Geographic
    • Candlestick
    • Organizational
    • Treemap
    • Gauge
    • Timeline
    ]]> Geographic

    This chart offers both a quick overview for an entire geographic region as well as discrete values per region. For example, if Finance needs a way to quickly view sales per state, the Geographic Chart can quickly show us that sales in Illinois are the highest. You can then hover over each state to see how much was sold in each.

    FileMaker Geographic Chart

    When driving this chart with data from a FileMaker system, users can view a map rich with information at the click of a button.

    Candlestick

    With the candlestick chart, you can quickly view a range of values along with its variance. It normally shows financial movements in price or cost. In this example, shaded boxes represent a gain and unshaded boxes represent a loss.

    FileMaker Candlestick Chart

    Source: https://developers.google.com/chart/interactive/do...

    Organizational and Treemap

    The next two charts help with viewing a tree data structure. First, the Organizational Chart shows a hierarchy of discrete data. Businesses often use this chart to show a literal hierarchy. This chart doesn’t have too many options, but a developer can configure options such as size, color, or clicking on a cell to collapse.

    FileMaker Organization Chart

    Source: https://developers.google.com/chart/interactive/do...

    On a treemap, a user can only view one level at a time, but can navigate to each level. Though this graph also maps discrete values, developers can utilize this graph to show a visual summary of values associated with these discrete values. For example, this chart can show that sales in the USA are somewhere around twice as much as those in Mexico (see chart below).

    FileMaker Treemap Chart

    Source: https://developers.google.com/chart/interactive/do...

    Gauge

    Applications can utilize Google’s Gauge chart for a fun way to show “safe” and “dangerous” values. It offers the quick visuals of a 19th century railway gauge with all the customization one could desire! Developers can set coloring for ranges of values, specify minimum and maximum values, and even utilize animations to make the gauges more life-like. This chart could be used on an executive's dashboard to show actual revenue versus expected revenue.

    FileMaker Gauge

    Timeline

    The last Google Chart I’ll be covering is the Timeline chart. It helps view data associated with a range of time, reducing the amount of headache needed to process historical data. For example, some bands have an impossible amount of lineup changes, but using a Timeline can quickly clear up any confusion (unless you’re AC/DC and have over 10 former members).

    Timeline Chart

    Adding Google Charts to a FileMaker System

    Google Charts also has some potentially useful options when it comes to simple graphs. Let's look at adding a trend line on a scatterplot graph using Google Charts in FileMaker.

    Chart With Trend Line

    Creating a Trend Line on a Scatterplot Chart

    The Google Charts documentation offers a quick and easy way to start creating your own chart by providing code examples. The Google Charts framework has a couple of basic parts for each chart. The initial setup includes the following code:

    <script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script>
    <script type='text/javascript'>
    google.charts.load('current', {'packages': ['corechart']});
    google.charts.setOnLoadCallback(drawChart);
    

    Notice that the "google.charts.load" step includes packages; in this case the package "corechart", which is a scatterplot chart. This is the main differentiator between charts. Changing the package to "geochart" would completely change the graph type.

    The next step is setting up the drawChart() function. This tells Javascript what data to draw and what options to use. All the data points are in the array variable "data".

    function drawChart() {
        var data = google.visualization.arrayToDataTable([
            ['Year', 'Price'],
            [2010, 12000],
            [2017, 35000],
            ...
        ]);
        var options = {
            title: 'Sale Price by Model Year',
            hAxis: {
                title: 'Year', format: '', minValue: 2000, maxValue: 2018, direction:-1,
                minorGridlines: {color: '#333', count: 1}
            },
            legend: 'none',
            ...
        };
    };
    

    Lastly, Javascript needs to draw the chart. The following code assumes that there is a <div> with the ID "chart_div" in the HTML.

    var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
    chart.draw(data, options);
    

    Using this as a template, all your FileMaker application needs to do is compile data points and insert them into the "data" variable, making sure they are in the same array format. Nothing else in the chart needs to be data-driven, though you can let users edit any options they need to.

    Using FileMaker to Plot Data

    Of course, the big question is "How do I get my data from FileMaker onto a Google Chart?" As alluded to previously, we can use FileMaker scripting to insert data points into the Javascript in your web viewer. Please refer to the demo file for more details on how this process works.

    Conclusion

    Using Google Charts, you can extend FileMaker's charting capabilities with complex charts such as Timeline or Geographic charts. All it takes is a web viewer and a bit of Javascript know-how.

    Javascript not your thing? Contact us to help put Google Charts in your FileMaker system.

    ]]>
    <![CDATA[FileMaker Cloud 16]]> https://dbservices.com/blog/filemaker-cloud-16 https://dbservices.com/blog/filemaker-cloud-16 Wed, 17 Jan 2018 00:00:00 -0500 filemaker cloudWith the release of the FileMaker Cloud 1.16, several features that were exclusive to on-premise FileMaker Server are now available. The 1.16 update includes, but is not limited to, the features listed below.

    • Server Side Scripts with the FileMaker Admin API
    • Custom Web Publishing with the FileMaker Data API
    • PDF and print support
    • JSON Parsing
    • OAuth 2.0 client authentication

    Server Side Scripts

    The release of the FileMaker Cloud Admin API now allows you to manage server-side schedules, pull a list of logged-in users, send messages to connected users, and much more. Our free FileMaker Cloud Schedule Manager allows you to create and manage script schedules for your FileMaker system.

    To download our FileMaker Cloud Schedule Manager or read more about what all it can do, see our FileMaker Cloud Admin API Article.

    Custom Web Publishing

    The FileMaker Data API, which was formally only available for FileMaker Server, allows you to access your FileMaker data using the standard REST API. By going with a standardized format developers are able to integrate any platform they choose with FileMaker solutions on FileMaker Cloud.

    Details on enabling and using the data API can be found at our FileMaker Data API Article.

    PDF and Print Support

    FileMaker Cloud now enables the use of the Print, Print Setup, and Save Records as PDF script steps on both FileMaker Pro and FileMaker WebDirect.

    JSON Parsing

    JSON (JavaScript Object Notation) is an open-standard file format that allows developers to interact with REST APIs without using a plugin. FileMaker Cloud now supports JSON parsing for server side scripts.

    For more details on using JSON with FileMaker please read our FileMaker JSON Functions Article.

    OAuth 2.0 Client Authentication

    FileMaker Cloud now supports OAuth 2.0, which allows clients to authenticate via Amazon, Google, and Microsoft Azure. Configuration for OAuth identity providers can be found in the Client Authentication section under the configuration tab on the FileMaker Cloud Admin Console (shown below)

    FileMaker Clien Authentication Configuration

    A FileMaker Pro client must be used to configure specific users’ accounts to authenticate via an identity provider. This setting is found under:
    File -> Manage Security -> highlight desired account -> Edit…

    filemaker server oauth choices

    Comparing Cloud 16 to Original Release

    Since the initial version of FileMaker Cloud, many updates have brought Cloud up to par with FileMaker Server. FileMaker Cloud now includes the following features that were not available with the initial launch:

    • On-demand backups
    • Uploading unencrypted FileMaker files
    • Restoring individual data files from a snapshot
    • AWS solid state hard drives (SSD)
    • Increased number of AWS regional endpoints

    Unsupported Features in FileMaker Cloud

    The 1.16.0.55 update brought FileMaker Cloud to near parity with FileMaker Server; however, there are three features FileMaker Server supports, which are currently unsupported for Cloud.

    1. Custom Web Publishing with PHP and XML is currently unsupported; however, the FileMaker Data API, which is now available for cloud, eliminates the need for this feature.
    2. Local Active Directory integration. Although Cloud now supports Microsoft Azure Active Directory, it does not support authentication via active directories that exist within your network.
    3. Compatibility with FileMaker Pro 14 and 15. FileMaker Cloud 16 is currently only compatible with FileMaker 16 clients; however, FileMaker Server 16 is compatible with FileMaker 14, 15, and 16 clients.

    Backups

    Cloud backups run on a 20 minute schedule and one week's worth (504) are stored before automatic deletion begins; however, preserved backups are not deleted. Backups can be run on demand and preserved at any time as shown in the image below.

    FileMaker Cloud Backup Settings

    As shown in the graphic above, backups are accessed through the "Backups" section of the Cloud admin console. From here users may request an on-demand backup, which is then automatically preserved. Snapshots can then be attached to preserved backups, allowing the database files to be downloaded as needed. Only one snapshot can be attached at a time, but users may download specific database files as opposed to downloading every file hosted on the server.

    Uploading Unencrypted Files

    Unencrypted files can now be uploaded to FileMaker Cloud from a Pro client. Once uploaded, FileMaker Cloud will request an encryption password and encrypt the file itself, saving users the time of encrypting their files through their Pro clients. It is important to note that in order to upload an unencrypted file to Cloud, you will need to have at least three times the file size in space available to upload. The total space available can be viewed from the Dashboard section of the admin console. If you don't have that much space available, you may upgrade the AWS storage volume size at any time through the Subscription section of the admin console.

    FileMaker Cloud AWS Region Support

    FileMaker Cloud can now be set up on the following AWS regions:

    • US East (Northern Virginia)
    • US West (Oregon)
    • Canada (Central)
    • EU (Ireland)
    • EU (Frankfurt)
    • Asia Pacific (Sydney)
    • Asia Pacific (Tokyo)

    All FileMaker Cloud disk types have been changed from magnetic to solid state drives (SSD), increasing overall speed.

    Moving to FileMaker Cloud

    For details on moving your existing system to FileMaker cloud, please read the “Moving to FileMaker Cloud" section of our FileMaker Cloud Overview Article.

    Conclusion

    With this update, the full power of FileMaker Server is now available in the cloud. If you're interested in seeing if FileMaker Cloud is the best choice for you, contact us for a free technical analysis to review and assist in optimizing your application(s) before moving to the FileMaker Cloud.

    ]]>
    <![CDATA[FileMaker Cloud Schedule Manager]]> https://dbservices.com/blog/filemaker-cloud-admin-api https://dbservices.com/blog/filemaker-cloud-admin-api Wed, 13 Dec 2017 00:00:00 -0500 With the release of FileMaker Cloud Admin API, you can now monitor and manage multiple servers quickly and easily, including the ability to set up server-side schedules, pull a list of logged in users, send messages to connected users, and much more. Download our free FileMaker Cloud Schedule Manager too!

    ** As of Claris FileMaker Cloud 19.3, you do not need a 3rd-party tool to create a schedule. Now, these can be scheduled directly within the cloud console itself.

    ]]> Let's take a look at the API and how to use it.

    Using the API

    The FileMaker Cloud Admin API uses a standard REST API which allows you to gather info and interact with your server and the files on the server. Some of the things you can do with the API are listed below.

    • Create, edit, delete server side schedules
    • Get a list of schedules
    • List all databases
    • Open, Close, Pause, or Resume a database
    • Disconnect clients
    • Send a message to clients

    More info on how to interact with API can be found in the FileMaker Cloud 16 Admin API Guide.

    Creating Schedules

    FileMaker Cloud Schedule SetupMost of the functions in the API are already available from the FileMaker Cloud Admin Console, but at the moment the only way to create schedules is through the new API. This can be a frustrating process as there are so many different flags and types that must be set by number and all the validation required to create them correctly. Lucky for you we've created a free file for managing schedules on your FileMaker Cloud Server.

    FileMaker Cloud Schedule Setup

    Security

    Please ensure that you encrypt this file before use as it does store username and password information needed to access the admin console and FileMaker files. At the moment there is no good way to exclude this information, and the Admin API returns file credentials in the schedules' rest calls. Also make sure to add a full access account with a strong password and disable the default admin account.

    Conclusion

    The FileMaker Cloud Admin API allows you to easily manage multiple cloud servers from one interface. If you want a private server with easier setup and management, excellent network speeds, automated security updates and much more then FileMaker Cloud is a great way to go. We're super excited about the direction of FileMaker Cloud and believe that this is the future of hosting FileMaker applications.

    ]]>
    <![CDATA[FileMaker Twitter Integration]]> https://dbservices.com/blog/filemaker-twitter-integration https://dbservices.com/blog/filemaker-twitter-integration Wed, 15 Nov 2017 00:00:00 -0500 As one of the top social media platforms, Twitter has over 300 million active users worldwide. Leveraging FileMaker technology, developers can build custom apps which interact directly with Twitter. Let's walk through how to get your app connected to Twitter.

    ]]> Creating a Free Developer Account

    First, log into Twitter and create a Twitter App. Second, click the button to generate an API consumer key and an API consumer secret. These two strings are used to securely authorize actions with your twitter account. The consumer key will be passed back and forth with each call, serving as identification. The consumer secret is used to securely encrypt the call in a specific way unique to your account.

    Authenticating with Twitter

    Once you have your API information, you will need authenticate your solution with the Twitter API. Twitter API uses a OAuth, and there are two types. Basic authentication can be used for actions which do not require user context, such as reading public tweets or getting profile information. User authentication on the other hand, is needed for actions which require an account: tweeting, direct messages, etc. For this example we will use basic authentication to get the number of followers and tweets of any Twitter handle.

    The first step is to use a combination of the consumer key and secret key to obtain an access token. These two keys must be combined, separated by a colon, and encoded with Base64. Leveraging the Insert from URL [] script step, FileMaker is able to make HTTP calls and get back the responses. This is the basic mechanic of working with API endpoints.

    The token is returned as a JSON string, which FileMaker can easily read with native JSON functions. If you authenticate again, you will be given a new token and all old tokens will become invalid. This process ensures tokens cannot be obtained and used without your permission, and also reduces the exposure of your consumer key. To get the token, POST a request with the following settings and headers:

    Request Example: POST https://api.twitter.com/oauth2/token
    Headers: Authorization: Basic (Insert Base-64-Encoded <consumer key>:<secret key>)
    Headers: Content-Type:application/x-www-form-urlencoded;charset=UTF-8
    Body: grant_type=client_credentials
    Response: {"token_type":"bearer","access_token":"AAAAAAAAAAAAAAAA..."}
    

    Making Requests and Parsing the Response

    Once the token is acquired, calls to other API endpoints can be immediately performed. Each subsequent call will be made with the token. To get information about any Twitter handle, POST a request with the following settings and headers:

    Request Example: GET https://api.twitter.com/1.1/users/show.json?screen_name=<screen_name>
    Headers: Authorization: Bearer <token>
    Response: 
    {
     "contributors_enabled" : false,
     "created_at" : "Sun May 25 07:09:41 +0000 2008", 
     "default_profile" : false,
     "default_profile_image" : false,
     "description" : "We build custom applications for business. Our mission is to make organizations more efficient and effective.", 
     "favourites_count" : 26,
     "follow_request_sent" : null,
     "followers_count" : 303,
      ...
    }
    

    This particular use case for automatically getting Twitter followers could be useful to streamline a review process where applicants must have an audience, such as authors, reporters, or podcast creators. There's so much more you can do with the Twitter API.

    Conclusion

    Use the power of FileMaker to make sense of data from anywhere on Twitter. Track employee engagement, see what the competition is up to, or post tweets directly from your app!

    Tweet at us if you found this post helpful - let's have a conversation @dbservices.

    ]]>
    <![CDATA[FileMaker Shipping Labels with Shippo]]> https://dbservices.com/blog/filemaker-shipping-labels-with-shippo https://dbservices.com/blog/filemaker-shipping-labels-with-shippo Wed, 18 Oct 2017 00:00:00 -0400 FileMaker Shipping Labels with Shippo

    The global market for parcels is on pace to be over $300 billion dollars in 2017 according to Apex Insight with sales continuing to rise via e-commerce. There are many carriers across the globe and having nearly all to your disposal from a single company is advantageous. Many businesses want the ability to ship orders directly out of FileMaker. We commonly recommend Shippo, an all-in-one web API that allows you to pay for and generate shipping labels and tracking numbers on the fly.

    ]]> But why do we want to integrate with Shippo in the first place? Can't we just create shipping labels all online?

    The Problem

    We find that many customers are managing all of their orders inside of FileMaker and all of their shipments in a third-party (sometimes online) solution. This is a very resource intensive workflow and causes a big time waster: double-data entry. Just imagine entering in every single customer's information into FileMaker and then into a third-party solution. Typing (or copy-pasting) two pairs of shipping and billing addresses just seems barbaric, right? If you are in a similar situation right now, we have a solution (keep reading)!

    The Solution

    In a perfect world, you would be able to create an order and generate a shipping label all from one screen within FileMaker and only type the customer's information once. Well, we like to think that this perfect world already exists! That's where Shippo and it's powerful and robust API comes in. With built-in JSON and cURL functions in FileMaker, we can natively integrate with Shippo. All you need to do to get started is sign up for Shippo, set up your shipping options, grab your API keys, and then integrate with FileMaker. It's super easy and we will show you how to do it below.

    Benefits of using Shippo

    Getting Started

    Sign up for Shippo

    Shippo makes it very easy to get started. The first step is to sign up for an account.

    FileMaker Shippo Sign Up Page

    Set up Billing

    Once you are in the Dashboard, fill out all of the information on the Account and Billing tabs (otherwise your account will be suspended after generating a few shipping label requests).

    FileMaker Shippo Billing Page

    Get API Tokens

    Click on the API tab and take note of the API Live Token and API Test Token.

    FileMaker Shippo API Page

    Also note your API Version. For the purposes of this article, we are using API Version 2017-08-01. From time-to-time, Shippo will update their API, but you will have to click a button on the API tab in order to upgrade to the latest version. Keep in mind that upgrading could break your code, so we recommend that you create a developer account to test with before upgrading in a production environment.

    Enable Shipping Carriers

    Click on the Carriers tab and enable all of the carriers that you want to use.

    FileMaker Shippo Carriers Page

    For this demo, we are using the fully capable and heavily discounted USPS account that is provided by default. Also, we are going to activate test mode for USPS so that we can create a testing environment without being charged.

    Set up API Keys in Demo File

    We have provided a demo file at the bottom of this article that will get you started with the basic example to integrate into your custom solutions. Once you open this file, you will notice that the layout consists of two tabs: order and setup. Click on the Setup tab. From here you'll need to fill out all of fields at the top (Information & Address) as well as paste in your API Live Token and API Test Token into the corresponding fields. There is also a checkbox toggle that will allow you to go from "test mode" to "live mode." During test mode, your account will be able to generate test shipping labels and tracking codes (that cannot be used for actual shipping), but our account will not be charged.

    FileMaker Shippo Setup Screen

    Test

    Once you are ready to test, go ahead and fill out the order form, then click Generate Shipment & Rate. This will populate the portal underneath Shipping Info with multiple rates to choose from. You can select your desired rate and then click Generate Shipping Label. If all goes well, a brand new shipping label and tracking number will appear!

    FileMaker Shippo Order Screen

    Breakdown

    Now that you've tested with the demo file, let's breakdown exactly what we did so that you can build it yourself (or use the demo file if you wish).

    Tables and Fields

    • You need to create 5 tables:
      • LOG
        • housekeeping fields (primary key, creation/mod date, account, and timestamp)
        • request (text)
        • response (text)
      • ORDER
        • housekeeping fields (primary key, creation/mod date, account, and timestamp)
        • customer first name (text)
        • customer last name (text)
        • customer email (text)
        • customer phone (text)
        • customer address fields (address 1, address 2, city, state, zip, country)
        • customs declaration id (text)
        • customs declaration toggle (number)
        • shipment object id (text)
        • shipping label (container)
        • shipping label errors (text)
        • shipping dimension fields (height, length, width, and weight)
        • shipping tracking number (text)
        • shipping tracking number url (text)
        • log id (global)
        • constant 1 (global)
      • ORDER_LINE_ITEM
        • housekeeping fields (primary key, creation/mod date, account, and timestamp)
        • order id (text)
        • item name (text)
        • item quantity (number)
        • item weight (number)
        • item price (number)
        • item extended price (auto-enter of quantity x price)
      • PREFERENCES
        • housekeeping fields (primary key, creation/mod date, account, and timestamp)
        • company name (text)
        • company address fields (address 1, address 2, city, state, zip, country)
        • company email (text)
        • company phone (text)
        • Shippo live token (text)
        • Shippo text token (text)
        • Shippo live mode/test mode toggle (number)
      • RATE_OPTION
        • housekeeping fields (primary key, creation/mod date, account, and timestamp)
        • shipping carrier account id (text)
        • order id (text)
        • rate id (text)
        • rate amount (number)
        • chosen rate checkbox (number)
        • duration terms (text)
        • estimated days to delivery (text)
        • shipping provider (text)
        • service level name (text)
        • service level token (text)

    Relationships

    • You need to create 5 relationships off of the ORDER table:
      1. a creation/deletion relationship to ORDER_LINE_ITEM using the ORDER primary key.
      2. a cartesian relationship to PREFERENCES using the primary keys.
      3. a creation relationship to LOG using the global logID field.
      4. a relationship to RATE_OPTION using the ORDER primary key.
      5. a relationship to RATE_OPTION using the ORDER primary key and chosen rate field.

    Scripts

    • You need to create 6 scripts:
      • Startup
        1. You need to create (or modify) a script that runs on startup of the FileMaker database.
        2. Add a script step that goes to a new layout called based on ORDER (we will create the layout later).
        3. After going to the new layout, set the global constant 1 field to the value of 1. You will use this global to make the chosen shipping rate relationship work that you created earlier.
      • Create a Shipment
        1. You need to create a new script that generates a shipment in Shippo.
        2. In this new script, set a variable for the URL we will POST the shipment information to (https://api.goshippo.com/shipments/). Add three more variables: one for the Shippo test token, one for the Shippo live token, and one for the checkbox that determines if the live or test token is used. You'll need to use the cartesian relationship from ORDER to PREFERENCES for these three variables.
        3. Next, set all the variables for the company that is shipping the product (company name, phone, email, fax, address, city, state, and zip). Again, these fields come from the PREFERENCES table, so you will need to use the cartesian relationship from ORDER to PREFERENCES for these variables.
        4. After that, set all the variables for the customer (full name, company, address 1, address 2, city, state, zip, country, email, and phone). All of this information is on the order screen so there is no need to use a relationship here, just use the ORDER context (and ensure you are on the ORDER context when running the script).
        5. Then, set all the variables for the shipping info (weight, length, height, width, and requires customs declaration checkbox). These fields are also on the order screen, so just use the ORDER context again.
        6. In this step, you can choose to validate that all of the variables you set are present before you run the rest of the script. We recommend doing this so that you aren't wasting time with the API call if all of the variables are not set correctly.
        7. Next, check to see if the shipment requires a customs declaration. If it does, you will run the "Create a Customs Declaration" script that we will go over in the next script breakdown. Check that the script doesn't return an error. If there are no errors, expect a customs declaration ID to be returned to be added to the JSON request payload in the next step.
        8. Now that all the variables are set, you need to wrap it all up in a nice JSON variable to be sent as a request payload. You can see exactly how Shippo wants to receive this request payload here. Also, if you need help building the JSON variable, you can read up on JSON functions with FileMaker here.
        9. After you've created a request, you can use the Insert from URL script step to send the JSON request payload. A JSON response payload will come back from Shippo. You can take this JSON response payload and parse it out however you wish, but you can check the "status" key-value pair to see if the response is "SUCCESSFUL" or not.
        10. Next, you need to save the "object_id" key-value from the JSON response payload into the shipment object ID field in the ORDER table. You will use this later to create shipping rates.
        11. Last, you need to run the "Create Shipping Rates" script that we will go over in a later script breakdown.
      • Create a Customs Declaration
        1. For international shipments, you will need a Customs Declaration. This is basically a piece of paper that tells Customs Officers what is in the package.
        2. To generate a Customs Declaration you need to create a new script with a variable for the URL we POST to (https://api.goshippo.com/customs/declarations/). See three more variables: one for the Shippo test token, one for the Shippo live token, and one for the checkbox for if we are using the live token or not. You will need to use the cartesian relationship from ORDER to PREFERENCES for these three variables.
        3. Next, set a variable for the full name of the customer you are shipping to. Create four more variables that use the List function to group the name, weight, quantity, and extended price from the ORDER_LINE_ITEM relationship off of ORDER.
        4. Now, create a JSON request payload based off of the payload Shippo is expecting (you can see this expected payload here). You'll see that Shippo is expecting a list of items in the shipment. To do this, you will need to loop through all of the order line items and append them to the JSON request payload.
        5. Last, send the JSON request payload to Shippo and receive the JSON response payload. Check for success or errors. If successful, grab the "object_id" key-value and set it as the customs declaration ID in the ORDER table. Then, pass the "object_id" key-value back to the parent script in the Exit Script script step.
      • Create Shipping Rates
        1. You need a way to generate all possible shipping rates for a particular shipment.
        2. Create a new script and set a variable for the URL we will POST to (https://api.goshippo.com/shipments/[SHIPMENT_OBJECT_ID_GOES_HERE]/rates/[CURRENCY_TYPE_GOES_HERE]). The currency type, in this case, is simply USD. Set three more variables: one for the Shippo test token, one for the Shippo live token, and one for the checkbox for if we are using the live token or not. You will need to use the cartesian relationship from ORDER to PREFERENCES for these three variables.
        3. Next, you need to set a variable for orderID and for shipmentObjectID.
        4. Once again, you can validate that all of the variables are set before running the script.
        5. Now, do an Insert from URL script step using a cURL command on the URL by sending just the Authorization with the live or test Shippo token using a GET method.
        6. This time, you want to check if you received shipping rates from the JSON response payload by checking for a "count" key-value. If you don't get a count, then check for errors. If you do get a count, then you will go to the RATE_OPTION table, check to see if shipping rates for the current order already exist (if they do, simply delete the found count of records), and then loop over each JSON rate array and parse the information into the following fields: orderID, rateID, carrier account, rate amount, service level name, service level token, provider name, estimated days, and duration terms.
      • Create Shipping Label
        1. You need a way to generate the shipping label and tracking number information based on the rate that was chosen.
        2. First, create a script and set a variable for the URL we will post to (https://api.goshippo.com/transactions/). Set three more variables: one for the Shippo test token, one for the Shippo live token, and one for the checkbox for if we are using the live token or not. You need to use the cartesian relationship from ORDER to PREFERENCES for these three variables. Also, you need to set a variable for the selected shipping rate by using the relationship from ORDER to RATE_OPTION that uses the chosen rate field.
        3. Once more, you can validate that all of the variables are set before proceeding.
        4. Next, create a request payload by using the Insert from URL script step and passing in cURL options for authorization, rate, label file type and async using a POST method.
        5. Now, check to see if you receive a "SUCCESS" status from the JSON response payload, otherwise, check for errors.
        6. Then, set a variable for a shipping label image URL by getting the "label_url" key-value from the JSON response payload. Do an Insert from URL script step onto the shipping label container field with the URL set to the shipping label image URL variable. This will pull the PDF of the shipping label into the shipping label container field.
        7. Last, set the tracking number and tracking URL fields with the "tracking_number" and "tracking_url_provider" key values you get from the response.
      • Select Shipping Method
        1. You need a way to select a shipping rate from the Shipping Info portal. You will have checkboxes in the portal to select a rate, but you don't want to be able to select multiple (which is the default behavior). This script will run through all of the shipping rates in the portal and only leave the one selected as the one checked off.
        2. Create a script with two variables: orderID and rateID, with orderID being the current order primary key and rateID being the ID of the shipping rate selected from the portal.
        3. Next, write a Go To Layout script step that goes to the base table layout for RATE_OPTION, do a find for all of the records that match the orderID, and loop through them.
        4. Inside the loop, check each record to see if the rateID of the record matches the rateID variable that you set earlier. If it matches, set the "chosen rate" field to 1, otherwise, set the field to "".

    Layouts

    • Order Layout
      1. Create a layout based on the ORDER table to use as the order data entry screen.
      2. Add all of the fields from the ORDER table to the layout and arrange how you see fit.
      3. Make sure the Customs Declaration field is a checkbox and the value list value of 1.
      4. Create a portal based on ORDER_LINE_ITEM using the relationship from ORDER. Add the item name, weight, quantity, price, and extended price fields. Format the fields how you see fit. You can optionally add a delete portal row button.
      5. Create a portal based on RATE_OPTION using the relationship from ORDER (not the relationship that uses the chosen rate field). Add the chosen rate (checkbox with value list value of 1), provider, service level name, and amount fields. Format the fields how you see fit. Make the chosen rate checkbox a button with the "Select Shipping Method" script attached.
      6. Create a button called "Generate Shipment & Rate" that runs the "Create a Shipment" script.
      7. Create a button called "Generate Shipping Label" that run the "Create Shipping Label" script.
    • Setup Layout
      1. Create a layout based on the PREFERENCES table.
      2. Add to the layout all of the company name and address fields along with the Shippo live token, test token, and live mode/test mode toggle (as a checkbox with the value list value of 1).

    Conclusion

    Integrating with an API service like Shippo to generate shipping labels and tracking information inside your FileMaker solution can greatly reduce your workload and increase your bandwidth to do more revenue-generating activities. If you need assistance integrating Shippo into your custom FileMaker solution, feel free to contact us.

    ]]>
    <![CDATA[FileMaker Amazon Marketplace Integration]]> https://dbservices.com/blog/filemaker-amazon-integration https://dbservices.com/blog/filemaker-amazon-integration Wed, 13 Sep 2017 00:00:00 -0400 FileMaker Amazon

    Amazon is the largest e-commerce site in the world, making brick and mortar stores scramble to catch up online as Amazon continues to grow marketshare. While Amazon only holds a mere 5 percent share of total retail sales, excluding food, across the country according to data from the U.S. Census Bureau, in 2016 Amazon posted revenue of 136 billion dollars compared to 107 billion in 2015, 27% year over year growth. Getting your business set up with Amazon is a great way to promote your products and boost your sales. It is never to late to jump on the sales freight train that is Amazon. We will demonstrate how you can streamline your operation by directly integrating your FileMaker solution with Amazon using Amazon Marketplace Web Service.

    ]]> Creating a Developer Account

    There are a few prerequisites that you will need to meet first before you can continue. You can get all the information you need and more in the Amazon MWS Documentation. If you do not have a seller account, you will need to create one by registering at Amazon Services.

    If you have what you need to register as a developer, then you will need to log in and go to your User Permissions page. Click on the Register as a Developer button and follow the instructions. When you finish the process, you will then see your Seller ID (Merchant ID), Marketplace ID, AWS Access Key ID, and Secret Key. These are important for our integration and should be kept safe and secret.

    FileMaker Amazon register developer

    Amazon MWS Signatures

    Once you have your API information, you will need to authenticate your solution with the Amazon MWS API. Amazon requires you to add a signature to all of your requests to authenticate your requests. Please reference the documentation on signing requests. The main goal of the signature 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.

    Set Variable [ $sigString ; Value: "GET" & Char (10) & $host & Char (10) & $api & Char (10) & $params ]
    Set Variable [ $authCode ; Value: CryptAuthCode ( $sigString ; "SHA256" ; $secretKey ) ]
    Set Variable [ $signature ; Value: Base64EncodeRFC ( 4648 ; $authCode ) ]
    

    Making Requests and Parsing the Response

    To send a request to the API, you will need to use the Insert from URL script step with FileMaker cURL options.

    Set Variable [ $parameters ; Value: "AWSAccessKeyId=XXXX&Action=ListOrders&CreatedAfter=XXXX&MarketplaceId.Id.1=XXXX&SellerId=XXXX&SellerOrderId=XXXXX&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=XXXXX&Version=2013-09-01" ]
    Set Variable [ $cURL ; Vaule: "-X POST --data " & $parameters ]
    Insert from URL [ Select ; With Dialog: Off ; $result ; $url ; $cURL ; Do not automatically encode URL ]
    

    Once a successful request has been made, an XML-encoded response will be returned. FileMaker does not have a native function for reading XML, so a plugin or a good custom function is needed in order to easily make and read any XML that is sent or received from the API. I suggest using the BaseElements Plugin as it is a free and powerful plugin that can handle all of our XML needs. You will be able to use the function BE_XPath( ) to pull any information out of the response that you wish.

    <?xml version="1.0" encoding="UTF-8"?>
    <ListOrdersResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
       <ListOrdersResult>
          <Orders>
             <Order>
                <LatestShipDate>2017-08-19T04:48:48Z</LatestShipDate>
                <OrderType>StandardOrder</OrderType>
                <PurchaseDate>2017-09-01T17:06:50Z</PurchaseDate>
                <AmazonOrderId>XXX-XXXXXXX-XXXXXXX</AmazonOrderId>
                <BuyerEmail>XXXXXX@dbservices.com</BuyerEmail>
                <IsReplacementOrder>false</IsReplacementOrder>
                <LastUpdateDate>2017-09-01T05:10:11Z</LastUpdateDate>
                <NumberOfItemsShipped>1</NumberOfItemsShipped>
                <ShipServiceLevel>SecondDay</ShipServiceLevel>
                <OrderStatus>Shipped</OrderStatus>
                <SalesChannel>Amazon.com</SalesChannel>
                <IsBusinessOrder>false</IsBusinessOrder>
                <NumberOfItemsUnshipped>0</NumberOfItemsUnshipped>
                <PaymentMethodDetails>
                   <PaymentMethodDetail>Standard</PaymentMethodDetail>
                </PaymentMethodDetails>
                <BuyerName>DB Services</BuyerName>
                <OrderTotal>
                   <CurrencyCode>USD</CurrencyCode>
                   <Amount>1.00</Amount>
                </OrderTotal>
                <IsPremiumOrder>false</IsPremiumOrder>
                <EarliestShipDate>2017-09-01T04:48:48Z</EarliestShipDate>
                <MarketplaceId>MARKET</MarketplaceId>
                <FulfillmentChannel>AFN</FulfillmentChannel>
                <PaymentMethod>Other</PaymentMethod>
                <ShippingAddress>
                   <StateOrRegion>IN</StateOrRegion>
                   <City>Indianapolis</City>
                   <CountryCode>US</CountryCode>
                   <PostalCode>46250</PostalCode>
                   <Name>DB Services</Name>
                   <AddressLine1>8604 Allisonville Rd</AddressLine1>
                </ShippingAddress>
                <IsPrime>false</IsPrime>
                <ShipmentServiceLevelCategory>SecondDay</ShipmentServiceLevelCategory>
                <SellerOrderId>XXX-XXXXXXX-XXXXXXX</SellerOrderId>
             </Order>
          </Orders>
          <CreatedBefore>2017-08-22T12:42:43Z</CreatedBefore>
       </ListOrdersResult>
       <ResponseMetadata>
          <RequestId>XXXXXXXX-XXXXX-XXXX-XXXX-XXXXXXXXXX</RequestId>
       </ResponseMetadata>
    </ListOrdersResponse>
    

    For example, you can get the Amazon Order Id by using the following:

    Set Variable [ $n ; Value: 1 ]
    Set Variable [ BE_XPath ( $result ; "/ns:ListOrdersResponse/ns:ListOrdersResult/ns:Orders/ns:Order[" & $n & "]/ns:AmazonOrderId" ; "ns=https://mws.amazonservices.com/Orders/2013-09-01") ]
    

    The $n variable is used to get the nth order in the list. In the example provided there is only one order; however, if your result contains multiple orders you will need to change $n to the nth number.

    Amazon Feeds: Acknowledging and Shipping an Order

    The above example is based on the Order API. That will give you the basic information on your orders. Once you are ready to acknowledge or ship an order, you will need to use the Feeds API. The Feeds API will not automatically process your request and give you the results of your request, so communicating with this API requires two steps:

    • Make request to the Feed API and grab the Feed Submission ID.
    • Continuously query the Feed API with the Feed Submission ID for the results of your original request.

    This means that once you have submitted your original request, Amazon will either acknowledge that it received a valid request and give you a request id to watch, or it will respond with an immediate error.

    <?xml version="1.0" encoding="UTF-8"?>
    <SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
       <SubmitFeedResult>
          <FeedSubmissionInfo>
             <FeedSubmissionId>50002017409</FeedSubmissionId>
             <FeedType>_POST_ORDER_ACKNOWLEDGEMENT_DATA_</FeedType>
             <SubmittedDate>2017-08-31T11:56:14+00:00</SubmittedDate>
             <FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus>
          </FeedSubmissionInfo>
       </SubmitFeedResult>
       <ResponseMetadata>
          <RequestId>15e66ef4-6306-4a1b-9712-20d9ee6d9b16</RequestId>
       </ResponseMetadata>
    </SubmitFeedResponse>
    

    If you sent a valid request, you will then have to wait and continuously query the Feeds API with your Feed Submission ID. Amazon will then respond with try again, error, or success response.

    <?xml version="1.0" encoding="UTF-8"?>
    <AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
        <Header>
            <DocumentVersion>1.02</DocumentVersion>
            <MerchantIdentifier>XXXXXXXXX</MerchantIdentifier>
        </Header>
        <MessageType>ProcessingReport</MessageType>
        <Message>
            <MessageID>1</MessageID>
            <ProcessingReport>
                <DocumentTransactionID>XXXXXXXXX</DocumentTransactionID>
                <StatusCode>Complete</StatusCode>
                <ProcessingSummary>
                    <MessagesProcessed>1</MessagesProcessed>
                    <MessagesSuccessful>1</MessagesSuccessful>
                    <MessagesWithError>0</MessagesWithError>
                    <MessagesWithWarning>0</MessagesWithWarning>
                </ProcessingSummary>
            </ProcessingReport>
        </Message>
    </AmazonEnvelope>
    

    Conclusion

    Following the steps above you can integrate your FileMaker solution with Amazon and streamline your workflow. Feel free to contact us if you need further assistance or to discuss getting your Amazon account integrated with FileMaker.

    ]]>
    <![CDATA[FileMaker Xero Integration]]> https://dbservices.com/blog/filemaker-xero-integration https://dbservices.com/blog/filemaker-xero-integration Sat, 05 Aug 2017 00:00:00 -0400 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.

    Xero API Application Types

    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.

    Xero Application Setup

    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.
    • Xero API expects timestamps to be posted in UTC. Our demo file handles this for you as long as correct time zone and daylight savings checkbox is marked according to your computer's timezone.

    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.

    ]]>
    <![CDATA[FileMaker Business Intelligence Using Tableau]]> https://dbservices.com/blog/filemaker-business-intelligence-using-tableau https://dbservices.com/blog/filemaker-business-intelligence-using-tableau Wed, 12 Jul 2017 00:00:00 -0400 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://<>/fmi/rest/tableau/fm_connecto... for FileMaker Server 16 and https://<>/fmi/data/v1/tableau/fm_conne... for FileMaker Server 17. This will take you to the following page.

    FileMaker Tableau Data Connector

    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.

    FileMaker Tableau Overview

    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.

    ]]>
    <![CDATA[FileMaker Crosstab Reports]]> https://dbservices.com/blog/filemaker-crosstab-reports https://dbservices.com/blog/filemaker-crosstab-reports Wed, 14 Jun 2017 00:00:00 -0400 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.

    FileMaker List vs Crosstab Report

    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.

    Native FileMaker Crosstab Report

    Native FileMaker Crosstab Relationship GraphFileMaker Native Crosstab Report Fields

    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.

    FileMaker HTML Crosstab Report

    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> </td>
              <td> </td>
              <td> </td>
          </tr>
          <tr>
              <td> </td>
              <td> </td>
              <td> </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 (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.

    FileMaker Print Web Viewer

    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.

    ]]>
    <![CDATA[FileMaker 16 Overview]]> https://dbservices.com/blog/filemaker-16-overview https://dbservices.com/blog/filemaker-16-overview Tue, 09 May 2017 12:10:00 -0400 filemaker 16 logo

    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 OAuth 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 OAuth 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 Ethan Yoder 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 Data 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 Data 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 producing 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.

    ]]>
    <![CDATA[FileMaker PDF from Server]]> https://dbservices.com/blog/filemaker-pdf-from-server https://dbservices.com/blog/filemaker-pdf-from-server Tue, 09 May 2017 12:09:00 -0400 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.

    FileMaker WebDirect View as PDF Menu
    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. To learn more, read our article on how to create a PDF via PHP on FileMaker Server.
    ]]>
    <![CDATA[Location Monitoring in FileMaker Go]]> https://dbservices.com/blog/location-monitoring-in-filemaker-go https://dbservices.com/blog/location-monitoring-in-filemaker-go Tue, 09 May 2017 12:08:00 -0400 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

    1. 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.
    2. 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.
    3. 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.

    1. Latitude: specifies the latitude of the center for the region.
    2. Longitude: specifies the longitude of the center for the region.
    3. Radius: specifies the radius (in km) of the region.

    Visually, think about a geofence region as something like this:

    filemaker image radius visual representation

    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.

    1. 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.
    2. 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.
    3. 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 13/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 13/31/2017 9:00:00 AM;13/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.

    ]]>
    <![CDATA[FileMaker 16 User Interface Enhancements]]> https://dbservices.com/blog/user-interface-enhancements-in-filemaker-16 https://dbservices.com/blog/user-interface-enhancements-in-filemaker-16 Tue, 09 May 2017 12:07:00 -0400 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 15 Interface

    FileMaker 16 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.

    ]]>
    <![CDATA[FileMaker Data API]]> https://dbservices.com/blog/filemaker-data-api https://dbservices.com/blog/filemaker-data-api Tue, 09 May 2017 12:06:00 -0400 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.

    FileMaker Rest API FileMaker 16 Admin Console

    FileMaker Rest API Security Options

    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 or get the contents of a value list 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.

    Another thing you might run into while working with the API is that it does not return the number of records found when doing a find or accessing all records for a layout. This doesn't sound like a big deal, but without knowing the total number of records found you can't paginate your results reliably. Luckily there is a workaround for this. You'll need to create a new unstored calculation that calculates as "get( foundCount)" and put it on the layout you are using for your web call. The correct found count will be returned for every record, even if you are only pulling the first few records.

    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.

    ]]>
    <![CDATA[FileMaker Card Windows]]> https://dbservices.com/blog/filemaker-card-windows https://dbservices.com/blog/filemaker-card-windows Tue, 09 May 2017 12:05:00 -0400 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.

    FileMaker new window step option card windowHere 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.

    filemaker card window popover"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:

    1. Add a popover object to the side of the layout.
    2. Create a button which goes to the popover by object name.
    3. Increase the popover size to be as large as possible.
    4. Make the popover color some transparent fill, to see layout objects behind.
    5. Since about 5-10 pixels are required to render the popover, a drop shadow with spread must be added as well.
    6. 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.
    7. 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 usesiOS, filemaker go, card window, filemaker 16

    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.

    ]]>
    <![CDATA[FileMaker JSON Functions]]> https://dbservices.com/blog/filemaker-json-functions https://dbservices.com/blog/filemaker-json-functions Tue, 09 May 2017 12:04:00 -0400 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.

    ]]>
    <![CDATA[FileMaker cURL Options]]> https://dbservices.com/blog/filemaker-curl-options https://dbservices.com/blog/filemaker-curl-options Tue, 09 May 2017 12:03:00 -0400 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 of.

    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:

    FileMaker Insert from URL Options

    Second, they opened up the Target to be either a field or a variable, instead of just a field:

    FileMaker Insert URL Target

    In our GIF above, our cURL options calc looked like this:

    filemaker curl options calc

    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.

    filemaker insert from url script step
    The full Insert from URL script step with data.

    After running the script, the HTTP status header we got back was:

    filemaker curl http response headers

    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.

    ]]>
    <![CDATA[FileMaker Layout Objects Window]]> https://dbservices.com/blog/filemaker-layout-objects-window https://dbservices.com/blog/filemaker-layout-objects-window Tue, 09 May 2017 12:02:00 -0400 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.

    FileMaker Layout Objects Window

    Note that selected objects are highlighted on the window. You can hide all other objects in the layout to concentrate on selected objects.

    FileMaker Layout Objects Window Hide Others

    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

    FileMaker Layout Objects Window Stacked ObjectsFileMaker Layout Objects Window Set Field

    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.

    FileMaker Layout Objects Window Search BoxFileMaker Layout Objects Window Filter Options FileMaker Layout Objects Window Object Options

    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.

    ]]>
    <![CDATA[FileMaker 16 Security Features]]> https://dbservices.com/blog/filemaker-16-security-features https://dbservices.com/blog/filemaker-16-security-features Tue, 09 May 2017 12:01:00 -0400 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 OAuth ChoicesFileMaker 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

    FileMaker Pro Security Credential

    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.

    ]]>
    <![CDATA[Build or Buy (Should I Learn FileMaker?)]]> https://dbservices.com/blog/build-or-buy-should-i-learn-filemaker https://dbservices.com/blog/build-or-buy-should-i-learn-filemaker Wed, 19 Apr 2017 00:00:00 -0400 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?

    FileMaker Build vs Buy
    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.

    ]]>
    <![CDATA[FileMaker QuickBooks Online Integration]]> https://dbservices.com/blog/filemaker-quickbooks-online-integration https://dbservices.com/blog/filemaker-quickbooks-online-integration Wed, 05 Apr 2017 00:00:00 -0400 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.55 million subscribers at the end of the year. 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.

    FileMaker QuickBooks OnlineNow 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 Redirect 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 Client ID and Client Secret into your solution. Keep your secret hidden from the world as the combination of the ID and Secret will be used to authorize your solution to make changes to the end user's QuickBooks.

    If you don't have access to a QuickBooks company that already exists, you need to be invited by the administrator to become an accountant. Ask the admin to log in to QuickBooks Online, click Company, Manage Users, and Invite Accountant. You will receive an email with a link to connect your developer account and the company.

    Authenticating with QuickBooks Online Using OAuth 2.0

    *Note: As of July 17, 2017 QuickBooks Online uses OAuth 2.0 for all new apps.

    Once you have your API information, you will need to authenticate your solution with the QuickBooks Online Accounting API. 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 OAuth 2.0. To authenticate your solution, place the user into a web viewer at the API authentication screen. This will prompt the user to login with their own account and allow your solution to make changes to their QuickBooks.

    FileMaker QuickBooks Online authenticationOnce they have agreed, they will be sent to the address specified in your Redirect URL. In the address, there will be URL encoded parameters, one of which will be the code and another the realm ID (QuickBooks Company ID). Finally, you will use the code provided, along with your ID 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.

    Insert from URL [ Select ; With Dialog: Off ; $result ; "https://quickbooks.api.intuit.com/v3/company/[Realm ID Here]/customer" ; $cURL ; Do not automatically encode URL ]
    

    Once a successful request has been made, a JSON encoded response will returned. You will then be able to use the function JSONGetElement () 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 [ JSONGetElement ( $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 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.
    • QuickBooks Online integration with FileMaker does not require a plugin and everything is done natively.

    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.

    ]]>
    <![CDATA[Apple’s Secret Subsidiary]]> https://dbservices.com/blog/apples-secret-subsidiary https://dbservices.com/blog/apples-secret-subsidiary Tue, 21 Mar 2017 00:00:00 -0400 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 HistoryFileMaker Headquarter Apple Subsidiary

    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.

    ]]>
    <![CDATA[Building a Dynamic and Robust FileMaker System]]> https://dbservices.com/blog/building-a-dynamic-robust-filemaker-system https://dbservices.com/blog/building-a-dynamic-robust-filemaker-system Wed, 08 Mar 2017 00:00:00 -0500 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".

    <span class="long-link">If [ Get ( ActiveFieldTableName ) & "::" & ( ActiveFieldName ) = "CONTACT::firstName"]</span>
        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.

    Building a Dynamic and Robust FileMaker SystemHow 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.

    <span class="long-link">If [ Get ( ActiveFieldTableName ) & "::" & Get ( ActiveFieldName ) = GetFieldName ( CONTACT::firstName ) ]</span>
        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:

    <span class="long-link">If [ Get ( LayoutName ) = "Contact - Data Entry" ]</span>
        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:

    <span class="long-link">If [ Get ( LayoutName ) = getLayoutName ( 2 ) ]</span>
        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 gives your solution more flexibility, allowing you to accomplish complicated tasks with fewer lines of code. If you follow what we discussed in this article carefully, you should be able to build a dynamic yet robust FileMaker system.

    ]]>
    <![CDATA[Why Your Business Should Use a Custom App]]> https://dbservices.com/blog/why-your-business-should-use-a-custom-app https://dbservices.com/blog/why-your-business-should-use-a-custom-app Fri, 24 Feb 2017 00:00:00 -0500 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”.

    custom application vs off the shelf application

    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 and deal with features you don’t care about or that 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 said they “just wanted a better way to work.” These problem-solvers drive innovation and constant improvement.

    More Effective, More Efficient

    custom application roiBecoming 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 liberates 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 75% 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 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 also reduces the communication needs 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 FileMaker Development, please 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.

    ]]>
    <![CDATA[Integrating FileMaker With RESTful APIs]]> https://dbservices.com/blog/integrating-filemaker-with-rest-apis https://dbservices.com/blog/integrating-filemaker-with-rest-apis Wed, 08 Feb 2017 00:00:00 -0500 By now you’ve probably heard of REST API, but why should you care as a FileMaker developer? Well REST APIs are a universal standard for interacting with other programs and services, so by learning REST you can greatly expand the capabilities of what FileMaker can do, and the services it can interact with. If you've ever wanted to integrate FileMaker with Google MapsGoogle CalendarMicrosoft SharePoint, or many other great services, you'll want to learn what RESTful APIs are and how to use them.

    ]]> REST Overview

    REST stands for “REpresentational State Transfer”. Unfortunately, that doesn’t really tell us much. What this means is that REST is a standard for manipulating data in a standardized format that represents the data. The representational part of REST means that the URL or route you use to access or manipulate the data should correspond with the data, so accessing /users should show users, and /posts, should only show posts, and all actions will take place on those URLs. Another thing you’ll hear a lot when talking about REST is CRUD, which stands for Create, Read, Update, and Delete. With these four actions, you can do anything to a system using an easy-to-understand format.

    In order to fully work with a REST API you must understand the different types of HTTP methods you can make. GET is the most common method, and happens anytime you browse the web, or type in a specific URL into the address bar and is what you would use for the “read” in CRUD. The rest of the HTTP methods like POST, PUT, and DELETE can only be performed by web forms or built-in functions provided by most libraries. POST is used to submit data to a server and is generally used to add a new record or pass more data than would reasonable to put in a URL. PUT and PATCH are used to update an existing record, and finally DELETE is obviously used to delete a record. Understanding the basic structure and actions of a RESTful API will make working with them so much easier.

    Below are the standard routes used when working with a RESTful API. Go ahead and test the GET commands by clicking on the routes below to view some sample data.

    METHOD ROUTE PARAMS ACTION
    GET /posts Retrieves a list of all posts.
    GET /posts/1 Retrieves post with ID number 1.
    GET /posts/1/comments Retrieves all comments from post number 1.
    POST /posts

    {
    "userId": 1,
    "title": "title",
    "body": "body..."
    }

    Adds a new post.
    PUT /posts/1

    {
    "title": "New Title"
    }

    Updates post number 1’s title to New Title.
    DELETE /posts/1 Deletes post number 1.

    Integrating with FileMaker

    The main way to interact with a RESTful API from FileMaker is using the "Insert from URL" script step. The "Insert from URL" script step is capable of doing GET requests and POST requests. Whenever you insert from a URL that starts with 'https' or 'http' you are doing a standard GET request. FileMaker has a unique way of handling POST requests, to do one you would start your URL with either 'httppost' or 'httpspost'. One limitation you will probably run into quickly is the inability to set custom HTTP headers before sending a request. This is sometimes necessary for authentication or telling the API what the data format being submitted is. If you run into this your best option is to use the excellent BaseElements Plugin by Goya, which has the capability to set HTTP headers using the BE_HTTP_Set_Custom_Header function, which works with the following functions: BE_HTTP_GET, BE_HTTP_POST, BE_HTTP_PUT_DATA, BE_HTTP_DELETE.

    Download the sample file below to look under the hood. In the sample file we have integrated with a simple Ruby on Rails app we spun up that manages usernames; while most services you'll work with will be more complicated than this, it's still a great example of how to work with a REST API.

    Conclusion

    REST is a great addition to any FileMakers developer's toolkit, allowing FileMaker to integrate with some of the most used services on the web today and we're only going to see more of it in the future. Because all REST APIs use the same conventions and principles, working with RESTful APIs will only get easier the more you work with them, and there is no time like now to start learning.

    ]]>
    <![CDATA[Integrating FileMaker and SharePoint Using Microsoft Graph]]> https://dbservices.com/blog/integrating-filemaker-and-sharepoint-using-microsoft-graph https://dbservices.com/blog/integrating-filemaker-and-sharepoint-using-microsoft-graph Wed, 18 Jan 2017 00:00:00 -0500 Often times documents are commonly needed in multiple programs, but the lack of integration can result in having to enter in the same files in different applications. Microsoft Graph is a powerful tool that provides a unified API interface for many of Microsoft’s most popular Cloud programs, including the popular web-based application SharePoint.

    Integration between SharePoint and FileMaker is even possible using Microsoft Graph. In this example I will demonstrate how to upload files from a FileMaker solution into your SharePoint site.

    There are three main steps to the integration. Allowing access to your Microsoft Application, setting up OAuth 2.0 authentication, and the actual uploading of documents to Sharepoint.

    Watch on Youtube: Integrating FileMaker and SharePoint Using Microsoft Graph

    ]]> Setting Up Your Microsoft Application
    In order to allow FileMaker to talk to your SharePoint solution using Microsoft Graph, you will first need to set up a Microsoft Application to allow access using OAuth 2.0. If you go to Microsoft’s My Applications page you can either edit an existing application or create a new one. (If you don’t have a site already, you will need to create a site in SharePoint prior to this). Make note of the Application ID (sometimes called the Client ID), you’ll need this in your FileMaker solution.

    Next you’ll need to create a new Application Secret (again, sometimes called Client Secret). Generate and copy the password. This is the only time you will be able to copy this password, so be sure to document it somewhere or else you will have to generate a new password.

    Now add a new web platform, and allow implicit flow and enter in the Redirect URI. The Redirect URI is just the web page the user will go to after they allow access to the SharePoint application.

    filemaker secret redirect

    Next you will need to allow Microsoft Graph Delegated Permissions. For the purposes of this demo you will only need the ones referenced in the image or in our Demo file.

    filemaker delegated permissions

    Setting Up OAuth 2.0 Connection
    Now that we have our Microsoft Application set up, using the Application ID, Application Secret, Redirect URI, and Site Name we can talk to our SharePoint solution! The first step is getting the access code. You will need to call this in a web browser or Web Viewer in FileMaker using a URL.

    filemaker allow access

    Once you accept, you can grab the access code in the URL. Then using this, you can request a token to access your SharePoint site. A JSON-encoded response will bring you the account and refresh tokens, which you can then use to talk to your SharePoint solution.

    For more about how OAuth 2.0 works, reference the OAuth 2.0 Authorization Code Flow.

    Uploading Documents to SharePoint through FileMaker
    With everything set in place, we can now upload documents through FileMaker into your SharePoint site. In order to upload files, we will need to use them to grab your Site ID in SharePoint. Below is the URL template.

    https://graph.microsoft.com/beta/sharepoint:/YOUR_SITE_NAME_HERE

    Be sure to set your authorization headers using the BE_HTTP_Set_Custom_Header and the access token before performing your GET call.

    filemaker oauth2 token siteID

    Next, use your Site ID to grab the drive ID where the document will be uploaded.

    https://graph.microsoft.com/beta/sharepoint/sites/YOUR_SITE_ID_HERE/drive

    Again be sure to set your authorization header with the access token. Then using the drive ID, you can use a PUT call to create the file in SharePoint! If it is successfully created, you will receive a JSON-response code with the information about the newly created item.

    filemaker sharepoint item response code

    And in the documents in SharePoint, the new document is created!

    filemaker new document

    The potential of SharePoint and FileMaker integration using Microsoft Graph goes beyond this. You can reference all the functionality on their API Documentation. There are even more Microsoft programs that can be integrated with FileMaker using Microsoft Graph, such as Excel, Outlook, and Webhooks.

    Conclusion
    With those three steps, documents added into FileMaker can easily be uploaded automatically into SharePoint. This integration allows documents to quickly and easily be uploaded and viewable in both applications. Microsoft Graph’s ever-expanding capabilities continue to allow for further integrations with Microsoft and other programs using a unified API interface.

    ]]>
    <![CDATA[FileMaker Barcode Techniques]]> https://dbservices.com/blog/filemaker-barcode-techniques https://dbservices.com/blog/filemaker-barcode-techniques Thu, 08 Dec 2016 00:00:00 -0500 Using barcodes in FileMaker is a very easy and useful way to extend your database. Whether you are selling tickets, managing assets, creating name tags, or any number of other use cases, barcodes can easily be used to provide an instant way to locate a record in your database system and much more. Barcodes can be generated and scanned for iPads, iPhones, Windows, and Macs.

    Watch on Youtube: FileMaker Barcode Techniques

    ]]> How To Generate

    There are many different methods that can be used to generate barcodes in FileMaker and there are many different types of barcodes that you can create. The 2 main types are QR codes and regular barcodes like you would see on millions of products. A QR code is basically a barcode with another dimension allowing it to store more information than what a 1D barcode can store before becoming unreadable by the scanner. This is why URL's are often shared using QR codes instead of standard barcodes. Do note that QR codes cannot be scanned by USB or BlueTooth scanners, but work great with camera-based scanners like a mobile device. The 3 ways we'll be talking about are through using web services like Google's Chart API, using 3rd party plugins and products like FileMaker Barcode Creator, or using barcode fonts. Below we'll go over the pros and cons for each method.

    1. Web Services

    There are plenty of great web services out there like barcode-generator.org and Google's chart API for generating QR Codes. This is the method we chose to use in our demo file as it is very flexible and free. To generate a QR code using Google's API, all you have to do is create a simple URL in FileMaker and then use the Insert from URL script step to download the image to a container field. Below is how we accomplished this in our demo file.

    filemakerbarcode-downloadqrcode

    One thing to be aware of when using this method is that the container must be on the layout and be editable when you use the Insert from URL script step. This might not be the best method to use if you have hundreds of thousands of barcodes that need to be generated, as most free web services will block you from making too many calls, and depending on internet speeds, this method could be slow.

    2. FileMaker Barcode Creator

    We're big fans of Geist Interactive's FileMaker Barcode Creator. It's easy to integrate with, has 19 different barcode types including QR Codes, is native FileMaker that works with Pro, Go, WebDirect, and server side scripts. To integrate with Barcode Creator you need to copy a modules script folder to your solution, and then you just need to call one script, passing the serial number as a parameter. The script returns a Base64 encoded string which can then be converted to an image using FileMakers Base64Decode function. FileMaker Barcode Creator is a paid product, but in our opinion is well worth the money, and is what we use in our solutions.

    3. Barcode Fonts

    Barcode fonts is another way you can create barcodes in FileMaker. This method has been around for a long time and used to be the only way to create barcodes without the use of plugins. The only reason I mention it in this article is to tell you NOT to use this method! This method has many limitations like only being able to generate and view barcodes on the desktop, with no support for FileMaker Go, or WebDirect. It also requires that all computers have the correct barcode font installed, which depending on how many users you have, can be a challenge by itself.

    4. FileMaker Barcode Add-On

    As of FileMaker 19.1, you now have another simple way to create barcodes with the Barcode Generator FileMaker Add-On. The Barcode Add-On provides you up to 18 different barcodes to choose from, including Code128 and Code39, and generates a barcode image from field data. Easily add the Barcode Generator Add-On in layout mode by dragging and dropping directly onto a layout. You also have the option to generate the barcode automatically by typing in the barcode text.

    How To Scan

    There are 2 ways to scan a barcode/QR code using FileMaker. The easiest way is to leverage FileMaker Go's ability to integrate with the iPad or iPhone's camera and allow for easy and instant barcode scanning using the Insert From Device script step. This works great as long as you have an iOS device. If you don't have an apple device you can always buy a USB or Bluetooth laser scanner. These scanning devices are interpreted as virtual keyboards when connected, so in order to scan and capture the scanner's input, you must have the cursor in a field or Show Custom Dialog input field. They work especially well with the Show Custom Dialog script step as they will trigger the OK button after scanning.

    Using a Bluetooth or USB scanner also allows for the ability to scan multiple barcodes one after another using a field with an On Exit script trigger, that goes back into the field after running so you are ready to scan again. Laser scanners are definitely quicker and preferred for scanning multiple items quickly, but they do have limitations like only being able to scan traditional barcodes (No QR codes) and they can't scan a screen. Below are a few Bluetooth scanners we have tested with FileMaker and recommend:

    Conclusion

    Creating and scanning barcodes in FileMaker is straightforward and makes a great extension of FileMaker's already great toolset. Contact us if you'd like to discuss barcoding and how you can add to your solution and improve your workflow.

    ]]>
    <![CDATA[FileMaker Cloud for AWS Overview]]> https://dbservices.com/blog/filemaker-cloud-overview https://dbservices.com/blog/filemaker-cloud-overview Tue, 08 Nov 2016 00:00:00 -0500 filemaker cloud logo awsFileMaker came out with a new way to deploy your app with FileMaker Cloud! This new product is available through Amazon Web Services (AWS) which gives you FileMaker Server in minutes.

    FileMaker Cloud is ideal for remote work groups/companies that don’t have an IT company or someone in-house that can manage the time and effort involved in running a dedicated FileMaker Server machine.

    Watch on Youtube: FileMaker Cloud Setup Demo

    ]]> Licensing

    Some important FileMaker Cloud licensing information is below.

    • FileMaker Cloud HAS to be annual licenses, whether it is FileMaker Licensing for Teams (FLT), Volume Licenses, or a Site License. If you have perpetuity licenses and are interested in FileMaker Cloud, contact us to discuss converting to FileMaker Annual licensing. If you have an Annual Volume License (AVLA) you have to have at least 5 connections or more in order for it to work on FileMaker Cloud.
    • There are two different ways to license FileMaker Cloud, directly through AWS and Bring Your Own License (BYOL).
    • The first way is to buy directly through the AWS Marketplace. The perk of going through the AWS Marketplace is that there is hourly options available, instead of just annual. However, the hourly options are 975% more expensive than annual licenses and are typically used for rare occasions such as seasonal use or to further test a solution. To save money by purchasing hourly, you would have to use your FileMaker Cloud instance less than 37 days in a year.
    • Purchasing FileMaker Cloud licenses directly through AWS limits you to four types of license types, Annual FileMaker Licensing for Teams (AFLT) with 5, 10, 25 or 100 users.
    • If one of the four available licenses types doesn't suit your needs, you definitely want to utilize Bring Your Own License (BYOL) option. Contact us to discuss getting you the best license for your FileMaker Cloud instance.

    Benefits of FileMaker Cloud

    Fast Setup

    As previously stated, arguably the best part of FileMaker Cloud is that you can have it up and running in about 30 minutes! Compare that to when you purchase your own dedicated machine to be used internally where you have to purchase the machine online or in a store, wait for it to be shipped, then go through the process of setting up the software, hardware and network which can take days!

    Reduced Maintenance

    When you have your own dedicated server, even after the initial set up described above, there is still more time that goes into making sure everything is running optimally. The main time impact saved with FileMaker Cloud is the updates and monitoring of OS updates, as well as FileMaker Server updates. Having an internal system requires you to check in to make sure that the OS is up-to-date as windows comes out with patches at least once a month, if not more. With FileMaker Cloud this is all done automatically.

    Security and Peace of Mind

    Something that everyone worries about these days is security with all of the data breaches that you hear on the news. With FileMaker Cloud, security is made easy. For starters, AWS is responsible for the physical security of the server hardware as well as the energy costs of having a data centers; this means you don’t have to worry about someone breaking into your office and literally taking all of your data. FileMaker Cloud also comes with a SSL certificate that is apart of the initial setup. This feature would need to be done manually on your own dedicated FileMaker Server machine otherwise.

    Additionally, FileMaker Cloud comes with automatic backups that happen every 20 minutes and is stored for one week. Of course with your own dedicated machine you can customize this, but FileMaker Cloud comes preset with this and is a part of the easy setup of 30 minutes or less.

    Unsupported Features in FileMaker Cloud

    With all this awesomeness why wouldn’t I want to use FileMaker Cloud!? One might ask. There are really only a handful of specific scenarios that FileMaker Cloud may not be a good fit for you and your organization.

    • Custom Web Publishing with PHP and XML – If you are, or are wanting to integrate with your website for instance, FileMaker Cloud does not support PHP or XML.
    • Plugin Support - If you are using any plugins in your application, you'll need to make sure they have a new version that supports Linux for the FileMaker Cloud.
    • External Authentication – FileMaker Cloud does not support external authentication via Active Directory/Open Directory. It does, however, support custom app authentication via FileMaker user accounts and now OAuth 2.0 with Amazon, Google, or Microsoft Azure AD. Learn more about the in our FileMaker Cloud 16 overview.
    • Server Side Scripts – FileMaker Cloud now allows for server side scripts to run available via FileMaker Admin API as of v1.16 on October 25th, 2017. Download our free FileMaker Cloud Schedule Manager to setup and manage your FileMaker Cloud Server Side Scripts.

    Moving to FileMaker Cloud

    After reading this and learning more about FileMaker Cloud you may see it as a great fit for your organization and saving you time and money compared to managing your in-house server. However, there are additional items to keep in mind aside from the unsupported features above.

    The main point is the optimization on how your application(s) are built. With having a FileMaker Server in your Local Area Network (LAN) you will have much better speed compared to anything traveling across the Wide Area Network (WAN). You may have to go through a series of steps to optimize your application(s) before moving it to a server in the cloud or else your experience may be drastically different. With this being said, if all, or most of your employees are all in one location where the current in-house server is located, it will likely be best to keep it in house. You can't beat the latency and speed of accessing a database on your LAN versus traveling back and forth across the internet on WAN.

    FileMaker realizes that customers with an existing in-house server will need to test FileMaker Cloud to see if it is a good fit for them, so they are providing a 30-day grace period to convert the FileMaker Server software. If you have questions or would like for us to review, contact us for a free technical analysis, to review and assist in optimizing your application(s) before moving to the FileMaker Cloud.

    Conclusion

    FileMaker Cloud is fast and easy to set up and can scale with little effort. There are a lot of reasons that FileMaker Cloud would be a great fit for you and your organization, between minimal impact of IT staff doing updates and deployment, to the benefits of AWS responsible for security and scalability, FileMaker Cloud is a huge benefit and welcomed addition to the FileMaker Family.

    Note about freeing up license keys

    I tested setting up FileMaker Cloud before doing the recorded demo and in turn, needed to free the license key in order to use it again. I terminated the server instance thinking this would release the server license key. In doing so, I received an Error 3030 "License Key has already been used for FileMaker Cloud." when trying to enter the license key for a new instance. I came to find that you have to deactivate the license key through the Server Admin Console before terminating an instance to free up the license key. If this happens to you, you will need to call FileMaker Support and have them manually release the license key for your new instance.

    ]]>
    <![CDATA[FileMaker and Stripe Integration]]> https://dbservices.com/blog/payment-processing-in-filemaker-using-stripe https://dbservices.com/blog/payment-processing-in-filemaker-using-stripe Wed, 05 Oct 2016 00:00:00 -0400 Imagine a company called Larry's Landscapers. It's a landscaping company that uses FileMaker in variety of ways as part of its day to day operations and has a group of customers for which it maintains lawns and driveways on an as needed basis. Wouldn't it be great if Larry could provide these customers with the same sort of payment convenience that we've all become used to when paying recurring bills? That is, give them the ability to provide payment information just once and then reuse that information, in an easy and secure way, for any and all future payments? Well, Larry, or any business for that matter, can do just that by integrating the Stripe payment platform with their FileMaker solution.

    Watch on Youtube: FileMaker and Stripe Integration

    ]]> Creating a Stripe account

    First, you'll need a basic Stripe account. They are free, can be created with just an email address and by default are set up for testing.

    FileMaker And Stripe Account Creation

    Once you have an account, the only piece of information you will need for testing is your Test Secret Key. It can be found in the API Keys tab of your Account Settings via the Stripe dashboard. This key will be passed to Stripe as a means of account authentication.

    FIleMaker And Stripe API Keys

    Processing a test payment

    Processing a payment via Stripe requires multiple steps and both steps entail POST requests, which are accomplish via the Insert from URL script step.

    Creating a customer

    Step one is a request for a customer object and is made with the following parameters:

    • stripe customer url
    • payment source, e.g. if a credit card, then you will need to create a token record first, then user source.
    • customer name
    • stripe account test secret key

    An example of the POST function call would look like this:

    Insert from URL ( $response ; "https://api.stripe.com/v1/customers" ; "-X POST" & " -u " & $SecretKey & " -d description=\"" & $customerName & "\"" & " -d source=" & $cardToken )

    The parameters passed in this example represent the standard minimal amount of customer information for a credit card. Additional information, like the cardholder's address, can also be passed along as part of the customer request. You can refer to Stripe's API documentation for more details.

    A successful customer request results in Stripe creating a customer and returning a customer object, which, like all objects returned by Stripe, is in JSON format.

    A customer is Stripe's secure way of allowing users to create a reusable means by which to charge the same payment source multiple times. It's secure because all the customer data is stored on their servers. (Servers which have been audited by a PCI-certified auditor and are certified to PCI Service Provider Level 1.) It's easy because, once a customer is created, all that's needed for processing a payment is the id of the customer object because this id now represents the customer and all their information.

    FileMaker And Stripe Customer ID

    Processing a payment

    Step two processes the payment by requesting a charge object and is made with the following parameters:

    • stripe charge url
    • charge amount as total amount of the smallest unit of the charge currency, e.g. if USD, then 1 cent
    • currency of the charge, e.g. if USD, then "usd"
    • customer object ID
    • stripe account test secret key

    An example of the POST function call would look like this:

    Insert from URL ( $response ; "https://api.stripe.com/v1/charges" ; "-X POST" & " -u " & $SecretKey & " -d amount=" & $amount & "¤cy=" & $currency & "&customer=" & $customerID )

    As with the request for a customer object, the parameters passed in this example represent the standard minimal amount of charge information. Additional information, like a description of the charge or an email address to send a receipt to, can also be passed along. As before, you can refer to Stripe's API documentation for more details.

    A successful charge request results in Stripe returning a charge object. It contains various details about the charge, like if the charge itself was successful, the type of charge it was and how it was verified.

    Failed requests and error objects

    Stripe has extensive error handling and will return an error object whenever a requests fails.

    FileMaker And Stripe Error Object

    Going live

    Moving beyond testing and processing real payments with Stripe requires the activation of your Stripe account via an account application. Then, once live, you just use your Live Secret Key in place of your Test Secret Key.

    Conclusion

    Integrating a FileMaker solution and Stripe is both straightforward and simple, and the result is an efficient and secure way for any business to process a wide variety of payments.

    ]]>
    <![CDATA[Integrating FileMaker and Salesforce using Zapier]]> https://dbservices.com/blog/integrating-filemaker-and-salesforce-using-zapier https://dbservices.com/blog/integrating-filemaker-and-salesforce-using-zapier Wed, 14 Sep 2016 00:00:00 -0400 As new technologies emerge with their own unique strengths and weaknesses, it can be difficult to choose which ones to use. This can be especially difficult to choose within companies. One department may find one program suits their needs very well, while another one that works closely with it may find some of its limitations unappealing. This can lead to many different programs being used within the same organization, but having information in one program but not another can cause confusion or slow response times. This makes integrations with different systems especially vital to maintaining efficiency.

    Fortunately, Zapier has come along to help make integrations far easier. Zapier is a website which allows over 100 different applications to integrate basic actions with one another. For example when creating a record in one application, with Zapier you can integrate another application to create a record in that application at the same time.

    Zapier can even be used in FileMaker! In this example I will demonstrate how to use Zapier and Webhooks to automatically create a lead in FileMaker when one is created in Salesforce. This is just one of many potential uses for integrating different apps to FileMaker using Zapier.

    ]]> How to set up Salesforce integration with Zapier.
    To start out, go to the Zap Editor. The first step is to set up the trigger in Salesforce. For this demo have the trigger be when a new lead is created. Be sure to have a Salesforce account set up, and at least one lead created.

    FileMaker Choose Salesforce

    Once you have it set up, test the connection and ensure that the information pulled from Salesforce is accurate

    Setting up Webhook, PHP file.
    Now that we have our trigger set up in Salesforce, we can now build our action to create the lead directly in FileMaker when one is made in Salesforce. Select Webhooks as your app, and POST as your action.

    FileMaker Choose POST

    Now we get to the real meat of the setup. Here we will construct the fields that we want to pass into FileMaker from Salesforce. You will need to create a Custom Web Publishing PHP file that will grab the parameters you input and pass them along into FileMaker.

    First enter in the URL where your PHP file is hosted, the Payload type as form, and the lead data you want put into the FileMaker leads. Be sure to put the key names the same as you do in your POST variables in your PHP files.

    FileMaker Setup Webhooks

    Lastly, look over the preview page, and test out the Zap. If everything is setup correctly, it should come back successful and create the lead in your FileMaker system. From now on, whenever a lead is created in your Salesforce account

    FileMaker New Lead Salesforce

    it’ll automatically get created in your FileMaker.

    FileMaker New Lead FileMaker

    Further Automation Using Multi-Step Zaps
    Zapier isn’t limited to just one action though. Recently they rolled out a feature called Multi-Step Zaps to allow additional actions for every one trigger. This means that one event that a user inputs, dozens of additional steps could be further automated. This can help avoid tedious tasks and greatly speed up workflows. For example, using Mailchimp could allow users to automatically email any newly created leads with anything from their account information to potential products or nearby events that may interest them. You can even make further calls to your FileMaker system, such as generate new proposals for the leads or assign the lead to a salesperson on your staff. These are just a few examples of how Mailchimp, Salesforce, and FileMaker can be integrated using the flexibility and power of Multi-step Zaps.

    Conclusion
    With the power of Zapier, different applications can be integrated into your FileMaker solution and overall business with ease. The great potential of integrating various platforms and automating the many tasks within them with Zapier can greatly increase productivity and enormously speed up company wide workflows.

    ]]>
    <![CDATA[FileMaker Cross Platform Notifications]]> https://dbservices.com/blog/filemaker-cross-platform-notifications https://dbservices.com/blog/filemaker-cross-platform-notifications Wed, 10 Aug 2016 00:00:00 -0400 Keeping a large team of mobile users informed and updated with information vital to their jobs is essential in this modern world, but not everyone has an iOS device and even if they did, it’s not practical to have the app open and waiting for the information. One solution is to keep your users informed with the use of notification. Using native FileMaker and a service called Pushover we can easily leverage cross platform notifications with advanced features like message priority, which allows you to repeat a notification until the user acknowledges it.

    ]]>

    Creating a Pushover Account

    To begin we will need a free account with Pushover.net. All pricing involved with Pushover.net is through the purchase of their apps for a users device. Each app costs 5 dollars, and then you are able to send up to 7,500 notifications a month without any additional cost. After you have created an account you need to navigate to the Pushover Apps & Plugins page and create a new application. Once you have created a new application copy and paste the application API Key into the demo file.

    Retrieving a Users Pushover ID

    We can easily download a user's Pushover ID into FileMaker by making a simple post call using Insert from URL. The url you will be posting to is api.pushover.net/1/users/login.xml and the api requires 2 parameters, email and password. Below is an example of the full URL request.

    insert from url "httpspost://api.pushover.net/1/users/login.xml?email=" & $email & "&password=" & $password

    Managing Groups

    One great feature of Pushover you can take advantage of is groups. Groups allow you to manage your users and then send out a notification to that segment of users all at once. You can create a new group from the Pushover Groups page. Once you have created your group you can use the generated group key to add and remove users, and disable/enable a user in the group all from within FileMaker using a simple rest api. Another useful feature of groups in Pushover is the subscription feature that allows for anonymous users to sign up to receive notifications and be automatically added to a group.

    Sending Messages

    Sending a message is very similar to all the other api calls not surprisingly. The api endpoint for sending a message is api.pushover.net/1/messages.xml or api.pushover.net/1/messages.json. And there are quite a few parameters you can include to customize your message. Below is a list of all the available parameters.

    FileMaker Send Notification

    Required Parameters

    • token - Pushover application token/id
    • user - Can be userID or groupID
    • message - Must be URL encoded
    • retry - required if priority is 2. Time in seconds to wait between retries until acknowledged. Min of 30
    • expire - Required if priority is 2. Time in seconds to keep retrying until acknowledged. Max of 86400 seconds or 1 day

    Optional Parameters

    • device - Device name, if left empty all of a user’s devices will be notified
    • title
    • html - if set to 1, will allow for html tags in the message which will allow the use of the following tags; bold, italic, underline, font-color, and html links
    • timestamp - a unix timestamp in CST time zone ex: 1331249662
    • priority - The priority of the message ranging from -2 to 2. The default “Normal” priority of 0 will be set if left empty
    • url
    • url_title
    • sound - if left empty, the users default will be used, if no default then “pushover” will be used

    Full API Reference

    Conclusion

    With a few api calls you can easily extend FileMaker with the ability to communicate with a mobile work force on virtually any device including iOS Devices, Android Devices, and Web/Desktops. Through the use of messaging groups you can also easily manage who should receive what alerts and when. Pushover's advanced features give you a lot more control than something like text messaging and allows you to brand your notifications, change the messages sound, set the message priority, and manage whether a user is enabled or disabled in a group.

    ]]>
    <![CDATA[Archiving Email In FileMaker]]> https://dbservices.com/blog/archiving-email-in-filemaker https://dbservices.com/blog/archiving-email-in-filemaker Tue, 12 Jul 2016 00:00:00 -0400 When working with large groups of people both in and out of your organization, it can be difficult to keep track of all the discussions between you and everyone else. One person may discuss a project that you are a part of, but without everyone always CC’ing, BCC’ing, and hitting Reply All to every email, it can be practically impossible to keep everyone in the loop at all times. Fortunately with the 360works email plugin, tracking all emails between you and your system’s contacts can become far more manageable. FileMaker and email integration allow users to view any and all emails that contacts, prospects, salespeople, managers and anyone else have had with one another.

    Watch on Youtube: Archiving Emails In FileMaker

    ]]> Importing the Emails

    First and foremost, you will need to purchase a copy of the email plugin. Once purchased, install the plugin (for more on installing plugins on servers, read FileMaker Server Plugins and Schedules). Then build a script that will grab the email information and store it in FileMaker.

    FileMaker - Download Email Dialog

    Note that you can automate this process if needed.

    Displaying emails

    With your emails downloaded and stored in FileMaker, users can now view and search any correspondence that users in your system have had with any contacts.

    FileMaker - Email List

    From here you can display any relevant information to the users. If you saved the email’s HTML, you can even display the formatted email in a web viewer.

    FileMaker Sample Email Popover

    Recommendations

    • In order to keep the size of your solution down, we recommend not storing attachments in your FileMaker files. You can store the name of any attachments in the email in FileMaker, and use those to download the attachments on the user’s machine.
    • It is a good idea to log every time you attempt to download an email and assign it in order to more easily trouble shoot any issues you may come across.
    • Downloading large amounts of emails is very time consuming and can drag the system considerably. Do not try and migrate all emails before the integration at once. If you want to find and download emails received and sent before the go live date, do it batches at a time.

    Conclusion

    With FileMaker and an email plugin, tracking and maintaining correspondence from multiple people has become a much easier experience. No longer will you have to constantly call, email, or meet with people just to talk about what was already discussed with others. Now a simple search in FileMaker will allow users to catch up and get on the same page quickly. Email integration is just one more example of how FileMaker can help businesses work in a productive and efficient manner.

    ]]>
    <![CDATA[FileMaker 15 Starter Solutions]]> https://dbservices.com/blog/filemaker-15-starter-solutions https://dbservices.com/blog/filemaker-15-starter-solutions Tue, 28 Jun 2016 00:00:00 -0400 Starting a new application, on any platform, can be very overwhelming. Luckily FileMaker comes with 20 Starter Solutions (templates) that make starting a new application easier and to customize to fit to your needs. The main perk of the Starter Solutions is having a template to hit the ground running that is visually appealing.

    Getting Started

    If you don’t already own FileMaker, you can download a free FileMaker Trial to give the Starter Solutions a try.

    Once FileMaker is installed, to build a new application with a Starter Solution simply open FileMaker Pro 15 and the Launch Center will come up. From there go to Get Started. You can choose one of the four new Starter Solutions, or you can scroll down to "See Advanced Solutions" to view the other 16 templates. Or, if you already have FileMaker 15 open, you can select File > New From Starter Solution.

    FileMaker 15 Getting Started

    Difference From Past Years

    FileMaker kept the same 16 solutions from the last release and deemed them 'Advanced Solutions'. They then made 4 new Starter Solutions that are more Basic. This is a great thing as we often hear of citizen developers wanting to create a new application from a Starter Solution but found the 'Advanced Solutions' to have too much going on.

    Let's take a look at the four new Basic Starter Solutions.

    Contacts

    The Contacts Starter Solution made a few changes from version 14. The fields are the same but arranged a little differently to make navigating easier. The main difference is the photo for the contact doesn't take up as much space and has data directly under it.

    FileMaker Contacts Starter Solution

    Inventory

    The Inventory Starter Solution, like the Contacts, only has a few minor changes. It is still the same theme, but the design looks modern with it being flatter. The fields are still the same, though, arranged differently to make it easier to navigate. Instead of having a tab between the picture of the inventory and a description, a description text box is on the left hand side making better use of space.

    FileMaker Inventory Starter Solution

    Content Management

    This Starter Solution changed themes from Luminous to Enlightened. The layout is still the same, however, updated icons give the look and feel of a better application that is more visually appealing.

    FileMaker Content Management Starter Solution

    Tasks

    The Tasks Starter Solution has the same layout, though it is flatter and looks more modern in design. The 'Assignees' and 'Attachments are still on the layout, just separated, which gives the ability to see everything without switching back and forth between tabs making it crisper and easier to navigate.

    FileMaker Tasks Starter Solution

    Conclusion

    FileMaker has taken a different approach to the Starter Solutions compared to years past. With the 4 different Basic Starter Solutions, it is easier to further customize the application to fit your workflow. The Starter Solutions still look great and easy to use and navigate. If you are starting a solution from scratch, this is still the easiest and best way to get started and create a customized solution for your needs.

    If you, however, need a more fined tuned CRM application check out our own template, FM Quickstart. It is a free download and has been optimized to run on the latest version of FileMaker.

    To learn more about the FileMaker 15 platform, read our FileMaker 15 What's New article.

    ]]>
    <![CDATA[FileMaker 15 What's New]]> https://dbservices.com/blog/filemaker-15-whats-new https://dbservices.com/blog/filemaker-15-whats-new Tue, 10 May 2016 12:11:00 -0400

    The new version of the FileMaker platform is here! We'll look in depth at what's new in FileMaker Pro 15, FileMaker Go 15, and FileMaker Server 15. We have highlighted many of the best new features with ten detailed articles provided by our staff looking in depth at each of the features. FileMaker announced they will release new versions every year, resulting in shorter release cycles that'll bring innovative new features to us faster.

    FileMaker 15 Overview

    • New mobile features including Touch ID, 3D Touch, App Extensions, iOS SDK, and iBeacons. You can now deploy mobile applications in exciting new ways.
    • The third major release of WebDirect includes compatibility for mobile phones and performance improvements. WebDirect allows you to easily publish your application in a browser on the web using the award winning FileMaker Pro or FileMaker Pro Advanced client to build your web application.
    • DB2 and PostgreSQL are now supported database platforms for External SQL Sources. You can establish a live two-way connection between your FileMaker application and Oracle, Microsoft SQL Server, MySQL and now DB2 along with PostgreSQL databases.
    • FileMaker Server 15 no longer allows third parties to offer shared hosting. You must have your own server moving forward for security reasons.
    • FileMaker Licensing for Teams is the new default licensing moving forward on the FileMaker Store. Licensing is now based on number of users and sold in 5 user intervals.

    FileMaker Pro 15

    The latest version continues to focus on new features that enhance usability for users and developers with a few nice performance enhancements.

    Portal In-line Progress Bar
    Have you ever loaded a screen with a portal and waited for the hundreds to thousands of records to display? Well we now have Portal in-line progress bars, which will allow you to interact with the rest of the screen while the portal is still loading. This is a very welcomed addition for users that are using an application over the Internet, as we can never see too many performance increases. All you have to do is install the new version to get this one!

    Read about FileMaker Portal In-Line Progress Bar as Damien Howell explains how they work.

    Concealed Edit Box
    You can now add concealed edit boxes to layouts. This allows you to hide the data being typed into a field from any onlookers as the field displays dots instead as you type. The data is not encrypted, so it can still be easily exported so take additional security measures to encrypt the data or prevent users from exporting the data.

    Updated User Interface
    FileMaker 14 had killer user interface features including button icons, navigation bars to name a few. Now the Status Toolbar icons for users in browse mode and icons for developers in layout mode have been improved. In addition full-screen view and split view are supported in the FileMaker Pro document windows on OS X.

    Emory Brown discuss in depth FileMaker 15 User Interface updates. He dives into the Toolbars, Inspector Palette, WebDirect, and FileMaker Go on mobile devices.

    In-Product Updates
    Product updates before required you to visit the FileMaker Download page and then select your update to download. This was tedious to end users especially as we have become accustomed to products such as Chrome updating for us. Now when an update is available you can download and install the update all from within FileMaker Pro.

    Read about FileMaker In-Product Updates as Jeremiah Hammond looks at how the new in-application updates work.

    Script Workspace
    For any user who writes or edits scripts more improvements have been made to the Script Workspace, FileMaker's Integrated Development Environment (IDE). You can easily see highlighted script errors in red and problems are automatically highlighted when importing or pasting scripts. Unlimited Undo is now supported in the Script Workspace and in the Specify Calculation dialog box, including Undo Delete. All developers will enjoy these new features.

    External SQL Storage Adapters
    FileMaker has long been known to be a hub for many organizations' data. External SQL Storage (ESS) has been in place since version 9 for Oracle, Microsoft SQL Server, and MySQL. Now joining the party includes the likes of DB2 and PostgreSQL. You can easily set up ODBC on the server and all your FileMaker users are then able to access the data from these other popular database platforms.

    Basic Starter Solutions
    FileMaker 15 comes with 4 new Basic Starter solutions (Contacts, Inventory, Content Management, and Tasks). In addition, the existing 16 Starter Solutions from before are available as Advanced Solutions below the Basic Starter solutions in the link, See advanced solutions, which is not that easy to locate. We also have a free starter solution called FM Quickstart you may wish to download and customize.

    Read about FileMaker 15 Starter Solutions as David Happersberger looks at the differences in the new templates.

    Web-based Help
    FileMaker Help is truly great. Now help is available online and can be downloaded if needed. Help has been redesigned for easier access and use. Being web-based, FileMaker Help can be easily updated by the support staff by FileMaker.

    FileMaker Pro Technical Specs
    FileMaker Pro 15 and FileMaker Pro Advanced 15 are supported on Windows 10 Pro and Enterprise, Windows 8.1 Standard and Pro, Windows 7 SP1 Professional and Ultimate, Mac OS X 10.11 El Capitan and 10.10 Yosemite.


    FileMaker Go 15

    FileMaker Go 15 has all the features you get in FileMaker Pro such as concealed edit box and portal in-line progress bar, plus some specific iOS features listed below. The new version of FileMaker Go 15 is available on the App Store.

    iOS App SDK
    While this was released in January a few months ago it is worth mentioning. You can now develop your own standalone iOS app from an existing FileMaker application. This allows organization to easily deploy apps with Apple's MDM Distribution. You must purchase a FileMaker Community Developers Subscription $99/year to receive the iOS App SDK which is Mac only.

    Touch ID & 3D Touch
    You can easily enable your application to support Touch ID to allow users to log into your application with their fingerprint. With Force Touch you can select the FileMaker Go application and select which database you wish to open without opening Go first.

    Read about FileMaker Touch ID & 3D Touch as Bobby Vogel discusses how to use these new features.

    App Extensions
    If you install a popular app on your iOS device then it may come with App Extensions. If so then you can easily share data from FileMaker Go to applications such as Box or Dropbox for example to back up your database. There are lots of possibilities here.

    Read about FileMaker App Extensions as Mason Stenquist discusses how to use FileMaker Go with App Extensions.

    iBeacon
    Now integrate your FileMaker app on iOS with iBeacons. There is a new function RangeBeacons that returns a list of iBeacons and their proximity to the iOS device. This is truly an exciting feature that will open many possibilities. Read the Getting Started with iBeacons at Apple’s iBeacon for Developers page to learn more. We look forward to seeing what you all produce with the new iBeacon support.

    Read more about the FileMaker iBeacons as Weihao Ding goes in depth to educate all of us on how you can use iBeacons in your FileMaker app.

    FileMaker Go Technical Specs
    Requires iOS devices running iOS 9.3 or later on the iPad Pro, iPad, iPad mini, iPhone and iPod touch. FileMaker Go 13 will be removed from the App Store on June 10th, 2016. FileMaker Go 14 will be removed from the App Store in November 2016.


    FileMaker Server 15

    Server has always been known for its ease of use and ability to run with little to no problems. The newest version focuses on performance improvements; security updates; and many enhancements related to WebDirect, specifically support for mobile phones, reducing data over the wire, optimizing memory footprint, improved caching container data, protocol enhancements, improving thread management, and additional security.

    Read more specifically about FileMaker 15 Security as Michael Westendorf looks at new security features in Pro / Pro Advanced, Go, and Server.

    FileMaker WebDirect
    WebDirect is the flagship FileMaker Pro desktop client equivalent in a browser, without any web programming. This version add support for mobile phones and includes more performance improvements, at the high end the recommended hardware supports up to 100 WebDirect users. In our labs we did notice WebDirect is slightly faster than before as FileMaker continues to optimize the memory footprint. Users who are using WebDirect should get lots of RAM for FileMaker Server machines to support your users. For Androids, FileMaker WebDirect or Custom Web Publishing continues to be the only way to deploy a FileMaker-based application.

    Read more about the FileMaker WebDirect Mobile Phone Support as Brendan McBride looks at the new features.

    Top Call Statistics Logging
    Troubleshooting performance on a server with a lot of users can be time consuming. With FileMaker Server 15 you can turn on Top Call statistics in the Logging tab from the FileMaker Server Admin Console. This will help identify the scripts, finds, or other operations that are taking the longest to run on the server.

    Learn more about the FileMaker Server Top Call Statistics as Ian Haas looks at how to use this new log.

    SSL Certificates
    When using FileMaker Server and deploying sensitive information you will definitely want to keep your data encrypted. FileMaker recommends you use the default self-signed SSL certificate for testing purposes only. Installing a third party SSL certificate can be a bit tricky, but with version 15 you can now create a certificate signing request from the FileMaker Server console. In addition support had been added for Wildcard certificates, Subject AltName (SAN) Certificates, Import intermediate CA certificates, and deploy additional popular SSL Certificates types and vendors.

    If you choose to use the default certificate provided by FileMaker you will now receive proactive security warnings that are annoying to your users that let them know the certificate is not secure. If you want to use SSL we advise ponying up around $100/yr and getting a certificate to safely encrypt your data inside and outside the network.

    FileMaker Shared Hosting
    As part of the FileMaker Server 15 End User License Agreement you can no longer install one FileMaker Server 15 for multiple tenants for security reasons. If you are looking for a FileMaker Hosting vendor keep in mind that they cannot provide you the latest technology which is critical for performance and security unless you have a dedicated server. If you're using WebDirect it is absolutely essential to get a dedicated server. Contact us for pricing on FileMaker Dedicated Hosting for Self-Service or Managed FileMaker Servers.

    FileMaker Licensing for Teams
    Over the years FileMaker has updated their licensing to integrate new technologies such as FileMaker Go from the App Store along with transitioning from Instant Web Publishing to WebDirect. I believe they have finally landed on the licensing for the future with FileMaker Licensing for Teams and having the licenses be based on the FileMaker Server. Existing licensing programs are not impacted except FileMaker Server with Concurrent Connections are being phased out.

    Read more about the FileMaker Licensing for Teams, David Happersberger, our FileMaker Licensing Specialist, gives you a look at the new licensing program.

    FileMaker Server Technical Specs
    Compatible on Windows Server 2012 R2 Standard with Update Microsoft KB2919355 and Windows Server 2008 R2 SP1 Standard or Enterprise and Mac OX X El Capitan 10.11 and Yosemite 10.10 is supported.

    WebDirect browser support includes Safari 9.x, IE 11.x, Microsoft Edge 25+, Chrome 48+. Mobile browsers Safari 9.x and Chrome 48 on Android 5.x and 6.x.


    Summary

    The FileMaker 15 platform continues to be the leader in creating powerful custom applications for organizations all around the world that works seamlessly across Windows, Mac, iPad, iPhone, and the web.

    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.

    After waiting 12 months, we are happy to see FileMaker 15 and look forward to building awesome custom applications using the new modern tools for Mobile, Web and the Desktop.

    ]]>
    <![CDATA[FileMaker WebDirect Phone Support]]> https://dbservices.com/blog/filemaker-webdirect-phone-support https://dbservices.com/blog/filemaker-webdirect-phone-support Tue, 10 May 2016 12:10:00 -0400 FileMaker WebDirect Phone Compatible

    WebDirect has been redesigned to be compatible with mobile phones. In the previous release, FileMaker added support for tablet browsers. FileMaker 15 takes it a step further by providing support for mobile phones. Although you could access WebDirect with a phone before, it was not officially supported, mainly due to dialogs being too small for user interaction. With this release, FileMaker really focused on ensuring that all dialog messages and drop downs are easier to use on smaller screens. This is great news for the FileMaker community as it allows us to build solutions for even more users.

    Watch on Youtube: Filemaker WebDirect Phone Support

    ]]> Setting Up a FileMaker Application for Phones

    In order to enable WebDirect, you will need FileMaker Server 15. Follow the steps on the FileMaker Knowledge Base to deploy WebDirect. Please also keep in mind the technical specifications required for FileMaker Server 15 and WebDirect. Once the database has been enabled, pull out your phone and go to https://<host>/fmi/webd, where <host> is the IP address or domain name of the FileMaker Server.

    New to WebDirect in 15

    Mobile compatibility was the main focus for WebDirect in FileMaker 15. Here are a few of the changes implemented to improve the mobile experience:

    • FileMaker 15 WebDirect Mobile SortRedesigned login screen to use field placeholders.
    • Redesigned Menubar drop down button.
    • Redesigned sort dialog flow.
    • Redesigned calendar drop down calendar to be larger.
    • Redesigned dialog fonts to be larger and to no longer be able to be resized.
    • Redesigned drop down and popup lists to use larger fonts.
    • Redesigned Custom Dialogs to fit to screen.
    • Rotation of device will not need to have visible dialogs redrawn.
    • Redesigned insert and export dialog screens to use larger buttons.

    Conclusion

    WebDirect is a great way to build a solution and have it instantly accessible on the web. With FileMaker 15, mobile phones are now supported. This allows you to give access to your database to virtually anyone.

    ]]>
    <![CDATA[FileMaker iBeacons]]> https://dbservices.com/blog/filemaker-beacons https://dbservices.com/blog/filemaker-beacons Tue, 10 May 2016 12:09:00 -0400 FileMaker 15 provides us with the ability to interact with iBeacon devices using FileMaker Go. This means with some setup we can associate data in our FileMaker solution with physical locations and have our iOS devices access them via the iBeacon technology.

    1. What is iBeacon

    FileMaker Beacon Sends Signal to iOS Device

    iBeacon is a protocol developed by Apple and introduced in 2013. Much like a lighthouse which sends a signal of light to communicate with ships, an iBeacon device (more commonly referred as beacon) uses a bluetooth low energy (BLE) signal to communicate with any iOS device within its range.

    While an iOS device is within the range of a beacon, it can measure its proximity to the beacon. This measurement is much more accurate than the location information you get from GPS, especially when you are indoors.

    Watch on Youtube: FileMaker 15 iBeacon

    2. Get your beacons and set them up

    In order to interact with iBeacon using FileMaker Go 15 you need to have some beacons first.

    2.1. Get beacons

    FileMaker Commercial iBeacons

    Regarding hardware, there are many devices that can be used to broadcast as a beacon.

    1. You can easily turn your computer, iPad or iPhone into a beacon with the help of apps such as "Locate".
    2. Or you can purchase commercial beacons. They are usually priced around $10-$20 each with a battery life of 6 months - 2 years.

    2.2. Beacon settings

    Once you get your beacons, the next thing to do is to set them up.

    The most important settings are the following three that describe the identification of a beacon:

    1. UUID - The UUID (universally unique identifier) is the top level identification a beacon has. It is usually used to identify beacons from a specific organization. For example, beacons for all branches of a retail store could share the same UUID.
    2. Major - Major is the second level of identification. It is usually used to identify a group of beacons. For example, all beacons in a specific branch of a retail store could share the same major.
    3. Minor - Minor is the bottom level of identification. It is usually used to further identify specific beacon(s) within a group of beacons. For example, beacons placed on each shelf in a specific branch of a retail store can be identified by their minors.

    Other settings:

    1. Transmission frequency: May be altered using device-specific methods.
    2. Rate & transmit power: Both have an effect on the beacon's battery life

    3. Introducing RangeBeacons () Function

    FileMaker 15 added a new calculation function named "RangeBeacons" which gives back a list of beacons surround you and their proximity information. This enables FileMaker Go to interact with iBeacon devices.

    3.1. Format

    First let's take a look at the format the function:

    RangeBeacons (UUID {; timeout; major; minor})

    3.2. Parameters

    It has four parameters:

    1. UUID - The UUID of beacons you are looking for. This parameter is required by the function.
    2. timeout - The number of seconds to wait before returning a value. If timeout is not specified, the function returns a value after five seconds.
    3. major - The major value of beacons you are looking for. Major is an optional parameter. If both major and minor are not specified, this function will look for all beacons with the specified UUID.
    4. minor - The minor value of beacons you are looking for. Minor is also an optional parameter. If minor is not specified, this function will look for all beacons with the specified UUID and major.

    The values of UUID, major and minor are determined by your beacons hardware settings and your use case, which is pretty straightforward.

    However to set a proper value for timeout is a little bit tricky. If timeout is set too high, you will have to wait for a long time before receiving any information. If it is too low, you may miss some or even all beacons around you, depends on your beacons geological setup.

    So if you are about to build a solution using this function, I would strongly recommend testing your solution in the actual working environment to determine a proper value for timeout. Personally I recommend starting with 2 seconds and then go up if necessary.

    3.3. Data returned

    The RangeBeacons function will return a list of beacons and their proximity to your iOS device. Each row returned is a beacon found. Within each row, you will find the following information (from left to right) separated by a comma:

    1. UUID - the UUID of the beacon you found.
    2. Major - the major value of the beacon you found.
    3. Minor - the minor value of the beacon you found.
    4. Proximity - a number indicating the relative proximity to the beacon. 1 means the beacon is very close (within a couple of inches), 2 means the beacon is relatively close (within a couple of feet), 3 means the beacon is far (more than 30 feet away), 0 means the proximity of the beacon could not be determined.
    5. Accuracy - the accuracy of the proximity value, measured in meters from the beacon. You can use accuracy to further distinguish beacons with the same proximity value.
    6. RSSI - the received signal strength of the beacon, measured in decibels (db).

    3.4. Example

    RangeBeacons("D9B9EC1F-3925-43D0-80A9-1E39D4CEA95C") returns information about all nearby iBeacons with the specified UUID. As shown below:
    D9B9EC1F-3925-43D0-80A9-1E39D4CEA95C, 5, 1, 3, 14.68, -79
    D9B9EC1F-3925-43D0-80A9-1E39D4CEA95C, 5, 2, 3, 18.96, -81

    This result indicates that it found two beacons with the specified UUID. Let's look at the first beacon it found:

    1. UUID: D9B9EC1F-3925-43D0-80A9-1E39D4CEA95C
    2. major: 5
    3. minor: 1
    4. proximity: 3. It means this beacon is far away.
    5. accuracy: 14.68. It means this beacon is about 14.68 meters away (around 48 feet).
    6. rssi: -79.

    4. Interacting with iBeacon using FileMaker Go 15

    Now that you are familiar with the RangeBeacons function let's dive deeper and see how it can be utilized in a FileMaker solution. To demo that I'm going to walk you through how to build a simple museum tour app using FileMaker.

    The purpose of this app is to provide tourists with materials that can help them better understand a piece of art when they are standing next to it.

    ibeacon art

    4.1. Set up a BEACON table

    As mentioned at the beginning of this article, FileMaker 15 allows us to associate data with physical locations. In this specific example, we want to associate text, image, audio or even video to the location where the artwork is at. To do that we need to set up a table to store beacon identification info as well as materials that each beacon is associated with, as shown below:FileMaker Beacon Table According to their purposes, fields in this table fall into these three categories:

    1. House keeping: __kptID, creationName, creationTStamp, modName, modTStamp.
    2. Beacon identification: uuid, major, minor.
    3. Information associated with the artwork: artworkName, associatedText, associatedPicture, associatedAudio and associatedVideo.

    4.2. Create records representing iBeacon devices

    Once we have the table ready, the next step is to populate this table with records. The number of records to have in the BEACON table should be the same as the number of beacons your solution may interact with.

    In my example file I created two records. Their information is shown below:

    FileMaker Example Beacon Records

    4.3. Write a script to show users proper materials according to their locations.

    To provide users with the data associated with their location, we need to write a script that does the following steps:

    1. Ranging for all beacons around the user with the UUID used by the museum.
    2. Go through all beacons returned and find out which beacon is the closest to the user.
    3. Take user to the beacon record of the closest beacon and show them associated materials.

    Once we get the script written, we can attach it to a button so whenever the user wants to get the info of the artwork that's in front of them, they can press that button to run this script.

    4.4. Set up beacons

    Enough with the software, now let's set up our beacons.

    When I was testing the sample file I used the Locate app to turn two of my iOS devices into beacons. Here are their settings in Locate:

    Setting up iBecon part 1Setting up iBecon part 2

    You can definitely use other iBeacon devices to play with the sample file, as long as their UUID, major and minor settings match the data in the BEACON table.

    4.5. Place beacons

    The last step is to place beacons to proper locations. If this is for a museum, beacons will need to be placed next to their corresponding pieces of art.

    4.6. Try out the sample file

    Please open the sample file on your computer and follow the instructions listed in there. I also briefly demo'ed how to set up the environment to use the app in the video for this article.

    5. Other use cases

    Besides the Tourism use case mentioned above, there are many many other use cases that can benefit from using iBeacon. I am going to list a few of them here. This list is definitely not exhaustive.

    5.1. Inventory Management

    Many people use FileMaker to manage inventory. They like to store items' location info in it so they know where each item is at in the warehouse. Now with iBeacon, you can take it to the next level:

    • If you are doing an inventory check, your system can pull up information of all items on a shelf or even on a certain row of a shelf for you.
    • If you need to move an item from one location to another, to record its new location you can simply press a button. Let's face it, if you need to carry things or wear gloves inside a warehouse, typing sucks.
    • Safety instructions (or other instructions) can be associated with locations where they are needed. User will have them at their finger tip and the instructions can take the form of text, image, audio or video.

    5.2. Event Organization

    • iBeacon can play a very important role in indoor navigation because it can show you where you are. I think everyone who attended last year's FileMaker DevCon would have loved that feature in the DevCon App. (Please do it this year FileMaker!)
    • iBeacon can be used to display location-specific event info. Event organizers can use it to explain what's going on here and provide information about vendors or artists info (depends on what kind of event you are doing) to the attendees.
    • You can even use it to add some fun to your event by adding treasure-hunt-like features to your event app.

    5.3. Education Industry

    • Use the beacons as digital bulletin boards for courses or buildings for students.
    • Teachers can broadcast information about their classes or exams.

    Conclusion

    The ability to interact with iBeacons really opens up infinite possibilities of what FileMaker can do. It allows your FileMaker solution to be the link between the virtual world and the physical world. With a little bit of imagination I believe you will be able to find a way to use iBeacon to help you manage or grow your business.

    Image Sources

    1. https://www.bermotech.com/wp-content/uploads/2014/12/Apple-iBeacon.png
    2. http://cdn.shopify.com/s/files/1/0680/4391/products/est-shopifu_1024x1024.jpg?v=1449848466
    3. http://blog.mowowstudios.com/wp-content/uploads/2015/02/ibeacon-art.png
    ]]>
    <![CDATA[FileMaker Licensing for Teams]]> https://dbservices.com/blog/filemaker-licensing-for-teams https://dbservices.com/blog/filemaker-licensing-for-teams Tue, 10 May 2016 12:08:00 -0400 Right when you thought you knew all 500+ SKUs available for FileMaker licenses, FileMaker changes the landscape again by adding FileMaker Licensing for Teams, or FLT for short. FLT brings simplicity to the FileMaker licensing platform and is the norm in the software industry. FileMaker found that 2 out of every 3 FileMaker prospects use 3 or more devices for business so now they only have to purchase 1 user license. The new FLT option gives FileMaker a new look to licensing, a user model instead of a hybrid of desktop users and mobile / web concurrency licensing.

    FLT is basically licensing at the FileMaker Server. The way FLT works is you purchase FileMaker Server (which you should always have with any team of users) and you purchase the number of FileMaker users starting at 5 licenses and going up to 100 or more. FLT licenses includes FileMaker Go, FileMaker WebDirect and FileMaker Pro. Note: FileMaker Pro Advanced is not included in FLT and would need to be purchased separately. The main difference with FileMaker Pro with FLT is that it HAS to be connected to FileMaker Server. This means you can’t use a local copy to build out a solution until it has connected to a server first, more reason to get FileMaker Pro Advanced for your development long term.

    What does this mean for existing FileMaker customers on traditional licenses such as Volume Licenses (AVLA, VLA), Site License (ASLA, SLA) and individual licenses? Nothing, the existing license programs are unchanged and you can continue to add licenses and renew your licenses in those programs. HOWEVER, if you are adding concurrency licenses to your existing server licenses, they will be 3x FLT pricing, UNLESS you already have 5 or more connections and you can continue to add concurrent connections until May of 2018. This makes it clear that FileMaker is encouraging the new option of FileMaker licensing with FLT by being the default option for the FileMaker Store moving forward, and going away from the concurrency model, but allowing the existing user base to ease into the change.

    Summary:

    • FileMaker provides a new option of licenses that is based on per user, instead of per device.
    • User based licensing simplifies the purchasing process and becomes more in line with the industry.
    • Existing AVLA, VLA, ASLA, SLA and individual licenses goes unchanged EXCEPT for adding concurrent connections to server, which is 3x the cost as they are moving away from that pricing model, unless you already have 5 or more connections on your FileMaker Server. Renewing concurrent connections will be unchanged until May 2018.
    • The pricing for FLT is the same as the most popular AVLA.
    ]]>
    <![CDATA[FileMaker Server Top Call Logging]]> https://dbservices.com/blog/filemaker-server-top-call-logging https://dbservices.com/blog/filemaker-server-top-call-logging Tue, 10 May 2016 12:07:00 -0400 With the release of FileMaker Server 15 comes the ability to track the heaviest client usage periods. This new feature, named the Top Call Statistics Log, gives server and group administrators the ability to pinpoint the client requests that take the longest, allowing them to investigate any slowdowns in their systems much more quickly and efficiently.

    Watch on Youtube: FileMaker Server Top Call Logging

    ]]> Top Call Statistics Log

    In previous versions of FileMaker server, administrators had the ability to view real-time client statistics on the admin console under the Statistics screen, both for the server as a whole and for individual clients.

    Server Statistics Tab

    FileMaker Server Statistics Tab

    Client Statistics Tab

    FileMaker Client Statistics Log

    These, while certainly useful for seeing when activity was high, didn’t reveal much of the why. When the Top Call Statistics Log is enabled under the “Database Server>Logging” tab, you can delve deeper into the reasons for the high activity. The log describes up to 25 client requests that have the longest elapsed time during the statistics collection interval, which is also specified under the “Database Server>Logging” tab. The Top Call Statistics Log will allow users to see who performed the action, what the operation was, and even the filename, table, layout and field to give them a clearer picture of what the server was processing. Below displays everything the log tracks.

    Timestamp Database Server timestamp at the collection interval, using same format as the other log files.
    Start Time Timestamp at the start of the remote call (seconds.fraction since the Database Server was started)
    End Time Timestamp at the end of the remote call (seconds.fraction since the Database Server was started). The column will be empty if the remote call is in progress.
    Total Elapsed Total number of microseconds elapsed for the remote call so far.
    Operation The name of the remote call; for example: Query, Upload, or Download.

    For some operations, this column includes a task name and the percentage completed; for example:
    Query (Indexing 10%).

    Target The name of the hosted file that a client has open, with additional data if possible. Possible formats may include:

    <filename>::<tableID>::<fieldID>

    <filename>::<layout>

    Elapsed Time Microseconds of elapsed time for the remote call in this collection interval.
    Wait Time Time waiting for other clients (in microseconds) for the remote call in this collection interval.
    I/O Time Time waiting for disk input/output (in microseconds) for the remote call in this collection interval
    Network Bytes In Number of bytes received from the client during this collection interval
    Network Bytes Out Number of bytes sent to the client during this collection interval.
    Client Name A client name or identifier; for example, an IP address or FileMaker WebDirect client identifier.

    TopCallStats.log

    The log file is stored under the “/FileMaker Server/Logs/” folder and is named “TopCallStats.log”. This will track the statistics up to the file size specified under the “Database Server>Logging” tab in the admin console. When the file size of the log reaches the specified log size, it is renamed “TopCallStats-old.log” and a new “TopCallStats.log” file is created.

    Log File Location

    Using TopCallStats.log

    The file can be viewed in any application that can read tab-delimited data.

    Top Call Excel

    It can also be imported directly into a FileMaker solution, using either the “File>Import Records>File” option or using the “Import Records” script step. This allows users to store, find and compare results much more easily and across a large span of time.

    FileMaker Top Call Import

    Top Call FileMaker

    Conclusion

    Top Call Statistics Logging allows server and group administrators newfound capabilities of discovering their systems’ performances, as well as the information to help determine possible solutions to any inefficiencies they discover. This gives administrators the ability to see the who, what, when and why of any issues they come across and allows easy tracking of any heavy usage issues that may occur. This is just one of the many new features in FileMaker 15 that allows businesses to run their day-to-day operations smoothly.

    ]]>
    <![CDATA[FileMaker Go Touch ID & 3D Touch]]> https://dbservices.com/blog/filemaker-go-touch-id-3d-touch https://dbservices.com/blog/filemaker-go-touch-id-3d-touch Tue, 10 May 2016 12:06:00 -0400 FileMaker Go 15 incorporates many features new to iOS such as Touch ID and 3D Touch. These features add even more security and convenience to FileMaker Go by allowing more options to manage your keychain and Quick Actions to open files without needing to open Go first. Below we will dive into the details of these useful new features.

    Watch on Youtube FileMaker Go 15 - Touch ID & 3D Touch

    ]]> Touch ID

    FileMaker Go 15 Touch ID

    Adding an extra layer of security on top of Apple’s iCloud Keychain, Touch ID can be enabled for solutions that have their login credentials saved in Keychain, enabling biometric authentication for your most important solFileMaker Pro 15 File Optionsutions. For mobile devices without a Touch ID sensor, you will prompted for your device passcode instead of your fingerprint, allowing the same added security for your solutions.

    For each solution, an option may be enabled on the FileMaker Pro side to require the device to have a passcode enabled before it stores the password for the solution in iCloud Keychain.

    FileMaker Go also now includes Touch ID and passcode protection for your keychain entries. Press the cog icon at the top right of the Launch Center, then select Manage Keychain. If you have entries that require an iOS passcode, it will prompt you to use your fingerprint or passcode to see the entries. If you select Cancel or do not have a passcode, FileMaker Go hides those entries that require a passcode.

    FileMaker Go 15 3D Touch Menu3D Touch

    FileMaker Go 15 adds Quick Actions to its list of new features, enabling solutions frequently used to be conveniently opened from a shortcut menu on the home screen. Accessing your FileMaker solution has never been easier or faster with a single press.

    Conclusion

    Touch ID & 3D Touch integration with FileMaker Go 15 makes FileMaker Go more convenient and secure than ever through the use of Touch ID to access your keychain and 3D Touch to evoke Quick Actions on the home screen. These are some of the many new useful features that come with the latest release of the FileMaker platform.

    ]]>
    <![CDATA[FileMaker App Extensions]]> https://dbservices.com/blog/filemaker-app-extensions https://dbservices.com/blog/filemaker-app-extensions Tue, 10 May 2016 12:05:00 -0400 With its newest release, FileMaker has made it easier than ever to share data with other apps on iOS. With the introduction of app extensions for FileMaker Go we now have the ability to download images, word documents, spreadsheets and even a FileMaker database itself. In short app extensions bring a bunch of great ways to share data with other iOS apps, and helps FileMaker Go integrate with multiple cloud storage providers, providing users a much easier method of transferring data with 3rd party apps and services.

    Watch on Youtube: FileMaker Go 15 App Extensions

    ]]> How it Works

    Sharing files and docs with other apps is accomplished by giving the user access to the iOS share sheet. The share sheet is a context-aware popover that pulls in any other apps on the iOS device configured to take advantage of the app extension’s sharing features. This is especially useful for people that rely heavily on cloud storage like Dropbox, iCloud and OneDrive.

    FileMaker App Extensions Overview

    Importing

    There are 2 different places you can take advantage of importing from external applications. The first is from the Device tab on the Launch Center. From here you’ll notice a new icon in the top left hand corner of the screen. This button will take you to your iCloud, where you can browse all your files and docs, allowing you to download a FileMaker file directly to your device. You also have the option to change the service from iCloud to Dropbox or any other 3rd party document cloud service by clicking the locations button. The second place you can import docs using the new app extension feature is with container fields. Alongside the familiar insert container options, there is a new locations option giving you direct access to all your cloud documents.

    FileMaker App Extensions Importing

    Exporting

    Exporting files and data from FileMaker Go is better than ever: you can now export any document stored in a container field, and FileMaker Go will tell you all the apps on your device capable of viewing the file. If you’re using FileMaker to store excel or word documents this will allow you to open your docs in Microsoft’s great Office products for iOS. Or you can just send these documents back up to the cloud service of your choice. Another cool thing you can do when exporting images is to post them directly to social media sites like Twitter or Facebook.

    You can do more than just exporting data from your container fields, you can also export excel documents or reports generated from your own FileMaker database. This makes it easy to generate reports on the fly, and save them to a shared location without the need to email yourself the report, then share it manually. And finally, you can now export the entire database back to a cloud service from the launch center, providing a way to get the database on and off of a users device much more easily than the two previous methods of emailing the database, or transferring it using iTunes.

    FileMaker App Extensions Exporting

    Conclusion

    The addition of sharing via App Extensions is exciting news for both FileMaker developers and users, as it extends FileMakers capabilities to integrate with millions of other apps. It will be interesting to see the creative ways people put them to use.

    ]]>
    <![CDATA[FileMaker Portal In-Line Progress Bar]]> https://dbservices.com/blog/filemaker-portal-in-line-progress-bar https://dbservices.com/blog/filemaker-portal-in-line-progress-bar Tue, 10 May 2016 12:04:00 -0400 FileMaker odometerThe Portal In-Line Progress Bar, one of FileMaker 15's new performance-based features, brings with it the separation of a layout's non-portal and portal rendering tasks. This means users are no longer forced to wait for cumbersome portals to load before being able to interact with a window's content. It also means developers can now feel more confident in deploying portals once considered off limits due to their long load times.

    Watch on Youtube: FileMaker 15 - Portal In-Line Progress Bar

    ]]> The Portal In-Line Progress Bar

    FileMaker inline portal progress bar icon

    As represented by the new Portal In-Line Progress Bar, FileMaker 15's asynchronous loading of portals means developers can now reconsider utilizing a portal's sort and find functionality because deploying such a portal isn't going to automatically lock users out of a layout while they wait for it to load.

    This was then, FileMaker 14 and below.

    Layout access is impossible until all layout elements are loaded.

    FileMaker portal load locked out

    This is now, FileMaker 15.

    Partial layout access is possible once all elements, aside from portals and containers, which now now display the new In-Line Progress Bar, have loaded.

    filemaker portal inline progress bar icon

    Worth Remembering

    Bear in mind, contextual changes made while a portal is loading, like switching records or modes, will cancel the loading process. Also note that any loading portals are "off limits" when it comes to active object tabbing (a loading portal will be skipped & the next active object will be entered) and scripts & triggers (a script will be blocked until the portal is loaded and available).

    "Things are getting better all the time."

    All in all, while the Portal In-Line Progress Bar may appear to be a minor change, it actually brings with it some great benefits and potential for both users and developers alike.

    ]]>
    <![CDATA[FileMaker 15 User Interface]]> https://dbservices.com/blog/filemaker-15-user-interface https://dbservices.com/blog/filemaker-15-user-interface Tue, 10 May 2016 12:03:00 -0400 The FileMaker platform is a constantly evolving and improving ecosystem. The latest version of FileMaker has overhauled the user interface in a number of ways. The FileMaker application UI is extremely important because it is the backdrop of every FileMaker app. This round of updates increases the user experience with visual clarity, less text and visual noise on screen, more intuitive icons, and greater consistency of color.

    Let's take a deeper look:

    Refreshed Status Toolbar

    The status toolbar is the most important interface element of FileMaker. Whether your app is on desktop, mobile, web, or all three, chances are the status toolbar is a heavily utilized element of both users and developers. FileMaker 15 really makes the buttons pop to ensure users can easily perform regular actions such as create, find, and delete. Here's a comparison:

    FileMaker 14

    mac-statusToolbar14

    FileMaker 15

    mac-statusToolbar15

    Layout mode status toolbar has also increased readability with some terrific color choices:

    FileMaker 14

    mac-layout-toolbar14

    FileMaker 15

    mac-layout-toolbar15

    Improved Inspector

    inspector14 inspector15

    One controversial change is the removal of layout mode’s inspector tab names, in favor of icons and accompanying tooltips. These icons are relatively ambiguous, however I would argue it is a change for the better. My reasoning is that the tab names were not clearly defined in the first place. I often know which tab a feature is located under by simply recalling first, second, third or fourth tab. For example, Styles tab has all styling information… except that styles can also be managed from the appearance tab. And the data tab holds the field formatting display options, which directly affect the appearance of a field. The categories are good, but remain intermingled enough to require a bit of memorization. FileMaker 15 embraces this with flat icons, and reduces the visual noise by removing text that hardly mattered in the first place. We’ve all already memorized the tab locations, so this change doesn’t take long to get used to.

    A welcome refresh is the removal of the sushi bar of vague colors in the "Arrange & Align" section. FileMaker 15 replaces the skeuomorphic images with modern flat icons.

    Another change to the inspector is the unifying effect of knocking back the section divider darkness. Now these labels are no longer fighting to be the most prominent element even though they are the least referenced.

    Updates to the inspector might take a little getting used to for seasoned developers, but from my own experience it doesn't take long to appreciate the increased ease of use.

    FileMaker WebDirect and Go Updates

    The status toolbar for WebDirect as well as Go both received a minor update to the icon terminology. The most noticeable one of these is updating the dropdown menu to be an arrow in place of the old, rather vague, folder icon:

    web_direct_newIcon

    This should help the ease of use for all mobile users.

    Conclusion

    This version of FileMaker holds a number of visual updates to the application. These will help any custom app to look more sleek and modern.

    Watch on Youtube: FileMaker 15 User Interface

    ]]>
    <![CDATA[FileMaker 15 Security Enhancements]]> https://dbservices.com/blog/filemaker-15-security-enhancements https://dbservices.com/blog/filemaker-15-security-enhancements Tue, 10 May 2016 12:02:00 -0400 FileMaker has done it again. They are constantly improving the security features of the FileMaker platform to better serve its users. Now that FileMaker 15 has arrived lets review those changes.

    Pro / Pro Advanced 15 Features

    FileMaker 15 SSL Certificate Error

    First a new warning will appear whenever a connection is made to a hosted file and the connection cannot be validated. This mainly applies to deployments of server that are using the self-signed certificate when SSL is first enabled. FileMaker has always been clear with their message: the self-signed certificate is for testing and development only. If you don't wish to see this notification and need SSL enabled a signed certificate is the best way to remove it. Servers that have a regular (custom) certificate or have SSL disabled will never display this message. Keep reading to see how FileMaker Server 15 has improved this process.

    FileMaker Permitted Hosts

    One alternative is to check the "Always permit connection to this host". This will then add the server as a permitted host in your FileMaker Preferences.











    FileMaker Data Viewer Security

    The Data Viewer has been updated; in the past users with FileMaker Pro Advanced could gain access to any information in your application. No more! Now a full access account is required to use this feature. Certainly a welcome change that matches the Script Debugger and Current tab of the data viewer itself.











    FileMaker 15 Concealed Edit Box

    Gathering passwords from users is now even easier. A new control style, the "concealed edit box", has been added to mask any sensitive data. FileMaker now provides a sleek way to protect sensitive information entered by a user.








    Go 15

    FileMaker Go Security Connection WarningFileMaker Go Manage Permitted Hosts

    Just like its desktop counterpart, FileMaker Go will warn you when trying to connect to servers/files that are not secure.

    The Always Permit Connection is a welcome feature. Users will likely be familiar with this concept from browsing websites. Just like on Pro users can manage their list of permitted hosts directly within FM Go.

    Server 15

    Create Certificate Signing RequestWith FileMaker Server 15 you can now create your certificate signing request, serverRequest.pem and serverKey.pem files directly from the admin console. Previous versions required this to be done from the command line or terminal. This file is then used with your certificate authority to generate the certificate. Just be sure to follow the process outlined with your certificate authority. As a bonus we can now also view the certificate once it has been properly installed.

    Security Require Password Protected Databases
    FileMaker Server now has the option to require password-protected databases. A database that has a Guest account using the Full Access privilege set, a Full Access account with an empty password, or a Full Access account with the password stored in the database using the File Options dialog box "Log in Using" option is insecure and will not be opened.

    Keep In Mind

    • Extended Privileges – To prevent Applescript or ActiveX from performing FileMaker scripts, use the new fmscriptdisabled extended privilege.
    • FMS SSL Certificate – You will still need to use the command line/terminal to delete a custom certificate.
    • FileMaker Go – You can now log in to your application using Touch ID.

    Watch on Youtube: FileMaker 15 Security Features

    In Conclusion

    With all the focus on protecting data these days, it is nice to see FileMaker's continued improvement in the security realm. I know this developer will be pushing more clients to use FileMaker 15's new security features, including custom SSL certificates, ensuring a smooth deployment.

    ]]>
    <![CDATA[FileMaker In-Product Updates]]> https://dbservices.com/blog/filemaker-in-product-updates https://dbservices.com/blog/filemaker-in-product-updates Tue, 10 May 2016 12:01:00 -0400 FileMaker In Product Updates LogoFileMaker 15 introduced a much welcomed improvement to the updating process: you can now upgrade your FileMaker Pro directly in Pro itself, instead of needing to hunt for an updater on a separate web page. But that's not all - the updaters are significantly smaller in size, making downloads faster. With these changes FileMaker has modernized the updating process, which should ultimately result in more users on the latest version, a goal that aligns with FMI's continued focus on security.

    How it works

    If there's a new minor version available, you will be asked when you open FileMaker Pro if you'd like to install the update. You can elect to either install it, be reminded later or skip the version entirely. Unlike the previous versions of Pro where you would be taken to the Updates web page, the new version will be downloaded all within Pro itself. Once downloaded, you will be prompted to install the update and relaunch Pro. Doing so will complete the update process by replacing the current version of Pro with the new one.

    Some odds and ends

    • In-product updates are only available on Pro. Server updates will still require going to the Updates page.
    • You can check for a new version at any time via Help-->Check for Updates, just like you could in previous versions.
      FileMaker Up To Date Message
    • You can turn off new version alerts the same way you could in previous versions, via unchecking the "Notify me when an update is available" option under Preferences.
      FileMaker New Version Alert Preference
    • In-product updates only apply to minor versions (e.g. 15v1 to 15v2). Major versions (e.g. 15 to 16) will still require downloading and running an installer outside of Pro.

    Conclusion

    Like all great features, in-product updates will become so natural so quickly that people will assume upgrading always worked this way. And now that the process is nearly effortless for users, I hope to see more frequent releases from FMI. As the popular software development saying goes, release early, and release often!

    ]]>
    <![CDATA[FileMaker Google Route Optimization]]> https://dbservices.com/blog/filemaker-google-route-optimization https://dbservices.com/blog/filemaker-google-route-optimization Tue, 05 Apr 2016 00:00:00 -0400 FileMaker Google MapsWhether you are a technician that has multiple appointments in a day, or you are a traveling salesperson, you want to minimize your time on the road. Luckily for us, Google has an API for route optimization! Let's look at how to connect your FileMaker solution with the Google Maps Directions API to take a list of locations and order them to minimize the time spent traveling.

    ]]> Creating a Free Developer Account

    Getting your API key is free and easy, and the first step is to create a project in the Google Developers Console if you don't already have one.

    Create Google Project

    You can get away without using an API key, but you will be limited to 8 locations. Once you have created the project, you will then need to enable the Google Maps Directions API and then set up the credentials for the API. This will take you to a setup process where the API will be managed. We will be using HTTP requests, so you will want to mark that the API will be accessed via a web browser client.

    Googel Directions API Credentials

    Once you have created your credentials, and the API Key has been created, copy it into your solution. Now you have everything you need to make requests to the Google Directions API.

    Making Requests and Parsing the Response

    The request to the Google Maps Directions API can be completely handled by using the native FileMaker script step "Insert from URL".

    Insert from URL [ Select ; No Dialog ; TABLE::postResult ; "https://maps.googleapis.com/maps/api/directions/js... API Key]" ; Do not automatically encode URL ]

    This means that it is compatible with both Desktop and iOS clients. In order to get multiple addresses sorted in the fastest route, you will need to set the flag "optimize:true".

    https://maps.googleapis.com/maps/api/directions/json?origin=Indianapolis,IN&destination=Indianapolis,IN&waypoints=optimize:true|Fishers,IN|Plainfield,IN|Nobilesville,IN&key=YOUR_API_KEY

    By setting the optimize flag, you are now required to enter the location of origin and destination, along with the waypoints you wish to visit in between. Details for how to set up the url request can be found on the Google Maps Directions Documentation.

    Once a successful request has been made, a JSON-encoded response will be returned. You will then be able to use a plugin, a web viewer, or any JSON parser that you prefer to pull out the data that you need. Remember, if you need your solution to be mobile compatible, you can't use a plugin unless you use Perform Script on Server. The Google Directions API returns complete directions with the response, so you can get as much or as little as you want out of it. By setting the optimize flag to true, the response will also include the order in which you should visit the provided waypoint locations.

    ..."summary" : "I-465 W","warnings" : [],"waypoint_order" : [ 1, 2, 3, 4, 5, 6, 0, 7 ]...

    In the example above, the waypoint order is what you will need to reference to order your locations. Starting with 0, you will want to rearrange your locations to so that they go from increasing order. The first waypoint put into the request will need to be the second waypoint visited. You will need to go through each location in the same order you passed to the API. Then, set each record with the number provided. When you sort the records by the corresponding waypoint, you will have the optimized route. Now, when you map the locations in this order, you will have the best route possible.

    Conclusion

    Save time and money optimizing your drive. Google has yet another API that us FileMaker users can easily integrate with and use. Feel free to contact us if you need further assistance or to discuss making your routes as optimized as possible with any other route optimizing APIs.

    ]]>
    <![CDATA[FileMaker Server Connections Renewal Price Increase]]> https://dbservices.com/blog/filemaker-server-connections-renewal-price-increase https://dbservices.com/blog/filemaker-server-connections-renewal-price-increase Wed, 23 Mar 2016 00:00:00 -0400 FileMaker Server 14

    When FileMaker 14 came out last year, the price of new users of FileMaker Server for FileMaker Go and WebDirect users increased to be closer in line with the price of FileMaker Pro. Historically FileMaker lets existing customers have a year of transition the new price of licenses.

    With that being said, the renewal price for FileMaker Server with FileMaker Go/WebDirect connections will be going up to match the price of new licenses on May 12th 2016. You have the opportunity to lock in a two year or one year renewal for savings at the old price before the price increase officially happens.

    For example, if you have a Server with 5 Go/WebDirect connections (AVLA) expiring 10/12/2016 you can renew before May for $648 (retail price, not our price) but, if you renew after May your renewal cost would be $828 (retail price, not our price). The savings is real, and if you have the funds to renew early you should definitely take advantage of it now. Please note: renewing early will not change the date of you contract. Following the above example, if you renewed your licenses before May, your new contract date for a 1 year renewal would be 10/12/2017.

    Conclusion

    • FileMaker will be increasing the cost of FileMaker Server with Go/WebDirect connections for renewals on May 12th, 2016.
    • This affects people with FileMaker Server with 5 or more connections.
    • Customers have the opportunity to renew licenses early to save money for the next year or two.
    ]]>
    <![CDATA[FileMaker Google Calendar Integration]]> https://dbservices.com/blog/filemaker-google-calendar-integration https://dbservices.com/blog/filemaker-google-calendar-integration Tue, 02 Feb 2016 00:00:00 -0500 Having your own calendar inside of FileMaker is a great way for you and your coworkers to keep track of upcoming appointments. However, building your own calendar in FileMaker is a very tedious task. Why reinvent the wheel when there are already apps out there that you can integrate with? I will show you how to connect your FileMaker solution with Google Calendar to take advantage of this powerful calendar and all of its features.

    ]]> FileMaker Google Calendar Logos

    Creating a Free Developer Account

    The first step of this integration is to create a project in the Google Developers Console. Once you have created the project, you will then need to enable the Calendar API. This will take you to a setup process where the API will be managed. We will be using HTTP requests, so you will want to mark that the API will be accessed via a web browser client and that you will be accessing user data. You will also need to set the redirect URI to https://dbservices.com or any valid website that will not redirect to something else. This is only used as a landing page for authentication and does not need to be anything special. Once the Client ID has been created, copy the Client ID and Client Secret into your solution. Keep your client secret hidden from the world as the combination of the Client ID and Client Secret will be used to authorize your solution to make changes to the end user's calendar.

    Authenticating with Google

    Once you have your API information, you will need authenticate your solution with the Google Calendar API.

    UPDATE: FileMaker 16 now includes the ability to set headers, which means a plugin is no longer required. The example file uses these new functions.

    FileMaker can't set headers natively, and later on we will need to use a HTTP PUT command, so a plugin is needed in order to make any requests to the Google Calendar 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 Google Calendar API Documentation. To authenticate your solution, place the user into a web viewer at the API authentication screen. This will prompt the user to login with their own account and allow your solution to make changes to their calendar.

    FileMaker Google Calendar Consent

    Once they have agreed, they will be sent to the address specified in your redirect URI. In the address, there will be url encoded parameters, one of which will be the authentication code. Finally, you will use the code provided, along with your client ID 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 Google Calendar API requests require additional parameters outside of the URL encoded parameters. The Insert Event request, for example, is a POST request which requires additional fields like the start and end date, event title, and many other optional settings for the event. 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://www.googleapis.com/calendar/v3/calendars/primary/events?access_token=[Your Access Token] ; $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.

    {
      "kind": "calendar#event",
      "status": "confirmed",
      "created": "2016-01-20T17:46:42.000Z",
      "updated": "2016-01-20T17:48:30.994Z",
      "summary": "Test",
      "colorId": "5",
      "creator": {
        "email": "bmcbride@dbservices.com",
        "displayName": "Brendan McBride",
        "self": true
      },
      "organizer": {
        "email": "bmcbride@dbservices.com",
        "displayName": "Brendan McBride",
        "self": true
      },
      "start": {
        "dateTime": "2016-01-21T13:30:00-05:00"
      },
      "end": {
        "dateTime": "2016-01-21T14:30:00-05:00"
      }
    }
    

    For example, you can get the newly created event ID by using the following set of functions:

    Set Variable [ BE_JSONPath ( $jsonResponse ; "$.id" ) ]
    

    Conclusion

    Google Calendar can be fully integrated with your FileMaker solution! You can create, update, delete, or move events to different calendars all from within FileMaker. Save time and money taking advantage of all the features built into the calendar you already use. Feel free to contact us if you need further assistance or to discuss getting your company calendars into FileMaker.

    ]]>
    <![CDATA[Heat Maps in FileMaker]]> https://dbservices.com/blog/heat-maps-in-filemaker https://dbservices.com/blog/heat-maps-in-filemaker Wed, 06 Jan 2016 00:00:00 -0500 FileMaker is a powerful tool for data visualization, with many tools to display the story that the numbers tell. What many may not realize is that the vector-based SVG button icons can be utilized for some very flexible custom charting. Let's explore how we can use them to quickly construct a choropleth map, more commonly called a heat map.

    Watch on YouTube Heat Maps in FileMaker

    ]]> Creating a Heat Map

    FileMaker not only has the ability to import SVG icons, it also gives the ability to change their color with conditional formatting. This is key to using them for data visualization. All we need to get a heat map up and running are our SVG icons and some conditional formatting rules. For my map, I am using individual American states created in Adobe Illustrator. Once you have whichever SVGs you wish to use positioned on your layout, add conditional formatting based on data fields. filemaker conditional formattingWithin the conditional formatting, define different icon colors for the break points of data. Pay close attention to the order of the conditional formatting, since FileMaker will evaluate all the rules from top to bottom.

    Save your layout, and that's it! You now have a heat map in FileMaker.

    TIP: Use seven colors or less, otherwise you risk making the map difficult to read.

    Limitations

    An SVG heat map is fully compatible with iOS and Web Direct, however there are some limitations.

    First, there is a size limitation. The button setup as of FileMaker 14 limits icon size to a maximum of 128 points. This means that large objects like Texas will limit the size that other states can be displayed at. A work around for this is cutting the largest objects into quarters or smaller elements, and then align the object parts.

    filemaker button setup

    Another limitation is that conditional formatting on a button overrides the hover state. This means that if we wish to turn our icons into buttons, there will be no hover color. The work around to this is duplicating the heat map and creating a transparent map of clickable buttons, without any formatting. This method has two downsides: first, the layered objects in layout mode will make it difficult to modify the conditional formatting located on the back layer; second, if any objects have been segmented because they were too large, the hover state will only apply to a single section. If this is an issue, you can simply elect to not have a hover state.

    The last thing to keep in mind is that the button boundaries will not be the same shape as the icon--by default they will be square. You can work around this by rounding the corner radius on one or all of the icon corners to minimize overlap.

    Custom Charting Beyond Heat Maps

    SVGs are a very flexible medium, and can be used for more than just a heat map. With this same technique, you can make pretty much any custom chart you can imagine. One could highlight parts of a car or other object, display health data on a human body, or illustrate an organization chart. the sky is the limit!

    If you use this method for a custom graph of your own, tweet it to us and share your awesome ideas.

    ]]>
    <![CDATA[FileMaker Embraces Crowdsourcing – New Product Ideas Space]]> https://dbservices.com/blog/filemaker-embraces-crowdsourcing https://dbservices.com/blog/filemaker-embraces-crowdsourcing Wed, 02 Dec 2015 00:00:00 -0500 FileMaker Inc. recently introduced the FileMaker Product Ideas space on FileMaker Community, a place to view, post, vote and comment on feature requests for the FileMaker product line. While not a replacement for the longstanding FileMaker Feature Request webpage, the reddit-like Product Ideas space enhances and modernizes the feature request process, giving the developer community a public forum to express their crowdsourced opinions on the future of the product line.

    Watch on YouTube FileMaker Embraces Crowdsourcing - New Product Ideas Space

    ]]> Getting to the Good Stuff

    Because feature requests can be upvoted and downvoted, the most interesting content in the Product Ideas space are the ideas with the highest score. To get to these, click on the Show All link at the bottom of the Product Ideas overview page.

    FileMaker Product Ideas

    Alternatively, you could:

    1. Click on Content in the navigation bar at the top.
    2. Click on the Ideas tab.
    3. Change the sort to "Sort by score"

    FileMaker Product Ideas Top Score

    The Power of Crowdsourcing

    There's a reason websites like Reddit and Kickstarter have skyrocketed in popularity over the past few years: crowdsourcing works. And when it comes to the FileMaker Community, the Product Ideas space allows FileMaker to leverage the wisdom of the crowd.

    Not only that, but because of the low overhead involved in voting, more information is communicated to FileMaker's product management team than traditional feature requesting as the space captures the opinions of those developers who don't mind voting but would otherwise not dedicate the time to submit an entire request request.

    Plus with the new space, you have a quick way to find out if anyone else has had an idea similar to yours. All it takes is a search.

    Keeping the List Fresh

    As with all v1 releases, there are things FileMaker could do to improve the experience of consuming and posting on the Product Ideas space. Let's take the top score list as an example:

    Top FileMaker Product Ideas

    If I were a bettin' man, I would put good money on these same 6 ideas being at the top of the list in a year (unless, of course, FMI builds one of these ideas into the product line, at which point it should drop off).

    To keep the list fresh, there should be a way to slice it up so you see top score/most votes/most comments based on a time period, such as last week, last month, last year, etc., just like you can with Reddit.

    Reddit Top Time Period

    Voting on Comments

    I'm big on efficiency in regards to consuming content. Life is short, and time is precious. I would love love love if we could vote on comments in not only the Product Ideas space, but anywhere on FileMaker Community. You can like comments currently, but that doesn't change the sorting: comments are sorted in chronological order, with the oldest at the top. Seeing the highest voted comments (aka the most relevant/useful/interesting comments) at the top would save everyone the hassle of wading through all the comments looking for gold.

    A Step in the Right Direction

    I was pumped when I first heard about the Product Ideas space, so much so that I dropped everything I was doing and spent a good hour browsing all the interesting and creative ideas. And I'm still pumped - finally, an official place to exchange ideas about the future of the product line, with upvoting to boot. Kudos to Vin Addala, the product management team, and the customer experience team at FileMaker for putting it together!

    If you have a feature you'd like added to the product line, I recommend both submitting an official FileMaker feature request and posting on the FileMaker Product Ideas space. As the saying goes, the squeaky wheel gets the oil (that's true for FileMaker systems as well: if yours is a hootin' and hollerin' at you, feel free to reach out and inquire about our FileMaker Support and FileMaker Development services).

    ]]>
    <![CDATA[FileMaker vs QuickBase]]> https://dbservices.com/blog/filemaker-vs-quickbase https://dbservices.com/blog/filemaker-vs-quickbase Wed, 18 Nov 2015 00:00:00 -0500 Today is the day, it is time to look for a technology that fits your needs, but where do you begin? You realize you need a more powerful tool then a spreadsheet and there must be a better way to manage your workflow. You're ready for a custom application. We will compare FileMaker by Apple with QuickBase by Intuit, to help manage your custom workflow.

    I'd like to first off say that we are a FileMaker partner, and that it was difficult doing the comparison of the two platforms. I spent many hours learning QuickBase, viewing webinars, and using the trial to be as accurate as possible.

    Watch on YouTube FileMaker vs QuickBase

    ]]> FileMaker Overview

    FileMaker logo

    FileMaker is cross platform technology that runs on Windows, Macs, iOS, and a Browser and is celebrating its 30th anniversary this year. In most cases FileMaker requires you to install their client software and in return you have more flexibility to tailor the application compared to the limitations of a browser. Your custom FileMaker application can be run locally or be shared via FileMaker Server. You can even build a custom iOS application or laptop version and then sync your data to a server with some custom application development.

    Pricing is significantly better compared to QuickBase. For starters, FileMaker doesn’t have tiered pricing in the sense that the more expensive it is, the more features you’ll have. Pricing starts at $105/year per user with annual licensing for FileMaker Pro. FileMaker Pro Advanced starts at $175/year. We always suggest at least one person per organization have a copy of Advanced as it has the full developer toolkit, though you can still create and build out a solution with Pro. Additionally, FileMaker provides a 40% discount to 501(c)3 non-profit organizations. As opposed to Quickbase's pricing, with FileMaker, you can actually receive discounts with the more seats you purchase, with the first tier being at 25 seats!

    With the pricing structure of FileMaker, it benefits the small business users that only need a handful of seats, as oppose to QuickBase which has a minimum requirement for each level of the product, which can get expensive quickly if you are wanting the fully customizable QuickBase Premier.

    Arguably the best attribute of FileMaker is that it is fully customizable out of the box! It is flexible in regards to screen design where you can make buttons, portals, popover menus, etc. to specifically fit your workflow. FileMaker also has a large community of developers where you can find different plugins and extensions to further customize your solution.

    One asset of FileMaker is the ease of sharing information with others. With FileMaker Server, you can easily share a database with users across all platforms, that includes: Windows, Mac, iOS, Web and Android. Additionally, when you are hosting your server internally, you know where all your information is, and has great security features such as SSL Security, AES-256 bit encryption as well as setting up your database to have encryption at rest. You can also set up automated backups of your application to run hourly, daily, weekly, monthly etc. to insure your data is backed up should something happen.

    Starting FileMaker is also easy. There are 16 FileMaker Starter Solutions which are templates already made by FileMaker. You can also check out our own template, FM Quickstart, if you are looking for a fined tuned CRM application. If you'd rather receive FileMaker training first there are a lot of different options to go. The FileMaker Training Series has two different downloadable ebooks and exercises. The FileMaker Training Series Basics is free while the FileMaker Training Series Advanced is $20, both training series is part of the staff training here at DB Services. We also provide instructor led FileMaker Training courses from anywhere from FileMaker Developer Basics, to wanting to become a certified developer via the FileMaker Developer Boot Camp. Additionally, FileMaker has a great developer community where you can find templates and solutions for free or to purchase, or you can contact us to receive a free consultation for a custom application.

    Do you already have the data that you want to start sharing in FileMaker? FileMaker makes it easy to use right from the start if you have a spreadsheet with all of your information you’d like in an application. All you have to do is drag and drop the file into FileMaker and you are on your way to making a new database.

    One of the great things about FileMaker is how easy it is to find partners and trainers from FileMaker's website. Additionally, FileMaker has held a FileMaker Developer Conference for over 20 years with great speakers, tracks and sessions from different industry leaders. In 2015 over 1,500 attendees were at the FileMaker Developer Conference.

    QuickBase Overview

    QuickBase logo

    QuickBase is a cloud-based system that is made by Intuit, which of course makes the ever-popular QuickBooks that a lot of companies use, including us. This makes QuickBase a natural selection for many companies that are already familiar with the brand. The main features and benefits that users come to QuickBase is for team collaboration & management, custom business apps, workflow automation and different reporting tools.

    With QuickBase being cloud-based, the pricing structure is very different to FileMaker’s.

    QuickBase Essential: $15/user/month starts at 10 users. This is the lowest price they offer, and comes with a lot of limitations. For example, it limits 1 form per table, 1 customizable app home page, not able to code pages, no custom branding and Developer Sandbox is not available which lets you fully customize the platform.

    QuickBase Premier: This is their most popular level, at $25/user/month starts at 20 users. This level also doesn’t allow for the Developer Sandbox or Custom Branding, but it does have considerably more features than the Essential, such as access to APIs, QuickBase Sync, testing as another role and some coding.

    QuickBase Platform. This level seems to be the closest to FileMaker in what the capabilities are. The pricing is $40/user/month starts at 40 users. This, however, gives you full access and lets you use the Developer Sandbox for full customizations.

    With Quickbase being a cloud hosted system, all of your information is stored in the cloud on their servers. This may be perfectly fine for some applications, but with security worries these days, this could be a big concern, where you aren’t fully in control of own your data, as it is on someone else’s servers, especially if you are holding sensitive information ie credit cards, social security numbers, etc. Additionally, with the application being all cloud-based, you cannot have a local copy to reference and use should their be an outage by your provider.

    However, having the application in the cloud has strong advantages such as not having to run your own server internally to share the solution, as it is cloud based to share with other users. This saves a lot of headaches with IT and having to improve your hardware every few years. QuickBase is also great to hit the ground running with over 800 ready-to-use apps.

    Another aspect of having a cloud hosted system is the performance. You simply can’t have the same performance of having an application internally as opposed to cloud based where you are having to fetch the data across the internet and retrieve it back to your location, which takes time.

    With QuickBase, you are limited to the customizations you can make to your application. For example, the navigation for your application is always at the top, and to add different widgets, buttons, reports, can only be added vertically. This means, if you have significant data, it all can’t be at the top of your application, you may have to spend time scrolling to the bottom to find what you are looking for, as oppose to FileMaker where you can have different layouts and also customize the layout to have the information you need, where you need it.

    QuickBase also has a community focused on the 'Citizen Developer'. It is also very easy to navigate QuickBase website to find different resources such as tutorials, webinars, ebooks, online support, etc. Similarly to FileMaker, QuickBase has a list of partners, however, I did not find any of the partners offer training dates to register for. The partners seems to primarily build new apps, or offer pre-made plugins to add-on to your current solution in place.

    QuickBase also held their first annual 'User Conference' called EMPOWER in May of 2015. The conference included 30 sessions including educational workshops and customer stories. Though not as nailed down as FileMaker's DevCon which shows who is speaking at what track at what time, EMPOWER does have speakers and sessions similar to FileMaker. EMPOWER 2016 conference dates are already set and looking to add more content and speakers.

    In Summary:

    • FileMaker is fully customizable and extremely flexible in regards to screen design.
    • FileMaker is significantly cheaper.
    • FileMaker has the flexibility of FileMaker hosting in the cloud or having your own internal servers.
    • QuickBase has over 800 ready-to-use apps to get started.
    • QuickBase isn’t fully customizable unless you purchase the top-tier plan and screen design is limited.
    • Both FileMaker and QuickBase have annual conferences and communities that have similarities but yet very different.
    ]]>
    <![CDATA[WordPress Form FileMaker Integration]]> https://dbservices.com/blog/wordpress-form-filemaker-integration https://dbservices.com/blog/wordpress-form-filemaker-integration Thu, 15 Oct 2015 00:00:00 -0400 Are you tired of double data entry from forms on your website? Web forms are a great way to generate leads, capture orders, or other pieces of information. Forms submissions are typically sent via email and clutter you and your teams inbox. Thereafter you manually copy or type the data in your FileMaker application. Instead we will show you how to drop a website form into a FileMaker dashboard. LIBERTY!

    Watch on YouTube WordPress Form FileMaker Integration

    ]]> The WordPress Form

    In this demo we are using WordPress, the most popular content management system on the internet! WordPress has many plugins for building and managing forms. In this article we use Gravity Forms*. Gravity Forms allows you to build the form with a WYSIWIG interface to add your fields, modify the form settings, and view the entries.

    FileMaker WordPress Form

    This form is used to gather contact information for people interested in our services. It allows us to collect the person's name, email, phone, and any other pertinent information they choose to share with us.
    *Gravity Forms is a paid product.

    The PHP Code

    If you're not familiar with WordPress development the functions.php file is a great place to change the default behaviors of WordPress. In our case we want to extend the process of submitting a form by send it to our third party application. Line 3 tells WordPress to run the post_to_third_party function and to do it after the form has been submitted.

    FileMaker Gravity Forms

    In the function post_to_third_party we first define a site/page to send the data (line 8). Next we build an array of values to send. At first it may not be intuitive where the numbers originated at. Each form assigns an id to every field.This id is exposed via the interface within WordPress itself.Simply hover over the field and the corresponding tooltip will display the Field ID.

    FileMaker WordPress FieldID

    Once you have your ids build an array of values to post to your third party (lines 10 to 18). Finally send the data to your site through an HTTP Post. The following would be an example PHP file that you would post to:FileMaker Gravity Form Integration

    FileMaker PHP API

    Gravity Forms will still send a notification that the form was completed and even includes the form data. However, the real magic and time savings comes from the backend integration. Gravity Forms will post the data to your $post_url. This post URL PHP file will then use the FileMaker PHP API to drop the data into FileMaker.

    Conclusion

    Double data entry no more! The contact lead, quote, online order, whatever information your form includes will be dropped into FileMaker. Feel free to contact us if you need further assistance or to discuss getting your form data to drop into FileMaker.

    ]]>
    <![CDATA[FileMaker Radius Search]]> https://dbservices.com/blog/filemaker-radius-search https://dbservices.com/blog/filemaker-radius-search Thu, 03 Sep 2015 00:00:00 -0400 Imagine a sales rep visiting a customer in an adjacent state. Since the rep is unfamiliar with the area, it would be great to have a list of nearby customers they could visit afterwards. One of the best ways to accomplish this is to perform a radius search on the customers within your FileMaker solution, evaluating the distance between the rep and each customer's address. Let's take a look at how to build one of these yourself using Google Maps API, some custom functions, and a couple calcs.

    ]]> filemaker google mapsGeolocation

    One of the most reliable APIs used to look up geocoordinates of an address is the Google Maps API.

    This straightforward API call is an HTTP GET composed of a URL with three components – the base url, an URL encoded address, and an API key.

    https://maps.googleapis.com/maps/api/geocode/xml?address=8604%20Allisonville%20Road,Indianapolis,Indiana,46250,US&key=<APIKEY>
    

    API Setup

    Getting your API key is free and easy, and the first step is to create a project in the Google Developers Console if you don't already have one.

    Create Google Project

    Once you have created the project, you will then need to enable the Google Geolocations API and then set up the credentials for the API. This will take you to a setup process where the API will be managed. We will be using HTTP requests, so you will want to mark that the API will be accessed via a web browser client.

    Googel Directions API Credentials

    Once you have created your credentials, and the API Key has been created, copy it into your solution. Next we need to enable billing for our project.

    In the console, click the three horizontal bars to bring up the menu. We'll navigate to the "Billing" section.

    Navigate to Billing Section

    If you haven't already, enable billing for this project. You can add a billing account or link an existing billing account through this screen. If you add a new billing account, navigate back to this screen and link the account you just created. This will enable billing for the current project.

    Enable or Link Billing Account

    Keep in mind that certain APIs have different billing plans. Most Google APIs allow for free usage up to a certain number of calls per month. The Geolocation API currently has a $5 per 1,000 requests price tag, with $200 free credit every month. This means your first 40,000 requests each month with this API are free, with everything over that at the $5 price tag.

    You can find more pricing information on the API page in Google's API Library.

    Radius Search

    Once we make the call using the Insert from URL script step, Google returns our results in an XML format. Using a custom function we can parse out the latitude and the longitude of the address we submitted and store that information inside FileMaker.

    Watch on Youtube FileMaker Radius Search

    ]]> Inside FileMaker, we perform the radius search by calculating the distance between the reference address and each address. The custom function used takes the latitudes and longitudes of the two pertinent addresses and returns the distance between them as miles. Once we have the distance between the two points, the actions taken can be whatever a user wants. Beyond radius searches, this process can be applied to many different scenarios, such as which employee should make a delivery based on their current location.

    Conclusion

    A radius search helps determine the relevant locations for any radius from a certain point of relevance. It is an effective tool and can extract important data that can add value and efficiency to your FileMaker solution.​

    ]]>
    <![CDATA[FileMaker Custom Button Icons]]> https://dbservices.com/blog/filemaker-custom-button-icons https://dbservices.com/blog/filemaker-custom-button-icons Tue, 04 Aug 2015 00:00:00 -0400 FileMaker 14 ushered in a new era of vector graphics with the advent of button icons. FileMaker comes pre-loaded with 140 very useful glyphs; additionally you can expand your collection with any number of custom glyphs and images. These icons can then be added to any button or popover button.

    The default button icons in FileMaker are in SVG format. An SVG is an XML-based image that renders based on a series of mathematical formulas, and thus can be scaled without pixilation and recolored with ease. They can even be modified in a text-editor. This is different from any raster-based image, such as PNGs.

    Let’s take a look at how to add custom icons to a solution, and then dive into configuring custom SVGs for FileMaker.

    Adding a Custom Icon to a File

    FileMaker Add IconButton Icons can be added via the button setup dialog. For information on how to use this dialog as well as the properties of button icons, reference my other article on the basics of button icons. Note that button icons are saved in the FileMaker file.

    To add your own button icon, simply press the plus button below the custom icon display. Follow the file selection dialog to your desired image.

    FileMaker will allow you to select either an SVG or a PNG. If you choose a PNG, there is no way to edit the image within FileMaker, since it is a raster-based image. If you select an SVG, it must be formatted correctly in order to fully integrate with FileMaker’s inspector and allow for color to be updated.

    Let's see how that is accomplished.

    Formatting an SVG for FileMaker

    Any SVG without a specified fill color within the XML will be modifiable with FileMaker. The only caveat to this is that it will show up as grey in the button setup dialog, rather than the default white. An SVG with a fill color specified must also have “class=fm_fill” inside the <svg> tag in order for FileMaker to correctly classify and modify the color property, otherwise it will always be said fill color. Place this property directly following all <fill> properties within the XML.FileMaker Fill vs No Fill

    Let’s look at some examples. Here we have the XML code for our “contact add” custom icon. It has a preset fill of white (#FFFFFF) on each of its components. This icon will always render white in FileMaker, regardless of styles placed on the glyph.

    FileMaker Code Just Fill

    The first option we have is to remove the fill completely. This will allow FileMaker to override the fill with settings in the inspector, however it will show up in our button setup dialog as a shadow:

    FileMaker No Format

    Our second option is adding both a fill of white and a class of “fm_fill”. This will result in a white icon in the button setup, as well as allow settings and styles from the inspector to update the color of the glyph:

    FileMaker Correct Format

    If you do not wish to deal with the nitty-gritties of SVG modification or don’t have the time or inclination to create your own, there are several useful third-party tools available from the FileMaker community that can do these tasks for you.

    DataManix SVG Helper Tool

    The SVG Gallery Tool from DataManix is a useful little tool when it comes to managing large numbers of custom icons. It is a FileMaker solution that is free to use. Not only does it have a database you can insert all of your images into, with a single click it can update an entire folder full of SVGs to contain the correct class to integrate fully with FileMaker.

    inDats Icon Manager

    If you need icon imagery that are outside of what the native glyphs can offer, inDats Icon Manger is the FileMaker solution for you. This tool has a library of over 4,000 SVGs, which are categorized and indexed for quick searching. Not only that, but the file allows you to modify the SVG before exporting for use in your own solutions. All of these great features and more are available free of charge.

    FileMaker inDats Icon Manager

    Summary

    Button Icons are a great addition to FileMaker 14, and custom glyphs can allow for more modern solutions than ever before. Integrating your own SVGs is a simple process that can be enhanced by powerful tools from the FileMaker community.

    ]]>
    <![CDATA[FileMaker Safety Checklist]]> https://dbservices.com/blog/filemaker-safety-checklist https://dbservices.com/blog/filemaker-safety-checklist Wed, 08 Jul 2015 00:00:00 -0400 FileMaker Security Checklist
    The FileMaker platform does a great job providing native security features for your organization. While no organization can have too much security, the key is finding a comfort level that best fits your company. I always recommend organizations sit down and really think about one question: What would happen if your data were to be compromised? Once you know the answer you can begin to draft and implement a security policy that is right for your organization.

    I offer up my own checklist as a way to guide your security discussions and a reference for protecting your data. Keep in mind most businesses do not implement everything on this list. It is meant as a quick reference to spur discussion and ensure your application is protected.

    File Checklist

    Enable Encryption At Rest, be sure to document password

    Enable File Access Restrictions in Manage Security

    Disable automatically opening the file with account credentials

    Set the minimum required version in File Options

    Use External Authentication when possible

    Disable/Remove the default Admin account

    Consider hiding your files from being shown when hosted

    Enable disconnecting users from server when idle

    Disable storing passwords in the Credential Manager

    Consider requiring a minimum length password for all users

    Consider requiring users to change their passwords

    Server Checklist

    Remove sample file from FileMaker Server

    Disable unused technologies (XML, PHP, WebDirect)

    Enable SSL on Server with a custom certificate

    Enable HTTPS for Progressive Downloads (requires a custom cert)

    Enable client timeout

    Disable Installing Plug-ins on Server

    Consider changing the default ports from 80 and 443 to non-standard ports

    Restrict admin console access by IP Address

    General Tips

    Keep FileMaker up-to-date with the latest security patches

    Block non full access accounts from using FileMaker Pro Advanced

    Limit plugin usage with Get( InstalledFMPlugins )

    Use guard clauses to ensure scripts run from correct platform

    Send credentials via encrypted email using a service like Virtru.com


    Watch on Youtube: FileMaker Security : Protect Your Data

    Checkout our presentation on FileMaker Security with the FM Academy. Reach out to us when you are ready to implement your FileMaker Security Policy or to take your application to the next level.

    ]]>
    <![CDATA[Integrate FileMaker USPS Address Validation]]> https://dbservices.com/blog/integrate-filemaker-usps-address-validation https://dbservices.com/blog/integrate-filemaker-usps-address-validation Wed, 10 Jun 2015 00:00:00 -0400 Often times addresses are entered in by hand, which inevitably means there will be mistakes in your database. Accidentally entering “Read Street” when the customer really said “Reed Street” could be the difference between a happy customer and a not so great customer review. Luckily, USPS offers a free service to validate that the entered address is in fact the correct address. All you need to do is follow these simple instructions, and your FileMaker database’s addresses will be flawless.

    USPS FileMaker Integration

    Watch on Youtube: FileMaker USPS Address Validation

    ]]> Creating a Free Developer AccountUSPS Logo

    The first step of this integration is to create an account with USPS. Once you have completed this, you will then be given a username and password. The username will be used in any request that you make using the web service, so you will want to keep it secret from the outside world.

    Creating Request in FileMaker

    Once you have your username, you will need to build a URL query to validate an address using the USPS web tool and the FileMaker script step Insert from URL. You will also want to make sure that the parameters within your URL are encoded using the FileMaker function GetAsURLEncoded(). Feel free to check out the USPS API documentation to see how to build the URL.

    Parsing the Response

    The USPS API will return an XML response. However, if you run into problems receiving the XML response, and you are sure that your request is correct, you may need to call USPS Web Tools technical support to ensure your account is activated. If you do receive a response, the XML will include the correct address if it could be found, which you can compare against the provided address in your database to ensure that they match. The API does a good job at correcting addresses that were not entered in properly.USPS Address Validation XML It can find misspellings, or if certain aspects of the address are incorrect. The API will even inform you if it found the address, but it still needs more information like an apartment number or suite number. If the web service cannot find an address based on the information provided, it will return an error. FileMaker does not have a native way to parse XML, but you can simply text parse the response, as it is not overly complex. You may also use the BaseElements Plugin, which has a function just for XML text parsing: XPath.

    ]]>
    <![CDATA[FileMaker 14 What's New]]> https://dbservices.com/blog/filemaker-14-whats-new https://dbservices.com/blog/filemaker-14-whats-new Tue, 12 May 2015 12:09:00 -0400 FileMaker Pro 14The new version of FileMaker 14 is here! We take a look at the full FileMaker 14 platform (FileMaker Pro 14, FileMaker Go 14, and FileMaker Server 14), highlighting some of the best new features with eight detailed articles provided by our staff of new FileMaker 14 features.

    Overview

    Some of the biggest news in the FileMaker 14 platform includes

    • New Design Tools are available which continue to make FileMaker the easiest to develop and deploy custom application platform on the market. Items such as predefined icons to choose from, support for Glyphs, navigation bars, and button bars continue to allow you to modernize your FileMaker application.
    • New Script Workspace for Developers that lays the foundation for the future of scripting with many new ways to build scripts via type ahead and favorite script steps.
    • Second major release of WebDirect includes compatibility for mobile devices and performance improvements. WebDirect allows you to easily publish your application in a browser on the web using the FileMaker Pro or FileMaker Pro Advanced client to build your application.
    • Run FileMaker Pro and FileMaker Pro Advanced as 64-bit or 32-bit application.
    • Price increase for Server Concurrent connections to parity with FileMaker Pro. The most popular 5 connection pack goes from $300 to $480. Existing customers have up to 1 year to renew at previous price.

    FileMaker Pro 14

    The latest version continues to focus on new features that enhance usability for users and developers. Let's start with the user experience enhancements with layouts.

    Button Icons

    We think this is the year of Button Icons. Everyone will be adding stock Button Icons and custom Button Icons to their solutions. In prior versions, you had to find your own icons or create them and that meant a lot of work. Additionally, they didn’t scale well with retina display devices. That has all changed with button icons that are using glyphs.

    Read more about FileMaker Button Icons, Emory Brown dives into how you can make your application modern and look great on mobile devices.

    Navigation Bars

    You now have a new layout part available in FileMaker to add to your applications. Navigation bars allow you to create a top tier navigation in your system and when zooming in or out the Navigation Bar stays the same size.

    Read more about FileMaker Navigation Bars, Nate Williams explains how you can use Navigation Bars in your database today.

    Button Bar

    Allow you to display multiple buttons and popover buttons horizontally or vertically. For example a top tier navigation is a common place for you to add a Button bar. When you rotate your device the button bar resizes accordingly.

    Read more about the FileMaker Button Bars, Weihao Ding discusses how to use Button Bars.

    Themes

    FileMaker 14 comes with two new Themes, pushing the total number of Themes to more than 50. The Minimalist and Minimalist Touch themes, allow you to clear all theme elements from your layout.

    You can now also copy and paste custom styles on the same layout.

    Starter Solutions

    FileMaker 14 comes with updates to the existing Starter Solutions in many of the existing 16 Starter Solutions.

    Now you will find Web layouts for deploying using WebDirect. Many of the starter solutions have been improved to use new themes that are more appealing as well.

    Read more about the FileMaker 14 Starter Solutions, David Happersberger gives you a look at the changes of each Starter Solution.

    Additionally, if you are looking for a fined tuned CRM application, check out our own template we've made, FM Quickstart. It is a free download and has been optimized to run on the latest version of FileMaker.

    Script Workspace

    For any user who writes or edits scripts this is a big change. This brings many aspects of traditional programming Integrated Development Environment (IDE) into FileMaker. You can now do type ahead and save favorite script steps.

    Read all about the FileMaker Script Workspace, Jeremiah Hammond takes a deep dive and Ian Haas looks more closely at how to take advantage of FileMaker Script Acronym Type Ahead functionality.

    Placeholder Text in Fields

    You can now have placeholder text inside of empty fields which is basically like having in-field labels. You can edit the Placeholder text in the Inspector on the Data tab.

    64-Bit Client

    You can now run FileMaker Pro clients as 64-bit which increases the amount of ram available for cache. Windows has two different installers while OS X has both versions installed in a single application. If your using third party plug-ins then you need test on FileMaker 14 and if you’re not compatible upgrade to a new version of the plug-in or rewrite your system to use a 64-bit compatible plug-in.

    FileMaker Pro 14 and FileMaker Pro Advanced 14 are supported on Windows 7, 8, 8.1 along with Mac OS X 10.10 Yosemite and 10.9 Mavericks.

    FileMaker Go 14

    FileMaker Go 14 has all the features you get in FileMaker Pro such as Button Icons, Navigation Bar, Button Bar, Placeholder Text in Fields, plus some specific iOS features listed below. The new version of FileMaker Go 14 is on the App Store and the FileMaker Go 13 version will be available through September 1st, 2015.

    New User Interface

    FileMaker Go 14 more then ever before looks and feels like the award winning FileMaker Pro client streamlining the experience of the desktop with mobile devices. You can now take advantage of the Quickfind in the upper right and hide the chrome and status toolbar with three finger swipe.

    Mobile Features

    There are many additional features giving you better control of your mobile applications such as locking of the screen orientation, enhanced signature capture, video and audio playback control, support for rich text editing, and enable touch keyboards.

    FileMaker Go 14 requires iOS devices running iOS 8.1 or later on the iPad, iPad mini, iPhone and iPod touch.

    FileMaker Server 14

    Server has always been known for its ease of use and ability to run with little to no problems. The newest version focuses on providing additional security and the introduction of a standby FileMaker Server. In addition, you can change the default web ports upon installation.

    Read more about FileMaker 14 Security, Michael Westendorf looks at new security features in the platform.

    FileMaker WebDirect

    The goal for WebDirect is to be the flagship FileMaker Pro desktop client in the browser without any web programming. This version takes us one step closer. WebDirect 14 includes performance improvements, at the high end the recommended hardware supports up to 100 concurrent connections. In our labs we did notice WebDirect is faster than before. This version will bring desktop users a better experience and any users still using IWP (Instant Web Publishing) will want to look at WebDirect in FileMaker Server 14 to see if now is the time to upgrade.

    The other big news with WebDirect is mobile browsers are supported. You will get new toolbar specifically for mobile devices. In addition you can now hide the status toolbar on WebDirect for a more controlled user experience. Test before you get your hopes too high as all FileMaker Servers come with 1 connection for you to test. WebDirect continues to be an option for deploying to internal users, for external customers or vendors you should continue to use Custom Web Publishing (CWP) using traditional web programming tools.

    If you have Androids in your organization look at WebDirect as mobile browser support now means support for Androids.

    Read more about Deploying FileMaker on Android, Brendan McBride looks at FileMaker WebDirect on an Android.

    FileMaker Server support remains Windows Server 2012 R2 Standard and Windows Server 2008 R2 SP1 Standard or Enterprise and Mac OX X Yosemite 10.10 and Mavericks 10.9 is supported. No longer is Windows 7 Professional, Windows 8 Professional, and OS X 10.8 Mountain Lion supported.

    Summary

    The FileMaker 14 platform continues to be the easiest to deploy custom applications with unparalleled ease of use for organizations all around the world.

    FileMaker Go continues to evolve into a product that gives the platform a competitive edge. Allowing organizations to create a custom application on iOS devices while providing an incredible ROI.

    After 18 months, we are happy to see FileMaker 14 and look forward to building awesome custom applications using the new modern design tools for the Mobile, Web and the Desktop.

    ]]>
    <![CDATA[Deploying FileMaker on Android]]> https://dbservices.com/blog/deploying-filemaker-on-android https://dbservices.com/blog/deploying-filemaker-on-android Tue, 12 May 2015 12:08:00 -0400 filemaker androidIt is finally here! FileMaker supports Android with the release of FileMaker WebDirect. This update provides users with Android devices access to your database without the need of a FileMaker app. Users will only need to log in through the WebDirect Launch Center on a supported browser.

    Setting Up a Database for Android

    In order to enable a FileMaker database for Android, you will need the latest version of FileMaker Server, and follow the steps on the FileMaker Knowledge Base to deploy WebDirect. Please also keep in mind the FileMaker Technical Specifications required for FileMaker Server and WebDirect. Once the database has been enabled, pull out your Android phone and go to https://<host>/fmi/webd, where <host> is the IP address or domain name of the FileMaker Server. Your Android phone is now able to connect to your database!

    Optimizing FileMaker for Android

    Before you let all your Android friends finally experience the glory of FileMaker on their phone, there are a few things you should keep in android filemaker webdirectmind in order to give users the best experience possible.

    • Design the WebDirect layouts to be easy to use from a mobile phone.
    • Only use features compatible with WebDirect. Certain features that are compatible in FileMaker Pro or FileMaker Go are not compatible on WebDirect. For example, some script steps will not work on WebDirect, like Save as PDF and Enter Preview Mode. There are some layout design functions that are not compatible as well, including the ability to click a button that is below another object.
    • Test, test, test, and then test again. You will want to test your final product on Android devices thoroughly before releasing it to the public.

    For more tips on creating a better WebDirect user experience, take a look at our FileMaker WebDirect article.

    Conclusion

    A FileMaker solution for Android devices is here. To create a great user experience for Android via FileMaker WebDirect we recommend you create separate FileMaker layouts if you have an existing desktop or iOS FileMaker system. This is just like when creating a great user experience on iOS for FileMaker Go. I am excited to see Android solutions being deployed in the FileMaker community and look forward to the FileMaker platform future on Androids.

    ]]>
    <![CDATA[FileMaker Script Workspace]]> https://dbservices.com/blog/filemaker-script-workspace https://dbservices.com/blog/filemaker-script-workspace Tue, 12 May 2015 12:07:00 -0400 It’s been a long time coming. FileMaker Inc. has revamped, redesigned and reengineered the scripting and calculation environment in FileMaker 14, modernizing the development experience, reducing the learning curve for new developers, and increasing the productivity of everyone. This new environment, the Script Workspace, is the biggest change to a FileMaker developer’s day-to-day job in recent memory. And it is a welcomed change indeed. Let’s dive into what the new Script Workspace brings to both the seasoned and new developer alike.

    FileMaker Script Workspace

    Redesigned UI

    With all your scripting needs in one window, the Script Workspace increases your efficiency by reducing the number of windows you need to manage to create scripts. Instead of popping up a new window when you open a script, the Script Workspace will create a new tab above the scripting fabric (aka the white box where you add script steps). In other words, the Script Workspace supports a multiple-tab interface like a browser.

    FileMaker Tabbed Interface

    And just like a browser, you still have the option of opening a script in a new window instead of a new tab.FileMaker Script in a New Window

    Notice, though, that this new window doesn’t have all the elements of the Script Workspace window. This design is intentional: FileMaker Inc. designed the Script Workspace so the overwhelming majority of your script writing is done in the main window. You should really only pop up new windows when you want to compare scripts side-by-side.

    The other major structural change to the scripting environment, besides the tabbed interface, is the multiple panes that can be shown or hidden, and can be filtered so you can quickly find what you are looking for.FileMaker Script Workspace Panes

    The scripting environment wasn’t the only place to get a UI uplift. The calculation dialog also has been redesigned into panes, one of which can be hidden, and both of which are filterable.FileMaker Calculation Dialog Panes

    Step Autocompletion

    Autocompletion is without a doubt the most important new feature in Script Workspace: 80% of the productivity gains come from this one feature alone. When you add a new blank line to a script and begin typing, FileMaker will drop down a list of script steps containing words that begin with the letters you typed. For example, typing “ins cu” will match Insert Current Date, Insert Current Time, and Insert Current User Name.

    FileMaker Step Autocomplete

    To add one of these three steps to the script, use the up and down arrows on your keyboard to navigate between the steps, and then press enter or tab on your keyboard, or click on the step with your mouse.

    Order matters when it comes to autocompletion. Typing “cu ins” will match nothing, as there are no steps with a word starting with “ins” after a word starting with “cu”.

    For the ultimate time saver, use acronyms to match script steps. One I’m sure will be popular amongst developers: psos, which matches Perform Script on Server.

    FileMaker Acronym Autocomplete

    To learn more, check out Ian’s article about acronym completion in the Script Workspace.

    Calc Autocompletion

    Autocompletion doesn’t stop with script steps: FileMaker Inc. took autocompletion to the next level by adding it to the calculation dialog. Calc autocompletion helps users quickly find functions, TOs and fields to add to a calculation.

    FileMaker Calculation Autocomplete

    By default, FileMaker only shows matching fields from the current table. If you want autocomplete to present fields from other tables, you need to first type the TO name (TOs are in the autocomplete list, so just type the 1st few letters until you find it), and then you can filter for fields in that table.

    FileMaker Calculation Table Autocomplete

    Get( ) functions don’t show up in the normal calc autocomplete. To force autocomplete to show Get parameters, you first need to type “Get(“. FileMaker will then present all parameters, allowing you to autocomplete them until you find the one you want.

    FileMaker Calculation Get Autocomplete

    Keyboard as a 1st Class Citizen

    FileMaker has been well-known as a point-and-click development environment. While this makes the product easier to use for new users, it ultimately limits how efficient an experienced developer can be at writing code.

    One of the goals of the Script Workspace is to minimize the reliance on the mouse, and maximize the time a user can be on the keyboard to write scripts. The script fabric, autocompletion, and the ability to open up script step parameters with the keyboard facilitate this goal.

    Let’s start from the beginning. When you create a new script, the cursor is automatically put into the tab to name the script. Once you finish naming it, pressing tab will highlight the script fabric. Typing a letter will create a new blank line and immediately invoke autocompletion. Once you either filter down the autocompletion list to only a single step, or use your arrow keys to highlight the step you want to add, pressing tab will add the step. Let’s say we added Allow User Abort[ ]. The parameter for this step (on or off) is automatically highlighted. We can change it by pressing space or enter. Now that we’ve finished writing this step, we want to create a new blank line to add a new step. To do this, press tab to unhighlight the step parameter, and then press enter. You can now use autocomplete to add the next step.

    Rinse and repeat the procedure above for the rest of the steps you need to add to the script. Notice we were able to do all of this with just the keyboard. No mouse needed!

    Color Coding & Syntax Highlighting

    To help improve the readability of scripts, the Script Workspace introduced step color coding and syntax highlighting, a very welcomed addition to the development experience.FileMaker Color Coding and Syntax Highlighting

    If the default colors don’t tickle your fancy, you can change them by going to View->Syntax Coloring. The settings will only apply to the Pro client you are currently working in.FileMaker Syntax Coloring Settings

    Inline Help

    Gone are the days where developers need to hunt in Help Center for a description of what a script step does. Now when invoking step autocompletion, the highlighted step will show its description inline at the bottom of the autocomplete box, saving time and helping new developers learn steps faster.

    FileMaker Step Autocomplete Inline Help

    There’s also a description box at the bottom of the step pane in the Script Workspace, that’ll show the description of the highlighted step in the pane.

    FileMaker Step Pane Help

    If you need more information about a step, clicking on the little ? icon in the description box will take you directly to that step’s page in the Help Center.

    And just like step autocompletion, there’s inline help in calc autocompletion.

    FileMaker Calculation Autocomplete Inline Help

    Other Noteworthy Features

    • Line Numbers. The Script Workspace shows line numbers on the left side of the script fabric. Very useful for referencing a part of a script.FileMaker Line Numbers
    • Favorites. You can favorite script steps so they show up at the top of the steps pane in the Script Workspace. Those of us who will use the mouse once and a while will enjoy this feature.FileMaker Step Favorites
    • Debug Button. You can immediately debug the current script in Script Workspace via the new Debug button at the top left of the workspace window. Very nice time saver.FileMaker Debug Button

    FileMaker 14: A Developer’s Release

    FileMaker 14 will forever be remembered as the Script Workspace release, and with good reason: it fundamentally changes the way developers go about creating scripts and calculations. Not only does the Script Workspace make our lives easier, but it also makes the experience more enjoyable. I’m sure I speak for most developers when I say: Thank you FileMaker Inc!

    ]]>
    <![CDATA[FileMaker Button Icons]]> https://dbservices.com/blog/filemaker-button-icons https://dbservices.com/blog/filemaker-button-icons Tue, 12 May 2015 12:06:00 -0400 FileMaker 14 introduced several new design tools that can greatly enhance the user experience and modern look of a FileMaker application. One of the most exciting of these is the addition of button icons. Gone are the days of grouping a graphic image over a button object. Along with adding text to a button object, you can now add an icon. You can choose your own image for the icon or use one of the 140 glyphs that come with FileMaker 14.

    A glyph is a vector image that is rendered from a mathematical formula, and thus can be scaled to any size without losing quality. This means that they will look crisp on retina displays of any resolution. Not only that, but glyph color can be chosen in the Inspector!

    Let’s take a look at how to add button icons.

    Adding an Icon to a Button

    The biggest change about configuring buttons in FileMaker 14 is the new button setup dialog. This FileMaker 14 Button Setupprovides a user-friendly way to quickly set up buttons. In order to set up a button with an icon:

    1. Choose icon location. There are six different formats for button layout. Choose between icon, text, or both in various positions relative to each other.
    2. Enter button text. If you have chosen to include text with the button icon, you can specify it here.
    3. Choose Icon. Choose from 140 preset glyphs or add your own images to the list. Any image format can be added, however only SVG images will have the flexibility of the native FileMaker glyphs.
    4. Set the icon size. Using the slider or edit box, you can set the icon size between 8 and 128 points.

    Button icons can also be added and configured in the same way for popover buttons and button bars.

    Button Icon Styles

    After setting up the button, the icon can be further styled in the inspector. There is now an option to apply styling colors to the icon itself.FileMaker Button Icon Color

    This has flexibility to set normal, hover, pressed, and in-focus states for the icon separately from the button. This could be useful if you wanted to have the icon highlight a color when the cursor hovers over, for example.

    Conditional Formatting

    Configuring button icons does not stop with the Inspector; button icons can be conditionally formatted to change color based on a formula. This icon color condition will also apply to button bar icons and popover button icons. What you might not expect is that this icon color condition also affects radio button set icons and checkbox set icons. This is consistent with the increased control over the atomic level of all objects that FileMaker 14 makes available for modification.FileMaker 14 Conditional Formatting

    Conclusion

    Button icons are a powerful addition to FileMaker’s tools for modern user experience and design. FileMaker 14 has a big focus on new design tools and increasing the level of control over layout objects, adding further flexibility for developers. Check out some of the other new interface features in the following articles:

    FileMaker 14 What's New

    FileMaker Button Bars

    FileMaker Navigation Parts

    ]]>
    <![CDATA[FileMaker Button Bar]]> https://dbservices.com/blog/filemaker-button-bar https://dbservices.com/blog/filemaker-button-bar Tue, 12 May 2015 12:05:00 -0400 The FileMaker Button Bar is a brand new layout object added in FileMaker 14. It provides you a centralized place to configure a collection of buttons (including popover buttons). Two of the main use cases for the button bar would be using it to create a navigation bar or function bar.

    FileMaker 14 Using Button Bar

    Adding Button Bars to Layout

    Adding a button bar to a layout is very similar to adding other layout objects. First, you need to go to layout mode. Then you can either go to “Insert” menu and choose “Button Bar” or use the “Button Bar Tool” on your status tool bar.

    FileMaker Add Button Bart to Layout

    After you choose to insert a button bar you can specify the location and size of the button bar by clicking on your layout and dragging, similar to adding a tab control.

    Button Bar Setup

    Double clicking on a button bar will pop up the “Button Bar Setup” dialog. Since a button bar is a collection of buttons and popover buttons, the setup dialog for a button bar is quite similar to the one for buttons and popover buttons.

    However there are parameters that are unique to a button bar setup. FileMaker 14 Button Bar Settings

    1. Alignment of segments (section 1 in screenshot to the right). This is used to specify the alignment of segments. Your segments in a button bar can either be aligned horizontally or vertically.

    2. Active segment (section 2). This is used to select active segment. Active segment selection will affect the segments’ appearance. We will talk about that in the next section. One thing to notice about active segment selection is, you can use a calculation to choose the active segment dynamically. In the use case for navigation bar we can use this calculation to have the active segment be selected according to the context of the layout.

    3. Add or delete segments and choose a specific segment (section 3). Choosing a specific segment allows you configure it using sections down below.

    4. Type (section 4). Once a segment is selected, its type can be configured either as a button or a popover button using the drop down list shown in section 4. The rest of the button bar will change elements it contains to reflect this choice.

    Button Bar Appearance

    FileMaker Different Object AppearancesFileMaker provides great flexibility when it comes to setting the appearance of a button bar. Open the Inspector and go to the appearance tab. You will notice there are four components of a button bar’s appearance that you can configure: Button Bar, Button Bar: Dividers, Button Bar: Segment and Button Bar: Icon.

    1.Button Bar component is mainly about the borders and outer shadows of a button bar. It will be applied to the whole button bar.

    2. Button Bar: Dividers component, as its name describes, is about dividers between segments. You can specify top and bottom padding for dividers which will determine the height of them.

    3. Button Bar: Segment component is about the currently selected segment. Different from a regular button, a button bar segment has five states: Active, Inactive, Hover, Pressed and In Focus.

    The Active state is used to describe the appearance of a segment when it is the active segment. In contrast, the Inactive state is used to describe the appearance of a segment when it is not the active segment.

    Earlier in the article, I mentioned that you can have a calculation to have the active segment selected according to the current context. Combining that with the active and inactive states, you will be able to reflect the current context on your navigation bar.

    The other three states are quite common among layout objects. Refer to FileMaker’s Help Center for more information.

    Keep in mind that any changes you make here will affect all the segments on the button bar.

    4. Button Bar: Icon. Before we talk about the Button Bar: Icon compFileMaker Button Bar Setuponent, let’s go back to the Button Bar Setup dialog and take a look at the section 1 on the picture to the right. This section allows users to specify the position of the button label and button icon. The first option is to display only a label. But the rest options all involve icons. You can choose an icon from hundreds of icons designed by FileMaker and put it on your button. Check