<![CDATA[Blog]]> https://dbservices.com Thu, 25 Apr 2024 10:08:00 -0400 en-us Copyright 2024 3600 <![CDATA[Salesforce Nonprofit Cloud Summer '24 Highlights]]> https://dbservices.com/blog/salesforce-nonprofit-cloud-summer-24-highlights https://dbservices.com/blog/salesforce-nonprofit-cloud-summer-24-highlights Thu, 25 Apr 2024 10:08:00 -0400 Fundraising

Measure Campaign Success on Marketing Cloud Growth Campaigns

You can now add outreach source codes to campaigns to track campaign success more easily using the campaign flow in Marketing Cloud Growth Edition. You are able to use existing source codes or create new ones for your campaigns.

Build Custom Scores to Understand Donor Behavior

Users can now build custom scores for donors to better understand donor behavior, determine their receptivity to particular campaigns or messaging, and develop more targeted and effective outreach. These scores are based on fields that reflect Recency, Frequency, and Monetary values to assign a score to each donor that can be viewed on the donor profile.

Generate Gift Acknowledgements and Receipts

It's now quick and easy to generate gift acknowledgments for individual transactions or end-of-the-year gifts and save them as a PDF. This makes it simple to send constituents a personalized acknowledgment or receipt with a customizable template. Additionally, you can track which transactions have been acknowledged and track no-tax-deductible gift amounts.

Store Multiple Constituent Addresses

Make sure your mailed outreach reaches your constituents at their correct, active address while still storing any inactive addresses (ex. if the constituent has a seasonal address.) Use the new seasonal, standardization, and change address fields by adding the preferred fields to the Contact Point Address layout. Then apply Contact Point Address as a related list to the Person Account page layout in the Lightning App Builder.

Update and Include Commitments with Business Process API

The Business Process API allows users to include more commitments and update donor information for gift commitments with faster and easier integrations with Nonprofit Cloud. You can use the Business Process Connect API endpoints to access the Business Process API tool.

Create Recurring Gifts Using Gift Entry

Users can now streamline the new gift process by creating recurring gifts during the gift entry, saving time and effort. Salesforce will automatically create records for the gift commitment, gift commitment schedule, gift transaction, gift transaction designation, and gift default designation.

]]> Program Management

Remove Participants From Upcoming Sessions

Users can now easily remove participants from scheduled sessions on one benefit session with a single action, saving time and effort. Previously, users had to remove participants from each benefit session.

Group Program Participants into Cohorts

You can now group your participants into cohorts by adding the new Program Cohort object to the existing Program Management console app. This feature allows you to move the cohort through the program together and compare each individual's progress against the rest of their cohort. You can also compare current cohorts to previous ones for insights into the program's effectiveness.

Comprehensive View of Program Delivery

Add the new Program Management Home Page to the Program Management console app to get a comprehensive view of your programs. This allows you to track your programs and benefits at a glance. You'll also get a snapshot of new inbound referrals and target tracking, as well as the ability to quickly add participants to upcoming sessions.

]]> Case Management

Capture Interaction Notes Using a Guided Flow

Caseworkers can now easily capture meeting notes using a single guided flow. The flow can be used to write detailed notes, record attendees, record the date and time, add tags, and upload documents. The notes can be shared with other users and published to prevent further edits. This increases efficiency for caseworkers by giving them a single place to manage written and verbal communications.

]]> Grantmaking

Launch Complex Grant Applications

It's now simple to configure and launch a complex grant application that guides grant applicants through the process and shows which sections are still incomplete. This makes it easy and convenient for applicants to work on their applications over a period of time.

Measure the Success of Grants with Outcome Management

Users can now easily measure the impact and success of their grants and increase the visibility of your organization's strategy by indicating which funding opportunities or awards you expect to drive outcomes. With Experience Cloud, grant recipients can now outline and report on the impact of the grant they received.

Secure Collaboration on Grantmaking Applications

Grant applicants can now collaborate on applications easily with Compliant Data Sharing (CDS) for Grantmaking Objects.

Add Grantmaking Permission Sets to Permission Set Groups

Ensure your users always have the latest default permissions by creating custom permission sets and including them in a permission set group with the Grantmaking permission. Previously, users had to clone the Grantmaking permission set to customize permissions, so this will save time and streamline the permissions process.

Delete Individual Applications

Previously, users had to set each individual application to inactive status. Now, users can simply click Delete on individual applications that are no longer needed.

]]> Conclusion

From streamlining fundraising efforts to enhancing program management and grantmaking processes, these Summer '24 updates empower nonprofits to make an even greater impact on the communities they serve. Here's to a summer filled with growth, efficiency, and making a difference! If you’d like more information on these Nonprofit Cloud updates or if you want to view past updates, please visit the official Salesforce Summer '24 release notes.

If you have any questions about Salesforce or want to see any of the implementations in your own Salesforce organization, please get in touch with our team at DB Services!

]]>
<![CDATA[Salesforce Summer '24 Highlights]]> https://dbservices.com/blog/salesforce-summer-24-highlights https://dbservices.com/blog/salesforce-summer-24-highlights Wed, 24 Apr 2024 15:27:00 -0400 Salesforce’s Summer ‘24 update is here, and its features are like a breath of fresh air. Let’s go over some of the cool features that are sure to help you beat the summer heat, including automated user policies, new Einstein features, and survey response summaries.

Automate and Migrate User Access with User Access Policies

It's now easier than ever to update user access. Simply go to the User Management Settings and enable User Access Policies. With User Access Policies, you can now automatically assign or revoke a plethora of access features. These access features include permission sets, queues, groups, and more. You can also define the user criteria that need to be met in order for the user access policy to apply, such as the role, profile, title, or email of the user. 

]]> Once the user access policy is defined, you can choose to apply the policy to every user that meets the criteria, or you can automate the policy to apply whenever a user is created or updated to meet the criteria. Better yet, you can have up to 200 active policies and you can set the order in which these policies will run.

]]> Fix Formula Syntax Errors with Einstein for Formulas

Einstein is becoming a prevalent feature in Salesforce. Its newest feature is an update to Einstein for Formulas. Originally, Einstein for Formulas could be used to provide a readable explanation of formulas used throughout Salesforce. Now, it can help you resolve errors in a formula. The syntax checker for formula fields will tell you when there are errors in a formula. Unfortunately, it does not correct the error on its own. Thankfully, clicking Use Formula Assistant on a formula page will have Einstein provide a fixed formula for you to use instead.

Use Cursors for Expanded SOQL Query Result Support (Beta)

Cursors are a new feature of Apex that allow you to break down the results of a SOQL query into smaller pieces, all within a single transaction. Since cursors break down the results of a SOQL query, you will be able to work with large data sets without returning the entire data set at once. Cursors can be used like batch Apex, but without some of the limitations. For instance, cursors have forward and backward navigation, as well as the ability to be used in a chain of queueable Apex jobs.

In order to create a cursor in Apex, execute a SOQL query inside of Database.getCursor() or Database.getCursorWithBinds() call. You can call Cursor.getNumRecords() to get the total number of rows from the SOQL query. After that, sections of the data set can be retrieved by calling Cursor.fetch(integer position, integer count).

Cursors have the following Governor limits:

  • Maximum number of rows per cursor: 50 million (both synchronous and asynchronous)

  • Maximum number of fetch calls per transaction: 10 (both synchronous and asynchronous) 

  • Maximum number of cursors per day: 10,000 (both synchronous and asynchronous)

  • Maximum number of rows per day (aggregate limit): 100 million

Einstein for Developers (Beta)

Einstein for Developers is a Visual Studio Code extension that is sure to improve the productivity of your developers. With it, you can generate Apex code from natural language prompts, inline autocomplete code for Apex and lightning web components, and generate test cases for your Apex code.

Einstein for Developers can be downloaded now, but keep in mind that it is still in beta. It is always wise to review any generated code suggestions before deploying them.

]]> Let Einstein Build a Draft Flow for You

Einstein is bringing its automation to flows as well. When creating a new flow, you can select Let Einstein Help You Build to start working with Einstein in your flows. Write down your instructions for how you want the flow to run, and then Einstein will build the flow for you. 

Remember to always check the accuracy of the drafted flow before activating it. It is also a good idea to debug the flow in order to test its accuracy. The flow page will also include an Einstein window where you can share your feedback with Einstein or choose to start over.

Improve the Performance and Scalability of LWR Sites with Experience Delivery (Pilot)

Experience Delivery is a new infrastructure to improve the performance and security of your Lightning Web Runtime (LWR) sites. Experience Delivery uses server-side rendering (SSR) to render site pages. After rendering the site pages, Experience Delivery caches the page using a content delivery network. This improves performance over the client-side rendering used by existing LWR sites by increasing conversions and lowering bounce rates. Experience Delivery now includes support for enhanced domains as well as custom URLs with path prefixes.

This feature is currently being piloted. To participate in the pilot, contact your Salesforce account executive. After you are approved, Experience Delivery can be enabled by going to the Settings page on an experience site’s Administration workspace.

]]> Education: Determine Steps to Graduation with Intelligent Degree Planning

If your Salesforce org has the Education Cloud license enabled, then your Experience sites just got an upgrade. You can now provide your students with the Intelligent Degree Planner. This dynamic planner allows students to view program requirements, search for eligible courses, and design their degree completion path by sessions, terms, and years. After creating their plans, students can submit the plan to their advisor for review and approval.

Nonprofit: Store and Track Multiple Addresses for Constituents

If you have Fundraising enabled for your Salesforce org, then there are new fields to work with for your constituents’ addresses. A constituent can have multiple addresses, but you may not always know which is active. The new fields added to the Contact Point Address record help ensure that mailed outreaches always reach your constituents at their active addresses. In order to use the new fields, such as season, standardization, and change address fields, you will have to add the fields to the Contact Point Address page layout, and then add the Contact Point Address as a related list for the Account page layout.

]]> Sales: Draft Personalized Emails with Einstein

If your sales representatives are looking to grab your buyers’ attention, then Einstein Sales Emails enables you to draft and send personalized emails quickly. Using a method called grounding, Einstein utilizes your data to create accurate, relevant emails for your contacts and leads. Sales reps can select email types for Einstein to use, such as introduction emails or follow-up emails, when it builds a draft. Admins can also define custom email types for Einstein to use.

When you open the email composer, click on Draft with Einstein, choose pre-made email instructions, then select an email type. That’s all Einstein needs to start writing emails for you. 

You can also choose to create your own instructions for Einstein to draft your email. Simply describe the email you would like to write, select any record that you want Einstein to utilize, like a product record, and Einstein will take care of the rest. After Einstein builds the email you can always choose to undo or revise the draft.

Service: Insights from Summaries of Survey Responses

Surveys are a great way to get feedback and data, but getting insight from all the responses is not always easy. Luckily, surveys now include Response Summaries. These response summaries use generative AI to provide insights into your survey takers’ perspectives. When making a mapping for response summaries, you can select which questions the summary should be tailored to. You can also specify conditions that the survey responses must meet in order to be included in the summary.

]]> Time to hit the beach!

With automated user policies, new Einstein features, and survey response summaries, Salesforce’s Summer ‘24 update aims to do more work so you don’t have to. With a big focus on automation, this update ensures you can kick back, relax, and soak up the summer sun.

If you would like more information on these updates, please visit the official Salesforce Spring '24 release notes. If you have any questions about Salesforce or want to see any of the implementations in your own Salesforce organization, contact DB Services!

]]>
<![CDATA[Upcoming Webinar: Empowering Nonprofits with Salesforce AI]]> https://dbservices.com/blog/upcoming-webinar-empowering-nonprofits-with-salesforce-ai https://dbservices.com/blog/upcoming-webinar-empowering-nonprofits-with-salesforce-ai Mon, 15 Apr 2024 12:19:00 -0400 We'll be exploring:

  • How to use AI responsibly in your organization

  • Best practices for using Salesforce's AI tools, including

    • Using Einstein for Nonprofits to analyze your data and build predictions about your donors

    • Using Einstein for Service to create service responses, work summaries, and a knowledge base so you can service your constituents more quickly and accurately

    • Using Einstein for Marketing to recommend campaign optimizations and improve copy

    • Using Einstein on Salesforce Platform to train chatbots, build predictions and recommend next steps, and utilize ChatGPT to automate manual tasks

]]>

Register today to secure your spot for Empowering Nonprofits with Salesforce AI: From Data to Action. Don't miss out on this opportunity to transform your nonprofit's future with the power of Salesforce AI!

]]>
<![CDATA[Claris FileMaker Stripe Invoicing Integration]]> https://dbservices.com/blog/claris-filemaker-stripe-invoicing-integration https://dbservices.com/blog/claris-filemaker-stripe-invoicing-integration Tue, 09 Apr 2024 11:16:00 -0400 FileMaker provides an excellent suit of features to build invoicing solutions. These solutions can be great when they are used in FileMaker only. But, sometimes it's necessary to expand your applications to take payments and send invoices on the web. Stripe provides a suite of features that allow you to manage payments and invoices online conveniently. Integrating FileMaker with Stripe using REST API allows us to create powerful online invoicing solutions for our applications. Let's dive into the fundamentals of how to set up a FileMaker integration with Stripe for invoicing.

]]> Stripe Account Creation & Setup

In order to integrate FileMaker with Stripe, the first thing we'll need to do is to create a free Stripe account by using Stripe's registration page. Once you create your free account, you will automatically be put into "Test mode". However, note that you can continue to activate your account, which will allow you to perform transactions with real money. Just make sure you toggle the "Test mode" switch whenever you want to test.

]]> Before we can continue with the FileMaker and Stripe integration, we'll need to do some setup. Keep in mind that Stripe is very flexible in terms of setup options. This is just one way you can set this up, but we'll briefly touch on other options later.

Products

The first thing we'll set up is our products. We'll want to create the products we're going to be using in our test store. For this particular demonstration, we have set up a test store with colors as placeholders for products. Ideally, the product creation would be handled from FileMaker by integrating the Products API. However, for the sake of brevity, in this case we'll be doing the product creation manually.

]]> Customers

The next step in our setup will be to create our customers. In our case, we created just one test customer, "Jason Smith". You can create multiple customers if desired, just be sure to perform the proper setup on FileMaker as well (more details on that later in this article). Once again, this can also be managed from FileMaker if you already have an existing customer base using the Customers API. We'll be doing this manually for this article, but we'll touch on how to do this briefly.

]]> FileMaker Application

For the purpose of this article, we've created an accompanying file that you can download and follow. The file is a simple application that lets us create orders for our products. We'll be able to select a customer for the order and then generate invoices using Stripe's REST API. There is some setup we'll need to do before we can continue with the solution.

Stripe API Key

First, we'll need to obtain the API key. Go to the "Home" page on your Stripe dashboard. You should see a link named "API keys for developers".

]]> Clicking this will take you to the "Developers" screen. From there simply select the "API keys" option (likely already selected) and you'll want to copy the "Secret key".

Note: If you proceeded to activate your account make sure you are in "Test mode" before you copy the "secret key". Your key will change depending on which mode you are and it will determine whether you create test data or real data.

Once you have the key, paste it into the FileMaker file vy using the layout dropdown and selecting the "PREFERENCES" layout. There you will find a field where you can enter the key.

]]> Product

Next, we'll need to go to the "PRODUCT" table using the layout dropdown. From here, we can create the products for our store. You'll want the information here to match that of the products you set up in Stripe. It is very important that you copy the "price ID" for each of the products on Stripe to the field "Stripe Price ID" for each product.

To get the price ID of a Stripe product, simply select the product from the product catalog on the Stripe dashboard. Then, scroll down to the "Pricing" section and you will see a column labeled "API ID"

]]> Copy this ID and paste it on the appropriate field on the product page in FileMaker.

]]> Customers

Next, we'll want to set up our customers in the FileMaker application. Using the layout dropdown again, go to the "CUSTOMER" layout. Create customers matching the information of the customers you created in Stripe. Like with the products, we'll need a specific ID from Stripe as well to link the Stripe customer to our FileMaker customer record.

To find the customer ID, simply go to the "Customers" section from your Stripe dashboard and click on the customer. From there look for the "Details" section on the far right and you will see a column of information including the customer ID.

]]> Once you have this key, paste it on the "Stripe ID" field in your FileMaker file. Copy and paste the ID of each of your Stripe customers onto the appropriate FileMaker customer records.

]]> Orders

Now that we are done with the setup, we can use the information to create orders. To create orders, simply use the layout dropdown in FileMaker to select the layout "ORDER". Then use the "+" button to create your new orders.

Once the new order record is created, you can select the customer you want using the dropdown. Then select the products you want on the portal.

Once all of that has been completed, click the "Generate Invoice" button. This will create a new invoice in your Stripe dashboard that will have different behavior depending on which API key you are using. The behavior is as follows:

  • Test mode - Stripe will generate an invoice entry. You can see the invoice in your Stripe dashboard under Billing -> Invoices. From there you can click on the invoice and click "Send invoice" to email it to the customer.

  • Live - FileMaker will generate the invoice and email it to the appropriate customer.

]]> The email sent will contain the invoice and a link for the client to submit a payment no matter which option you choose.

]]> A PDF of the invoice will also be attached to the email.

]]> FileMaker Technical Details

Now that we have seen what the application does, let's take a look at how it is done.

For the "CUSTOMER" and "PRODUCT" tables, the most important part is to have those IDs that you can obtain from Stripe. Without them, the records in FileMaker won't be connected to the records in Stripe. So make sure that those are set correctly.

The most important part of the application is in the script "Stripe - Create & Send Invoice" Let's review it in parts.

In the top section of the script, we are obtaining the key from the field in the preferences table and obtaining the customer ID from the Order record.

]]> Next, we need to check to make sure that the order does not have an associated Stripe invoice already. If so, we just want to send the invoice rather than create a new one.

If an invoice is not created yet, we want to create a new one using the Stripe API. FileMaker gives us the ability to call REST APIs through the Insert from URL [...] script step.

]]> We can encode information in the URL and pass parameters to the HTTP request through cURL options. Here's a closer look at the cURL options used for this call:

]]> Next, we can take a look at the second part of this if/else branch. After creating the invoice, we'll create the invoice line items using the information that we have in the current order record.

]]> In the image above, you can also see the "Else" part of this branching. The "Else" case is really just getting the ID of the invoice if it has already been created.

Here's a closer look at what the cURL options are for this specific request:

]]> Towards the end of the script, you can see the last part where we simply send the invoice via email to the associated email address of the customer.

]]> Here's a closer look at the cURL options needed for this part:

]]> Conclusion

FileMaker provides very robust solutions for developing invoicing solutions. Integrating FileMaker with Stripe enables us to build powerful invoicing solutions for the web with a lot of flexibility in managing our products and customers. If you would like to start a Stripe integration in your FileMaker application, contact us and we'll be happy to help you build powerful invoicing solutions.

]]>
<![CDATA[Surveys for Success: Together Rising]]> https://dbservices.com/blog/surveys-for-success-together-rising https://dbservices.com/blog/surveys-for-success-together-rising Wed, 03 Apr 2024 12:00:00 -0400 The team at Together Rising travels across the globe to help wherever its impact is needed. They are focused on helping women, families, and children in crisis. From funding cancer treatments for underprivileged families or college tuition for ill students to providing supplies and support for refugee families and children in war zones, the list goes on. They are currently heavily focused on reuniting separated families in war-torn areas such as Palestine and providing relief to all affected countries. As of 2022, Together Rising has distributed almost $40 million to people in crisis all over the world.

Each customer survey we receive is an additional donation towards Together Rising. Your feedback will not only help our team at DB Services, but also provide Together Rising with donations to further support people in need, everywhere. Together, we can make a positive impact!

]]>
<![CDATA[Collapsible Lists in Claris FileMaker]]> https://dbservices.com/blog/collapsible-lists-in-claris-filemaker https://dbservices.com/blog/collapsible-lists-in-claris-filemaker Tue, 12 Mar 2024 11:12:00 -0400 Creating a collapsible list in Claris FileMaker might initially seem challenging, but with a strategic approach using a web viewer, it becomes achievable. By leveraging the web viewer, you can create a dynamic list that incorporates FileMaker data seamlessly. The list will function using JSON to construct all the data that will be displayed on the list. For instance, imagine a scenario where you want to display a list of invoices along with their associated line items. With the help of a web viewer and some clever integration, you can easily achieve this functionality with just a button click. Users could expand and collapse individual sections of the list to focus on specific details, providing a more intuitive and efficient workflow.

]]> How To Use Data From FileMaker With Web Viewers

Web viewers in FileMaker serve as a conduit for displaying web content within your FileMaker solution. Leveraging HTML, CSS, and JavaScript, they provide a dynamic interface for interacting with data. Through JSON integration, the web viewer can seamlessly retrieve data from your FileMaker file and incorporate it into the web environment, facilitating data flow between your FileMaker solution and web-based resources. This enables an exchange of information, enriching the user experience and expanding the capabilities of your FileMaker application. For example, the collapsible list will grab all the FileMaker Data in JSON, and then the initialization of the web viewer will fetch the JSON data and create an intractable list that can be easily used.

Setting Up Data For A Collapsible List

To create data that will be used in the collapsible list, we'll need to to parse through the data and set up a JSON array inside of another JSON array. Here is an example from the demo file:

]]> Essentially, you'll be creating an array of objects of the parent record and then adding an array of the child record as an object within the initial JSON Array. This will be what the web viewer fetches when creating the dynamic list.

Setting Up For The Web Viewer

Web Viewers require the use of HTML, CSS, and JavaScript to connect and display the list. Use the data in the fields of listApp.css, listApp.js, and listVendor.js in the demo file. Then, add a new custom function to construct the HTML leveraging the CSS and JavaScript data.

]]> Create a new web viewer in your FileMaker file and set it to these settings:

]]> Initializing The Collapsible List

A web viewer requires initializing via script steps to fetch the FileMaker data and then display it using the JavaScript.

  1. Update your web viewer with an identifier name.

  2. Set up your JSON Array from earlier as Data Set parameters.

  3. Perform the JavaScript with function name in the web viewer for our list using the identifier name.

    • This will update the web viewer to fetch the FileMaker data and post it on the web as a list.

    • Then, it will return as a dynamic list in the web viewer.

After all of that, you will have an intractable collapsible and extendible list, in which you can select the down arrow on a single invoice and see all of the related invoice line items.

]]> Conclusion

Incorporating collapsible lists on a web viewer in your FileMaker application allows for a dynamic way of structuring and displaying hierarchical data. Users can quickly navigate through expanding or collapsing sections as needed to focus on specific information. This enhances the user experience, simplifies data access, and optimizes the layout space. Whether managing intricate project hierarchies, organizing inventory items, or presenting menu selections, collapsible lists enable users to interact with data more intuitively, ultimately enhancing productivity and usability within FileMaker solutions.

]]>
<![CDATA[Salesforce Nonprofit Cloud Implementation Guide]]> https://dbservices.com/blog/salesforce-nonprofit-cloud-implementation-guide https://dbservices.com/blog/salesforce-nonprofit-cloud-implementation-guide Fri, 08 Mar 2024 11:15:00 -0500 If you are reading this, then you are probably considering using Salesforce for your nonprofit organization. While Salesforce offers a variety of tools that can help a nonprofit organization, the latest and greatest of these is Nonprofit Cloud. Nonprofit Cloud offers a set of solutions to help your organization with fundraising, program management, and outcome management. This article will go over the many aspects of Nonprofit Cloud, such as new objects and data models, that have to be considered during implementation.

]]> Party Model

Nonprofit Cloud includes the Party Model as a way to document the different types of relationships between accounts and contacts. With the Party Model, you can set contact-to-contact and account-to-account relationships in order to get a better context and understanding of the connections between your accounts and contacts.

The first step is to create a Party Role Relationship record. These records need a role name, like ‘Father to Son’, a related role name, like ‘Son to Father’ to show the relationship, and if the Party Role Relationship applies to contact-to-contact or account-to-account relationships.  You can also choose to have the record automatically create an inverse role Party Role Relationship record that will be applied to the related account or contact when setting the relationship.

]]> Now that the Party Role Relationship is set up, it can be assigned to any number of accounts or contacts. When creating the Party Role relationships, consider what types of relationships you want to track between your accounts and contacts, such as Boss-to-Employee for contacts or Neighbor-to-Resident for accounts.

]]> Fundraising

A big portion of being a nonprofit organization is fundraising, and Nonprofit Cloud has many apps to assist in the fundraising process. The Fundraising Strategy app gives a big-picture overview of your organization's fundraising data and activities, which can be useful for tracking the progress of your fundraising and planning for future events. The Donor Engagement app helps you manage outreach programs by organizing your engagement data through campaigns, gift commitments, and reports. Philanthropy & Partnerships is used to help solicit from major donors.

]]> Fundraising Operations is used for entering gifts, tracking donor commitments, and scheduling gift commitments. In this app, if an organization or a household has given your organization a gift, you can go to the account record, click the Manage Gift Entries button, and then enter the details of the gift entry. These gift entries can be viewed on the account in the Gift Transaction section.

]]> You can also go to the Gift Commitment page to set up recurring donations, grants, planned gifts, and pledges. Once a Gift Commitment has been created, the record page will show upcoming gift transactions, missed or failed gift transactions, and what other steps are needed to set up the gift commitment.

You will also have to create a Gift Commitment Schedule record in order for the gift transactions to be generated. Click the Manage button in the Gift Commitment Setup section and then you can select the start date of the commitment, the gift transaction period, the gift transaction interval, and the gift transaction amount.

]]> The last thing that needs to be set up for the gift commitment is a Gift Default Designation. Gift Designations are used to show how the donor wants their donations to be spent. Each Gift Designation record also shows general statistics of transactions for that designation, such as how many transactions the designation received, the total transaction amount, and the average transaction amount.

Click the Manage button in the Gift Commitment Setup section, select any number of Designation records, and then what percentage of the donated funds should go to each designation. Now that you have an understanding of how to record and schedule gifts, you can better track your fundraising program and how each account participates.

]]> Program Management

Nonprofit Cloud offers a Program Management module that can be used to define, plan, deliver, and track the programs that your organization offers. To use this module, go to the Program & Case Management app. From here, you can manage your organization’s programs, enrollments in these programs, and upcoming sessions.

]]> Program Management focuses on Program records. The Program record is used to summarize the program, give additional context, record the start and end dates of the program, track the program participants, and track the benefit disbursements.

Next, there are the Benefit records, which are used to show the types of benefits that a program enrollee can receive. Benefit records also require a Benefit Type record, which makes it easier to categorize the many benefits that your organization offers, such as voluntary assistance, meal service deliveries, or counseling.

]]> After making the program, you can start enrolling accounts and contacts into the program by creating Program Enrollment records. With a program enrollment record, you can start assigning benefits to the enrollee with the Benefit Assignment record. You can also track when the enrollee receives a benefit using Benefit Disbursement records.

If you have benefits that get distributed on a consistent basis, you can create Benefit Schedule records to automatically generate Benefit Sessions for program enrollees to attend.

]]> Case Management

On top of modules to manage your organization’s programs, Nonprofit Cloud also offers a Case Management module to aid your case managers with providing quality assistance to your long-term cases.

The case management workflow generally starts with a Referral record, which captures information about the client. From that, referrals can be used to generate a Case record. Cases are a familiar object for anyone working with Salesforce, but Nonprofit Cloud has added some additional objects to be utilized alongside the case record. Under the Related tab on the case’s record page, you will see some related records to work with.

]]> Case Participant records are used to connect other entities to the case that may be related. Case Participants could be contacts, like family members, neighbors, coworkers, or case workers. They can also be accounts, like the client’s place of employment or a foundation. When adding Case Participants, consider who is involved with the client's case and what role they have towards it.

Next, there is the Case Team. After an assessment is given to the case client, a case manager may assign a person or group to a Case Team. These are the individuals who will work towards resolving the case. When adding individuals or groups to the Case Team, consider what role they should have, as this also determines whether they have read-only or edit access to the case.

Then, there is the Care Plan record. The Care Plan stores the goals and benefits for the case client, as well as the services and actions for the client to resolve their case. The Care Plan also stores assessments of the client as they work towards their goals.

]]> Finally, there is the Interaction Summary object. Interaction Summaries are used to store information on any interactions with a client, such as meeting notes, the purpose of the interaction, and next steps to take. Another benefit of the Interaction Summary is that it can maintain confidentiality within your Salesforce organization.

Outcome Management

Outcome Management is a module that can be used to measure the results of your organization’s outcome strategy. In order to help you assess the results of your outcomes, Outcome Management utilizes a collection of new objects.

Outcomes

The Outcome record is used to show the kind of outcome you expect to see for participants in your organization. Such outcomes could be increasing household income, decreasing risky behavior, or maintaining employment. Remember to consider the long-term and short-term outcomes you want to measure for participants in your programs. Use the Outcome Activity record to relate the Outcome record to programs or benefits that your organization provides. Such outcome activities could be participating in a job coaching program or a mental health program.

]]> Indicators

Indicator Definition records are used to describe the values that your organization measures to determine a participant’s progress toward an outcome. Such indicator definitions could be the percentage of participants with a stable job or the percentage of participants who scored 75% or higher on a confidence assessment. Remember to consider what values your organization wants to track when creating the indicator definitions.

You would then use the Indicator Assignment to relate an indicator definition to a program or outcome. Indicator Assignments should be related to programs when you want to track a participants direct progress within that program, while an Indicator Assignment should be related to an outcome if you want to track a participant’s progress towards an overarching goal for the participant.

]]> If you want to measure the rate of progress or results of participants over a certain period of time, then you will want to use Indicator Performance Period records. Such indicator performance periods could be the percentage of participants who have stable jobs from 2023 to 2024. Indicator Result records are then used to store your measurement data for the Indicator Performance Period. Such indicator results could be a 63% increase in participants with stable jobs for the performance period from 2023 to 2024.

]]> Impact Strategy

Finally, there is the Impact Strategy record. Impact Strategy records are used to pool outcomes in order to represent the overarching strategy used for participants in your organization, be they individuals, the general public, or the environment. The Impact Strategy Assignment records are used to connect your impact strategies to the outcomes that your participants are working towards. Together, these records can help you visualize the impact your organization is having on participants using the Strategy tab on the impact strategy.

]]> Grantmaking

The Grantmaking app in Nonprofit Cloud includes tools to help you through the grantmaking process, from tracking the people involved with grants, to managing approvals of grant applications, to delivering assistance to participants in your organization. The Grantmaking app uses some new records to assist with the grantmaking process.

Funding

The Funding Opportunity record is used to represent the pool of money available for a specific program offered by your organization. You can relate the Funding Opportunity to an Application Timeline in order to represent milestone dates in the application process. You can also relate the Funding Opportunity to a Budget record to show the available pool of money, the period of time the budget applies for, what program the budget is for, and how the pool of money should be used.

]]> The Funding Awards record is used to represent an award given to a person or organization. The Funding Awards tracks the amount of funds awarded, the program it applies for, the funding opportunity it is related to, and the awardee. The Funding Award record page also includes a Budget tab, that can be used to record the planned distribution of the budget, as well as the actual amount distributed.

]]> The Funding Award Requirement record is used to represent a milestone for an individual or organization to achieve in order to receive funding. The record tracks the funding award it's related to, as well as who the requirement is assigned to.

Individual

The Individual Application record is used to represent a request for funding by an individual or organization. The record includes the funding opportunity, the account or contact making the request, the budget requested, and the purpose of the request. These Individual Application records are usually generated when an applicant submits them through a Grantmaking portal. Grantmaking portals are made with grant-seekers in mind, so consider setting up ways for grant-seekers to apply for funding opportunities, submit budgets, and upload documents.

There is also the Application Review record, which can be utilized to determine the status of applications, who reviewed the applicant, and what kind of recommended action the reviewer suggests.

]]> Reports and Dashboards

Nonprofit Cloud comes with many reports that can be utilized to give you insight into the different types of data that your organization is tracking. Even though reports like “Gift Commitments This Calendar Year” or “Donors with Total Contributions” can be immediately usable and useful, you always have the ability to create custom reports to display whatever information you need. On top of that, these reports can then be placed on Dashboards to display relevant information from many reports in one convenient location. When building reports, consider the target information you want to see, as well as any related information that could help you understand the data as a whole.

]]> Integrations

Salesforce has a tool or feature for just about any of your nonprofit needs. Even so, you are still able to integrate with other third-party platforms. Integrating with third-party platforms can require some work, but it should not be an issue if you have a skilled development team, like DB Services, in your corner.

The AppExchange is a great marketplace for exploring all sorts of third-party platforms. You can find many useful free or paid add-ons for your organization, from add-ons focused on fundraising, to add-ons focused on improving the impact of the programs your organization offers.

Security

Security is an ever-important part of any organization, especially nonprofit organizations. Salesforce offers many ways of controlling the security of your organization, from global access settings all the way down to field-level security.

Sharing settings determine the default access levels for users in your Salesforce org. When setting up sharing settings, consider the default access level you want your records to have, such as private, read-only, or read/edit. Then, you should consider how you want to open up access to your data based on specific criteria, such as if the user accessing the data is an admin, or if a record has data that only a certain team should have access to.

]]> Roles can be set up for users to determine record access based on a user’s position. Combined with sharing settings, you can set up rules to share records with a user and all their subordinates or give a user access to all the records of their subordinates.

Profiles are assigned to users to determine a plethora of access settings, such as what records they can view, what fields they can update, and what apps the user can access. When creating profiles, consider what objects and fields would be required for all the users of that profile.

Permission Sets, like profiles, are used to determine a plethora of access settings. However, permission sets are applied to specific users rather than a group of users. This is useful in scenarios where there are many users that need access to the same data, but one of these users has additional responsibilities that require additional permissions.

Field Level Security is set on profiles and permission sets, but it is worth mentioning separately. Many different types of users may need access to the same records, but not for the same fields. When setting up access to fields, consider which users need to see that data, and if they need to be able to modify the data as well.

Data Migration

If you already have a Salesforce org and decided to move to Nonprofit Cloud, you will have to consider what data you want to migrate over. The first step to data migration is determining the metadata that you want to maintain, like custom objects, fields, and record types. Next, you will have to add that metadata to your new org. Then, you will need to determine what data you want to migrate.

Consider if you want to export all your records, or if you want to export data that meets a certain criteria. It is also a good idea to check that fields still exist in the Nonprofit Cloud, as new data models can lead to complications when migrating data.

Data Loader is a convenient application to export your data from one org and import it into another. Data Loader exports records based on a SOQL query that you define, which allows you to export only relevant fields or records that meet your specified criteria. Next, you can import the data into your Nonprofit Cloud org. Data Loader generates success logs for the records that import without issue and error logs that show which records failed and why. When exporting data from one org to another, consider creating an external-ID field for the imported data. This can ensure that data integrity is maintained and provide a good reference point for your imported data.

]]> Nonprofit Success Pack

If you are a nonprofit organization that is already using Salesforce, then you are most likely utilizing Salesforce’s Nonprofit Success Pack (NPSP). While Nonprofit Cloud and NPSP share many similarities, such as Program Management, there are key differences between the two that will have to be considered when upgrading. For more information, feel free to read our article on how to upgrade to the Nonprofit Cloud.

Conclusion

Salesforce Nonprofit Cloud has plenty of tools to truly enable your nonprofit organization’s fundraising, program management, and outcome management capabilities. Now that you are familiar with the major aspects of the Nonprofit Cloud, you are more than ready to utilize the Nonprofit Cloud for your organization. Contact DB Services if you have any questions or need assistance implementing Salesforce Nonprofit Cloud.

]]>
<![CDATA[Payment Processing with QuickBooks]]> https://dbservices.com/blog/payment-processing-with-quickbooks https://dbservices.com/blog/payment-processing-with-quickbooks Mon, 12 Feb 2024 11:16:00 -0500 In the fast-paced business world, efficient payment processing is crucial for maintaining cash flow and providing a seamless customer experience. QuickBooks has long been a go-to solution for managing finances, and integrating it with your web application can elevate the payment processing experience to new heights. In this article, we'll explore the benefits of utilizing QuickBooks' robust payment processing system.

]]> Why use QuickBooks API?

QuickBooks API offers many great benefits. Here are some of the top reasons to consider using QuickBooks API:

  • Automation: QuickBooks API allows for the automation of various financial and accounting processes. This can save time and reduce manual data entry errors.

  • Real-Time Data: Access real-time financial data directly from QuickBooks. This is particularly beneficial for businesses that require up-to-date information for decision-making.

  • Customization: Developers can use the API to build custom solutions tailored to the specific needs of a business. This flexibility allows for the creation of applications that align with unique workflows and requirements.

  • Streamlined Workflows: By connecting QuickBooks with other tools and applications, businesses can create streamlined workflows. This can lead to improved efficiency and productivity.

  • Enhanced Security: QuickBooks API adheres to secure authentication protocols, ensuring that sensitive financial data is protected during transmission. This helps maintain the security and integrity of financial information.

Credit Card & Account Tokens

A standout feature of the the QuickBooks API is the ability to generate a token representing a credit card or account. This token is then used in future calls, meaning you aren’t sending or exposing any private information. Not only is this great from a security perspective, but it’s also a great start in ensuring your application maintains PCI (Payment Card Industry) compliance.

]]> Payments

The process of running a payment is done in two steps. First, you'll need to create the charge by providing all the transaction details. The screenshot below highlights where we pass in the token representing the credit card instead of the actual card info.

]]> The next step is to capture the charge. This is where the transaction will actually be processed. In the first step, the charge is created and an ID is returned, which we will use in this step to identify the transaction we want to process.

]]> *Note: Each request made to the API requires a unique Request ID. In both the create and capture charge requests, we are passing in a newly created ID.

Sales Receipts

A sales receipt will be created for each transaction within your QuickBooks account. You can view these by logging into your account and viewing all sales.

]]> A custom receipt can also be created and emailed to the customer after a transaction has been processed.

]]> Conclusion

Leveraging the QuickBooks API can result in improved efficiency, better data accuracy, and increased functionality for businesses that rely on QuickBooks for their financial management. If you have any questions or wish to discuss integrating QuickBooks API with your application, please contact DB Services.

]]>
<![CDATA[DB Services Named Claris Growth Partner of the Year for 2022 and 2023]]> https://dbservices.com/blog/db-services-named-claris-growth-partner-of-the-year-for-2022-and-2023 https://dbservices.com/blog/db-services-named-claris-growth-partner-of-the-year-for-2022-and-2023 Thu, 08 Feb 2024 10:54:00 -0500 DB Services CEO, Kevin Hammond, reflects on the award: "Being recognized as the Claris Growth Partner of the Year for seven consecutive years is truly humbling. We could not have achieved this without our incredible team and their commitment to innovation and growth."

DB Services' mission is to make organizations more efficient and effective through digital transformations while offering superior service and exceptional expertise. With over 20 years of Claris FileMaker experience, DB Services is dedicated to growing the Claris community. 

Since 2003, DB Services has provided custom applications and workflow solutions to Fortune 500 companies, small businesses, K-12 schools, universities, nonprofit organizations, and more.  DB Services is also Claris Business Alliance Platinum Member, and provides FileMaker DevelopmentFileMaker SupportFileMaker Cloud Hosting, and FileMaker Licensing. With over 25 Certified FileMaker Developers and 7 consecutive Partner of the Year awards, DB Services is honored to be considered one of the top Claris Partners in the nation.

For a complimentary analysis and consultation, contact DB Services or give us a call at 888-488-0191.

]]>
<![CDATA[Downloading Claris Studio Form Submissions as Leads in FileMaker Pro]]> https://dbservices.com/blog/downloading-claris-studio-form-submissions-as-leads-in-filemaker-pro https://dbservices.com/blog/downloading-claris-studio-form-submissions-as-leads-in-filemaker-pro Fri, 02 Feb 2024 10:37:00 -0500 In the modern business landscape, web and data management applications have become increasingly valuable. With FileMaker 20.2+ and Claris Studio, it has become even easier to use both! With FileMaker 20.2+, you can effortlessly incorporate data gathered from Claris Studio web forms into your application. This article provides a practical overview of the capabilities of integrating Claris Studio in FileMaker Pro. Additionally, you'll find a step-by-step guide to implementing this integration to benefit your business. Explore the seamless convergence of web technology and data management for enhanced business efficiency.

]]> What is Claris Studio?

Claris Studio is a web-based platform from Claris that makes it easy to gather, analyze, and manage your data online. It comes with custom forms, dashboards, and many other no-code views. We have an article that gives an in-depth explanation of what Claris Studio is and its capabilities. Check it out if you want to learn more.

Using Claris Studio with FileMaker Pro

One of the most exciting features of Claris Studio and FileMaker Pro 20.2+ is the two-way communication between the platforms. This means you can capture web data by using Claris Studio forms and incorporate that data directly into your FileMaker Pro application. Any Claris Studio data modified in FileMaker Pro will be reflected in Claris Studio, and any data modified in Claris Studio will be reflected in FileMaker Pro.

Before you can start working with Claris Studio Data in FileMaker Pro, you'll need a Claris ID, and you'll need to create a Claris Studio team. Once you have those set up, you're ready to start developing in Claris Studio and FileMaker!

Working with Claris Studio Data in FileMaker Pro

There are many ways you can use Claris Studio and FileMaker Pro together, but for this example, I will be creating a "lead" form on Claris Studio that can be used to gather new business leads on the web. Then I will show you how to connect Claris Studio to FileMaker Pro.

Creating Claris Studio Views

The first step for integrating Claris Studio into FileMaker Pro is to create some views in Claris Studio. You can start by creating a spreadsheet view, which serves as the backbone for other views in Claris Studio and is essentially equivalent to a table in FileMaker Pro. Click on the "Add New Views" button under the hub where you want your data to live.

]]> You'll see a new pop-up window that will show you a list of options for which views you can create. We'll be choosing a spreadsheet view.

]]> Next, we need to name our view. There is an option called "Data for View" where you can select another view, and your new view will inherit the data from that view. Since we are creating a new spreadsheet and don't have any data yet, we'll select "Create New," then we'll click "Create" at the bottom.

]]> We've got ourselves a new view now, but it doesn't have any data yet. The next step is to add some fields so we can begin gathering our data. You may add whatever fields you see fit, as the fields required are use-case specific.

]]> If you want to learn more about Claris Studio spreadsheets, you can go here for an in-depth look at all the options available. Now let's create the form we'll publish to the web. We'll need to start by repeating the process of creating a new view (reference above if needed), but this time, instead of choosing a spreadsheet view, we'll choose a "Form" view.

]]> On the next page, we'll name our form. But this time, for the "Data for View" option, we'll select our spreadsheet and then click "Create."

]]> Once your form is created, you'll be presented with two pages right off the bat: the "Start Page" and the "Confirmation Page." We'll begin with the "Start Page." Since Claris Studio is a no-code platform, to customize how our page looks, we can simply drag and drop our fields where we want them. After adjusting how the page looks, here's what our final start page looks like.

]]> The next page in the workflow is the confirmation page, which will let your users know that they have submitted their form successfully. In order to view your form and submit data as users would, you can click on the open and submit data button (circled in red in the image below). The last step is to publish your form to the web so users can begin submitting data. You can do this by first clicking on the "share" button (circled in green in the image below) to pull up the "Public Sharing" window.

]]> You will then want to enable the sharing link so your form can be viewed by the public, copy and save the link, and then click done.

]]> We have created a Claris Studio spreadsheet to house our data and a form to collect our data, and we have shared the form to the web. Users can now visit that link, fill out the form, and submit the data to Claris Studio. The next step is to connect Claris Studio to FileMaker Pro.

Connecting Claris Studio to FileMaker Pro

Connecting Claris Studio to FileMaker Pro is a fairly straightforward process and should only take you a few minutes to do. There are a couple of necessary steps you must take before you can add Claris Studio data to your application. First, you must be running FileMaker Pro on version 20.2 or later in order to connect to Claris Studio. Next, you'll want to ensure you are signed in on FileMaker Pro using your Claris ID.

Once you complete both steps, you can open your application where you want to use Claris Studio data. Continuing from where we left off with our "lead" example, we will first open the relationship graph in FileMaker Pro. Then, we will add a new table to our graph.

]]> In the "Specify Table" dialog window, we'll click on "Data Source," and then click on the team name we created in Claris Studio.

]]> From here, we can select the Claris Studio spreadsheet we created and then click "OK." This will create a shadow table in FileMaker Pro, and the fields in this table will reflect those in Claris Studio. It's as simple as that! Once you have your shadow table in FileMaker Pro, you can create the necessary relationships and scripts based on your needs. You'll want to make sure the necessary fields from Claris Studio are on a layout that is based on your Claris Studio table context. The layout should look similar to the image below.

]]> Something you might notice is that there is a "Record ID" field in our shadow table that we didn't add in Claris Studio. When you create a new spreadsheet in Claris Studio, it will automatically add this field for you and it serves as the primary key for that table.

I have also added a named portal (in this example, "PORTAL:ContactMethods") on this layout that is based on my relationship from our Claris Studio table to my "CONTACT_METHOD" table. You may not need this for your specific use case, and typically this is not necessary as we would create our contact methods through a transactional relationship. But since Claris Studio does not support global fields, it is necessary in this case.

Once our layout and relationships are set up, we can create our script for pulling our data from Claris Studio and putting it into FileMaker Pro. The tables, relationships, and scripts that you'll want to use to download your data from Claris Studio into FileMaker Pro are highly dependent on your specific use case.

We have included a sample file that you can download at the bottom of this article that includes a link to the form we have built in Claris Studio, as well as the necessary tables, relationships, and source code for downloading that data into FileMaker Pro. You can use this as a reference for building your own custom integration of Claris Studio and FileMaker Pro.

Conclusion

Claris Studio stands out as a dynamic tool, offering impressive capabilities that can transform your FileMaker Pro application. By seamlessly integrating Claris Studio, not only does data gathering become a breeze, but its intuitive interface and no-code functionalities elevate your business efficiency to new heights. Explore the possibilities of enhancing your FileMaker Pro application with Claris Studio, and if you're looking you guidance or support in this journey, feel free to contact us at DB Services. We're here to turn your vision into a reality!

]]>
<![CDATA[Salesforce Einstein Activity Capture Guide]]> https://dbservices.com/blog/salesforce-einstein-activity-capture-guide https://dbservices.com/blog/salesforce-einstein-activity-capture-guide Wed, 24 Jan 2024 11:14:00 -0500 Have you ever had issues maintaining accurate, up-to-date information between your Salesforce org and your clients? Einstein Activity Capture is here to work for you by learning from you. Let's dive into how Einstein Activity Capture uses AI to gather data from your emails, calendars, and contacts to keep data about your clients detailed and up-to-date.

]]> Turning on Einstein Activity Capture

Einstein is Salesforce’s artificial intelligence for CRM. It is data-ready, so it requires very little setup. As long as there is data in Salesforce, Einstein is ready to work. Einstein is utilized in many facets of Salesforce products, but what's great about Einstein Activity Capture is that the Standard edition is free.

Simply go to the settings page for Einstein Activity Capture. When setting it up, select an email application to sync to (such as Google Suite, Office 365, or Microsoft Exchange.) Then, you can choose if you want users to connect their emails to Salesforce individually or if you want to connect the emails company-wide.

]]> Syncing Einstein Activity Capture

After enabling Einstein Activity Capture, you will have to configure the sync settings for emails, events, and contacts. You can choose which users and profiles to sync in the settings. Events and Contacts can be synced from Salesforce to your application, or the other way around, or in both directions. Then, you can set how far back Einstein should look when syncing your emails and events, up to 180 days. You can also specify what conditions are required for a contact to sync. After that, it's a matter of connecting your application account to your salesforce account so that Einstein Activity Capture can get to work.

]]> Event and contact data become Salesforce records, which means they can utilize standard platform features such as querying and reports. On the other hand, email data does not create Salesforce records. Instead, it is stored on the Hyperforce infrastructure and a public cloud provider like Amazon Web Services (AWS). You can still report on email data with the Activity 360 reporting feature or by activating the Activities Analytics dashboard.

Email Activity

Connecting your email to your org will allow you to send emails from within the org, but that's just the tip of the iceberg. Emails that are sent or received will be added to the activity timeline of the record they are related to, such as an account, a contact, or an opportunity. Einstein Activity Capture looks for certain data and dates to determine what records an email is related to. Email attachments are not added to these emails in Salesforce.

For records such as leads, Einstein Activity Capture uses the email field to determine if an email is related - but it will only add that email to the activity timeline if that email occurred before the lead is converted to a contact. After a lead is converted to a contact, Einstein Activity Capture will add activity to that contact’s timeline instead. This activity timeline will ensure you know all relevant interactions regarding the related record.

Email Insights

Not only will you see your emails on the activity timeline, but Einstein will provide insight on these emails. When Einstein scans these emails in the timeline, it will mark its insight with tags. Insights such as a commitment being made, competitors being mentioned, or someone being out of office are some of the standard insights provided by Einstein.

Einstein also allows you to create custom insights for it to detect. All you need is a label, a description, and up to 10 sets of keywords for Einstein to utilize. After that, you can also select a standard insight for Einstein to detect before generating the custom insight. Custom insights are only available in paid versions of Einstein Activity Capture. With all the insights that Einstein provides, you are sure to give the right context to your emails, which will enable your sales team to follow up with appropriate actions for your clients.

]]> Event Activity

Connecting your calendar to Salesforce will have your Salesforce events appear on your application calendar and your application calendar events appear on your Salesforce calendar, depending on the configuration settings. This offers the benefit of only needing to look at one calendar to grasp your schedule for the day. (Note: Attachments won’t be synced between calendars, and syncing may take up to a day if Einstein is trying to match events together.)

On top of that, Einstein Activity Capture will take these events and relate them to relevant opportunities, contracts, and quotes. These events will appear on the activity timeline just like emails. Event Attendees are related to contacts and leads. Attendees are matched based on the email address of contacts and leads, but you cannot always predict which attendee will get used for related records. Records are related based on whether the Allow Users to Relate Multiple Contacts to Tasks and Events option is enabled and if the email matches a user, contact, or lead record.

]]> Contacts

Connecting your contacts to Salesforce will allow you to generate application contacts from Salesforce contact records, as well as generate Salesforce contact records from your application contacts. When Einstein Activity Capture starts the initial syncing process, it will match contact email addresses between Salesforce and your application. If it cannot find a matching contact, it will create one.

Einstein will also try to match contacts to an account based on the company name of the application contact. If an account cannot be determined, the synced contacts will be added to the Unresolved Items list located on your profile’s settings page. If an account cannot be matched by the time of the next sync, Einstein will remove that company name from the contact. When a synced contact is deleted in Salesforce or your application, it does not automatically delete the contact in the other location. Remember to delete both contacts to prevent Einstein from re-creating the contact.

]]> Data Retention

Since Hyperforce and Amazon Web Services (AWS) are used to store some data, you will face data retention limits. After a certain period of time, retained data will be deleted from your activity timelines. The data retention period only applies to emails and events, not to contacts. This time period depends on the license or environment you are using.

Sales Cloud Einstein, Inbox, Sales Engagement, and Revenue Intelligence are all licenses that default to 24 months of data retention. The retention period can be changed from 3 months to 5 years, but you will have to contact Salesforce Customer Support to make this change. The Sales Cloud license and sandbox environments retain data for up to 6 months.

Note: The retention period begins when an activity occurs, not when the Salesforce record is created. The data retention period does not apply to de-identified data. This data is kept for up to two years to train the AI’s machine learning models and for third-party data enrichment.

Deleting Data

The Einstein AI needs data to learn from, but understandably, not everyone wants their data used this way. Luckily, Salesforce offers an easy way to delete someone’s personal data. The Data Policies section in setup allows you to delete emails and events based on users or email addresses. Deleting this data will not delete any event records or data from your email application, so you will have to delete that data manually. It can also exclude email addresses from being used to train the machine learning model.

]]> You can also set up additional Einstein Activity Capture configurations if you want certain users to only have some of their data synced, such as their calendar events.

Activities Analytics Dashboard

The Activities Analytics dashboard provides a summary of sales activities, from manually added activities to activities generated by Einstein. This dashboard is only available once enabled in the Einstein Activity Capture settings.

Once enabled, the Activities Analytics Dashboard will be generated with charts based on four new reports: Opportunities with Activities this Month, Sales Rep Activities, Accounts with Activities, and Neglected Open Opportunities. These reports show the last 90 days of data for Einstein Activity Capture Standard. If you are using Einstein Activity Capture through Performance or Unlimited edition orgs, the reports will show up to 180 days of data. The Activities Analytics dashboard offers another way for you and your sales team to stay aware of activities regarding your clients.

]]> Conclusion

Salesforce Einstein Activity Capture is a great way to keep your activities accurate in your Salesforce org. From email insights to synced calendars to relating activities to records, Einstein Activity Capture ensures that your sales team is always up-to-date with your clients. Contact DB Services for any questions you have or if you need assistance setting up Einstein Activity Capture for your org.

]]>
<![CDATA[Surveys for Success: Global Empowerment Mission]]> https://dbservices.com/blog/surveys-for-success-global-empowerment-mission https://dbservices.com/blog/surveys-for-success-global-empowerment-mission Wed, 17 Jan 2024 11:39:00 -0500 Global Empowerment Mission (GEM) currently has several active missions that span from natural disaster relief to civilian relief in war zones. They also continue to have boots on the ground for COVID-19 relief and have provided nearly 7 million PPE items to various locations in need.

GEM's top objective when providing disaster relief is to deliver essential humanitarian aid to displaced civilians and evacuees. They partner with local nonprofits worldwide, including Palestine, Iceland, USA, Turkey, and more to ensure the efficient distribution of much-needed resources to affected civilians. To date, 335 disaster missions have been completed in 57 countries with $289,453,560 in aid and supplies distributed.

Each customer survey we receive is an additional donation towards Global Empowerment Mission. Your feedback will not only help our team at DB Services, but also provide GEM with donations to further their important mission. Together, we can make a positive impact!

]]>
<![CDATA[Claris FileMaker Google Charts Integration]]> https://dbservices.com/blog/claris-filemaker-google-charts-integration https://dbservices.com/blog/claris-filemaker-google-charts-integration Wed, 10 Jan 2024 11:11:00 -0500 Data visualization is useful for looking at data in a different way. One of the best ways to visualize your data is through the use of graphs and charts. FileMaker does have built-in ways of creating graphics and charts. However, there are a few key limitations. Native charts can only have up to 12 y-series on a single graph, and you can only create specific chart types and limited styling options. Using Google Charts resolves these issues by working as a JavaScript library that you can load into a web viewer. This allows you to dynamically gather the data you want to visualize and then pass it to a web viewer to be rendered.

To simplify this integration, we have created a method to streamline building charts. The demo file linked at the bottom of this article contains a solution that uses a table to allow users to create charts for different data sets. With a simple pop-up menu, the user can change the graph style they want to use to display their data. Users can also create custom CSS stylings for each chart. If you want more of an overview of Google Charts you can reference our other FileMaker Google Charts article.

]]> How Google Charts Works

This integration uses a Google Charts table to store and build the HTML that will be given to the web viewer to render the chart. When you create a new record in the Google Charts table, it will auto-enter the HTML template for the header, footer, draw charts function, and Google Charts package.

On the data entry screen, you can change the chart type, title, height, and width, and change or add data. When you commit your changes, the chart will reevaluate based on what you've entered and the rendered chart will display on the web viewer below the entry fields.

]]> Google Charts data takes an array of data points where the first array is the headers for data, and the first index of each array is the x-value followed by the y-values at that x-value. Instead of needing to format your data to match what the chart expects, if you put a list of x-values, y-values, and headers into their corresponding boxes on the data entry screen, the system will automatically generate and populate the data array field with the proper formatting.

]]> The y-values should formatted as in list form (y1v1, y2v1, y1v2, y2v2, etc.) so the system will correctly correspond them with their appropriate x-value. Now, we will demonstrate how to use these charts with your data.

Using Google Charts with Your Data

  1. Create a new record in the charts table

  2. Choose the Chart Type, Title, Chart Name, Height, Width

  3. Place the web viewer on the layout you want the output to display

  4. Get a list of x-values, a list of y-values, and a list of headers

  5. Paste the values into the corresponding box and the chart will render

Using Google Charts Dynamically

To use the reports dynamically, you can create fields on a preferences layout that correspond to the name of the chart you want to use on that layout. You can enable them as pop-ups using the names of the charts you created in the Google Chart table.

]]> Then, create a cartesian relationship from the table you want to display data from to the preferences table, like so:

]]> This will allow you to grab what chart to use for that report dynamically, so if it changes in the future, we won't have to change anything on the report layout. Next, create a relationship from your table with the data to the Google Chart table (in this example, we are using the order table):

]]> Next, you'll need to create a script that gathers your data and populates the Google Charts fields. Below is an example of a script that generates a chart based on the quantity sold of each product on an order.

The first step is to grab the chart we want to use from the preferences table.

]]> Then, set the global to the chart that we want.

]]> Then gather a list of your x, y, and header data.

]]> Set that chart's data values, and as soon as the commit happens, the chart will render on the web viewer. Using this as our product information, the following chart is generated.

]]> Styling Your Chart

Additionally, you can add many different CSS stylings to your chart to customize and enhance the way your users see the end result.

In the demo file, on the setup layout underneath the Header Data field, there is a CSS Stylings edit box for you to paste the CSS styles you want to apply to your chart. By default, it will style your chart to have a title and place the chart legend at the bottom of the chart. There are many ways to change the style, so if you want to learn more about all the CSS properties you can change about your graph, visit the Google Bar Chart documentation for configurations.

]]> Conclusion

Google Charts is a powerful graphical visualization tool that you can use to generate dynamic, data-driven charts easily. Our demo file provides an easy-to-set-up method for quickly generating any of the 26 supported chart types by Google's library and provides the flexibility to adapt them to generate charts based on the data that is important to you. If you're interested in adding Google Charts to your FileMaker application or need help implementing them, contact us at DB Services.

]]>
<![CDATA[Salesforce Financial Services Cloud Spring '24 Highlights]]> https://dbservices.com/blog/salesforce-financial-services-cloud-spring-24-highlights https://dbservices.com/blog/salesforce-financial-services-cloud-spring-24-highlights Thu, 21 Dec 2023 13:09:00 -0500 Financial Plans and Goals

With these Spring ‘24 updates, Salesforce has implemented new features to make it easier than ever to create financial plans that help your clients reach their short and long-term financial goals.

View Financial Plans and Goals

It’s now easy to view your client's financial plan and associated goals on the FSCFinancialPlan FlexCard. You’ll be able to easily review and modify the specifics of each goal, including target date, value, priority, and feasibility. If client priorities shift, modify goal details such as target date or value to quickly guide your client in the right direction. In addition, you can give your users access to external planning tools with the Launch Planning Tool button.

View and Select Financial Accounts on Goals

Help your clients focus on the financial goals that are most important to them. You can now view the financial account that is funding a goal with the FinancialAccountGoal FlexCard. This allows you to quickly identify goals that are funded by a financial account with a change in income.

Users also now have the ability to select a financial account that will fund a goal using the FSCFinancialAccountDetails FlexCard. You’ll be able to view the selected financial account, a list of goals funded by that account, and the available balance. If priorities change, you’ll be able to remove financial account associations from certain goals, giving your clients more flexibility.

View and Distribute Funds to Goals

Using the FinancialGoalsFundingHeader FlexCard, users can now view and update the distribution of funds from financial accounts to goals. This allows you and your clients to quickly identify which goals need to be adjusted when a client’s account balance changes and make those adjustments easily.

Data Cloud for Financial Services Cloud

Customer Insights 

With this update, users can achieve a more comprehensive understanding of clients by connecting and integrating their interaction, behavioral, and transactional data across systems with Data Cloud for Financial Services Cloud. This provides financial institutions with a unified profile of each client, allowing for the creation of insights and identification of trends that can help your clients make more informed decisions.

Client Cash Flow Insights

Pinpoint spending trends using the new FSCDataCloudShowIncomeExpenses FlexCard that features a bar graph showing a month-by-month breakdown of income and expenses. You can connect Data Cloud with your FSC org to retrieve data from calculated insights analyzing your client's deposits and expenses over the last 3 months, 6 months, and 1 year. This provides a comprehensive view of financial patterns and helps in understanding client spending behavior.

Gain insight into your client's recent financial behavior by examining their income and expenses over the last 30 days through the FSCDataCloudCashFlowByCategory FlexCard. You can connect Data Cloud with your FSC org to pull data from calculated insights to view your client’s monthly expenses and inflow transactions by category. This provides a clear and detailed overview of your client's cash flow, categorized by expenses and inflow transactions, aiding in a comprehensive understanding of their recent financial habits.

Residential Loan Applications

User Access to Application Records

You’re now able to control user access to Residential Loan Application records and other mortgage objects, independent of their membership in an Account team, by utilizing the Override Mortgage Custom Sharing with Standard Salesforce Sharing setting to limit unnecessary users from accessing sensitive client data. This setting will override the Edit Residential Loan Application for Account Read-Only Users setting. Previously, access to Residential Loan Application records was determined by the associated account record sharing, even if the organization-wide default for Residential Loan Application was set to Private.

Sharing Settings

The organization-wide sharing setting Controlled by Parent has been removed for the following objects: Loan Application Asset, Loan Application Liability, and Residential Loan Application. If Controlled by Parent is in use on these objects, you will need to review your settings to choose a different value.

Sharing Sets for Mortgage Objects

You can now share access to mortgage records with Experience Cloud users using sharing sets. These sharing sets will provide users with access to records associated with an account or contact that aligns with the user's account or contact. To set up a sharing set, go to Setup, click Digital Experiences, and create a sharing set with the objects you want to share.

Einstein Activity Capture for FSC

Events Organized by External Users

Sales reps can now enhance their scheduling efficiency with Einstein Activity Capture for Financial Services Cloud. This tool allows sales reps to sync events not organized by Salesforce users, ensuring up-to-date Salesforce calendars and availability. The system designates a Salesforce user among the event attendees as the owner of the interaction record, utilizing the owner's connected calendar applications to sync event details with Salesforce. Previously, only events organized by Salesforce users were synced between Salesforce and connected accounts.

Streamlined Interaction Participant Creation

Users can now streamline the process of creating interaction participants by automating the creation during an interaction event sync, eliminating the need for manual entry. Previously, users had to manually create interaction participant records. Now, these records are generated automatically for event attendees who are internal Salesforce users and have the Compliant Data Sharing permission set. This enhancement aims to save time and effort in managing interaction participant information.

Integrated Onboarding (Pilot)

Users now have the ability to monitor the status of integration callouts, including processes such as identity verification and anti-money laundering screening. This feature allows users to seamlessly track integrations, devise an integration plan, and execute the plan within a centralized location.

Conclusion

This release promises enhanced efficiency and an elevated user experience, and operational improvements that are as refreshing as a sunny spring day! If you’d like more information on these updates or if you want to view past updates, please visit the official Salesforce Spring '24 release notes. If you have any questions about Salesforce or want to see any of the implementations in your own Salesforce org, please contact DB Services!

]]>
<![CDATA[Salesforce Nonprofit Cloud Spring '24 Highlights]]> https://dbservices.com/blog/salesforce-nonprofit-cloud-spring-24-highlights https://dbservices.com/blog/salesforce-nonprofit-cloud-spring-24-highlights Thu, 21 Dec 2023 09:59:00 -0500 Fundraising

3rd-Party Integrations

You now have the ability to quickly and easily integrate 3rd-party applications with Fundraising using Business Process API. This new feature allows for matching and creating donor records, donations, and installments, storing external payment data, linking campaigns, source codes, and designations, adding data to custom fields, and submitting donation data in a single payload.

Split Gift Transaction Amount Attribution

Users can now split the attribution of revenue on gifts between multiple upgraded campaigns, making it easier than ever to measure campaign ROI. Salesforce will attribute a transaction based on the ratio in which each campaign influenced the transaction amount.

Outreach Source Code URLs

Save time by automatically generating unique, shareable URLs based on UTM parameters set by the user. These URLs can be used to attribute an online donation to the outreach source code, allowing digital fundraisers to easily measure the effectiveness of online outreach.

Track Payment Data

Salesforce has implemented improved methods to track payment data like payment method, transaction fees, and metadata. This update allows users to streamline processes like donor support requests, monitor processing fees, resolve accounting errors, and manage integrations.

Program and Case Management for Experience Cloud

The Program and Case Management for Experience Cloud permission set has been updated to include create, read, update, and delete permissions. You can change these permissions in your org by going to the Program and Case Management for Experience Cloud permission set, adding the Program and Case Management for Experience Cloud permission set to a permission group that includes your own permission sets, and assigning the permission set group to your users.

Managed Packages

Find/Fix Duplicates in Nonprofit Success Pack (NPSP)

Users with NPSP can now find and merge potential duplicate contacts on the NPSP Contact Merge page. This feature replaces the Potential Duplicates component on the Contact page. 

Security Enhancements for Volunteers for Salesforce

Salesforce has released updates to Volunteers for Salesforce to enhance security.

Conclusion

Spring is on its way, and so is increased functionality and efficiency to your Salesforce org! If you’d like more information on these Nonprofit Cloud updates or if you want to view past updates, please visit the official Salesforce Spring '24 release notes.

If you have any questions about Salesforce or want to see any of the implementations in your own Salesforce organization, please get in touch with our team at DB Services!

]]>
<![CDATA[Salesforce Spring '24 Highlights]]> https://dbservices.com/blog/salesforce-spring-24-highlights https://dbservices.com/blog/salesforce-spring-24-highlights Wed, 20 Dec 2023 15:23:00 -0500 Customization: Cross-Object Fields on Dynamic Forms

It is now easier to add fields from lookup-relationship records in the Lightning App Builder. If the record has a lookup to another record, the Fields tab will display an (>) icon next to the lookup fields to access the cross-object relationship fields. Once clicked, the cross-object fields can be dragged and dropped into your Lightning App Page. The Lightning App Builder will display the top-level record and the trail of accessed lookup records at the top of the Fields tab. This feature will make it easier to display relevant data from across multiple objects on one page. Cross-object relationship fields can be drilled down up to two levels.

]]> Development: Use the Null Coalescing Operator

Apex has been upgraded with the Null Coalescing (??) operator. The ?? operator returns the left-hand side of the argument if the left-side is not null. Otherwise, if the left-hand side of the is null, the ?? operator will return the right side of the argument. Updating your null checking code and your “x ? y : z” code with the ?? operator will greatly improve the readability of your code. 

There are some restrictions to the null coalescing operator. It cannot be used on the left-hand side of an assignment operator to determine which variable to assign a value to. It also cannot be used in SOQL bind expressions.

Experience: Boost LWR Site Performance and Scalability with Experience Delivery (Pilot)

Experience Delivery is a new infrastructure to improve the performance and security of your Lightning Web Runtime (LWR) sites. Experience Delivery uses server-side rendering (SSR) to render site pages and then caches the page using a content delivery network. This greatly improves performance over the client-side rendering used by existing LWR sites. SSR also improves security by providing DDoS protection, managed firewall rules, and managed rate-limiting rules.

This feature is currently being piloted. To participate in the pilot, contact your Salesforce account executive.

Mobile: Use Dynamic Actions with Standard Objects on Mobile

Lightning record pages have always been great for dynamically displaying fields and tools, but actions have always been limited by the reliance on a page layout. That limitation is now a thing of the past, as individual actions can now be added to record pages using the Lightning App Builder. Simply open the page in the Lightning App Builder, click on the Highlights Panel, and then click the Upgrade Now button for Dynamic Actions. From here, you have the option to bring in all the actions from a page layout, or you can choose to start from scratch and bring in actions one at a time. Finally, you can see the visibility of each action based on field values, the user’s device, the user’s permissions, and many other criteria. This will allow for dynamic pages that offer a personalized experience for each user.

]]> Analytics: Reveal Actionable Data with Summary Filters (Beta)

Salesforce has added Summary Filters to reports. Summary filters can be utilized to reveal the most important and actionable data in your reports, such as accounts with multiple high-value opportunities or contacts with the most number of open cases. This feature is still in beta, so you will have to enable it by going to Setup, searching for and clicking on Reports and Dashboard Settings, and then selecting Enable filters on aggregated data such as record counts in reports. After that, you can add summary filters to any reports with at least one group and Detail Rows turned off.

]]> Flow: Create Multiple Instances of a Set of Fields with the Repeater Component (Beta)

The new Repeater component allows users to duplicate components in your screenflows. For instance, if you created a screenflow to create contacts for an account, the Repeater component will allow the user to duplicate the contact fields to create multiple contacts for that account at once. In the flow itself, a loop has to be added in order to iterate through all the duplicated component data. The Repeater component will allow users to perform multiple actions with one screenflow without multiple action calls and will allow developers to create screenflows that perform multiple action calls without complicated logic.

]]> Sales: Draft Personalized Sales Emails with Einstein

Einstein Sales Emails enables your sales representatives to quickly draft and send personalized emails that are sure to grab buyers' attention. Using a method called grounding, Einstein uses your real-world data to create accurate, context-aware emails for your contacts and leads. Sales reps can select email types for Einstein to use, such as introduction emails, follow-up emails, or custom email types created by your admins. Simply open the email composer, click on Draft with Einstein, click an email type, and watch as your emails practically write themselves. Furthermore, if the email type allows for product information, Einstein will use that product info when generating the email.

Service: Draft Service Replies with Einstein

Einstein is getting another update in Spring ‘24. When Einstein drafts replies to chat or messaging sessions, it will link the knowledge articles that Einstein utilized when grounding its response. This allows your agents to get a better understanding of the considerations to take for each issue a client may be facing.

Field Service: Service Documents

When you have workers who are out in the field, it is important that they have access to readily shareable information for your customers. Document Builder allows you to easily maintain numerous templates for your documents, such as work orders or service appointments. It also allows you to collect signatures, add images, build translations, and generate PDFs on desktops or mobile apps. To enable Document Builder, go to Setup, search for and click on Field Service Settings, and select Enable Document Builder. After you get an email from Salesforce that Document Builder is enabled, you can access your templates in Setup by searching for and clicking on Document Builder.

]]> Financial Services Cloud: View Financial Plan and Goals

Clients have short-term and long-term financial goals, and the Financial Plans feature will help them reach their goals. Add the FSCFinancialPlanDetails FlexCard to a client’s account page, and it will display their financial plans and the details of each of their goals, such as the target value, target date, and feasibility. You can also edit a goal’s details, which allows you to keep your client’s plans accurate when their priorities change.

Nonprofit Cloud: Quickly Build an Integration with Fundraising

Fundraising is an important process for nonprofit organizations as it allows them to finance the many benefits they bring to their communities. The Business Process API can be integrated into third-party vendor applications to connect these vendors to Fundraising. With the integration, vendors can easily create or match donor records, create or match recurring donations, store payment data, and add data to custom fields.

Give your Salesforce org the spring cleaning treatment with Spring ‘24!

From improvements to Lightning App Builder with dynamic actions and cross-object relationships fields to faster performance for LWR sites with server-side rendering to Einstein drafting your emails, Salesforce’s Spring ‘24 Release focuses on giving you more time to stop and smell the roses.


If you would like more information on these updates or to view past updates, please visit the official Salesforce Spring '24 release notes. If you have any questions about Salesforce or want to see any of the implementations in your own Salesforce organization, contact DB Services!

]]>
<![CDATA[DB Services Achieves AWS Select Partner]]> https://dbservices.com/blog/db-services-achieves-aws-select-partner https://dbservices.com/blog/db-services-achieves-aws-select-partner Mon, 11 Dec 2023 11:35:00 -0500 Amazon Web Services (AWS) is a globally recognized cloud computing platform, and its Partner Network is designed to help businesses identify trusted and experienced AWS Partners. The Select Partner tier is an acknowledgment of a partner's demonstrated expertise, customer success, and commitment to delivering high-quality AWS solutions.

Becoming a Select Partner has several benefits that will allow us to continue to innovate and grow our AWS expertise.

  1. Access to AWS Training and Resources

    As a Select Partner, DB Services gains access to additional training resources, allowing our team to stay current with AWS best practices and the latest technologies and leverage that knowledge for clients.

  2. Technical Support and Collaboration

    DB Services can now collaborate more closely with the AWS team, ensuring that clients receive the highest level of technical support and access to advanced tools and services.

  3. Enhanced Visibility and Credibility

    Achieving Select Partner boosts DB Services' visibility in the AWS ecosystem. Clients can be confident that they are working with a reputable partner partner with a proven track record of success in delivering AWS solutions.

This achievement is a significant milestone for us that highlights the dedication of our team. We are grateful for all their hard work, and we look forward to our continued partnership with AWS as we stand ready to empower our clients with the best-in-class solutions backed by AWS.

If you want to discuss your web development needs, contact DB Services and let's collaborate on a solution that works for you.

]]>
<![CDATA[FMDeveloperTool in Claris FileMaker 20.3]]> https://dbservices.com/blog/fmdeveloper-tool-in-claris-filemaker-20-3 https://dbservices.com/blog/fmdeveloper-tool-in-claris-filemaker-20-3 Tue, 28 Nov 2023 11:34:00 -0500 Do you host your FileMaker files on a Linux server? Have you ever needed to encrypt your FileMaker applications or change the permissions of your users? As you are probably aware, FileMaker Pro is not accessible on a Linux server, and consequently, neither are the very useful “developer utilities” that are featured in FMP. Until today, if you wanted to modify your FileMaker applications, you would have had to copy your system over to a Mac or Windows machine and then bring it back to your Linux server. This is obviously an annoying process!

With the newest release of Claris FileMaker 20.3, we have been gifted with a new set of command line tools called the FMDeveloperTool, which allows us to access a number of features previously unavailable on Linux systems.

]]> FMDeveloperTool Features
  • Enabling and removing file encryption

    • Encrypt your database files to protect them from unauthorized access while they are being stored on disk

  • Removing admin access

    • Remove administrative access from all accounts and prevent users from modifying most design or structural elements of your databases

  • Saving a copy (compressed, self-contained) or making a clone

    • Rename a set of database files and automatically update the internal links to related files and scripts

  • Enabling Kiosk mode

    • Display your database files in Kiosk mode

  • Saving a copy as XML

  • Recovering a damaged file

  • Consistency checking a file

If you are unfamiliar with any of these commands, no problem! Let's go over each of them and how to use them in the new FMDeveloperTool and demonstrate how this will improve your FileMaker Linux server experience. Even if you don’t use a Linux server, this command line tool allows you to write reusable commands to automate deployment processes.

At DB Services, over 75% of our clients host their FileMaker applications on Linux servers, so this new tool will prove to be incredibly useful for a large number of FileMaker users. Thankfully, this comes included with FileMaker Server 20.3.

]]> If you already have FileMaker Server 20.3, you can find the file in one of the following directories, depending on your operating system.

]]> The rest of this guide assumes you have a basic understanding of using the Terminal on Mac or Command Line on Windows / Linux. After downloading the tool, open your terminal and go to the file directory where the tool is located, then run ./FMDeveloperTool. If successful, you should see the following message.

]]> Saving a copy (compressed, self-contained) or making a clone

Suppose you want to make a copy of your FileMaker application with a different name for development purposes. This is a very common practice when adding new features or testing a migration on your application. If your file was hosted on a Linux server, this would be an annoying process, but using the FMDeveloperTool, we can easily perform this action from the command line by running:

--copy <source_filename> <username> <password> [-target_filename | -t <path>] [-encryption_key | -e <key>]

--clone <source_filename> <username> <password> [-target_filename | -t <path>] [-encryption_key | -e <key>]

Then, in the admin console, simply open the new file and begin hosting.

Enabling and removing file encryption

Enabling and removing file encryption can be really useful, especially if the data in your FileMaker application is related to medical records or requires security clearance. FMDeveloperTool allows you to do this very easily from the command line. Simply run the following command, putting in the proper filename, username, and password.

--enableEncryption <source_filename> <username> <password> [-target_filename | -t <path>] [-encryption_key | -e <key>] [-sharedID | -s <ID>] [-passcode | -p <passcode>] [-passcode_hint | -h <hint>] [-keep_open_storage | -o]

To revert this process, simply run the inverse command.

--removeEncryption <source_filename> <username> <password> [-target_filename -t <path>] [-encryption_key -e <key>]

Removing admin access

In FileMaker, there is a default user called “Admin,” which has full access. If this account was compromised, or if you wanted to prevent any malicious changes to your application after launch, you might want to permanently delete this user, which you can do by running the following command:

--removeAdminAccess <source_filename> [-target_filename -t <path>] [-encryption_key -e <key>]

An important thing to be aware of is that if the Admin was the only account with Full Access, certain aspects of your application will be permanently inaccessible, so make sure that you have an available Full Access account before running this command.

Saving a copy as XML

If you’re performing some advanced data-driven development on your application, it might be useful to save a copy as XML. This allows you to drill into certain data points, or, on a more basic level, can be used with a version control system, such as Git, to compare file version history. To do this from the command line, run the following:

--saveAsXML <source_filename> <username> <password> [-target_filename | -t <path>] [-encryption_key | -e <key>]

Consistency checking a file

If a FileMaker file is closed improperly, a consistency check will be performed to determine if the file has been damaged. If you want to manually run this command, possibly on a schedule, you could use the following command:

--checkConsistency  <source_filename> [-encryption_key -e <key>]

Recovering a damaged file

In the unfortunate case that you have damaged your FileMaker file, Claris recommends first saving a “compacted copy." If that doesn’t work, you can try the recover command. This should recreate your file and salvage as much data as it can while also providing you a status report of unrecovered data so you can find out exactly what information was lost in the damage. To create a recovery file, simply run:

--recover <source_filename> [-target_filename -t <path>] [-encryption_key -e <key>] [-generate | -g <rebuild | datablocks | asis>] [-skipSchema | -r] [-skipStructure | -l] [-rebuildIndex | -i <now | later | false>] [-keepCaches | -k] [-bypass | -b] [-username | -u <username>] [-password | -p <password>]

A note about recovered files: they are often larger than the original file. Claris suggests using a backup of your original file and copying the data from your recovered file into this.

Enabling Kiosk mode

Kiosk mode is a way to limit users who might be unfamiliar with FileMaker by removing access to the default window functions. These can be distracting, confusing, or could possibly even cause data loss if used incorrectly. Using the FMDeveloperTool, we can easily lock down access by running the following command

--enableKiosk <source_filename> [-target_filename -t <path>] [-encryption_key -e <key>]

Conveniently, Kiosk mode does not affect Full Access users, so this can be a useful way to limit some users while allowing your power users to continue using all FileMaker functionality. However, Kiosk mode will completely lock down the machine running the application and will prevent accessing other programs. As the name suggests, this is most useful for an application that will be publicly facing, such as at a kiosk. 

Conclusion

The new FMDeveloperTool has a number of useful features for those hosting their FileMaker applications on a Linux server, and we hope this guide has made using this tool that much easier. If you have any questions about the new FMDeveloperTool, please contact DB Services.

]]>
<![CDATA[Claris FileMaker Server 20.3 Overview]]> https://dbservices.com/blog/claris-filemaker-server-20-3-overview https://dbservices.com/blog/claris-filemaker-server-20-3-overview Mon, 20 Nov 2023 11:49:00 -0500 What's New?
  • Auto-restart option for persistent cache

  • Java garbage collection on secondary machine

  • Set Error Logging support for WebDirect and Data API

  • Manage admin roles via Admin API

  • Batch database operations for admin roles

  • Data API entry mode option

]]> Auto-Restart Option for Persistent Cache

This feature will enable your server to jump back to action after an unexpected quit or crash. The persistent cache now contains the Server Auto-Restart option, which causes FileMaker Server to attempt to automatically restart the database server when it quits unexpectedly.

Java Garbage Collection on Secondary Machine

The Java garbage collection has gotten an upgrade for multi-machine deployments. Java garbage collection can now be run for secondary machines on the primary machine. Check the settings on Admin Console > Web Publishing page to enable this feature. Each deployed machine has a "Run Garbage Collection Now" button.

Set Error Logging Support for WebDirect and Data API

Web integrations also got an update that will make tracking errors a much better experience. XML output from Save as XML now includes hashes of layout objects and script steps. To enable this feature, go to Admin Console > Logs pane > Log Settings. Once enabled, you can run the Set Error Logging script step via WebDirect and Data API. When this feature is enabled, script errors on these clients will be written to fmdapiScriptErrors.log or wpeScriptErrors.log, indicating the session identifier "@" where the error occurred.

Manage Admin Roles via Admin API

Administrator roles can now be managed using the FileMaker Admin API. The /server/adminrole endpoint uses the following methods and their options:

  • GET

  • POST

    • name (required): The name of the newly created admin role

    • password (required): The password (in plain text) for the new admin role

    • homeFolder (required): The main database folder for the new admin role

    • db_pri: privilege for managing privilege

    • sched_pri: privilege for managing schedules

    • sched_backup_pri: When sched_pri is enabled, privilege for managing backup schedules

    • sched_verify_pri: When sched_pri is enabled, privilege for managing verify schedules

    • sched_script_pri: When sched_pri is enabled, privilege for managing script schedules

    • log_pri: privilege for managing and viewing logs

    • xauthgroup: external group

  • PATCH

    • name

    • password

    • homeFolder

    • db_pri

    • sched_pri

    • sched_backup_pri

    • sched_verify_pri

    • sched_script_pri

    • log_pri

    • xauthgroup

  • DELETE

    • names: a list of admin role names to delete. Each name is a string; specified names are case-insensitive

    • ids: a list of admin role IDs to delete. Each ID is a number

      • Note: Both of these options are supported, but only a single option may be specified per request.

Batch Database Operations for Admin Roles

This update to the Admin Console is a very nice improvement for when you need to update several database files at once. Now, administrators signed in with an administrator role may perform actions on all databases simultaneously instead of only on each individual database.

Data API Entry Mode Option

FileMaker Data API now includes the options["entrymode"] option, which allows you to override the "Allow user to override during data entry" validation option. The possible values include:

  • script: allow a field to ignore data validation rules

  • user: follow the data validation rules (default behavior)

]]> Conclusion

These are some of the highlights that come with Claris FileMaker Server 20.3. As you can see, this update brings a wide variety of improvements for the server that benefit users of FileMaker Server. If you are looking to upgrade your FileMaker server or FileMaker application or have any questions regarding the release of Claris FileMaker Server 20.3, please contact us for more info to get the most out of Claris FileMaker.

]]>
<![CDATA[Claris FileMaker Pro 20.3 Overview]]> https://dbservices.com/blog/claris-filemaker-pro-20-3 https://dbservices.com/blog/claris-filemaker-pro-20-3 Fri, 17 Nov 2023 14:12:00 -0500 Loop Script Step Enhancements

The Loop script step now includes a new Flush option that allows you to dictate when relationships are updated within a loop. The Flush option has three available values:

  • Always: Flushes the relationship and join data within the loop

  • Minimum: Flushes minimal data when setting a field within a loop

  • Defer: Flushes data and relationship data only after exiting the loop

Layout Calculations

Layout calculations receive a boost with the ability to specify the data type for the result in the Specify Calculation dialog, increasing the accuracy of data.

In response to user feedback, references to fields in the current table occurrence within layout calculations now require only the field name, simplifying the development process.

FMDeveloperTool Command-Line Tool

Scripted deployments are now easier than ever with this new tool. This feature is especially useful in Linux deployments of FileMaker Server where a GUI interface is not available. Functions include:

  • Enabling and removing file encryption

  • Removing admin access

  • Saving a copy (either compressed/self-contained or as XML)

  • Making a clone

  • Recovering a damaged file

  • Consistency checking a file

  • Enabling Kiosk mode

Secure Connection Tunneling

The option to enable secure connection tunneling over port 443, deviating from the conventional port 5003, is a leap in flexibility and security. This enhancement is applicable to both FileMaker Pro and FileMaker Server for Linux, providing users with more choices for configuring HTTPS tunneling

Other Updates

Get(NetworkProtocol) Function Update

When HTTPS tunneling is enabled, it now returns "HTTPS," providing developers with a quick and efficient way to determine the protocol status.

]]> Performance Optimization

The database engine now takes a more strategic approach to performance optimization. Relationships are now cached to facilitate the evaluation of dependencies, ensuring smoother and faster operations.

Optimized memory allocation is introduced, specifically tailored for relationship changes, contributing to a more streamlined development experience.

Conclusion

FileMaker Pro 20.3 delivers a robust, feature-rich, and user-friendly platform that we're excited to use. Developers and users alike can benefit from these new features and updates. Let's embrace the future of low-code development with Claris FileMaker Pro 20.3!

]]>
<![CDATA[User Authentication With Amazon Cognito]]> https://dbservices.com/blog/user-authentication-with-amazon-cognito https://dbservices.com/blog/user-authentication-with-amazon-cognito Thu, 09 Nov 2023 11:13:00 -0500 As our world continues to progress into the digital age, we find ourselves increasingly spending more and more time doing things online. Given the global nature of the internet, unlike our physical offices and retail storefronts, proving a user’s identity in the digital landscape is difficult to do with physical identifiers, like government-issued IDs, creating a unique problem for developers. Coupling this with the daily news of hacked user databases, authenticating your users can feel like a nightmare. Luckily, for internet services that are hosted on Amazon Web Services (AWS), Amazon has come to the rescue with its authentication service: Cognito.

]]> Utilizing Cognito for User Authentication

What is Cognito?

Among the litany of services that are offered under the AWS umbrella, Cognito is a tool designed to allow for authenticating external users of a hosted app. Unlike IAM (Identity and Access Management, Amazon's web service where you can control and manage user access), Cognito is specifically designed for giving (or preventing) access to a hosted application and not the AWS console itself. Being a native AWS service, Cognito enjoys the benefits of being easy to set up and integrate into any AWS-hosted application, as well as being quite affordable for even a moderate number of users.

What are the native functions of Cognito?

Like many other AWS services, Cognito comes bundled with a variety of native functions that can make it suitable for handling the entirety of backend authentication for many apps. By default, Cognito allows administrators to add users directly via the management console, through an import on the management console, or dynamically via a client-facing self-service registration that can be integrated directly into your hosted application. In the same fashion, the management of users can be handled by the same means, including assigning users to specific groups, roles, and permissions.

To this end, Cognito is a powerful tool that allows administrators to have a variety of means for creating and managing every aspect of user accounts from usernames, email addresses, and email verification, to permissions across individual users and user groups.

An important thing to note: as an added level of security, Cognito does not allow administrators to view or import user passwords or hashes. Passwords can only be set or reset to a temporary password to ensure the only person who has access to a user’s password is the user themselves.

]]> Using Third Parties to Authenticate with Cognito

Native Third-Party Authorizers

While natively handling users in Cognito is adequate for a variety of applications, many modern systems opt for allowing users to register and authenticate themselves via a third party. One of the major reasons for this design choice can be a simplification of the registration process to reduce the time external users spend creating an account. In this situation, developers will often be looking for ways to integrate with popular services that already have large user bases. Luckily, Amazon has recognized this need and has laid the foundation for some of the most popular services. Natively, Amazon has designed integrations with Cognito and the following identity providers.

  • Facebook

  • Google

  • Amazon

  • Apple

]]> Each of these integrations requires registering your app with their service, a process that varies between providers. Once the registration is complete, connecting Cognito to the third party is quite simple and just requires entering the App ID supplied by the provider and mapping the fields returned from the service to Cognito’s internal fields.

]]> Options for Custom Third-Party Authentication

For developers looking to use Cognito with a third-party service not natively handled, fear not! Amazon has also made provisions to utilize Cognito with both SAML and OpenID services. Both methods are mature, time-tested, and secure ways of authenticating, but they vary in scope, use case, and difficulty in implementation.

OpenID Connect (OIDC)

Beginning with the newer and easier to implement option: OpenID Connect. OIDC is a framework built on the OAuth 2.0 protocol that utilizes an additional JSON Web Token (JWT) to handle scope. Since it follows a very standardized protocol, it's quite easy to verify identity across a variety of use cases, including web applications and, notably, cell phone applications.

With Cognito specifically, setting up the integration can be especially easy, as much of the backend process is handled automatically. Configuration can be as simple as entering the Client ID and Client Secret provided by the authenticating party, setting the attribute request method, and entering the OIDC request endpoint in the Issuer URL section.

For added customization, Cognito also offers a section to add identifier domains to redirect groups of users based on the domain of their email, a very helpful feature for apps with user bases that may need to authenticate to different identity providers (IdPs). If necessary, the retrieval endpoints can also be manually configured by selecting the manual input option and manually setting each endpoint for your specific identity provider.

]]> Security Assertion Markup Language (SAML)

In addition to OIDC, Cognito also has a framework in place to utilize Security Assertion Markup Language (SAML) as a method for authenticating users. SAML utilizes a custom XML framework to handle transferring authentication information and is generally only used for authenticating to websites. At a glance, the higher difficulty in configuration and more narrow scope of use may make SAML appear to be an antiquated technology. However, it is precisely this reliance on XML that gives SAML a strong argument for use in enterprise applications.

Due to the increased granularity of control at a central endpoint, SAML is often used to handle authorization in addition to authentication, allowing administrators to control not only who can access resources, but also what resources they can access. In a multi-application environment like a company intranet, handling all of this from a central point prevents administrators from needing to configure access in each individual app for each user or group of users.

Configuring a SAML authentication service in Cognito is, on the surface, quite simple. Examining the configuration page, we see that, aside from mapping SAML attributes to Cognito information fields, it only requires administrators to upload an XML-formatted SAML metadata document (or an endpoint where this document can be obtained). The difficult aspect of the process resides in the creation of this metadata document, a task that can vary wildly in complexity depending on the identity provider. Some IdPs like Auth0 have tools to create these documents automatically, which can be an attractive quality to some when selecting an identity provider source.

Regardless of how it is generated, due to the highly variable nature of these documents, you’ll want to consult your IdPs documentation when creating a SAML metadata document to ensure it is formatted properly.

]]> Conclusion

As security becomes a greater concern in the digital landscape, the means of authenticating users will remain an important consideration when developing any application. If you have questions about authenticating users in your web application or are looking for help keeping your application safe with Amazon’s Cognito service, contact DB Services and we can help you create an affordable and scalable solution for your business.

]]>
<![CDATA[FM Quickstart 2024]]> https://dbservices.com/blog/fm-quickstart-2024 https://dbservices.com/blog/fm-quickstart-2024 Fri, 03 Nov 2023 11:24:00 -0400 Parent/Child Task History

Tasking, subtasking, and keeping track of either has never been easier. With the upgraded tasking system, you now have the ability to track related tasks and subtasks by parent task, contact, and company.

This updated functionality can be accessed anywhere tasking can be accessed. Simply click into one of the related tasks and view all the information you need.

  1. Create a task

  2. Add a subtask to the task

  3. View all information about the subtasks

]]> Price Breaks

Does your business rely on price tiers to determine pricing per product? FM Quickstart 2024 finally has a solution for you! We've added the ability to toggle individual products as having price tiers.

]]> Price breaks are incredibly easy to set up: simply mark the checkbox that says "Has price tiers" on the product screen, press the Price Tier button that appears, and start plugging in the minimum quantity, maximum quantity, and price of each tier. From that moment forward, any time a product with price tiers is added, the tiered price will pull in.

BANT Forecasting and Reporting

If your company prefers to use the BANT forecasting method for leads and opportunities, this update is for you. Now, on any opportunity, you have the ability to quickly set a BANT score of one through ten for the four deterministic qualities in a lead: budget, authority, need, and timeline. From there, a percentage is calculated, letting you know how aligned your lead is with your business.

]]> Along with this addition comes a new Open Opportunities report, which will allow you to search, group by, or sort by BANT figures. Grouping by BANT Tiers will group all that are within the same 25% range and sort them by the highest percentage.

]]> Contact/Company Consolidation

Whether it be bad data, duplicate contacts for a company, or the passing of torches, contacts and companies are bound to be less than accurate at some point, no matter how vigilant you are. With the new consolidation button, you can take away the worries of redundant or incorrect contact and/or company information.

By pressing the Consolidate button on either module, you can consolidate other records into the selected record. This will reassign any tasks, opportunities, quotes, orders, and so on to the current record and mark the other with the word "CONSOLIDATED". Then, you can do whatever you'd like with the old record.

]]> This also allows for consolidating more than one contact or company at a time by pressing the "+ All" button.

New Shipment UI

The shipment UI in the Orders module has been updated to better match the rest of the system and to reflect the already existing UI for the receiving section of POs. This allows for selecting the items you want to add to the shipment and the quantity before creating the shipment.

]]> Duplicating Work Orders

In the spirit of quick and easy quality-of-life changes, we've also incorporated the ability to duplicate work orders. By pressing the Duplicate button, all line items pull over for the work order, which has the new order's status set to pending.

Conclusion

On top of all discussed above, there are a number of other small tweaks and changes that have improved the FM Quickstart experience. DB Services is proud to present FM Quickstart 2024 free and totally unlocked to the Claris FileMaker community. This robust Enterprise Resource Planning (ERP) app is great for anyone just beginning their journey into Claris FileMaker or for current Claris FileMaker users looking for an update or new ERP module.

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

Please 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 Claris FileMaker!

]]>
<![CDATA[The New Salesforce Nonprofit Cloud: How To Upgrade]]> https://dbservices.com/blog/the-new-salesforce-nonprofit-cloud-how-to-upgrade https://dbservices.com/blog/the-new-salesforce-nonprofit-cloud-how-to-upgrade Mon, 30 Oct 2023 11:55:00 -0400 You’ve decided to upgrade to the new Salesforce Nonprofit Cloud, designed to increase the impact of your organization by giving you modules to improve the planning, tracking, and efficiency of your organization's services, but you're not sure where to start. Salesforce may eventually provide an upgrade feature to ease the process of translating your old org into the new Nonprofit Cloud. If you plan on doing the upgrade yourself, there are a couple of aspects to consider. Let's walk through them together!

]]> Data Migration

First and foremost, the biggest hurdle is migrating your organization’s data from your previous org. This is no small task, but there are modules and tips that will help with the migration. For starters, it helps to identify the data to migrate. This includes objects, their fields, and other objects that records are dependent on, like how contact records must be related to an account.

After determining what data to migrate, the next step is to add metadata to the new org for these objects, such as the custom fields, record types, and page layouts. It will be prudent to add an external ID field for the records you plan on migrating in order to keep a relationship between the two orgs.

Next, you will have to export the data. Salesforce’s Data Loader is a convenient application that allows you to define the data template as you export the data.

]]> Data Loader will export records based on the SOQL query you define, so you can limit the type of records returned and what fields will populate your template.

Finally, you can import the data into your new org using Data Loader. Data Loader will also create success logs and error logs to show you what records went through, which ones failed, and why they failed.

]]> These are the general steps for a successful data migration, but this process can have other complications, such as new data models with the new Nonprofit Cloud.

Account Models

The new Nonprofit Cloud uses the Person model for its account records. A Person Account combines account and contact fields to represent an individual while still having the functionality of an account. This is different from most account models, where one account can have multiple contacts, like the household account model in Salesforce’s Nonprofit Success Pack.

]]> Household accounts can still be built in the new Nonprofit Cloud, but it is not a built-in account model. In addition to Person accounts, the Nonprofit Cloud offers the Party Role Relationship objects to build relationships between these accounts. With these Party Role Relationship objects, you can build relationships like households or employees of an organization. You also have the option to use the Business account type to replicate households, as the Business account can have multiple contacts.

]]> Party Role Relationships

While it may sound burdensome to rebuild relationships for contacts and accounts, the new Nonprofit Cloud offers the Party Role Relationship object to make this easy. In order to make a Party Role Relationship, you simply have to provide a role name, a related role name, and the types of objects you are trying to relate.

]]> For example, you can have a father-to-son relationship from one contact to another contact. After creating the Party Role Relationship, it can be assigned to any number of contacts or accounts. When creating the Party Role Relationship, consider what types of relationships you want to see between your accounts and your contacts, such as if you are trying to recreate an account household from the previous org.

]]> Program Management

The new Nonprofit Cloud also offers the Program Management module. This module can be utilized to define, plan, deliver, and track your organization's programs. While Program Management is available in Nonprofit Success Pack (NPSP), there are some notable differences that will have to be accounted for when upgrading.

]]> The module is still centered around the Program object, but some of the other objects have changed. The Service object is now the Benefit object, and the Program Engagement object used to enroll people in a program is now called the Program Enrollment object. The Service Schedule and Service Session objects have been renamed to Benefit Schedules and Benefit Sessions, respectively. Remember to look for these new names and consider any field differences when importing your Program Management data into the Nonprofit Cloud.

The Cohort object, while available for Program Management in NPSP, is not currently available in the new Nonprofit Cloud, although it is on the roadmap. If you are currently using cohorts, consider creating a custom object to group program enrollments in the meantime.

There are also two new objects: The first is Benefit Assignment, which is used to determine how much benefit a particular enrollment is expected to receive from the program. The Benefit Assignment’s equivalent in NPSP is the Service Delivery object, so consider what fields the two objects have in common when mapping the data.

]]> The second new object is Benefit Type, which is used to categorize the benefits your organization provides. The Benefit Type object does not have an equivalent object in NPSP, but it is required for creating new Benefits, so consider the Benefit Types your organization can use when upgrading.

]]> Case Management

Case Management is another NPSP module you may be familiar with in the new Nonprofit Cloud. The Case Management module is designed to help case managers provide quality service with long-term cases.

Generally speaking, the Case management workflow in NPSP starts with a Referral, which gets processed with intakes, where the person is assigned to programs with Program Engagement, where Assessments are given to the person to help determine their progress, and finally, the person is assigned a Case Plan with goals and scheduled Services Deliveries. The Case Plan also includes Client Notes to track interactions with the individual.

The Case Management object workflow is similar in the new Nonprofit Cloud. It starts with a Referral, which is used to create a Case, which will be the center of the process. Individuals who may be related to the case, like family members, neighbors, or coworkers, will then be connected to the case using the Case Participant object. Next, intakes and assessments are performed to better understand the case individual. After this, individuals in the organization, like the case manager or specialists, can be assigned to a Case Team.

At this point, the case team can assign a Care Plan. Care Plans in the new Nonprofit Cloud are like Case Plans in NPSP. While they still include goals for the individual to work towards, they also include the benefits that the individual is eligible to receive from the organization’s programs. The individual may be assigned to programs with the Program Enrollment object based on these benefits. Furthermore, the Client Notes object has been replaced with the Interaction Summary object, so consider the similarities between the two when mapping your data. One benefit of the Interaction Summary object is its capability to maintain confidentiality in the organization, so don’t sit on it.

]]> Remember to consider these different Case Management objects and their NPSP equivalents when migrating your data.

Features Not Currently Available

Volunteers for Salesforce

If you are using the Nonprofit Success Pack, you are probably familiar with Volunteers for Salesforce (V4S). V4S is a free app that enables easy management of volunteer programs. It allows your organization to track volunteer shifts, events, and participation, and assign volunteers to shifts based on their skills. Unfortunately, Salesforce does not have a definite answer on whether V4S will work alongside the new Nonprofit Cloud at this time. If you are already using V4S in your org, you will have to weigh the pros and cons of gaining the new Nonprofit Cloud and losing V4S.

Address Management

Another NPSP feature that is not currently available in the new Nonprofit Cloud is Address Management. Address Management is great for maintaining consistency between the addresses of accounts and their contacts since it automatically changes the contact addresses when the account address changes. It also includes seasonal addresses, for contacts that change addresses throughout the year, and address verification to ensure accuracy. This is another feature that is not currently in Nonprofit Cloud, so you will have to weigh the pros and cons of gaining Nonprofit Cloud and losing Address Management.

Conclusion

The new Nonprofit Cloud has a variety of great features, but upgrading to it is no small task. While the main steps to data migration never change much, knowing the features and models of the new Nonprofit Cloud will make it easier to determine how to modify your data for a seamless upgrade. Contact DB Services if you have any questions or need assistance upgrading to the new Salesforce Nonprofit Cloud.

]]>
<![CDATA[Claris FileMaker WooCommerce Integration]]> https://dbservices.com/blog/claris-filemaker-woocommerce-integration https://dbservices.com/blog/claris-filemaker-woocommerce-integration Fri, 20 Oct 2023 11:06:00 -0400 WooCommerce is a popular e-commerce plugin that offers a myriad of benefits for online businesses. Featuring an easy-to-use interface and extensive customization options, it's a great service for managing your product inventory. Integrating WooCommerce with your Claris FileMaker solution allows you to manage products across platforms while maintaining accurate data. If you want to take your e-commerce business to the next level, integrating with Claris FileMaker is exactly what you need.

]]> Getting Started with WooCommerce

First, you will need to make a WooCommerce account. Navigate to https://woocommerce.com/start/?nuxentrysource=signup_menu#/ to get started. After creating your store, navigate to the Products page and confirm there are some pre-existing mock products in your store. If not, you’ll need to create some.

]]> Next, click “Settings” which will open a set of new options, from which you can click “WooCommerce.” From this screen, click the “Advanced” tab.

Integrating with FileMaker

Next, open the demo FileMaker file. You can download the file at the end of this article. Copy and paste the URL from WooCommerce (as shown in the screenshot below) into the corresponding field on the homepage of the demo file.

]]> Click “REST API”, and then “Add Key.” Set the permissions to “read/write,” and name your key “Admin,” then click “Generate Key.” Don’t close this screen, as this information will only appear once! Copy your consumer key and your consumer secret into the FileMaker demo file. It’s also helpful to save it somewhere else that’s secure in case you need to access it again.

]]> Creating Products

This integration is an incredibly easy way to migrate your data from FileMaker to WooCommerce for online display. For demo purposed, we’ll need to create some products. Click the “Manage Products” button, then click “New Product”. This will create a product in your FileMaker application. Fill out all of its information and then click “Add Product to WooCommerce.” You should now see that there is a WooCommerceID attached to your product and your product should be viewable in the Products dashboard of WooCommerce.

]]> Updating Products

If you need to change the price or description of a product in FileMaker, you will likely want to also update that information on WooCommerce for your team to see. Change some information on your product in the demo file, and now click “Update Product on WooCommerce.” You should see your changes reflected in the Products dashboard of WooCommerce. Alternatively, you could edit your product in WooCommerce, and then click “Sync Products From WooCommerce,” and it will update all of your products in FileMaker.

Conclusion

WooCommerce allows you to easily manage products, orders, and customers in an easy-to-browse dashboard. Integrating it into your Claris FileMaker system can streamline your process, afford you greater security, and allow you to focus on what matters most. If you’re interested in integrating WooCommerce with FileMaker, contact us at DB Services, and we’d be happy to help.

]]>
<![CDATA[Surveys for Success: LifeMoves]]> https://dbservices.com/blog/surveys-for-success-lifemoves https://dbservices.com/blog/surveys-for-success-lifemoves Thu, 05 Oct 2023 11:32:00 -0400

]]>
<![CDATA[Claris FileMaker 20.2 Trigger Claris Connect Flow Script Step]]> https://dbservices.com/blog/claris-filemaker-20-2-trigger-claris-connect-flow-script-step https://dbservices.com/blog/claris-filemaker-20-2-trigger-claris-connect-flow-script-step Mon, 02 Oct 2023 10:38:00 -0400 Claris Connect has served as a bridge between FileMaker applications and third-party programs since its creation, expanding the possibilities that FileMaker provides much further than before. While triggering Claris Connect flows in FileMaker now is not very complex, a new look to the Trigger Claris Connect Flow script step in Claris FileMaker 20.2 has made connecting to and triggering flows easier. Being able to connect your application to 3rd party software could be the difference maker for your business and is now easier than ever! Let’s dive into what has changed and how you can use this to your benefit when managing your application.

]]> What is a Claris Connect Flow?

A Claris Connect Flow is a sequence of actions that will be performed when initiated by the flow trigger. Claris Connect provides numerous options and combinations for triggers and actions to be taken in a Claris Connect Flow, allowing users to connect 3rd party apps such as QuickBooks, Slack, Trello, and many more! 

]]> As depicted above, we will use a popular trigger option, HTTP Request (Webhook), to perform actions through Mailchimp.

What's different in Claris FileMaker 20.2?

In previous versions of FileMaker, developers would utilize the “Insert from URL” script step to connect to Claris Connect webhooks and trigger the appropriate flows. This required setting cURL parameters and would not return a result for users to check whether their request was successful or not. Again, if it is important that this webhook be successful before moving on to the next step in your application, we should be able to easily tell if the action was completed successfully or if we should alter course to deal with an error. Because of these factors, the “Insert from URL” script step could be intimidating for users to use and further limit the possibilities for their FileMaker applications.

In Claris FileMaker 20.1, a new script step called “Trigger Claris Connect Flow” was introduced, simplifying the user experience and utilizing more specific parameters directly pertaining to triggering Claris Connect flows. The user could input the webhook URL, any JSON Data they would like passed into the flow, an API key if desired, and the option for a result field or variable to store the action’s completion status.

]]> In Claris FileMaker 20.2, this step is simplified even more. It no longer requires the user to copy and insert the URL into the step, but rather uses a pop-up box displaying the current enabled flows on the teams associated with the active Claris ID currently logged in on FileMaker Pro. 

]]> Let’s look at putting this new feature into practice by creating a new flow to add user information into a Mailchimp account to be used for future marketing campaigns.

Trigger Claris Connect Flow Script Step Using Mailchimp

First, we want to ensure that the “fmapp” and “fmrest" privileges are enabled for our FileMaker application user, as these are necessary to connect to Claris Connect through the FileMaker Data API. You can accomplish this by going to the File menu > Manage > Security. In Extended Privileges, add the appropriate privilege set attached to the current user to both “fmapp” and “fmrest”. 

Next, ensure that you are signed into your Claris ID so you can take advantage of the new flow lookup feature. You can sign in by going to the File menu > Sign In to Claris ID. 

Finally, you should create a Mailchimp account and have at least one audience defined before following this tutorial further. Once all these steps are complete, we are ready to move to Claris Connect and create our new flow.

You can either create a new project or select an existing one, then select the “New Flow” button.  Once again, Claris Connect offers plenty of trigger options, but for this example, we will use “HTTP”, which acts as a standard webhook trigger for our flow.

]]> Select “Incoming HTTP Request” and Continue. Next, choose the name for your webhook. You can create a new webhook or choose an existing one to pair this flow with. Claris Connect will require you to test the link before moving on, so simply click on it to test. Once we see that it has displayed some information, return to the previous tab we were working in and click “Save Trigger”.

]]> Now that our flow has been created and our trigger set, let’s rename the flow to something other than “Untitled”. Once that is done, let’s add our first action for the flow to complete. Select the plus button on the trigger and select “Action”. Select Mailchimp, and since we are adding new user information from within our FileMaker application, let’s select the “Subscribe to audience” option, which allows us to add new users to an existing Mailchimp audience you have created. 

Sign into your Mailchimp account, and continue. Now, you should be on the page depicted below. This page is where we will set what data gets sent to Mailchimp and be added to our audience for future marketing emails. For initial testing purposes, let’s manually input some example data that we will use to try out our new flow. You can see below that I have selected my audience and an example email to test with. 

Note that Mailchimp does not allow you to add an existing email to an audience again, so test with a different email than you used to create your Mailchimp account. After you have inputted your example data, click save and enable the flow by selecting the toggle in the top right corner.

]]> Now that we have established our flow, we are ready to make the magic happen in our application. In the demo file, open up the Script Workspace and select the “Update Mailchimp” script. Let’s connect our new flow to the “Trigger Claris Connect Flow” script step by selecting “Flow”. The new feature comes into play now as a new pop-up appears that shows us a selection of our current Claris Connect flows attached to our Claris ID (depicted below). Select the new flow we just created. Once you have chosen the new flow, you can select the gear and see that FileMaker input the webhook URL for us. You can optionally add an API Key to protect your flow further if you wish. You would need to modify the webhook in Claris Connect to use authentication and copy the Project API Key into the demo file as a parameter for the trigger flow script step.

]]> Now it's time to test out the flow trigger! Click on the “Sync with Mailchimp” button under our user info fields to trigger our flow. There is no need to create a new record and input data in these fields yet. The button click should have added our example data into Mailchimp, which you can check by viewing your Mailchimp audience members! To use actual user information from our FileMaker application, we must have a JSON object containing all user information we want to use and pass it in the JSON Data parameter of the Trigger Claris Connect Flow script step. This JSON object below has already been created and set up for use in our demo file.

]]> In order for us to use this data in our Claris Connect flow, Claris Connect must understand the structure of the data we are providing, which is why you must pass the data to the flow once before using it. Since the JSON data was already added to the Trigger flow step previously, this step has already been done for you. Now, we can navigate back to Claris Connect and put the finishing touches on our flow.

Navigate back to the Mailchimp action where we temporarily inserted example information. You will now be able to use “Step Data”, or data we received from our trigger, in the Mailchimp fields. Based on the data sent from the demo file, it makes sense to set fields based on the picture below. Once you have applied your changes, try adding a new user in the demo file and watch your new user information appear in Mailchimp!

]]> If you want to be able to update user information in your application and have that sync with Mailchimp, you can add a step before the “subscribe to audience” action to search for members with the email from your step data. You can then use an if-then step (depicted below) to determine if the “exact_matches.total_items” (the number of users it found with this email) is greater than 0 and whether you should utilize a new step to update an audience member rather than create a new user. Organize the steps appropriately to look like the image below.

]]> Conclusion

The Trigger Claris Connect Flow Script Step is very convenient and easy to use to expand the possibilities of your FileMaker application and further connect to other 3rd party applications. We recommend the use of API Keys and proper debugging throughout the application and Claris Connect flows, as they can help protect against unwanted actions being performed. The possibilities extend well past adding users to marketing email lists and can pass information both to and from your FileMaker application. Reference this article the next time you think, “I wish my application could talk with this other software,” because it probably can!

If you have any questions about Claris FileMaker 20.2 or the new Trigger Claris Connect Flow Script Step, please contact DB Services and we will be happy to help.

]]>
<![CDATA[Claris FileMaker 20.2 Layout Calculations]]> https://dbservices.com/blog/claris-filemaker-20-2-layout-calculations https://dbservices.com/blog/claris-filemaker-20-2-layout-calculations Thu, 28 Sep 2023 14:23:00 -0400 Calculations lie at the heart of FileMaker, serving as the engine that powers the dynamic functionality of databases. They are the secret sauce that transforms raw data into valuable insights, automates processes, and drives user interaction. In FileMaker development, calculations are the building blocks of intelligent solutions, enabling users to perform complex tasks effortlessly. Now, with the introduction of Layout Calculations in Claris FileMaker 20.2, the landscape of database design is poised for evolution. This feature promises to elevate FileMaker development to new heights by enabling developers to infuse layouts with dynamism and responsiveness. This article will give you an overview of why Layout Calculations are important, how to incorporate them into your layout, and updates to calculations within your layouts.

]]> Add Calculations to Layouts Without Creating a New Field

Calculations allow developers to add dynamic aspects and automation to their layouts and databases. In previous versions of FileMaker, a new field on the layout was necessary for developers to make full use of calculation capabilities. In Claris FileMaker 20.2, you can add a Layout Calculation Object to your layout without needing to create a new field! The steps to do so are as simple as they come, and below we show you exactly how to add a Layout Calculation Object to your layout! 

Note: You must be a full-access user in order to use this feature.

1. In “View” click on “Layout Mode,” then navigate to the “Insert” menu and choose “Layout Calculation”

]]> 2. Right-click on the new Layout Calculation object and choose “Edit Layout Calculation” to make changes

]]> 3. Resize the Layout Calculation field to your required size

]]> 4. Evaluate the calc in Layout Mode with View menu - Show - Sample data

]]>

]]> Updates to Layout Calculations in 20.2.1.49

With the new version of Claris FileMaker comes a whole host of improvements to Layout Calculations that will make FileMaker development easier and better than ever! These include:

  • Improved calculation refresh

  • Data Formatting options are now respected

  • No longer need to hold the Option key for greater resizing precision. Simply resize.

  • Add Text object, Merge Field, or Layout Calculation by clicking and holding the ‘T’ text item in the Status Toolbar.

  • In the case of multiple calculations in the same Layout Calculation Object, you can now just have the cursor positioned in the Layout Calculation Object and it will resolve that to the nearest occurrence for editing - no need to select the whole calculation you wish to edit.

Conclusion

Calculations have long been the backbone of FileMaker, driving its capability to transform data into actionable intelligence. With the introduction of Layout Calculations, FileMaker development takes a giant leap forward, allowing developers to craft aesthetically pleasing layouts and dynamically responsive to user input and data changes. This innovation opens up a world of possibilities, from creating more intuitive user interfaces to automating complex processes seamlessly. The future of Claris FileMaker development is brighter than ever, and Layout Calculations are at its forefront, empowering developers to build smarter, more adaptable, and user-centric database solutions. If you have any questions about Layout Calculations, please contact us at DB Services and we will be happy to help.

]]>
<![CDATA[External File Storage for Salesforce]]> https://dbservices.com/blog/external-file-storage-for-salesforce https://dbservices.com/blog/external-file-storage-for-salesforce Mon, 18 Sep 2023 11:19:00 -0400 Salesforce is a great CRM tool, but one issue that companies using the platform may face at some point is limited storage space. You can always purchase more storage space, but this will quickly eat into profits depending on how much space you need. However, there is no need to fear. There are methods of creating more storage space by using third-party systems like Dropbox and Google Drive to store our files. We demonstrate how to avoid Salesforce's file storage limit by using external files.

]]> To give some context, the Salesforce file library uses a couple of standard objects to represent your uploaded files. First, there is the ContentDocument object, which represents an uploaded document or file. Second, there is the ContentVersion object, which represents each version of the uploaded document or file. Finally, there is the ContentDocumentLink object, which represents a connection to each individual, group, or library that has access to the uploaded document or file. To put it another way, if the Salesforce library is like a filing cabinet for a bank, the ContentDocument is a folder labeled ‘John’s Monthly Bank Statement’, the ContentVersion is each of John’s bank statements, with the most recent statement at the top of the folder, and the ContentDocumentLink is a list of everyone who is allowed to look in the folder, like John and his financial advisor. 

Now that we know what objects we are working with, we can work on moving our files to a third-party system.

Step 1: Enable Files Connect

Before we can access external files, we have to enable Salesforce Files Connect. This feature allows users to access, share, and search external systems from Salesforce.

]]> You’ll also have to give access to Files Connect to the users who will be making the connections, such as yourself. To give permission to users, you will have to enable Files Connect Cloud on their profile. You can also make a permission set if you want to give specific individuals access to Files Connect.

]]> Step 2: Create an Authentication Provider

In order to use a third-party system, like Google Drive, as an external data source for Salesforce, you must connect the two platforms using an authentication provider. On the authentication builder for Salesforce, there are a couple of fields to focus on, such as the Name, URL suffix, Consumer Key, Consumer Secret, Authorize Endpoint URL, Token Endpoint URL, and Default Scopes. The name field is simply what you want to call this link and a URL suffix will be generated based on the Name. The other fields will be a little trickier to fill out, since they require keys generated from the third-party system that you want to connect to. Luckily, Salesforce provides some documentation on how to connect to some of these sources, such as how to create an authentication provider for Google Drive.

]]> Step 3: Define External Data Sources

Now that you have made an authentication provider to a third-party source, you must also define an external data source rule so that salesforce knows how to access the data stored outside of your org. The settings of this external data source will depend on the type of external data source you are using. Yet again, Salesforce provides instructions on how to create new external data sources, such as with Google Drive. Be sure to use the authentication provider you made in the previous step, as this will give the external data source permission to access the external files.

]]> Step 4: Create an External Object

An external object is needed to connect your Salesforce records to the external data source. You can either build your own external object, or you can have Salesforce generate one from the External Data Source in the previous step. To verify that the external object was made, you can go to the ‘External Objects’ tab and look for the name of the item you just made. It is also a good idea to add a field to the external object that stores the ID of the ContentVersion record that an external record is copying, as we can reference that field when Salesforce looks for the external file. Once the external object has been added, you will have to give access through the permission set you made.

]]> With all these steps done, you should be able to see the google drive in your Salesforce library. We’re not done yet though. Now that the connection has been established, we have to update some objects before we start transferring files.

]]> Step 5: Update ContentVersion

We need a way to detect when a file is uploaded to the external drive. To do that, add a new checkbox to the ContentVersion object, with a name like ‘Sent to External Drive,’ which will be used to track when a record is uploaded to the external drive. We also need to add a field that stores the Id of the external object on the ContentVersion. This will make it easier to build new connections to the external object.

]]> Step 6: Create a Serverless Function

Once we have our objects and permissions set up, it's time to export our files. However, it would be too tedious and time-consuming to do it manually, so let's make a serverless function to do this for us. Using a service, such as AWS Lambda or Azure Function, create a function that takes a list of ContentVersion record IDs, uploads the records to the external data source, and then puts a checkmark on the ‘Sent to External Drive’ checkbox on the ContentVersion records in Salesforce. This lets us know which of the files have been copied over to an external storage system, which will be useful when we have to build connections to the external file. After the serverless function has been made, we can choose how to trigger it with Salesforce, such as whenever an opportunity is closed or at the end of the work day. Furthermore, we need to store the date and time that this serverless function runs. When we build the new connections to these external objects, the date and time of this sync can be used to limit the number of external objects returned when querying them. A Custom Setting can be used to store the latest sync time for your code to reference.

Step 7: Updating the ContentVersion Records

Now that the serverless function is moving the files off of Salesforce, we need to start internally referencing the external records by building connections to the external file while removing old connections to the internal file. Since it may be too much of a load on the system to query and move every file at once, we’ll have to make an apex batch job. The sample code of this apex job is available for download at the end of the article. The batch job will need to have the following steps:

  1. Take each ContentVersion record that has been sent to an external drive and query the external object that is connected to that record.

  2. Create a new ContentVersion record using data from the external object. Since Salesforce always uses the latest ContentVersion of a file, this will ensure that the externally stored object will be used when opening the file.

  3. Take the ContentDocument ID from the old ContentVersion record and map it to the ContentDocument ID of the newly created ContentVersion record. This will make it easier for us to replicate the old connections to the file.

  4. Use the old ContentDocument ID to find the ContentDocumentLink records, which tells Salesforce who has access to the file, then create new ContentDocumentLink records using the new ID from the newly created ContentVersion record. Since the new ID is pointing to the external file, these new ContentDocumentLink records will also point users to the external files.

After the batch job is finished, we have one final step. We need to run a second batch job that deletes the old ContentVersion records that have been connected to the external drive. Once those old records are deleted, you will have freed up your Salesforce storage, and the Salesforce library will contain files that are stored in an external drive.

Conclusion

Storage limits can be a pain to deal with in Salesforce. There are not many ways around the storage limit, leaving buying more storage space as a convenient but pricey solution. However, with the external storage system and the connections you just made, you no longer have to worry about what to do when your organization reaches its storage limit. Better yet, you can always repeat these steps to build additional external storage systems. Contact DB Services for any questions you have or if you need assistance setting up an external storage system for Salesforce.

]]>
<![CDATA[Introducing Claris Connect Custom Connectors]]> https://dbservices.com/blog/introducing-claris-connect-custom-connectors https://dbservices.com/blog/introducing-claris-connect-custom-connectors Wed, 13 Sep 2023 14:08:00 -0400 Integrating third-party platforms into your software solution to ensure data flow is integral to most businesses' day-to-day operations today. Claris has a large selection of third-party services you can connect to through Claris Connect, but these connectors only allow for pre-defined actions. Claris’ new Custom Connectors introduce a low code solution to connect your system to third-party services and take any action a third-party service provides. These actions can be easily reproduced and shared across systems. In this article, we’ll go into detail about Claris’ new Custom Connectors and walk you through an example of how they can be created and utilized using the payment platform Stripe.

]]>

What are Custom Connectors?

The strength of Custom Connectors is the ability for users to connect to any third-party platform of their choice using the standardized syntax that Claris has provided, without having to worry about the authentication process. For this demonstration, we will be integrating with Stripe, a popular payment processing platform. Claris Connect allows for the easy and fast creation of these Custom Connectors. Let's take a look at what Custom Connectors look like inside Claris Connect. 

Integrating with Stripe

To get started, you will have to obtain or log in to your Claris Connect account and then navigate to the Custom Connectors tab.

]]> Let’s discuss the schema, or how the JSON is defined for Claris Connect’s Custom Connectors. The JSON begins by defining the properties of the connector used to find and give information about the connector in Claris Connect. 

Next are the requiredSettings and then auth_request keys which define the authentication process with a service. Two important notes for authentication are that Custom Connectors currently only service one-way authentication and do not support complicated authentication like OAuth and that the auth_request.token key is only referencing the authFields key string and does not contain an API key in plain text. 

Next are the endpoints and actions, which allow specific requests to be made to the service. The endpoints will contain the method and URL for the HTTP request, and the actions will define which endpoint to use and the information passed to the endpoint. 

Finally, you will need a test connection defining an endpoint for authentication testing. As this connection is for test purposes, it should likely be a GET request that returns a small package.

]]> Note: Endpoints must have an extra forward slash at the end of their URLs to build out the custom endpoints defined in a Custom Connector.

Claris Connect’s Custom Connectors are a contained in-platform browser tool, so the schema is defined in the text editor for the JSON. This means that when creating or modifying a Custom Connector, you will get messages about errors in the JSON and autocomplete and autofill will be enabled. This also means that authentication and testing all take place in the browser. When copying a Custom Connector, all you have to do is replace one of the sample’s texts with JSON defined. For this example, you can copy and paste the JSON provided in the demo file into the area shown above.

Let's begin verifying and testing your Custom Connector for Stripe now!

]]> Let’s start by testing the authentication. To do this, we’ll need to make a Stripe account if you don’t already have one and obtain access to a secret key. Now we can finish testing the authentication and any other defined actions, such as creating a card token, creating a customer, and creating a charge/payment by inserting your new API key into the location shown above. As previously mentioned, this one instance of authentication is all we will have to worry about, as Claris Connect will take care of future authentication when making calls to this connector!

Note: Please do not insert any real card information into the Claris Connect testing or the demo application. Stripe currently does not allow card tokens to be made with card information for testing accounts, so we will skip the card token creation process for this demo and use a pre-defined testing token from Stripe.

]]> Communication Between FileMaker and Claris Connect Using Flows

In this example, the demo file will be initiating communication with Claris Connect, allowing our Custom Connector to generate our API requests, and then return information to the FileMaker client. This process is defined by flows in Claris Connect, a low-code way to define a series of steps for a system to take. 

Begin by creating a flow in a Claris Connect project. Below is an overview of the steps we will take to define the flow for the demo application. You can find even more information in the video at the top of this article.

]]> Use the information from our article about Claris Connect to get your trigger by script action, which begins the process of this flow, working correctly. Above is the flow we created with the additional Custom Connectors flow step actions that are available after the creation of our Custom Connector. These Custom Connector flow steps will replicate the selected action or API call from the Custom Connector with parameters that can use variables from the flow process to change the request being made. Claris Connect will then make the request with authentication and return a valid result or error which we can later parse and use in the flow or Filemaker.

Important notes for Claris Connect/Flows:

  • If you are adding this to a different solution, ensure the user provided to the FileMaker Server action has the “fmrest” extended privilege enabled in FileMaker.

  • While testing the flow, you must pass all potential data upfront so other flow steps can view the possible body fields when created.

Initiating and Viewing Claris Connect Information in FileMaker

Let’s inspect how FileMaker is handling this process. As discussed previously, using script triggers of buttons, we can make a call to the FileMaker Server action of the flow. By passing in fields from a layout in FileMaker, we can pass the data needed for the API request to Stripe. For example, we can pass a person’s name to the flow, which is passed into the Custom Connector, processed by Stripe, and returned to FileMaker by calling a specific Filemaker script from the flow action. A detailed view of these scripts can be found in the provided video.

So now all we need are some scripts to handle the sending of data and the retrieval of data, but where does this data go? In the demo file, we have created the CUSTOMER and CHARGE tables, so when a retrieval of data from Claris Connect is triggered, we can add new records and set fields to store important information, like customer data, charge amounts, as well as statuses if the request failed or not. Creating new tables and fields gives us a way to view and parse the information in the future, and using portals is a good way to view this information easily. The demo file uses two portals for each process that show all previous actions taken through requests and important information related to them.

Note: While the flow uses JSON objects throughout its process, be aware that the response from Custom Connectors is currently just plain text status messages, so using JSON to parse these responses will not work as intended.

Conclusion

Claris Connect’s new custom connectors allow for the easy definition of API integrations into FileMaker solutions. Its ability to customize different actions and requests of an API, complete authentication automatically, and the ability to copy and paste from other sources allows for a fast and easy way to retrieve and use online information in new ways. Although Claris Connect is required for this feature, it provides the many benefits described and has the potential to function like a native integration. Feel free to contact us for any questions, need assistance, or to discuss getting help setting up Custom Connectors or API integration with FileMaker.

]]>
<![CDATA[Salesforce Financial Services Cloud Winter '24 Highlights]]> https://dbservices.com/blog/salesforce-financial-services-cloud-winter-24-highlights https://dbservices.com/blog/salesforce-financial-services-cloud-winter-24-highlights Mon, 21 Aug 2023 11:43:00 -0400 Actionable Segmentation

Users can now use the guided setup to configure Actionable Segmentation more efficiently, allowing them to customize their column preferences, synchronize data with refreshed lists, add members to actionable lists with a quick action, and add object records to existing lists as list members.

Actionable List Members

With Winter ‘24, users can save time by filtering members in the Actionable List Members component, viewing only relevant data. Use the new key performance indicator (KPI) bar to quickly view the engagement status of actionable lists and make more informed decisions. 

List Builder for Data Cloud Segments

Deliver personalized experiences to your prospects by creating actionable lists from Data Cloud segments to segment your audience.

Calculate Customer Insights Using Data Cloud

Use Calculated Insights in Data Cloud to identify client trends by installing the Data Kit. You’ll gain access to client transaction data by linking to your external banking system, allowing you to build actionable insights and calculate metrics on client data in one, connected platform.

Streamline Transaction Dispute Management

Streamline the dispute intake process and eliminate inefficiencies with Transaction Dispute Management and user-friendly dispute intake forms. By using a single platform instead of switching between systems, you can better ensure compliance, reduce operational costs, and integrate with core banking systems. Additionally, you’re able to customize intake forms to best suit your business needs.

Service Process Automation

Service Process Studio

Users can now select relevant fields of any object to store the base data attribute details of a service process. Transaction Dispute templates can be used to quickly and easily create a service process definition for handling transaction disputes.

Self-Service in Client Portal

With Winter ‘24, Salesforce has introduced new self-service capabilities in the Financial Services Client Portal that will give your clients a more convenient way to manage their financial needs and will simplify your internal processes. These new capabilities include creating service requests, scheduling appointments, browsing knowledge articles by topic, and submitting feedback.

Achieve Financial Goals

The Financial Goals object is now available with your FSC license instead of installing a Managed Package, making it easier to help clients reach their financial goals.

This object includes the following exciting new features using OmniStudio:

  • Financial Goals FlexCard: Add this to your person account and household page layouts to give users quick access to their client’s goals.

  • Goal Members FlexCard: Users can view members of a goal.

  • Financial Goals OmniScripts: Guided path for users for creating, editing, and deleting goals and their members

Other Enhancements

Organize Interaction Records with Topics

Salesforce has introduced the ability to enable and configure Topics for the Interaction object, allowing users to add topics to interaction records and organize them in their preferred way.

]]> Find Changed Financial Deals

The new Kanban view for financial deals means your users can view what’s changed at a glance and make faster, more informed decisions. 

Conclusion

With all the new features and updates coming in Winter ‘24, Salesforce promises enhanced efficiency and user experience in Financial Services Cloud. Winter '24 marks a significant step forward in financial services technology, and we can’t wait to see these improvements roll out. If you’d like more information on these updates or if you want to view past updates, please visit the official Salesforce Winter '24 release notes. If you have any questions about Salesforce or want to see any of the implementations in your own Salesforce org, please contact DB Services!

]]>
<![CDATA[Salesforce Nonprofit Cloud Winter '24 Highlights]]> https://dbservices.com/blog/salesforce-nonprofit-cloud-winter-24-highlights https://dbservices.com/blog/salesforce-nonprofit-cloud-winter-24-highlights Fri, 18 Aug 2023 11:34:00 -0400 With the new Salesforce Nonprofit Cloud, now built on and backed by the power of the Salesforce Platform, your organization can be more efficient and streamlined than ever. We discuss some of our favorite new features in the Salesforce Winter ‘24 release that are sure to warm your heart!

]]> New Winter ‘24 Features

Nonprofit users can now leverage the power of these common industry features in the Winter ‘24 release.

  • Actionable List Members

  • Actionable Relationship Center (ARC)

  • Actionable Segmentation

  • Batch Management

  • Business Rules Engine

  • Data Processing Engine

  • Service Process Studio

  • Timeline

Fundraising

Use Nonprofit Cloud for Fundraising Apps 

The new Nonprofit Cloud offers several new apps that allow users to perform common nonprofit tasks more efficiently, built on Salesforce’s native platform.

  • Fundraising Strategy- Provides a high-level understanding of all fundraising activities

  • Donor Engagement- Track and manage your marketing efforts with customizable campaigns

  • Philanthropy & Partnerships- Record and evaluate all interactions with donors, grantmakers, and other stakeholders related to high-impact giving

  • Fundraising Operations- Respond to donor requests and process routine donations

Log Gifts Singly and in Batches

Users can now log individual gifts or use Gift Batch Templates to enter multiple gifts simultaneously, record gifts against commitments, assign designations, or add soft credits to transactions, making gift logging and reporting easier. 

Create and Manage Campaigns

Users can now create, manage, and track fundraising campaigns and measure their performance. Campaigns can be personalized to your audience to increase engagement, and trends can be quickly and easily monitored with rollups.

Managing Gift Commitments

With Winter ‘24, users can easily manage gift commitments with new flows. Salesforce has added new scheduling capabilities, including creating custom or recurring schedules and the ability to update schedules. Additionally, users can easily pause, resume, or close gift commitments, update the commitment amount or payment method, or associate upcoming gifts with already existing commitments. 

Responding to and Refunding Donors

Users can now respond to donors more quickly in the Donor Support Console, which provides a timeline for a quick review of requests, making it easier than ever to take fast action. Additionally, users can provide full or partial refunds to donors when requested. 

Program Management

360-Degree View of Participant Profiles

Salesforce has introduced the new Participant Profile page, which gives program managers a single place to view all the details about a participant and gain actionable insights from information about benefit disbursements, interaction summaries, complaints and alerts, and more.

Track Additional Details for Benefit Participants with Field Sets

It’s now easier than ever to track and review benefit details by using custom fields in field sets on the Benefit Disbursement object. Users can track past participant attendance and other details.

Benefit Schedule Participants vs. Benefit Session Participants

Program managers, service providers, and volunteers can now use Benefit Schedule Assignment records to distinguish between participants added to a benefit schedule vs. a benefit session, allowing them to better plan for logistics. 

Bulk Removal of Participants from Every Benefit Session on a Benefit Schedule

Save time by eliminating the manual task of individually removing participants from future benefit sessions by using the Remove participants from Schedule API. This will delete the participant’s related Benefit Disbursement records and update the Benefit Schedule Assignment records. 

Share Program-Related Records with Stakeholders

Program and Program Enrollment records can now be shared with selected users with the Share button; another improvement for collaboration in your org. 

Benefit Schedule Assignment for Experience Cloud Site Users

Benefits Schedule Assignments, Program Management, and Case Management objects can now be accessed by external users in an Experience Cloud site, allowing for better visibility and streamlined collaboration across your organization.

Grant Management

Enter Actual Budget Used in Experience Cloud

Users can now enter data about the actual budget spent into their Experience Cloud site, allowing them to complete interim and final reports more efficiently and see real-time updates in their CRM.

Add Budget Component to Custom Experience Cloud Sites

Salesforce has added the ability to add Budget Lightning Web Components if you are setting up an Experience Cloud site without using the Grantmaking template. 

Share Grantmaking Records with Compliant Data Sharing

Users can share records with the peace of mind that data will only be seen by those with the correct permissions. Using Compliant Data Sharing means you can now share budgets, funding awards, and applications while keeping with security best practices.

NPSP Managed Packages

Case Management, Grants Management, Outbound Funds Module, and Volunteers for Salesforce Managed Packages on NPSP have all been updated for improved accessibility with compliant color contrast requirements.

Retiring Products

Elevate

Salesforce is sunsetting Elevate and its family of products. You will not be able to renew subscriptions after October 1, 2023, and the product is predicted to be deactivated by October 1, 2024. This will affect Elevate Advanced, Elevate Power of Us, and all Add-Ons.

foundationConnect

Salesforce is also sunsetting foundationConnect, and you will no longer be able to review subscriptions after January 31, 2025. The product will be deactivated on January 31, 2026. 

Conclusion

Winter is coming, and so is increased functionality and efficiency to your Nonprofit org! If you’d like more information on these Nonprofit Cloud updates or if you want to view past updates, please visit the official Salesforce Winter '24 release notes.

If you have any questions about Salesforce or want to see any of the implementations in your own Salesforce organization, please contact DB Services!

]]>
<![CDATA[Salesforce Winter '24 Release Highlights]]> https://dbservices.com/blog/salesforce-winter-24-release-highlights https://dbservices.com/blog/salesforce-winter-24-release-highlights Thu, 17 Aug 2023 11:33:00 -0400 Security: See What's Enabled in a Permission Set More Easily (Beta)

The ability to see at a glance what permissions are enabled in a permission set has been a long-requested feature for many Salesforce users, and Winter '24 delivers! You can now view all enabled object, user, and field permissions in a permission set on the new View Summary page. To get to the page, go to Setup-->Permission Sets-->Select the permission set you want to view-->Click View Summary (Beta). This will be a significant time-saver for admins and others seeking to understand what a particular permission set does.

]]> Lightning App Builder: Dynamic Forms GA for Mobile

Dynamic forms have fundamentally changed how fields are laid out on a page, and we're glad to see that this powerful feature set is now generally available on the mobile Salesforce app. Admins and developers can show or hide individual fields on a page with dynamic forms and place fields anywhere on a lightning page layout. They also eliminate the need for record types in some situations, which is a big win as record types have long-term implications that extend beyond the UI.

Flows: Create Custom Error Messages in Record-Triggered Flows

As a flow creator in Summer '23 and prior, if you wanted to display an error to the user in a record-triggered flow, you had to resort to workarounds, such as marking a field that would force a validation rule to fail, or use an apex action that would call the addError( ) function. But now, in Winter '24, you can show an error directly from a record-triggered flow with the new Custom Error element. In this new element, you can select the error message to display, and whether to display the message in a window on the record page or inline next to a field.

]]> Customization: Mass Quick Actions on Related Lists GA

Another big win for the Salesforce community: mass quick action buttons on related lists are now generally available. Prior to Winter '24, admins and developers would have to put quick action buttons for related lists at the top of the record page in the actions bar instead of by the related list itself. This was unintuitive for users, and some would not even realize the button was there. With Winter '24, you can now add a create or update mass quick action to a related list on a record page. To add the button, edit the Lightning page and add or select Dynamic Related List - Single. In the properties, select Show list view action bar and then click add action.

]]> Development: Dynamically Import and Instantiate Lightning Web Components

LWCs are becoming more and more flexible upon each release. With Winter '24, developers can now dynamically import and create lightning web components, opening the possibility for data-driven or property-driven LWC creation. This dynamicism can help simplify code that would have to list out each possible component to create individually in if, else if branches, among other use cases. To instantiate a component dynamically, use the import( ) function and pass in the name of the component as a string, such as import ("c/" + "myLittleComponent").

Experience Cloud: Apply Custom CSS on Components in Enhanced LWR Sites

LWR sites (aka sites using the lightning web runtime) are the future of Experience Cloud and have become more feature-rich upon each Salesforce release. In Winter '24, admins can apply custom CSS classes to any component in their LWR site by using the new Style tab's CSS class section in the component's properties pane. Giving granular control to the styling of any site component allows customers to brand their site better and make styling consistent.

Field Service: Save Time and Improve Accuracy by Scanning Barcodes (iOS)

Barcodes help speed up data entry and reduce errors, which is especially important for users out in the field who are overwhelmingly using mobile devices. With Winter '24, Field Service technicians can now scan barcodes in the Field Service Mobile app. To enable this, a Field Service developer needs to create a lightning web component using the Barcode Scanner plugin and add it to the Field Service mobile app. This feature currently only works for iOS.

Financial Services: Transaction Dispute Management

Transaction disputes are a reality of the banking industry, and often there is no streamlined process to deal with disputes. However, in Winter '24, Financial Service Cloud has a new Transaction Dispute Management module to help banks more efficiently and effectively deal with disputes. Agents can quickly capture transaction disputes through an intake form, and the form data can be integrated with their core system. The intake form can be customized to better fit business needs. For each intake submitted, a case, dispute, and assessment are created.

Nonprofit Cloud: Nonprofit Cloud for Fundraising

The new Nonprofit Cloud now includes a Nonprofit Cloud for Fundraising app, which contains many fundraising capabilities that nonprofits are used to in the NPSP version, such as batch gift entry; managing campaigns; gift commitments; and transactions, and includes some new functionality specific to the new Nonprofit Cloud. Salesforce has been working tirelessly this year to bring over as much of the NPSP functionality as possible to the new Nonprofit Cloud. They have covered a lot of ground and are closing the gap quickly. We're excited to see what the next few releases of Nonprofit Cloud bring!

Sales Cloud: See Which Contacts Need Attention and Take Action Directly from Contact Home

Salesforce is taking steps to change the user experience of navigating to a tab. In prior versions, navigating to the contacts or leads tab would take the user to a list view, but in Winter '24, users are taken to an Intelligence View that helps them hone in on what contacts need attention and which to take action on directly without needing to dig into list views. This should help make Salesforce a more inviting and useful application out of the box for new implementations and users. And if some users want to go back to the list views, they can do so by pressing the List Views button on the top right of the intelligence view page.

]]> Service Cloud: Omni-Channel Enhanced Agent Experience

Like the intelligence views for contacts and leads, Salesforce has been redesigning other aspects of the platform to enhance the user experience. Omni-Channel has gotten a makeover with a newly designed UI that shows agents information in a more useful way. Agents are now presented with an inbox-style design instead of console tabs, and they can easily see the status of work items. To enable this, go to Setup-->Omni-Channel Settings-->Enhanced Omni-Channel Routing.

Cozy up by the fire...

...and enjoy all the new functionality coming to your Salesforce org in Winter '24. Whether it's more custom error messages in flows, easier reporting for permissions in permission sets or the new intelligence views, Salesforce finds innovative ways to make solving problems easier and more efficient on the platform.

If you would like more information on these updates or to view past updates, please visit the official Salesforce Winter '24 release notes. If you have any questions about Salesforce or want to see any of the implementations in your own Salesforce organization, contact DB Services!

]]>
<![CDATA[Introducing Claris FileMaker Cloud 2023]]> https://dbservices.com/blog/introducing-claris-filemaker-cloud-2023 https://dbservices.com/blog/introducing-claris-filemaker-cloud-2023 Wed, 16 Aug 2023 13:31:00 -0400 Key Benefits of Claris FileMaker Cloud 2023
  • Performance and Security: Experience enhanced performance and stronger security with backend infrastructure updates, including OData 4.01, Java 17, Vaadin 8.18, Node.js 18, Open SSL 3.0, and more. 

  • Reduced Admin Load: Say goodbye to unnecessary admin hassles. The enhanced script scheduler now comes with filter and sort capabilities, allowing you to save valuable admin time. Additionally, script errors now have a dedicated log, streamlining the debugging process for more efficient app management.

New Features & Enhancements

Functions & Scripts

  • ReadQRCode function is now available for us on FileMaker Cloud

  • Execute FileMaker Data API script step now supports dateformats parameter

  • Scripts that run on FileMaker Cloud now support Set Error Logging script step

  • Save Records as PDF script steps is now supported for FileMaker Data API

  • Script Events are now saved in the scriptEvent.log file instead of the Event.log file. View and download the scriptEvent.log file using the Logs tab in the Admin Console.

  • Added ability to filter and sort the list of script schedules in the Admin Console

For more information about enhancements and bug fixes, check out the official Claris FileMaker Cloud 2023 release notes.

]]> Claris FileMaker Cloud 2023 Compatibility

Claris FileMaker Cloud 2023 is compatible with:

  • FileMaker Pro 2023, 19.6, 19.5, and 19.4.2

  • FileMaker Go 2023, 19.6, 19.5, ad 19.4.2

Upgrading to Compatible Versions

If you are not on any of the above versions, the following upgrade options are available in order to take advantage of Claris FileMaker Cloud 2023:

FileMaker Pro Options

  • Download FileMaker Pro 2023 from the Claris Customer Console

  • Update to FileMaker Pro 19.6.3 (Help > Check for Updates)

  • Access the latest updates from the Claris Updates and release notes page.


FileMaker Go Options

Additionally, FileMaker Pro 2023 and FileMaker Go 2023 have been certified against FileMaker Cloud 2.19, which means you will experience disruption-free service if you upgrade immediately.

]]>

If you have any questions or want to upgrade to Claris FileMaker Cloud 2023, please contact DB Services and we can help you transition smoothly to the new version.

]]>
<![CDATA[Custom Export Wizard]]> https://dbservices.com/blog/custom-export-wizard https://dbservices.com/blog/custom-export-wizard Mon, 07 Aug 2023 11:38:00 -0400 Extracting the data you require from your application should be simple: that’s why we’ve designed an easy-to-use custom export wizard. The export wizard can be easily integrated into any web application using JavaScript, Tailwind, and the XLSX library and can be adapted to your organization’s unique needs.

]]> Why use a custom export wizard?

Most of the web applications we work with utilize Amazon DynamoDB, which offers you a built in option to export data. So why even go through the effort of creating a custom export wizard? 

One limitation with the default export option provided in DynamoDB is that you cannot specify what fields you want returned in your export, so your export will include all fields declared in the database. Another limitation is that the only file type supported for export is CSV. With our custom export wizard, you can specify the exact fields you want to export and build it to support different file types, such as XLXS.

]]> Utilizing the Custom Export Wizard

Using the export wizard is intuitive and allows the user to easily select the exact fields they need to export. We’ve set up a default export process with a customized user interface that can be tailored to your organization. We’ll start by first selecting a few records to export.

]]> Next, we’ll need to start the export process.

]]> Our custom export wizard will now appear. You’ll notice a list of fields available for export on the left. The fields available for export are determined based on what table or set of data the user is trying to export. We’ll go ahead and select just a couple of the available fields for our export.

]]> In the middle of the export wizard, we have three action buttons.

  1. Move will move the select fields from the available fields column on the left to the export order column on the right.

  2. Move all will select all available fields and move them to the export order column.

  3. Clear all will do the opposite and will clear all fields in the export order column. 

Let’s go ahead and move over the selected fields for our export. Now’s the time to organize the data for the export. The fields will appear in the order specified in the export order column.

]]> The last thing left to do is create our export by hitting the export button. You will see your export file as a download in your browser.

]]> Using the Download File

In order to use the download file, you will need an integrated development environment such as Visual Studio Code. You will also need to have Node.js installed on your computer. Open the download file in your IDE and open a new terminal window in that filepath. Run the command ‘npm install’ to download package dependencies, then run the command ‘npm run serve’ to run the application locally. Click on the localhost link to open the application in your browser. If for some reason you experience any issues trying to run the npm commands, follow the instructions detailed in the terminal.

Conclusion

Save time and be more efficient by grabbing only the necessary data you need without any hassle. If you have any questions or wish to discuss integrating a custom export wizard into your web application, please contact DB Services.

]]>
<![CDATA[Claris FileMaker Jotform Integration]]> https://dbservices.com/blog/claris-filemaker-jotform-integration https://dbservices.com/blog/claris-filemaker-jotform-integration Wed, 26 Jul 2023 11:07:00 -0400 Do you need to get information directly from your customers? Have your customers requested a mobile-friendly form for their form submissions? Do you find it tedious to enter this information into your Claris FileMaker system? Then this Jotform integration is exactly what you need.

Jotform is a cloud-based tool where you can send and receive multiple submissions for the same form. Also, submission management is simple and intuitive. In this article, we’ll show you how to integrate Jotform with your Claris FileMaker system. 

Our goal is to demonstrate how Jotform can bring a clean, professional experience to your customers while streamlining your internal data collection process. This can ultimately increase satisfaction both within and outside the office.

]]> Getting Started

First, let’s make a Jotform account if you do not already have one. Navigate to https://www.jotform.com to get started with a free account. You can also visit https://www.jotform.com/pricing for more information on pricing if you start to hit the upper limits of the free package.

Next, navigate to “My Forms”. We’ll go ahead and create a new form. We’ll keep it basic by choosing an existing template, and we’ll choose the “New Customer Registration Form”.

]]> New Form and Jotform Basics

Now we’re on the form setup page. Let’s select the “How did you hear about us?” question and select the properties cog to show more options. Click the “options” tab, and let’s change some of the drop-down items. I’ll replace the “Internet” option with “Google Search”, then add a “Referral” option.

In the top left, you’ll see the “Add Form Element” button. Click on that and add a new entry field, specifically for referrals. Drag and drop the “short text” option below the “please specify” question. Let’s select the field, hit the cog icon, and make some quick changes to ensure it looks clean: 

  • Update the question to “Referral Name”

  • Click the “required” toggle

  • Click the “advanced” tab and select the “shrink” toggle to “on”

  • Check to make sure the Unique Name for this field is “referralName” 

For simplicity’s sake, we removed the bottom section of the template with the recommendations.

]]> Conditional Logic

A great feature of Jotform is the ability to show or hide certain fields based on conditional logic. The template we selected already has this built-in, but we’re going to add another for the referral. 

  1. Right-click the “Referral Name” field, and click the “conditional logic” option

  2. Add a new condition

  3. Show the Referral Name field if the option is selected in the previous drop-down

]]> Now click the “Preview Form” button in the top-right corner. You can now test out this new field and make sure it only shows when the user selects the “referral” option in the previous question’s drop-down.

Integration Setup

Let’s go back to the form builder and select the first field. From here, select the field’s properties. Click the “advanced” tab, and click the field details. You can see the unique name for the field. We’ll need to know this information when Jotform sends data to the FileMaker system.

Next, follow this guide on generating an API key. We’ll need this in order to pull information from Jotform.

https://www.jotform.com/help/253-how-to-create-a-jotform-api-key

Copy the key. Let’s open the FileMaker example file so we can add the key. On the setup page, paste the API key. You’ll also need the form ID. You can get this from the form URL itself. For example, my form URL was “https://www.jotform.com/build/231973943636169”, so the form ID is “231973943636169”. Paste this into the example file, then hit the “save” button. This will take you to the contacts screen.

Jotform Submission and Sync

Let’s go back to the Jotform site and hit “preview form”. In the top left, you can open the form and respond to it as if you’re a customer. Once you submit, you’ll receive an email confirming the submission.

Now let’s go back to the example file and click the yellow button to sync the latest submission. This will insert a new contact and fill out the information based on your recent submission.

Once you receive the JSON information from Jotform, you can customize how you receive the information and each field mapping. Please reference the example file or video for more detailed information.

Conclusion

The Jotform platform gives businesses the ability to receive information directly from the customer in a professional manner. Integrating it with your Claris FileMaker system can streamline your process, letting your organization focus on what matters most. If you’re interested in integrating Jotform with FileMaker, contact us at DB Services and we’d be happy to help.

]]>
<![CDATA[Salesforce Financial Services Cloud Implementation Guide]]> https://dbservices.com/blog/salesforce-financial-services-cloud-implementation-guide https://dbservices.com/blog/salesforce-financial-services-cloud-implementation-guide Tue, 18 Jul 2023 10:34:00 -0400 You’ve decided to use Salesforce Financial Services Cloud, but you may not know where to begin. How can you utilize Salesforce to track all your customer interactions and give the best advice for your customers’ needs? Whether you're an insurance company, a bank, or an investment company, Salesforce Financial Service Cloud (FSC) is the platform for you. 

With a plethora of features, Financial Services Cloud makes sure that you spend less time gathering data and more time focusing on your customers. FSC comes with pre-constructed data models that help you track your prospects and clients and allow you to build customized models to better fit your company’s niche. On top of that, FSC promotes automation so that each task is done consistently, effectively, and securely. In this article, we will go over some of the great features that FSC has to offer and how you can make them work for you.

]]> Groups (Householding)

Grouping, or Householding, is useful for gaining insight into a customer’s financial circles, such as their family or the customer’s professional connections. Individuals can be added to multiple groups as either direct members, such as a spouse, or indirect members, such as the family’s lawyer. Once a household has been created, each member’s financial accounts, activities, and goals can be selectively rolled up and summarized for the group. 

When creating households, ask yourself what types of relationships you want to see. Do you want to add your client’s kids? If the client’s spouse is also a client with other relationships, should they have a separate household? Remember to consider the indirect members of a household. Adding the family lawyer, a trust, or even another household can help you get the full picture of the household’s relationships.

]]> Financial Accounts

Financial accounts are any accounts that are managed by a financial institution. There are a plethora of supported financial accounts, such as checking accounts, savings accounts, insurance policies, and 401(k) accounts. Once a financial account is created, its information can be rolled up to the primary account owner, as well as the primary household they are a part of. 

Think about what types of accounts you want to track. Does your client have a trust fund? Do they have any assets or liabilities? Are any of these accounts held away? Even if the financial account is not managed by you, you can still add it as a ‘Held Away’ financial account. This allows you to see the total financial amount for a customer or household and what percentage of the finances are under your company’s management.

]]> ARC

Actionable Relationship Center (ARC) enables you to better understand and navigate relationships between people and businesses. To see the ARC view of a household account, go to the account page and click on the ‘Open Relationship Center’ button. In the ARC view, you can see the root record that you opened the ARC view from, as well as related groups, accounts, and household members. You can also add new relationships from ARC view and perform quick actions when you select a record. Even though each member shows their total financial amount in the ARC view, you can toggle related lists so that you can see the individual financial accounts, opportunities, and liabilities connected to the household or customer. 

You also have the option to customize ARC views. When doing so, consider what data you want to see. Do you want to see related accounts? Should all opportunities and cases be visible, or just the open ones? What sort of actions should users be able to perform on these objects in the ARC view? With the right build, the ARC view can be your one-stop shop for managing your clients.

]]> Action Plans and Document Checklist Items

When you have a lot of customers in your system, it can be challenging to ensure that each task for each client is performed timely and properly. Action plans can improve collaboration and productivity by capturing repeatable tasks, such as onboarding financial accounts and resolving cases, and then automating the task sequence. In order to make an action plan, you first have to make an action plan template. An action template is a record of the repeatable tasks that an action plan must follow. 

When creating an action template, such as for financial goal meetings with customers, it is important to consider what tasks need to be completed before the event, the order in which these tasks need to be completed, which employees have to do the tasks, and what time these tasks should be completed. Having an answer for each of these will help you build an action plan template that guarantees orderly and punctual preparation for the actions your company has to take.  Furthermore, it is important to update an action plan template overtime when the prerequisites to an event are better understood.

]]> Once you have created an action plan template, you can start adding tasks that have to be completed. Tasks can be given due dates, reminder notifications, and can be assigned to individuals, queues, or the action plan creator. When there are multiple tasks in the action plan template, you can make tasks optional, choose the order of completion, make tasks dependent on the completion of other tasks, and set reminder notifications.

]]> The action plan template is not just limited to a set of tasks. You can also include a list of items that would aid in completing the action plan by adding those items to the document checklist of the template. While optional, it is important to add instructions for each document, as instructions can help one understand why a document is needed and when a document has been sufficiently put together.

]]> Reporting and Dashboards

In order to better understand the needs of your customers, it is important to utilize the reports and dashboards of Salesforce. Reports show a list of records that meet your filter criteria, such as households with a total financial accounts balance over $100,000 or accounts that have employees. 

Reports

When creating reports, consider why you are making the report, who will be seeing the report, and what information they need from the report.  While more data in a report can help you get a fuller image of your client, too much data can obfuscate the purpose of the report. With these in mind, you can build reports that illuminate trends with your customers.

]]> Dashboards

Dashboards take reports and provide a quick look at their data and trends Another great feature of dashboards are dashboard components. If there is a specific set of data that is used in multiple dashboards, consider turning that data into a dashboard component so that it provides a consistent look that can be conveniently updated everywhere at once, rather than having to update each instance of the data individually. 

Like with reports, consider the purpose of the dashboard that you are making. Who will be using the dashboard? What sort of information will they be looking for? What is the best format to show the data that the dashboard is using? If there is a need for reports or charts to be available on certain pages of your organization, dashboards make that data readily accessible.

]]> Integrations

Salesforce allows you to integrate with external banking systems using the FSC Integrations API, which enables your org to retrieve real-time financial account information and customer address updates. Salesforce also offers an integration app. Since the app is built based off of the Banking Industry Architecture Network (BIAN) canonical model, integration is quick and easy. The FSC integration app is available for download on MuleSoft. 

However, if you plan on using the FSC Integrations API, there are a couple of things to keep in mind. What data systems can be used to communicate with your API? Will you be using middleware for your API? What format does your data need to be in and what schema will you be using? Do any use limits need to be set? Nevertheless, implementing the FSC Integration API will provide interoperability that allows data, like balances and transactions, to be shared and updated in a heartbeat.

Security

Salesforce provides the Compliant Data Sharing feature, which lets admins and compliance managers create data-sharing rules to improve compliance with security regulations and company policies. Compliant Data Sharing also monitors what data gets shared with whom, which can help identify security issues. Standard objects of this feature include Account Participant and Opportunity Participant, which determine the access level that users have to accounts and opportunities.

For instance, an account manager participant can be given read and edit access to accounts, while an associate participant can be given only read access. Financial Services Cloud also includes additional objects: Interaction Participants, Financial Deal Participants, and Interaction Summary Participants. 

There may be a lot to set up, but there is no need to worry. Salesforce offers a guided setup for Compliant Data Sharing.

For your organization's security, ask yourself the following questions. What type of data do you have in your organization? Who needs access to that data, and what kind of access do they need? What are the company policies and security regulations that have to be followed? If your company has confidential details or data that should be private, rest assured that setting up Compliant Data Sharing will make sure that only the right people have access to that information. 

Interaction Summaries

If you are having trouble keeping track of all the details provided by customers, there is no need to fear. When interacting with a customer, the interaction summary can be used to record a variety of relevant information, such as meeting notes, meeting attendees, accounts, dates, forms of communication, and attached documents. 

When building an interaction summary, think about the purpose of the interaction, the keynotes of that interaction, and what the next steps should be based on the interaction. With these in mind, interaction summaries will be a useful tool for recording customer interactions.

]]> Interaction summaries can also be shared with other team members. Since the Compliant Data Sharing feature provides interaction summary participants, meeting notes can be shared with select users while maintaining confidentiality. When you consider who should see the summary and what level of access they should have, you’ll make sure that the right people are aware of interactions with a customer and what to do next.

]]> Add-Ons

Salesforce offers a variety of products that can expand Financial Services Cloud, such as Experience Cloud and CRM Analytics. Experience Cloud can be used to create sites that provide external users, like customers or partners, with access to Financial Services Cloud. Salesforce provides site templates, but each site is fully customizable, allowing you to build sites based on the needs of your users. Customizations include page variations, permission sets, and self-guided FAQ articles.

Experience Cloud

Before creating an Experience Cloud site, think about what you want the site to accomplish. What does your site need in order to function? Should you select a Salesforce template with immediate functionality, or should you build a custom site specifically for your company’s needs? Who will be on the site? What objects do you have to enable from Salesforce for the site? What restrictions do you have to put on the site? Can pages from your organization be placed on a site page, or would Lightning Web Components be a better choice? There is a lot to consider, but when done right, an Experience Cloud site can improve a customer’s engagement with your organization.

CRM Analytics

CRM Analytics provides a wide range of CRM solutions. On top of using your reports, dashboards, and template apps for Financial Services Cloud, CRM Analytics also uses Einstein Discovery to create automated AI models of any dataset without needing to write any code.

When using CRM Analytics, there are many aspects to plan before creating anything. Once again, consider why you are making an analytics report, dashboard, or app. Who will be using it? What data do they need to get the most use out of what you are building? Good planning reduces the amount of time spent reworking, which means more time focusing on the data and the conclusions that can be drawn from it.

]]> Automation

If your business has multiple complicated processes that must be performed often, automation can save time and reduce human error. Flows are a powerful tool that can provide automated, interactive workflows to perform a process or automate an action behind-the-scenes. Financial Services Cloud comes with plenty of pre-constructed flows for common processes, such as issuing and activating new cards, updating the addresses for a financial account, or collecting a borrower’s financial details. Even with the variety of pre-constructed flows, you can still customize them or construct flows specifically tailored to your business’s needs.

Flows

If you are wondering if you should use a flow, ask yourself the following questions: Does the task at hand come up frequently? Do you have to perform a lot of repeatable actions like emailing people or updating fields on multiple records? Is the task complex without requiring Apex code? If you answered yes to any of those questions, then flows are your solution. 

When building the flow itself, there are many aspects to think about. What data should be presented in a screen flow? When a user updates an object, are there other fields or related objects that should also be updated? What criteria should you use to activate a triggered flow? Does this flow need a user to activate it, or is it better to have the flow run on a schedule? With the right planning and implementation, flows will ease many tasks in your organization.

]]> Omnistudio

Omnistudio is another automation tool that simplifies the creation of guided user experiences. Another benefit of Omnistudio is that it can create applications and workflows using data from your Financial Service Cloud and external sources. Features like Flex Cards can contextualize data and give links to related processes, and OmniScripts function very similarly to screen flows. While Financial Service Cloud provides some pre-constructed OmniScripts, such as Fee Reversal or Complaint forms, you can still customize them or create your own OmniScripts. 

Since OmniScripts are focused on user experiences, you have to think about what the end user will need to get the most out of it. What data needs to be captured from the customer for your Salesforce org? What data sources, internal or external, do you need to use to better guide a user through an OmniScript process? When you keep those questions in mind, you’ll be able to make things in OmniStudio that gracefully guide your customers through any process that your company offers.

]]> Conclusion

Salesforce Financial Services Cloud offers a wide variety of features to improve your capabilities of supporting your customers. There are many more features that were not discussed, but utilizing the features mentioned above will help you hit the ground running with FSC. Please contact DB Services for any questions you have or if you need assistance setting up your Financial Services Cloud.

]]>
<![CDATA[Surveys for Success: Women Innovating Together]]> https://dbservices.com/blog/surveys-for-success-women-innovating-together https://dbservices.com/blog/surveys-for-success-women-innovating-together Fri, 07 Jul 2023 11:20:00 -0400 <![CDATA[User-Defined Custom Business Logic in Claris FileMaker]]> https://dbservices.com/blog/user-defined-custom-business-logic-in-claris-filemaker https://dbservices.com/blog/user-defined-custom-business-logic-in-claris-filemaker Thu, 22 Jun 2023 11:07:00 -0400 Business rules inevitably evolve over time. When they do, it's important that FileMaker users are able to adjust their application quickly and easily to keep up. The best way to do this is to allow users to modify and define what information FileMaker is presenting them with and how it should be presented using business logic. Let’s demonstrate how to enable users to define business rules.

]]> When To Use User-Defined Logic

One use case for user-defined business logic is to give users a way to specify what information they want to be synced between a local copy of a file and a hosted version of the same file. In a file with a lot of tables, it may not be necessary to sync data between the two for every table. However, as the system grows - either through the addition of new tables or the necessity to sync data from previously excluded tables - it becomes difficult to add logic to scripts to account for such changes.

Application

To demo this functionality, we will use a FileMaker application for entering order information. You can download the demo file (located at the bottom of this article) and follow along. 

]]> Click on the plus sign in the top left corner of the tab control. This brings up a card window that will allow users to select which layouts to include.

]]> In the card window, click the refresh icon in the top right to initialize the layout selector with the layouts currently found in the file. Click on the layout you want to include. In this case, we want to use "order". It should already be selected and will appear in the Sync Layouts tab. 

]]> The next step is to select the primary key for that layout. This field is a dropdown list that works off a value list. The value list is a calculation field that is set to a global variable.

]]> The value for this global variable is defined in a script parameter that is a script trigger on the primary key selector field. The script itself does nothing, but the script parameter is a let statement that defines the global variable we use for the value list, so it will update dynamically as we click into each portal row.

]]> Clicking into the limit criteria box brings up a card window allowing the user to define the logic that the system will use to limit the return data during syncs or, in the case of this demo, finds. 

]]> **Important notes about the limit criteria: Users are only able to select fields that exist on the layout. They can also type into the box instead of using the insert drop-downs if they prefer.

]]> The two drop-downs to the left of the edit box contain a list of operators that users can add to modify the query and the list of fields they can select from. After adding their logic, users can view what the JSON data will look like for their query by pressing the preview query button. The run query button is for demonstration purposes and simply runs a find with the given parameters.

]]> How the Logic Works

This solution uses escape characters to denote items as fields or functions and uses Evaluate to determine the function's value at runtime. To parse the users specified criteria, there is a calculation that builds the JSON data block using a while loop. "[ ]" are used to encapsulate a field name if it has spaces or underscores, "#{ }" is used to wrap a function that needs to be evaluated, "{{New Request}}" is used to perform OR requests. "Omit" marks that section of the query as an omit section.

]]> We then use a custom function to evaluate any functions before performing the query.

]]> Conclusion

User-defined logic is a powerful tool that enables end users to adapt quickly to ever-changing markets and rules. This functionality also allows your system to be much more flexible and will lead to less time spent updating scripts to add in new criteria, enabling you to manage and view these settings from one layout. These settings can be used to send sync queries to a hosted app with the data API or, as we demonstrated in this article, to perform dynamic finds.

If you would like to learn more about integrating user-defined logic in your Filemaker application or how adding it into your system can help your business run better, contact our team at DB Services and we'll gladly help you find the right solution for your business.

]]>
<![CDATA[Claris FileMaker OData]]> https://dbservices.com/blog/claris-filemaker-odata https://dbservices.com/blog/claris-filemaker-odata Fri, 16 Jun 2023 11:20:00 -0400 With FileMaker 19 or newer, you can connect to an OData API as an external data source and leverage the RESTful API functionality to retrieve, update, and integrate data between FileMaker and the OData Source. OData (Open Data Protocol) enables the creation and consumption of data services that allow the ability to perform CRUD (Create, Read, Update, and Delete) operations on resources over the HTTP protocol. OData with FileMaker follows widely accepted web standards like HTTP, REST, and JSON, allowing communication between your different systems or platforms. It supports transactions, deletions, and performance enhancements with FileMaker for businesses and clients, making it easier than ever to remotely access FileMaker records.

]]> How To Set Up OData for For FileMaker

Using the functionality of OData for FileMaker requires a bit of setup. You’ll need to make sure you do the following in preparation:

  1. Your FileMaker file needs to be hosted using FileMaker server.

  2. Your FileMaker file needs authorization for OData and Rest to be permitted in security.

  3. FileMaker Server must have OData enabled.


Once you've completed those requirements, we're ready to do the OData operations. To do this, we'll utilize Zapier and Tableau.

Tableau for OData

Tableau allows us to display the database of our FileMaker file remotely with OData. For more information, check out our blog about using FileMaker with Tableau.  For testing purposes, use Tableau Public, which can be accessed from public.tableau.com

After Tableau is opened, click the "OData" button in the To a Server Section and it will direct you to this page.

]]> The URL must be set up like this: https://host/fmi/odata/version/filename

After the URL is entered, enter the respective username and password with the OData and Rest enabled. This will redirect you to the data from your FileMaker file and allow you to create a sheet with the fields you wish to display and observe. Tableau allows you to remotely access the records in a FileMaker file hosted with OData.

Transactions and Deletions using Zapier Webhooks

Zapier allows us to create Webhooks to lead to FileMaker and create the CRUD operations through it. For more information, read our blog about setting up Zapier Webhooks for FileMaker using Salesforce.

The GET, PATCH, and DELETE must be custom functions to work with FileMaker and OData and the Header of Content-Type: application/json as shown below.

]]> OData allows users to perform HTTP methods with a consistent syntax shown below for each CRUD operation and give a response with the appropriate information as JSON.

GET Method

The GET Method allows you to request and view data in the database. To request all records in a table, the URL should be set up like this: https://host/fmi/odata/v4/filename/tablename

You can also search for specific records by appending the primary key of the record you wish to see, like this: https://host/fmi/odata/v4/filename/table('primary key')

]]> To request the database names themselves, instead of using the table name, you can replace it with $metadata and it will also have all the metadata for each table.

POST Method

The POST Method allows the creation of new records and tables in the database. To create a record, the URL will look like this: https://host/fmi/odata/v4/filename/tablename

In the Zapier Webhook, under the action tab, set up the payload type as json and set the new data for your record in the data section. Make sure that all the fields match up to the field in Tableau. 

]]> After testing the Zapier Webhook, a new record should appear in Tableau after refreshing it.

PATCH Method

The PATCH Method allows the update of records. To update a record, the URL should look like this: https://host/fmi/odata/v4/filename/tablename('primary key') 

Place the data you want to replace in JSON format in the data section of Zapier.

]]> Tableau will then display the record changes that was used in the request.

DELETE Method

The DELETE Method deletes a record. The URL should look like this: https://host/fmi/odata/v4/filename/tablename('primary key')

]]> Using Queries in OData

There are several options that can be used to query data when appended to the request URL. Queries allow for an easy and simple way of reducing your record on a request and specifying information from your records.

  • $filter - Used to filter through records and only records that evaluate as true in the response. https://host/fmi/odata/v4/filename/tablename?$filter=(expression)

  • $orderby - Used to order the records as ascending or descending for a specific field. https://host/fmi/odata/v4/filename/tablename?$orderby=fieldname {asc/desc}

  • $count - Used to get the count of matching records. https://host/fmi/odata/v4/filename/tablename$count=true

  • $select - Used to select only a limited amount of fields. https://host/fmi/odata/v4/filename/tablename?$select=field 1, field 2

Conclusion

OData enhances so much with FileMaker, adding flexibility and allowing the use of RESTful connections that make creating, updating, searching, and deleting data simpler. You can use OData query options to filter, sort, and paginate data, allowing for efficient and targeted data retrieval. It can change how data in FileMaker is manipulated and open up a robust and scalable way to execute a large number of requests at a time. For any further assistance using OData on your FileMaker Server, contact us at DB Services.

]]>
<![CDATA[Introducing the New Salesforce Nonprofit Cloud]]> https://dbservices.com/blog/introducing-the-new-salesforce-nonprofit-cloud https://dbservices.com/blog/introducing-the-new-salesforce-nonprofit-cloud Tue, 06 Jun 2023 11:14:00 -0400 Salesforce has many industry-specific clouds, like Financial Services Cloud, Health Cloud, and Experience Cloud. Nonprofit Cloud will be able to leverage the innovative features included in these other industry clouds. Additionally, the features of Nonprofit Cloud, like Program and Case management, will be available to the other industry clouds as well. This integration gives the nonprofit sector more tools to make greater impacts on the communities they serve. 

Nonprofit Cloud Features

Nonprofit organizations commonly install additional add-on applications with their installation of NPSP. Add-ons like Program Management Module (PMM) and Nonprofit Cloud Case Management are now offered in Nonprofit Cloud natively, without additional installations.  

Case Management  

With the new innovation in case management, you can more easily track your Accounts, Contacts, and Cases. Dynamic Assessments allow you to build assessments to quickly determine if an individual is eligible for a benefit. Once a participant has been given a benefit or assigned to a benefit session, you can track their attendance by managing benefit schedules and using guided flows. Create and review care plans more efficiently with Care Plan templates, and put volunteers and participant in groups, like households or cohorts, with Party Relationship Groups. 

]]> Program Management

Program management equips program managers with an array of tools to help see the full picture of the impact of their programs. You can create Action Plans to create a checklist of tasks or requirements needed to approve participation in your programs. The Timeline component gives you a complete chronological view of all your programs and benefits sessions to quickly see participant engagement and adjust schedules. Using "clicks not code", you can customize the prebuilt OmniScript to create a benefit schedule workflow that works for your program managers and integrates into your business.

Grantmaking and Accounting Subledger

Nonprofit Cloud offers you an end-to-end solution to track and manage your grants. With Grantmaking, you can collect the information you need for applications, add details about the products and opportunities offered by your grants, and - once a grant is awarded - track the continued requirements for the grant. Additionally, it provides greater details when looking at budget information, giving insight into specific categories and time periods. Combine that with the Accounting Subledger, which consolidates data between Salesforce and your accounting system, and you can easily track where funds are received, paid, and allocated across all your volunteers, donors, and participants.

Industry Innovations

One of the significant benefits of the new Nonprofit Cloud is its access to industry-cloud tools, specifically Omnistudio. Omnistudio is a suite of tools that makes creating complex, industry-specific automations easier and faster. It is a low-code solution for making engaging and seamless experiences for users. Nonprofit organizations will have access to this game-changing feature and all the other common features used across all Industry Clouds, reshaping how they work with their constituents. 

Another benefit is the number of service-related tools which are available. Your service agents will enjoy guided service processes built with Service Process Studio, communicating virtually with Virtual Calls, getting notifications when a record needs immediate attention with Record Alerts, and engaging more efficiently with prospects through Outreach Lists.

When working with volunteers and participants, it's often necessary to validate an individual's identity before sharing any sensitive information. Identity Verification includes an easy way to create an identification process that supports your business's protocols and regulations. 

There are even more tools and benefits offered in the new Nonprofit Cloud with Industries Cloud Common Features - follow this link for a complete list.

Nonprofit Success Pack 

If your organization is using Nonprofit Success Pack (NPSP), Salesforce will maintain support in addition to supporting its new cloud. However, as more features are added and polished over time, organizations may want to consider moving over to the new Nonprofit Cloud and taking advantage of the full set of features it has to offer.

Power of Us Program

Through the Power of Us program, Nonprofits are able to apply for 10 free Salesforce enterprise licenses, and Nonprofit Cloud will be included in that program. If your organization currently has the 10 free licenses, and you wish to move to the new Nonprofit Cloud, you will need to work with your Salesforce account manager to move those licenses. If you purchased Salesforce after April 2023, you will be given the new Nonprofit Cloud licenses. If you do not wish to use the new solution, you will need to contact your Salesforce account manager and apply for the 10 enterprise licenses directly through them. 

Conclusion

The new Nonprofit Cloud solution offers faster, easier data management for nonprofit organizations. It brings together industry features and nonprofit features to streamline workflows and add greater value to outcomes. If you are looking to switch to the new Nonprofit Cloud or would like more information, contact DB Services!

]]>
<![CDATA[Claris Connect Free Tier]]> https://dbservices.com/blog/claris-connect-free-tier https://dbservices.com/blog/claris-connect-free-tier Mon, 22 May 2023 11:32:00 -0400 What is Claris Connect?

Claris Connect is an integration platform designed to streamline workflows and connect Claris FileMaker to different applications and services. It simplifies the process of automating tasks and exchanging data between software solutions, improving productivity and efficiency. With a user-friendly interface and pre-built connectors, Claris Connect allows businesses to create seamless integrations without extensive coding knowledge. It is scalable, suitable for organizations of all sizes, and offers advanced features for customization. 

How do I get access?

If you are a Claris Partner, you already have access to Claris Connect through your not-for-resale (NFR) Claris platform license.

If you are a Claris FileMaker user, you can follow this link to get access to the Claris Connect free tier. Then link it to your Claris ID and begin using it!

What do I get with the free tier?

The free tier of Claris Connect includes:

  • Unlimited active flows

  • Up to 500 API requests per month

  • Unlimited app connections

Visit the official Claris website for information about additional Claris Connect pricing tiers.

Explore the Limitless Possibilities

Claris Connect's free tier serves as a gateway to the world of automation and integration, empowering you to streamline workflows, enhance productivity, and achieve operational excellence. Embrace the power of automation with Claris Connect's free tier and embark on a journey towards greater efficiency, collaboration, and success! If you have any questions about Claris Connect, please feel free to contact us at DB Services and we will be happy to help.

]]>
<![CDATA[Localization in FileMaker]]> https://dbservices.com/blog/localization-in-filemaker https://dbservices.com/blog/localization-in-filemaker Fri, 12 May 2023 11:15:00 -0400 Localization can be described as the process of adapting your application to better fit the language and culture of the end users. Making it easier for the users to understand and use an application is integral to an effective workplace. There are many ways of integrating localization into your application. One of the most basic but important ways is enabling users to choose the language of the application. Let's explore one way to achieve this in Claris FileMaker. Includes a video and sample file.

]]> Application

To demonstrate this functionality, we'll use a small application for the data entry of products. You can download the application from this article (located at the end of the article) and follow along.

]]> As you can see, the user interface is currently in English. Let's head over to the "Setup" tab and see what options our users have.

]]> From the Setup screen, the users get access to the application's UI dictionary. From here, one can set different keywords and specify the values in the languages supported. Usually, this setup window is reserved for admin users or developers, as changes made here will affect the entire application. 

When a new record is created, the users can enter any value they want as the key. This value needs to be unique, or else it will change the other value that has the same key. Then enter the values for the different languages. The yellow dot on the left indicates that this record has not been synched into the system yet.

]]> Once the values have been entered, click the "Update" button, and the values will synchronize in the system. The dot on the left will change to green to indicate that the value is ready to use.

]]> Users can also change their preferred language with the dropdown on the top-right. This will immediately change the language of all the UI features of the application.

]]> How Does It Work? 

Let's take a look at how this works. This system has three core parts: 

  • A global JSON variable generated upon opening the file 

  • A custom function to get the labels in the correct language 

  • Using button bars as labels to allow us to change their values 

The Global Language JSON

In order to allow access to the values to all layouts, a global JSON object is generated when the file is first opened. Here's a shorter version of the JSON generated.

]]> As you can see in the JSON, we save the language that is selected and a dictionary of the records. We can go ahead and get the value that we need by grabbing the value of the key at the selected language. 

FileMaker has excellent support for working with JSON data, so creating this JSON object is fairly simple. Here's the script used to generate it.

]]> And here is a closer view at the Set Variable step on line 17:

]]> The Custom Function

This custom function is a way to make it more convenient for the developer to use the functionality throughout the system. It is in charge of querying the JSON object for the value of the specified key on the currently selected language.

]]> A sample call to this function would look like this:

]]> Button Bars as Labels

Using a button bar with a single segment as a label, we can dynamically set the displayed text. In our case, we make a call to our custom function to get the value we want in the correct language.

]]> Updating the JSON Object

There are two situations that we want to handle:

  1. New values

  2. Updated values


One simple way to handle both of these cases is to simply create the JSON Object again when new values are added or updated. To do that, we simply attach the script that creates the JSON to the "Sync" button.

]]> The creation of the JSON is quick enough that remaking it won't really affect the application's performance. 

Conclusion 

Localization is very important when your application is used by people speaking different languages . One very important aspect of localization is adding the ability for users to change the language of the application. We demonstrated how to do this by creating a global dictionary with the labels for the application and making a custom function to query values. We also used button bars as labels as they support dynamic labels. 

If you would like to learn more about localization in FileMaker or explore possible ways in which localization can make your business more effective, contact our team at DB Services and we'll gladly help you find the best solution for your business.

]]>
<![CDATA[Salesforce Financial Services Cloud Summer '23 Highlights]]> https://dbservices.com/blog/salesforce-financial-services-cloud-summer-23-highlights https://dbservices.com/blog/salesforce-financial-services-cloud-summer-23-highlights Thu, 04 May 2023 11:17:00 -0400 Actionable Segmentation (Generally Available)
  • Outreach List - Sales and service agents can now create their own segmentations of customers and prospects for outreach. Actionable lists can be grouped by priority, and prospects can be grouped by their engagement status.

  • Actionable Segmentation Enhancements - List creators now have the option to bulk select when creating an actionable list and custom filter logic to filter the records. These lists can be shared with other users.

  • Actionable List Members - List creators can now update the engagement status of prospects and perform bulk actions on prospect records.

Marketing Cloud Engagement for FSC

Organizations with Marketing Cloud Engagement for Industries add-on licenses will now have email templates that will aid them in setting up email campaigns to promote services to prospects and clients. Users in Financial Services Cloud can sync data between Financial Services Cloud and Marketing Cloud and send Marketing Cloud emails directly in Financial Services Cloud.

ARC Enhancements

  • Zooming Enhancements - Users can now zoom an ARC graph out to 40% and in to 160%. This will make working with large ARC graphs easier to deal with. 

  • Hide Card Fields - In a similar vein to the enhanced zoom, users can now hide fields on cards so only the names show,  in effect collapsing cards down to their smallest possible size. Doing this will make large graphs more easily scannable. To hide card fields, slide the Show fields on cards toggle off on the top left of the ARC.

  • Identify Child  - To speed up navigating deep hierarchical ARCs, users will now see a hierarchy icon on cards with child cards. Users no longer need to click on each card to see if that card has children.

]]> Service Process Studio for FSC

Users can now clone service process definitions in Service Process Studio. They can also group related data attributes, add lookup data attributes and view all attributes from the Case Details component. Users will need to have the Industry Service Excellence permission set to use this feature.

Discovery Framework Enhancements

Enhanced support is now available for those who have the FSC Starter license. In addition, users can now edit a signature on an assessment form before submitting and access Discovery Framework OmniScripts on Experience Cloud sites.

Scoring Framework for FSC

The Scoring Framework in Financial Services Cloud allows organizations to use AI to predict who will purchase financial products. It can also reduce customer attrition. To use the Scoring Framework, the FSC org needs to have CRM Analytics for FSC, AI Accelerator and Scoring Framework enabled, and users must have the Revenue Intelligence for Financial Services license assigned. Once that setup is complete, users can generate predictions by creating a CRM Analytics template configuration and selecting Prediction Scores (FSC) or Prediction Scores for Accounts or Contacts (FSC) as the template type.

Action Plans for FSC

Users are now able to design more complex business processes with an increased task dependency limit in action plan templates. Action plan templates can now support up to 24 task dependencies in a sequence. 

Record Alerts Enhancements

  • Record Alert Access - You can now give your users access to record alerts that are relevant to them in the Record Alert Access settings. 

  • Record Alerts Using Business Rules Engine - Record alerts can now be refined using Business Rules Engine. When a record meets specified conditions, an alert will appear to your users.

  • Show Alerts from an External System - You can now see alerts from external systems using Data Consumption Framework instead of APEX files.

Branch Management

Quickly access branch management features in the Branch Console app. Now, you can add bankers and assign them directly to a branch and Branch Unit Business Member will be created for you automatically. To do this, check that your Banker record page layout includes these fields: Current Branch Start Date and Current Branch. Then click New on the Bankers tab or the Bankers related list of a Branch Unit record and specify the branch in the Current Branch field.

Updated FSC Objects

Salesforce has updated and added a plethora of new object fields, including new fields on Party Profiles, Group Census Members, and Insurance Policies.

Brighter Days Ahead in Summer '23

The Summer '23 release of Financial Services Cloud has plenty of sunshine for all types of users. If you wish to learn more about these updates or the others included in the release, please check out the official Salesforce Financial Services Cloud Summer '23 release notes. If you have any questions about Salesforce Financial Services Cloud or want to talk about your Salesforce needs, contact DB Services!

]]>
<![CDATA[Salesforce Nonprofit Cloud Summer '23 Highlights]]> https://dbservices.com/blog/salesforce-nonprofit-cloud-summer-23-highlights https://dbservices.com/blog/salesforce-nonprofit-cloud-summer-23-highlights Wed, 03 May 2023 02:38:00 -0400 Salesforce is turning up the heat on quality-of-life features in the Summer '23 Nonprofit Cloud update! Let's take a look at a couple of new features that will make you and your users more efficient and effective through the summer months.

New Nonprofit Cloud

In collaboration with community users and partners, Salesforce has released a new Nonprofit Cloud product. It combines the functionality of common nonprofit solutions, like Nonprofit Success Pack (NPSP) and Program Management Module (PMM), without the need to add multiple managed packages to your organization. Visit our article, Introducing the New Salesforce Nonprofit Cloud, to learn more. 

]]> NPSP Case & Program Management

Case and program management have two quality-of-life updates on the bulk service deliveries page:

  • View only active program engagements and services - Prior to Summer 23, all program engagements and services were shown in the picklists, even inactive ones. Now, Salesforce only shows you active records, making finding the engagement/service easier.

  • Find program cohorts, engagements, and services in alphabetical lists - Previously, cohorts, engagements, and services were listed in creation order on the bulk services deliveries page. Now, they are in alphabetical order, allowing you to find what you are looking for much easier in longer lists.

]]> Nonprofit Cloud for Programs

In addition to creating a new Nonprofit Cloud and improving Case and Program Management within PMM, Salesforce offers additional platform solutions called Nonprofit Cloud for Programs, which can be utilized by any organization. 

Case Management

Manage your Accounts, Contacts, and Cases with a new set of features designed to increase your efficiency and decrease setup time.

  • Dynamic Assessments -  Create intake assessments to onboard volunteers or create assessments to determine if an individual is eligible for a service or benefit you offer. Then, manage those benefits and track whether the individuals use those benefits and even track their attendance to those benefit sessions you offer.

  • Care Plan Templates - Create and preview before publishing them. The preview allows you to see everything in one place and make changes before going live. After the Care Plan is published, you can use the Care Plan Summary to see all the parts of the plan on one page.

  • UI Flows - Using the new Groups UI Flow and Merge UI flow, you can group individuals together. For example, you could track a cohort of volunteers or group all members of a household. You can specify member roles within that group and even see related contacts or related groups.

Program Management

Program managers can utilize action plans to create approval requirements or steps needed to offer a benefit to an individual. By setting up field-level security on the Program Management objects, you can secure sensitive data on specific fields, ensuring that the appropriate person can view or edit a client's information. 

The Timeline component helps program managers see the full schedule of all programs and benefits chronologically. They can view how participants interact with a program and see any past or upcoming sessions. Additionally, you can customize the built-in OmniScript to offer a guided experience for program managers to schedule and maintain benefit and program sessions.

Grantmaking

Grantmaking offers an end-to-end solution to track and manage your grants. You can collect information needed for a grant application, add details about the products and opportunities your clients can apply for, and even provide detailed budget information for specific categories and time periods. Once a grant is awarded, you can track the requirements set for that grant. 

Additionally, Grantmaking Experience Cloud gives you an external source for applicants and grant managers to enter details directly into the grant records. 

Accounting Subledger

Within the Nonprofit Cloud for Programs system, you can get a full 360-degree view of your volunteers, donors, and participants regarding what benefits they are using, sessions they have attended, and even funds paid or received. Accounting Subledger consolidates data between Salesforce and your accounting system to track where funds are received, paid, and allocated.  

Elevate

Migrate to Google Analytics 4 before July 1st

Google Analytics 4 is replacing Universal Analytics. To ensure Giving Page performance, source codes, and conversion rates are tracked after July 1st, switch to Google Analytics 4. To make the switch, add your Google Analytics 4 property ID in the Google Analytics Property ID field on the Elevate admin portal.

Faster Payment & Recurring Donation Exports

You can now filter payment and recurring donation records in an export by specifying a date range, and when the export includes more than 10,000 records, Elevate will automatically export them into multiple files to speed up the process. You can export payment and recurring donation records on the Elevate admin portal.

'Seas' the Day with Salesforce Summer '23

The Summer '23 release of Nonprofit Cloud will make life a little easier for all Salesforce users. If you wish to learn more about these updates or the others included in the release, please check out the official Salesforce Nonprofit Cloud Summer '23 Release Notes.

If you have any questions about Salesforce Nonprofit Cloud or want to talk about your Salesforce needs, contact DB Services and we'll be happy to assist you!

]]>
<![CDATA[Salesforce Summer '23 Release Highlights]]> https://dbservices.com/blog/salesforce-summer-23-release-highlights https://dbservices.com/blog/salesforce-summer-23-release-highlights Thu, 27 Apr 2023 09:58:00 -0400 Analytics: Up to 5 Filters on Dashboards (Unlimited Edition)

Reports and dashboards are a critical part of a good Salesforce implementation - they help surface and visualize your data so you can get meaningful and actionable information out of it at a glance. Summer '23 makes dashboards even more useful by extending the maximum number of filters from 3 to 5. Now, users can slice and dice their dashboards to focus in on the exact information they need.

Commerce: Guests in B2B Stores

B2B stores can now let guests add items to their cart and place payments if the B2B store is built on an LWR template. LWR is the modern way to build experience cloud sites and uses LWCs for better performance and web standard and security compliance. As with all guest access, make sure you review security and only allow them access to exactly what they need.

Customization: Set Field-Level Security on Permission Sets (GA)

You can now set field-level security on permission sets when creating a new field instead of setting them on profiles. Salesforce has been encouraging admins and developers to use permission sets and permission set groups for security over profiles due to permission sets being more flexible. With this change, there are now fewer and fewer reasons to use profiles for security. To enable this change, go to User Management Settings under Setup and enable Field-Level Security for Permission Sets During Field Creation.

]]> Development: Use Scale Center to Analyze System Performance

Admins and developers now have a way to quickly analyze and visualize system performance with Scale Center. You can diagnose scaling issues and improve the scalability of your implementation. You can analyze apex code, database performance, flow performance, integration performance, and more using this tool. 

*You will need to reach out to your Salesforce AE to determine if you have access to Scale Center.

Field Service: Dashboards on Mobile

Technicians out in the field can now view dashboards in the Field Services Mobile app. Show technicians important KPIs such as CSAT scores or actionable items like service appointments by status and timesheet approvals. To add a dashboard to the mobile app, create a global action using LWC and install the Mobile Dashboard unmanaged package.

Financial Services Cloud: Actionable Segmentation is GA

Actionable segmentation is now generally available in Financial Services Cloud. Sales and service agents can now create their own segmentations of customers and prospects for outreach. And there have been some additional enhancements added in Summer '23 to Actionable Segmentation, including a bulk select option when creating a list and adding custom filter logic.

Nonprofit Cloud: Dynamic Assessment in Case Management with Accounts, Contacts, and Cases

Dynamic Assessments allow organizations to create guided questionnaires that branch based on conditional logic. And now, in Summer '23, organizations can create dynamic assessments for accounts, contacts, and cases. Previously you could only create dynamic assessments from care plans.

Marketing Account Engagement: Trigger an External Action after a Prospect Engagement

Admins can now configure triggering an external action on a completion action. This expands the number of problems that can be solved with completion actions. Admins can do things such as sending a prospect to an external system after they complete a sign-up form or sending a text message to a prospect after they request more information on a website.

Sales Cloud: Split Revenue by Product Mix with Opportunity Product Splits (GA)

Opportunity teams can now allocate revenue by product - instead of just by team member on an opportunity - using opportunity product splits. To set up opportunity product splits, go to Split Types Setup --> edit Split Types and include product splits. To show product splits on an opportunity, add the Opportunity Splits component.

]]> Flows: Use Email Templates in Send Email Actions

This is sure to make admins and developers happy: email templates can finally be used in send email actions in flows. Previously, you could not use templates in send email actions, causing you to have to duplicate the same email structure across multiple flows.

]]> Service Cloud: Individual-Object Linking Flows

Channel-Object Linking has been overhauled to be more flexible with Individual-Object Linking flows. Now you can use a flow to search for, link, and then screen-pop the person who submitted a case created through a channel. Previously with Channel-Object Linking, you could only link contacts to channel interactions like web chat, voice, etc. Now you can link any type of object considered an individual (contact, lead, person account, etc.).

]]> Soak in the summer rays...

...and enjoy all the new functionality coming to your Salesforce org in Summer '23. Whether it's more dashboard filters, easier ways to set up security for permission sets, or reusing email templates across flows, Salesforce finds innovative ways to make solving problems easier and more efficient on the platform.

If you would like more information on these updates or to view past updates, please visit the official Salesforce Summer '23 release notes. If you have any questions about Salesforce or want to see any of the implementations in your own Salesforce organization, contact DB Services!

]]>
<![CDATA[Introducing Claris FileMaker 2023]]> https://dbservices.com/blog/introducing-claris-filemaker-2023 https://dbservices.com/blog/introducing-claris-filemaker-2023 Tue, 25 Apr 2023 09:40:00 -0400 Data Audit Logging

This is the big one! This new feature will allow you to easily log data changes to a file. To utilize this, you will need to create a script that fires on the new OnWindowTransaction script trigger.

Here is an example of a script that will log the audit to a data file.

]]>  Below is a breakdown of the data that is being logged.

]]> OnWindowTransaction

FileMaker 2023 brings with it a new script trigger that allows for the data audit logging to be possible. This script trigger is only found in the ‘File Options’ dialog and will execute the corresponding script whenever a transaction is completed.

]]> The script that you create for this trigger must expect a JSON script parameter. The passed in parameter will be auto-generated by FileMaker and will include the following default information:

  • FileMaker file name

  • Base table name that the transaction occurred on

  • Record ID

  • Operation (New, Modified, or Deleted)

  • Value of the base table’s ‘OnWindowTransaction’ field (optional)

OnWindowTransaction Field

You also have the ability to add additional information to be logged by creating a field named ‘OnWindowTransaction’ in each table where you want to capture additional data. This is an optional parameter and will be logged as an empty value on tables that don’t include it.

This is an example of what the field might look like.

]]> Send Mail via OAuth 2.0

The 'Send Mail' script steps now includes a new authentication method for OAuth 2.0. In order to utilize this feature you will need either a Microsoft 365 or Google Workspace subscription. Below are the steps to set this up for each subscription.

Microsoft 365

  • Register an Azure application

  • Follow the steps 'Application permission to Microsoft Graph' and add 'Mail.Send' permissions

Google Workspace

  • Create a service account

  • Enable Gmail API

  • Enable 'Domain Wide Delegation'

Perform Script on Server with Callback

You will now be able to specify a script to be performed on the server and specify a callback script all in one script step. The callback script will be run locally on the user's machine after the server script has completed running on the server. 

]]> New Functions

There are a handful of new functions coming in this update, along with some updates to existing functions.

  • BaseTableNames( file )

    • Similar to the existing function TableNames( file ), but only returns a list of base table names instead of all instances of a table in the relationships graph

  • BaseTableIDs( file )

    • Similar to the existing function TableIDs( file ), but only returns a list of base table IDs instead of all instances of a table in the relationships graph

  • Get( CacheFilePath )

    • Returns the path of the cache file for the currently active file

  • Get( CacheFileName )

    • Returns the name of the cache file for the currently active file

  • GetBaseTableName( field )

    • Returns the base table name of the provided field

  • Get( LiveText )

    • Now supports Japanese, Korean, and Ukrainian locales

    • Now supported in a script run on the server

  • ReadQRCode( container )

    • Now available for Windows on both FileMaker Pro and FileMaker Server

    • Now available for Ubuntu on FileMaker Server

Bug Fixes

Also included in this update are a few other bug fixes, which include:

  • Summary fields failing from global variable data sources in hosted file

  • Commit Transaction script step fails to return an error for invalid date

  • Serial value fails to increment on record creation after reverting Transaction

  • Reverted transaction deletes remove values from index

  • OnRecordCommit not triggering during an open transaction

  • No active record after omitting the current record while within a transaction

  • PDFs are rendered blurry on Windows

  • Save Records as PDF failing to respond when the layout included web content in a web viewer

  • Card window can't be displayed if window was previously minimized with Stage Manager enabled

  • FileMaker Pro crashing when...

    • Moving layout objects with a mouse in Layout mode on Windows 11

    • Closing card windows on macOS

    • On Windows computers using older hardware

    • Using the GetContainerAttribute function on a table with many records

  • GetContainerAttribute function returning incorrect date format when performed on the server with Ubuntu

  • Insert from URL failing to encode provided URLs on Windows

  • Get( ModifiedFields ) not returning auto-enter fields

  • Get( ModifiedFields ) returning an empty result for fields modified with Replace Field Contents

  • Inability to perform JavaScript in web viewers while in Find mode

  • Web viewers not registering mouse clicks while in Find mode

  • Resizing button bar divider lines

  • Text colors in Script Workspace not updating when changing between Dark Mode and Light Mode

]]> Claris FileMaker Server 2023 Updates

Here is a quick overview of the updates and bug fixes coming to FileMaker Server 2023:

  • DAPI layout names endpoint now returns the correct table info

  • Admin API can now disable additional database/container folders in the same request

  • PIN reset now accepts values starting with 0

  • Verification codes received from a disabled Apple ID will now be rejected

  • Resolved issue causing Admin Server crash when entering an incorrect process name to restart

  • Resolved issue not allowing for scroll in WebDirect List View over a portal that has vertical scrolling disabled

  • Can now import a license certificate by opening a fmcert license certificate file (.fmcert)

  • Protobuf library has been updated to v3.21.12

  • 'Execute FileMaker Data API’ script step now supports a dateformats parameter    

  • Relationships graph now supports dark mode

]]> Summary

“Claris is committed to investing in the success of our developers around the world, now and for the long haul. And today, we are doing just that with the launch of the most scalable version of FileMaker ever delivered. As an Apple company, security comes first in everything we deliver – enhanced even further by FileMaker 2023,” says Claris CEO Brad Freitag.

Claris FileMaker 2023 provides exciting improvements that will bring great value and make development more efficient. Please contact DB Services if you have any questions or needs regarding Claris FileMaker.

]]>
<![CDATA[Salesforce Nonprofit Success Pack Implementation Guide]]> https://dbservices.com/blog/salesforce-nonprofit-success-pack-implementation-guide https://dbservices.com/blog/salesforce-nonprofit-success-pack-implementation-guide Thu, 20 Apr 2023 11:00:00 -0400 If you’re reading this, you’ve likely decided to begin using Salesforce for your nonprofit organization. Well, have no fear, because you’ve made a great decision! Now, it’s time to start looking into all of the tools and options that Salesforce Nonprofit Success Pack (NPSP) provides! There are so many things to consider when using Salesforce for your nonprofit organization that it can be tricky to know where to start. This article will go over a lot of the major areas to focus on to make NPSP work for you!

]]> Household Accounts and Contacts

Some nonprofits work to benefit whole households or families instead of strictly working with individual people. Nonprofit Success Pack provides a type of account called a Household Account that allows you to create the overall “household” (which can realistically be a family, club, neighborhood, etc.) and then add the individual members to that household. To create these households, all you need to do is create a new contact with nothing entered into the Account field. Once you’ve created the household account, you can use the Manage Household button in the account record to add all members of that household account.

Donations and Gift Management

Nonprofits can use the donation management tools provided by NPSP to easily add and track donations coming in. If a contact has given a donation, all you need to do is select the “New Donation” button on the contact record and then enter the donation information. 

]]> If the donation comes from an organization, NPSP uses opportunity records to track those. All you need to do is create a new opportunity from an account record and select the type as “Donation” or one of the gift options and enter the relevant information. All donations, gift amounts, and totals are aggregated and rolled up into a Donation Totals section on the account screen for easy viewing.

It is also possible to set up recurring and fixed-length donations. You can do this by setting up scheduled donations in the Recurring Donations object. This will allow you to create schedules for donations and assign them to an account. You can also pause or end recurring donations in this same area by simply clicking the Pause button on a recurring donation record or the Close Recurring Donation button and entering a reason for closing.

Grant Tracking

Tracking grants is important to your organization so that you can keep track of everything that needs to be done for you to acquire that grant. Much like donations, you can create grants by creating a new opportunity and selecting the Grant record type. From within the grant record, you can add deliverables through the Deliverables related list. These deliverables can have due dates assigned to them to help keep you on track to know when you need to provide certain information to the grantor. 

Grant records have a stage path that helps you understand where you are in the lifecycle, from prospecting all the way to awarded. Once the grant has been awarded to you, you can create a payment schedule from the Payments related list to see when grant payments will be coming in so you can plan ahead!

Memberships and Levels

Contacts and accounts in Salesforce can be given memberships to certain groups and levels within those groups based on donation amounts. For instance, if you want to incentivize donors to donate more, you may create a group with Tiers 1, 2, and 3. Members in Tier 1 have donated more than Tier 2 or Tier 3 and therefore may be entitled to more benefits from the nonprofit, like free entry to membership events. Memberships to groups can have expiration dates and donation requirements that can all be tracked within the Membership record related to any given contact or account. All membership information related to an account or contact is rolled up and can be displayed on that account or contact screen.

]]> Campaigns

In NPSP, campaigns can be used to keep track of specific initiatives to bring in donors and donations. By creating campaigns and adding campaign members, you can get greater insight into which specific tactics have brought in new leads, new donors, and total donations. Once members have been added to a campaign, you can track their engagement to ensure that people are actually participating in the campaign. If you find that your engagement is high, but you need more fine details, you can even make child campaigns from the parent to track even smaller initiatives within a given campaign.

Engagement Plans

Once you have a donor in the system, it's often very important to make sure that you stay in touch with them to keep them engaged. Salesforce has created Engagement Plans to take care of this! You can create a series of tasks that you know you’ll want to accomplish with every donor as an engagement plan template. These tasks could be as simple as two follow-ups a month apart, or as complicated as sending notes, Christmas cards, follow-ups, surveys, and more. Once you create the engagement plan template, you can either tie these to donor levels so that the tasks are automatically assigned to the contact, or you can apply the template manually from the contacts related Engagement Plan list.

]]> Security

As with any system, it’s important to make sure that sensitive or confidential information remains secure, and the security features within Salesforce provide many ways to customize security settings. You can adjust and control access across your whole organization using tools such as Sharing Settings, Roles, Profiles, Permission Sets, and Field Level Security.

  • Sharing Settings - Sharing Rules allow you to give access to users at the record level by defining criteria on what can be shared. You can also simply share records manually within individual records.

  • Roles - Roles can be used to define broad record access by position in the company. Using the Role Hierarchy, you can even designate record access based on who reports to specific users.

  • Profiles - Profiles can be used to give users access to objects as a whole from the base levels of whether they can even view or edit the object at all.

  • Permission Sets - Permission sets can be applied to individual users to give specific access that other users may not have access to.

  • Field Level Security - This can be used to completely hide or show users an individual field.

Reporting and Dashboards

NPSP comes with many out-of-the-box reports to help you quickly see general information in a report. However, just like with all of Salesforce, you have the freedom to customize and create just about any report you could possibly need. These reports can be used to create dashboards to provide you with at-a-glance details about broad subjects, such as total donations received this year or number of current donors.

System Integration and Add-Ons

While Salesforce has nearly everything your organization might need, they also provide the ability to integrate with just about any third-party platform if you have a team capable and willing to handle the development. If you don’t have your own in-house development team, you can always connect with a certified Salesforce partner, like us here at DB Services

You also may be able to find a connector to many major third-party systems, although these might require some additional customization and typically have an additional cost. Some popular add-ons are Grant Management, which helps grantors manage grants that they are giving; Case Management, which provides more robust case management related specifically to nonprofits; and Program Management, which helps provide a more detailed view of your organization's specific programs.

Conclusion

Nonprofit Success Pack provides a wide variety of tools to help make your organization as effective and efficient as possible. Though there are more topics available than what we’ve discussed in this article, focusing on the topics discussed above will get you on the right path to success within your nonprofit’s Salesforce org. Contact DB Services for any questions you have or if you need assistance using and customizing NPSP!

]]>
<![CDATA[Custom DynamoDB Import Wizard]]> https://dbservices.com/blog/custom-dynamodb-import-wizard https://dbservices.com/blog/custom-dynamodb-import-wizard Wed, 12 Apr 2023 11:25:00 -0400 Keeping track of your data can be difficult, but it doesn't have to be a hassle. Is your organization relying on intricate import processes to make accurate decisions? Is inaccurate data polluting your customer experience or affecting your compliance with regulations? Our highly flexible DynamoDB import wizard is user-friendly and easily adapted to your organization's unique demands.

]]> Choosing Customization

Most implementations of our custom import wizard utilize Amazon's DynamoDB – it's fast, secure, and can automatically scale with your needs. It is possible to import data into DynamoDB directly from its console, but just like you wouldn't give your customers the keys to your shop, you'll want to keep your users far away from the console. Additionally, our import wizard can handle CSV, XLS, and XLXS, whereas the default DynamoDB console only supports CSV.

]]> Custom Import Wizard

We've augmented the default DynamoDB import process with a customized user interface that can be uniquely tailored to your brand and organizational requirements. This import wizard allows you to assign imports to a variety of data points, review data before committing it to DynamoDB, and save your settings to make future imports of the same type even simpler.

In the first step of the process, you'll upload an import file and configure the initial settings, like choosing what type of data the import should become and assigning a name to this import instance - handy for future reference or in the event an import needs to be rolled back.

]]> The second step allows you to specify exactly which data should make its way to DynamoDB and where it should live when it gets there. The standard DynamoDB import can match your import document headers to table attributes, but it will also import any extraneous data that might exist in your import file. With the import wizard, you can specify where the data starts, reassign import columns, and even see a preview of how your data will appear once the import is complete. To help channel the information appropriately, you can specify an existing field to match your data against, such as the customer name. Once all this has been configured, you can save these settings for the next time you're importing similar data.

]]> Step three is the final verification before the data is imported into DynamoDB. During the transition from step two to step three, DynamoDB is queried using the column you've specified as a matching field. Depending on the results, you'll see two sections. On one side, unmatched records which need to be created are shown. If any existing records are found, they appear on the right side, and the data from your import file will be applied to these respective records.

]]> When you reach step four, the data is actively applied to DynamoDB. You're shown a summary of the import, and given the option to review the history of imports to your system. Of course, in this bespoke environment, we can reconfigure this - and any of the previous steps - to show your users the information they need most!

]]> Conclusion

Our custom import wizard streamlines your DynamoDB import process and keeps your data ducks neatly aligned. It's a great way to simplify your data import process and ensure accuracy. Contact us today to see if this wizard could be a great fit for your needs!

]]>
<![CDATA[Surveys for Success: Nextech]]> https://dbservices.com/blog/surveys-for-success-nextech https://dbservices.com/blog/surveys-for-success-nextech Tue, 04 Apr 2023 11:42:00 -0400 <![CDATA[FileMaker Teamwork Integration]]> https://dbservices.com/blog/filemaker-teamwork-integration https://dbservices.com/blog/filemaker-teamwork-integration Mon, 27 Mar 2023 11:22:00 -0400 Like the people who run them, every business optimizes its strengths by doing things its own way. And, like people, every business also benefits from pre-packaged software they don't have to build or maintain. Teamwork is a powerful project management tool, built by a responsive and customer-centric team. Teamwork itself is built to be flexible and customizable but, like any ready-to-go solution, still has areas your business has to fit into. Luckily, we have Claris FileMaker to help bridge the gap between the business processes that make you stand out and leveraging new software to improve on it. Whether you're new to Claris FileMaker or not, we'll take a look at how an integration from FileMaker to Teamwork can be set up.

]]> Setting Up The Integration

Teamwork provides excellent API resources for diving into their available integration options. We'll focus first on authenticating with the API using the "App Login Flow," which uses the secure standard OAuth2.0 authentication method. The first step is to register the integration/app in the Developer Portal. The recommended approach is to use a dedicated user (who is not a person) with access to everything you want your integration to do (create, update, and delete projects, for example). That way, things don't suddenly come to a halt when Joe Developer leaves.

]]> Once you create the app, you'll be able to specify a redirect url and get the client ID and client secret.

]]> Retrieving Data

Once we have the access token, we're ready to integrate. Since Teamwork is a project management platform, it will be important to know what our tasks are. Let's start by getting all the Teamwork tasks for a project so that we can use them in our system.

For that, we'll need to set up a GET request to the Task entity in Teamwork.

Instead of pulling all tasks in Teamwork, we can use the parameter "includeCompletedTasks" to return only active tasks.  Depending on your use case, you may not want this, but it provides a very useful way to demonstrate how request filtering works through the Teamwork API and also prevents us from getting old data.

Our URL for this action will look like this: 

https://[mydomain].teamwork.com/tasks.json?includeCompletedTasks=false

If you'd like to limit your query to just one project, you can filter further with a url that looks like this:

https://[mydomain].teamwork.com/projects/[project id]/tasks.json?includeCompletedTasks=false

The accompanying cURL will look something like this. Note that we've included the response headers command so that we have access to view those in FileMaker for additional logging and debugging.

]]> The response we get back from Teamwork is very predictable since we can see the example response body right from their documentation!

]]> Since tasks are returned in an array, we can speed up FileMaker's processing of each task by deleting the top array value on each parsing loop. That prevents FileMaker from re-parsing the entire array and also reduces the amount of code we need to actually process the loop.

Updating Tasks

Now that we've retrieved our tasks, we can use that information to update them in Teamwork from FileMaker.

The format for this call will be pretty similar to the one we used for getting the tasks. This time, however, we'll send a PUT request and send a task body to tell Teamwork what we'd like to update.

The main difference in our URL, aside from the API version differences, is the use of the task ID at the end of the call to specify which task we're making the request for. So, for example, your URL for the update task call would look like this:

https://[your domain].teamwork.com/tasks/1234.json

It's important to note that you should always check the documentation when pushing data to an API. The structure, names, and JSON type of each data point will have to match in order to either avoid errors or avoid updating nothing. In particular, Teamwork requests dates to be pushed in a YYYY-MM-DD format as a JSON string ( {"due-date":"2023-03-02"} ), which is different than how some other APIs may request a date.

]]> Instant Updates

While we won't cover in detail how to get instant updates from Teamwork, it's important to know that you can. Teamwork offers a robust suite of webhooks for all kinds of actions that take place on the site, and which you can easily tap into to get near-instant updates about data in Teamwork.

At its simplest, you can set up a single webhook in the language and provider of your choice to listen for updates issued by Teamwork, then pass that data to FileMaker to handle whatever custom workflows you require. Teamwork even has logging tools in the webhook setup to help anticipate what is sent and troubleshoot any problems.

]]> Teamwork also lets you set up webhooks by project. So if you had a need to only get updates from a specific or small number of projects, you could easily do so.

]]> ...And More

This article covers just the beginnings of how you might bring together your current business processes and Teamwork with the help of Claris FileMaker. The important thing is that you can extend the power of your own custom FileMaker solution to leverage pre-made tools with immense value and low cost. It's one more way FileMaker offers a springboard for innovation. 

If you're looking to extend the power of your FileMaker solution by integrating with Teamwork, contact us and let's talk about what we can accomplish together.

]]>
<![CDATA[Using ChatGPT with FileMaker]]> https://dbservices.com/blog/using-chat-gpt-with-filemaker https://dbservices.com/blog/using-chat-gpt-with-filemaker Fri, 17 Mar 2023 11:20:00 -0400 If you keep track of the latest trends in technology or are obsessed with the Terminator franchise, then you've probably asked yourself, "Where will AI be in the next five years?" We've seen Artificial Intelligence used to generate artwork, improve patient treatment, detect insurance fraud, and much, much more. The latest entry into this trove of excitement is OpenAI's ChatGPT. Released in November 2022, ChatGPT (Generative Pre-trained Transformer 3) is a language model designed to produce conversation-style results for its users. Because of its conversational nature, a ChatGPT integration with your FileMaker solution has the potential to increase your automation and efficiency without sacrificing the human-like feel. 

ChatGPT can be accessed for free by visiting chat.openai.com/chat. You may need to create an OpenAI account, and during high volume times, there may be some wait time before being permitted to use the site. The layout is a simple interface akin to a large text message. The AI is activated by typing and sending a message, after which the user can halt a response in progress or regenerate a completed response. 

]]> Use Cases

The AI can handle a range of prompts from simple questions like "What is an elephant's lifespan?" to even more subjective things such as "What is Klayton Kershaw's best pitch?" You can even challenge it to a game of tic-tac-toe!

]]> Of course, for developers, a more exciting feature may be its ability to generate code or think through data models. We asked chatGPT to create a FileMaker script that will loop through a portal. Check out the results:

]]> We also asked it for help by seeking alternatives to using an unstored calc in a FileMaker relationship:

]]> Integrations

The official ChatGPT API is available for $0.002 for every 1,000 tokens. In this demo, we'll utilize OpenAI's free GPT3 API in conjunction with Postman to generate directions on how to bake a cake. There are three parameters that help determine the AI's response:

  1. Model/Engine- Choose between Davinci, Ada, Curie, or Babbage. Each have their own capabilities and speed of parsing text.

  2. Tokens- Required to produce text. For example, if your response requires 600 tokens, you must use 600 tokens to see the entire response. If your max is set to 300, you will only see part of the response.

  3. Temperature- Determines the overall creativity and detail of the response on a scale from 0 to 1.0.

Below are two responses in Postman from the exact same prompt ("How do I bake a cake?") and model (Davinci), but the temperature has been increased from 0.2 to 0.9. You'll notice the second image has more detailed steps in the instructions. 

1. Temperature = 0.2

]]> 2. Temperature = 0.9

]]> Now, let's see this same thing in action in our FileMaker demo. First, you'll need to set up a JSON that contains your model, user prompt, temperature, and the max number of tokens you'd like to use. 

]]> Then, you'll create your cURL options and attach the previously created JSON using the line "-d @<yourJSONName>."

]]> Lastly, make a call to "https://api.openai.com/v1/completions" using the 'Insert from URL' Script step.

]]> Using the interface on the demo file is even easier. When you open the file, simply enter your number of max tokens (we've chosen 400) and temperature, type in whatever prompt you'd like, and then hit the send button. Here, we've added the AI's response to "How do I bake a cake?" using a temperature of 0.5.

]]> Again, we've used the same prompt, but with a higher temperature to showcase the difference in detail.

]]> Conclusion

Where will AI be in five years? No one really knows, but the emergence of technology like ChatGPT could mean reliable alternatives to search engines, wikis, and code templates. To discuss integrating your FileMaker application with ChatGPT, please contact DB Services for more information.

]]>
<![CDATA[Claris Platform 2023 Updates]]> https://dbservices.com/blog/claris-platform-2023-updates https://dbservices.com/blog/claris-platform-2023-updates Wed, 08 Mar 2023 11:16:00 -0500 Since the official launch of Claris Studio in September 2022, Claris has continued to make strides with exciting updates to the Claris Platform. Let's take a look at some of our favorite new features in Claris Studio, Claris Go, and Claris Pro.

]]> Views
  • List Views

    • List views are a new type of view that allow you to work visually with lists of records in groups. Within each group, choose a group name and add records (rows) or fields (columns.) The records in each group are all stored in the same view, and the value of the Group field determines the groups in each record.

]]>
  • Easily drag records from one group to another by selecting the rows and dragging the handle on the left to another group.

  • You can also create a spreadsheet view from the list view to see the data differently. In addition, you can recover an archived group by clicking Add New Group and selecting the archived group.

  • Table Names- When creating a view, the default table name is now based on the default view name. For example, instead of starting with "Untitled," the table name will now start with "Form" followed by a number. You can easily rename the table by clicking the table name and selecting Rename Table.

  • Starter Views- a package of views that work together to solve a specific problem. For example, a project management starter view includes a planning board, kanban board, epics list, tasks spreadsheet, and milestones spreadsheet.

]]>
  • Delete multiple views at once by selecting individual views, a range of views, or all views with the same data.

  • Combo charts, bar charts with multiple data series, and bubble charts are now available in Spreadsheet views.

  • You can now conditionally show or hide image and text objects based on field data in Form and List-Detail views.

  • In Kanban Boards, you are now able to choose from 3 templates for the size and layout of the card and customize which elements to show and which fields to use for each element.

  • Hubs

    • Public sharing is now easier for team managers with a special hub called Publicly Shared Views. Views you add to this hub are shared with anyone who has the link. 

    Charts

    • Bubble charts- display values based on a third field as the size of the bubble used for each data point on the x- and y-axis. This chart allows you to visually compare individual data points regarding the magnitude of another value. For example, here, we used age and cost as the x- and y-axis, and the third field was the record count of campers who are that age.

    ]]>
  • Combo charts- display multiple data series for the y-axis and also display data of different kinds on the left and rights sides of the y-axis

  • ]]>
  • Bar charts now allow you to show multiple data users for the y-axis to compare data of the same kind from different fields as multi-column or stacked bar charts.

  • Other Enhancements

    • Time/Timestamps- you now have the ability to choose whether to display time and timestamp field values as they were entered or in the current user's timezone

    • Rich text field type- allows users to add formatting like bullets, hyperlinks, bolded text, heading levels, and more

    • Developer mode- Team managers can now use Developer mode to more easily edit hubs and views and manage users. Turn off Developer mode to work with data in views.

    • Comment field- a new, convenient way to capture thoughts on a record in list-detail, spreadsheet kanban, or list views

    • Spreadsheet object- allows you to display data in a table along with chart and summary objects

    ]]>
  • Claris Go is now available worldwide on the App Store (currently available in English only)

  • Enhanced support for time and timestamp fields in Claris Studio 

  • Signature fields in Claris Studio are now read-only container fields in Claris Go that display the image of the signature

  • Apple Operating System support for macOS Ventura, iOS 16, and iPadOS 16

  • Support for transactions to ensure data integrity 

  • ]]>
  • Enhanced support for time and timestamp fields in Claris Studio 

  • Signature fields in Claris Studio are now read-only container fields in Claris Pro that display the image of the signature

  • Apple Operating System support for macOS Ventura, iOS 16, and iPadOS 16

  • Support for transactions to ensure data integrity 

  • ]]> Conclusion

    We're excited to work with these updates and features, and we look forward to the creative new solutions we will be able to build with the Claris Platform. If you have questions or would like help building a solution in Claris Studio, Claris Pro, Claris FileMaker, or Claris Go, please contact us today to get started.

    ]]>
    <![CDATA[Salesforce Financial Services Cloud Spring '23 Highlights]]> https://dbservices.com/blog/salesforce-financial-services-cloud-spring-23-highlights https://dbservices.com/blog/salesforce-financial-services-cloud-spring-23-highlights Thu, 16 Feb 2023 11:39:00 -0500 Shake off those winter blues with the new features coming in Salesforce's Spring '23 for Financial Services Cloud. Whether it's ARC enhancements, interaction summary automation, or actionable segmentation, this release is full of enhancements to take your Salesforce org to the next level. Let's look at the top features that have us excited for the future of Financial Services Cloud!

    ]]> Actionable Relationship Center Enhancements

    The Actionable Relationship Center (ARC) is a key feature in Financial Services Cloud (FSC) that gives users a quick and easy way to view a customer's relationships at a glance. Spring '23 brings with it a handful of enhancements that help administrators and developers customize the ARC to better fit the needs of users:

    • Show fields from multiple objects on an ARC node - Users can now see fields from related objects on an ARC node, as long as the relationship is a lookup relationship to a parent object. Prior to Spring '23, users could only see fields from the ARC node's object.

    • Tie OmniScripts to ARC node actions - Like Flows, OmniScripts automate a set of steps for a user. In Spring '23, admins can add OmniScripts as actions to an ARC node. This will help extend what users can do on the ARC without needing to leave the page.

    • Use FlexCards for ARC nodes - Admins now have the ability to display the details of an ARC node using a FlexCard. FlexCards are a declarative way to display information from multiple data sources and a place for users to perform actions on the data.

    • View ARC graphs vertically - By default, hierarchies in an ARC are displayed from left to right, aka horizontally. However, this can be hard to follow with a deep hierarchy. In Spring '23, admins now have the option to display ARC graphs vertically.

    ]]> Interaction Summaries Sync

    Admins now have the ability to enable a user's Microsoft or Google account to automatically sync events as interaction summaries. Previously, users would need to create the events in both their Microsoft/Google calendars and in Salesforce, causing double data entry. 

    ]]> Interaction Summaries are a way for financial services companies to maintain data compliance when there is confidential information in an activity that should not be automatically shared based on the role hierarchy.

    Assessment Enhancements

    The Discovery Framework in Financial Services Cloud gives admins the ability to create digital forms to collect assessments from prospects and clients. In Spring '23, Salesforce added a few enhancements to the discovery framework, including automatically prefilling data from previous assessments, building forms with OmniScript elements, and more. 

    Actionable Segmentation (Beta)

    Actionable Segmentation is a new set of features in beta that give users the ability to create their own segment of clients for outreach. Users create actionable list definitions to generate actionable lists, and use those lists for marketing initiatives. To be able to use Actionable Segmentation, users need the Industry Sales Excellence Add On with Actionable Segmentation permission set.

    Spring Forward to a Brighter Future

    The Spring '23 release of Financial Services Cloud provides plenty of reasons to be excited for the future of FSC. 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 Financial Services Cloud or want to talk about your Salesforce needs, contact DB Services!

    ]]>
    <![CDATA[FileMaker Dropbox Integration]]> https://dbservices.com/blog/filemaker-dropbox-integration https://dbservices.com/blog/filemaker-dropbox-integration Mon, 06 Feb 2023 11:05:00 -0500 Dropbox is one of the top file-hosting platforms on the web currently. Established in 2008, Dropbox has over 700 million registered users. Along with file storage, they also offer a fantastic API to integrate the platform into your custom applications. Here, we're going to cover getting started with your API application, and authentication, file upload, & file download from your FileMaker solution.

    ]]> Getting Started

    The first thing you'll need to do is create a Dropbox account. From here, you'll need to create an app.

    ]]> After selecting the above settings and naming your app, you'll be brought to the app's settings menu. Here you'll find critical information for connecting Dropbox and FileMaker, including the App Key and App Secret, pictured below. You'll want to store these two values in a secure location, as they are necessary for API functionality. In addition to those, you will also need a Redirect URI, which can be set to any valid web address.

    ]]> Our next step is setting the scope of the Dropbox app. These can differ based on user needs, but for our purposes, we'll be enabling both read and write permissions for all scopes in the "Files and Folders" and "Collaboration" sections aside from "contacts". Make sure to submit these changes before continuing on.

    ]]> Authentication

    Once you have your Dropbox app set up, it's time to start implementing it into FileMaker. The simplest way to manage the credentials to your Dropbox application in FileMaker is to store them on a Preferences table, where you can update them and it will be accounted for in all areas simultaneously. The fields you should include are: App Key, App Secret, Redirect URI, Access Token, Refresh Token, and the Refresh Timestamp. If multiple users are going to be signing in to Dropbox and using the integration, the Access Token, Refresh Token, and Refresh Timestamp should be stored by user.

    With this information added in, users added to the application will be able to sign into Dropbox and get their Access Token. This is done with a web viewer set to a login screen. After the user enters their information, they'll need to accept terms based on the selected scopes. Note that if scopes change for the App, users will need to re-authenticate.

    ]]> After following these steps, FileMaker will store the tokens received and the user can begin using features of the integration.

    Uploading Documents

    One of the main draws of a Dropbox integration is being able to upload documents directly to your Dropbox folders from FileMaker. This has multiple purposes: it can be used to reduce the size of your FileMaker solution, allow you to access files from anywhere, or share the document with others that aren't able to access FileMaker, among many other purposes.

    As far as actually developing the process goes, it's actually a multi-step process. The process consists of actually pushing the document to a specified path in Dropbox, then getting a "Share URL" from the host. This Share URL is what allows a user to access the uploaded document directly to work with it. Below is an example of what is returned from a successful upload of a document - providing the document path and other identifying information.

    ]]> Additionally, the expected payload for creating a Share URL will look like the following, in addition to various tags that include whether a password is required or if the document can be downloaded.

    ]]> Download Documents

    In addition to uploading documents, you're also able to download documents you've uploaded to your device. The process here is much less involved than uploading. Here, all you need is the direct path the file is stored at in Dropbox. You'll then run a cURL to insert the binary file at the specified path into a container as an intermediary, then a standard Export Field Contents to get the item to your local path.

    Conclusion

    Integrating Dropbox into your FileMaker solution is a great way to save space on your server and allow access to documents on the go. These features bring a level of convenience and security to your documents that you won't achieve with only local storage. If you have any questions or need help integrating Dropbox with your FileMaker solution, contact DB Services and we'll be glad to help!

    ]]>
    <![CDATA[Surveys for Success: Meals on Wheels]]> https://dbservices.com/blog/surveys-for-success-meals-on-wheels https://dbservices.com/blog/surveys-for-success-meals-on-wheels Wed, 11 Jan 2023 10:28:00 -0500 DB Services has chosen to support Meals on Wheels in quarter 1 of 2023 with our Surveys for Success program. Meals on Wheels, with the support of community volunteers, delivers meals to individuals whose diminished mobility makes it challenging for them to shop for food or prepare meals. The Surveys for Success program is our way of saying thank you for our customers' valuable feedback by paying it forward to those in need.

    Meals on Wheels was started in 1954 by a small group of Philadelphia citizens and has grown into one of the largest and most effective social movements in America. To this day, their goal remains the same: to support our senior neighbors to extend their independence and health as they age. Their large network of programs currently serves nearly 2.4 million seniors annually in virtually every community in the country. 

    Hunger and poverty are not the only challenges that Meals on Wheels programs aim to address. Isolation is another serious issue plaguing senior citizens, with 58% of meal recipients stating that the person delivering their meal is the only person they will see that day. Home-delivered meals also help keep an estimated 8 out of 10 recipients who have previously fallen from falling again. Many seniors want to continue living independently for as long as they can, and Meals on Wheels runs effective programs to assist them in doing just that. 

    Each customer survey we receive is an additional donation towards Meals on Wheels. Your feedback will not only help our team at DB Services, but also provide Meals on Wheels with donations to further their important mission. Together we can help improve the lives of those in our communities who need it the most! 

    ]]>
    <![CDATA[Salesforce Spring '23 Release Highlights]]> https://dbservices.com/blog/salesforce-spring-23-release-highlights https://dbservices.com/blog/salesforce-spring-23-release-highlights Thu, 22 Dec 2022 11:32:00 -0500 Kick off those winter chills with some fresh moves from Salesforce's Spring '23 update. These new innovations are designed to get your data flowing and increase efficiency across your organization. Let's look at the top ten features that have us moving and grooving!

    Salesforce Platform: DevOps Center is here!

    The DevOps Center changes the way we think about change sets. In fact, it greatly mitigates the need for change sets at all. It allows for changes to an organization to be tracked via source, currently through Github. This functionality makes it possible for admins and devs to work more closely in an organization. DevOps Center's point-and-click solution makes it easy for anyone to use.

    Getting Started with DevOps

    The DevOps is generally available to the Lightning Experience in the Developer, Professional, Enterprise, Performance, and Unlimited editions. To get started, enable DevOpsCenter in your org, accept the license agreement and install the managed package. After installation, find and select DevOpsCenter from Setup. To gain access, users will need a Github account and access to their team's repository.

    Once the set-up is completed, you may work as normal. All changes and additions you make to your organization are tracked in the source, reviewable through the pipeline, and deployed straight into production or other environments. Without needing to track changes manually, your team has more time to spend focusing on the important things, and that has us dancing for joy.

    ]]> Before creating work items, you must create a new project on the dashboard of the DevOps Center. New work items are created in the Work Items tab. The Pipeline tab shows your current work items and their current stage. You can also view the connected environments and review any changes to staging made on any of the work items in the project.

    ]]> Work items are created as branches in your connected Github. With the point-and-click interface, creating branches, committing changes, and creating pull requests is a seamless process. Additionally, you can also work within Github itself and those changes will be tracked in DevOps as well. Currently, Github is the only supported source repository, but BitBucket is coming soon.

    New to DevOps

    • Swap a Refreshed Sandbox - When refreshing a sandbox, DevOps will now prompt you to switch the connection from the old sandbox to the new one. It will also ensure that the new sandbox is loaded with the latest source in the pipeline stage's branch.

    • Manage Environments More Easily - You can swap a development or pipeline environment with another that is activated. You can also remove unused dev environments, disconnect expired environments, and change to a different environment for a pipeline stage if the pipeline isn't activated.

    • Perform a Validate-Only Deployment - With this feature, you can run your Apex tests prior to deployment. It will validate the tests, but will not save any components, enabling you to check the success of your tests prior to actual deployment. Then, later in your deployment process, you can execute a quick deployment to promote changes without needing to run the tests again.

    Automation: HTTP Callout in Salesforce Flows (Beta)

    You can now include external data in Flow Builder using HTTP Callout. When you add the details of a web-based service API, Flow Builder creates an external service with invocable actions. These can be used immediately in your Flow Builder and across your Salesforce organization. Integrations can be added without code or without using a service such as Mulesoft.

    Analytics: Personalized Report Filters

    Salesforce is getting personal with report filters. This update brings the ability to filter reports based on the user. Any filter created on a user field, such as Created By, gives the option to use a relative value. When selecting that option, you can choose to filter by the currently signed-in user, creating custom reports personalized for each member of your team.

    Sales Cloud: Dynamic Forms for Leads and Cases

    Previously, you could only use Dynamic Forms in Lightning Builder for accounts, contacts, and opportunity record pages. Now, you can enhance your lead and case record pages as well. You can even upgrade your old layouts to use the new Dynamic Forms with the push of a button from within the Record Detail component.

    ]]> You can see in the top image what a lead record's details tab looks like in the current release. The bottom image shows that same record, but upgraded to Dynamic Forms. You can see collapsable sections which can be edited and modified to meet your needs. Combine this with component visibility rules and you have lead and case records personalized and specific to your organization.

    Service Cloud: Monitor Contact Center Health in Omni-Channel Wallboard (Pilot)

    Using the Wallboard tab in the Omni-Channel, supervisors have access to charts and metrics to help them manage their service teams. They can monitor agent capacity status, maximum wait times, and current work item status. This feature is currently a pilot, so contact your Salesforce account executive to enroll.

    Experience Cloud: Create Component Visibility Rules in Enhanced LWR Sites (Pilot)

    Getting moving is about being in the right place at the right time. The same applies to the information in your organization. With the new Visibility Rules, you can show or hide individual components conditionally. From the new Visibility tab, you can define logical AND/OR rules to show components and increase user engagement. This feature is currently a pilot, so contact your Salesforce account executive to enroll.

    ]]> Field Service: Customize Field Service Mobile App with Offline Mobile UI Extensibility

    Sometimes mobile users are in areas of low to no service. Now, you can build offline apps with Lightning Web Components to keep your agents productive even when they're offline. With Lightning Web Components, you can show relevant data and calculated metrics in the dashboard and capture data with dynamic forms. This feature is generally available in the Field Service mobile app for Android and iOS.

    Commerce Cloud: Create a B2B Store Built on Lightning Web Runtime

    Salesforce has been moving away from Aura components to the faster Lightning Experience, and B2B is the next stop. The B2B Lightning Web Runtime template provides better customization by taking larger components and breaking them into smaller, more manageable blocks.

    Industry Clouds

    Financial Services Cloud: Show Fields from Multiple Objects on an ARC Node

    Previously on an ARC Graph node, you could only show the field from the node object. Now, you can also show the fields from any objects that have a look-up relationship to the node object.

    Health Cloud: Contact Center

    With the Contact Center, agents can quickly and securely handle members' concerns. They can verify a caller's identity, access health data, check insurance-related information, and even deploy actions set up in the Action Launcher. Agents can receive alerts on changes in record information and conduct quick searches of articles and FAQs within the Contact Center.

    Spring is a time to get moving ...

    ...and this update is focused on moving data quickly and efficiently to get your organization growing. Whether it's moving changes from dev to production using the DevOps center, bringing your external data into Salesforce easily with HTTP Callout, or being more mobile and flexible with offline apps, Salesforce finds innovative ways to keep processes and flows moving. 

    If you would like more information on these updates or to view past updates, please visit the official release notes. If you have any questions about Salesforce or want to see any of the implementations in your own Salesforce organization, contact DB Services!

    ]]>
    <![CDATA[Appending PDFs on FileMaker Server]]> https://dbservices.com/blog/appending-pdfs-with-filemaker-server https://dbservices.com/blog/appending-pdfs-with-filemaker-server Thu, 08 Dec 2022 11:12:00 -0500 PDF files are essential in the business world, and being able to create and manipulate them is a must. Appending one PDF to another is a handy tool for operations like report generation. Let’s take a look at options for appending PDFs on FileMaker Server.

    There are two basic rules when appending PDFs in FileMaker:

    1. Native FileMaker can only append a PDF if it is currently exporting to an existing PDF.

    2. The BaseElements plugin allows you to append existing PDFs together. 


    This basic distinction is important to keep in mind. If you are exporting a report PDF that is based on multiple layouts (or a single layout), use native functionality to go to each layout and export/append all the data as you go. However, if you wish to append an existing PDF to another existing PDF, you'll have to use the BaseElements plugin. We'll look at both methods in this article. Regardless of the tool you use, both can be run by FileMaker Server. Let's get started!

    Note: In order for server functionality to be demonstrated, you will have to host the demo file (found at the end of this article) on your server. You can run the scripts locally and get the same result, but in the attached video and going forward, I will be demonstrating using a hosted file.

    ]]> Append PDFs Using Native FileMaker Server

    In the demo file, on the right hand side is a field for demonstrating native FileMaker Server. This field will hold the appended PDF once it’s been generated. The data for this PDF is based on layouts, which we will look at in a moment. Click the Append FileMaker Data Using FileMaker Server button. Once the server processes it, the Result PDF field will contain a PDF consisting of a header page and a sample report.

    ]]> Let’s look at where this data came from. Using the layout drop down, go to the Report Header layout. As we’ll see shortly, this is exported as a PDF and then appended to.

    ]]> Use the layout drop down to go to the Report Layout. This layout is exported as a PDF and appended to the Report Header PDF when we run our script.

    ]]> Now let’s see what’s going on under the hood. Open Script Workspace and go to the SERVER – Append Report script.

    ]]> The script exports two PDFs to the same location. When exporting the second PDF, the Append to existing PDF option is turned on; this tells FileMaker to append the PDF to the PDF at the file path. Once that happens we have our finished PDF; all that's left is to import it into FileMaker. Because the Insert PDF script step is not supported on FM Server, we use the Insert from URL step and specify our file path as the source URL.

    Note: The Save Records as PDF script step is only partially supported by FileMaker Server and was not available until version 16.

    For more information regarding the how, when, and security options for appending PDFs, see Claris's support page here. Of particular interest, it specifies that when running on FM Server, you can only append to a PDF generated earlier in the same script. This is important to remember when script planning.

    Go back to the Main Screen layout. Now we’ve got our appended PDF in a container field and can utilize it for our business operations.

    Append PDFs using BaseElements

    Suppose, however, we want to append two existing PDFs together. We can't use native FileMaker functions to append; that only works if we are currently exporting data as a PDF. This is where the BaseElements plugin comes in. On the left hand side of the screen, you’ll see two container fields; one for holding the base PDF and one for the appending PDF.

    Click the Append Existing PDF to Base PDF Using BaseElements button. The base PDF now has the existing PDF appended to the bottom. You can click this button multiple times and it will keep appending the existing PDF; the end result is one very long PDF.

    ]]> Open Script Workspace and go to the BaseElements – Append PDFs script. You’ll notice it’s much simpler than the FM Server script we looked at earlier. All the action takes place in line 11, where we set the base PDF field to the result of the BE_PDFAppend function. We pass in our two container fields (one for the base PDF and one for the existing PDF) and BaseElements takes care of the rest. 

    ]]> The BE_PDFAppend function can also take file paths as parameters and create a new PDF based on the appended PDFs, giving you even more flexibility. For more information on the function and its capabilities, click here for the BaseElements BE_PDFAppend information page. 

    Conclusion

    Appending PDFs together is an essential tool for data manipulation. When deciding what method to use for implementing appending PDFs in FileMaker, remember the two rules:

    1. Native FileMaker can only append a PDF it is currently exporting to an existing PDF.

    2. The BaseElements plugin allows you to append existing PDFs together. 


    These two rules will help you determine what solution meets your business needs. If you have any questions about manipulating PDFs in FileMaker or would like to discuss how this could help your business, contact us today!

    ]]>
    <![CDATA[Claris FileMaker Transaction Scripts]]> https://dbservices.com/blog/claris-filemaker-transaction-scripts https://dbservices.com/blog/claris-filemaker-transaction-scripts Thu, 01 Dec 2022 10:05:00 -0500 For any system with multiple users, transactional scripting is a must to ensure data integrity. One of the most exciting features of Claris FileMaker 19.6 is the addition of transaction script steps. These transaction script steps are easily one of the most important development features since cURL was introduced. This will allow developers who have already been writing transactional code to write it much faster. Transactional scripting helps ensure that your application is cleaner, more accurate, and free from technical debt. 

    ]]> What are Transactions?

    Transactional scripting in FileMaker means that you do not save any changes until all database record modifications have been completed for a given process. For example, let's say you wanted to submit an order in a system and have an invoice automatically created. Part of the process may include other tasks like updating inventory counts, sending emails, updating values in the order line item table, etc. 

    Transactional scripting means that if everything goes through without error, you can commit the changes and move on. However, if any one thing fails or has an error, the entire process will be rolled back as if nothing ever happened. Previously, this required time-consuming development to create many relationships with huge scripts and specific developer layouts to allow for things like record deleting.

    New & Improved Transactions

    Let's introduce the new transaction script steps released in Claris FileMaker 19.6:

    • Open Transaction: Starts the transaction process. All record changes are held in the transaction until a commit or revert transaction occurs. Script steps following the open transaction script will be indented in, similar to the Loop script step. This step has two options that are similar to the commit Records/Requests script step where you can state that when the transaction ends and commits, you have the option to skip data entry validation and/or override ESS locking conflicts.

    • Revert Transaction: Ends the transaction process and returns all records that were modified to their original state. You must specify the condition that must be true in order for the revert to take place. Similar to an Exit Loop If script step setting the next step as the end loop, it will then set the next script step to the commit transaction step. You may also pass a custom error code (between 5000 and 5499) and a custom error message.

    • Commit Transaction: This ends the transaction and commits any changes made, using the settings set in the open transaction script step. This also removes the indent created by the open transaction script step, similar to the End Loop step.

    ]]> Why is Open Transaction awesome?
    • Vastly speeds up development time. 

    • Simplified and more readable code.

    • Learning the right way to write transactional scripts is no longer a college-level course.

    • Significantly cuts down on the number of TOs needed for an application. 

    • Decreases the need to create global fields just for a relationship to create related records transactionally.

    • No longer dependent on objects being on a layout in order to delete a record.

    • Spend less time debugging relationships and scripts.

    • Reduce application size from reduced layouts, TOs, and scripts.

    ]]> More Important Information

    Above is everything you need to know to get started, but here are a few tips and tricks about the specific behavior of the new functionality:

    1. Changes are still only tracked within the TO where the change was made. This means if you make changes to a line item table from a line item layout, you will not see those changes on the parent layout through a relationship until the transaction is committed.

    2. Finds will always search on record data prior to an open transaction. If you delete a record, and do a find on that record all within one open transaction, that record can be within the found set of records. 

    3. Use Get ( LastError ) and Get ( LastErrorDetail ) to get the custom code and message from the Revert Transaction script step.

    4. Some script step errors will automatically revert the transaction and set the next script step to the commit transaction step.

    5. Every Open Transaction must have the corresponding Commit Transaction within the same script.

    6. You can not have an Open Transaction within another Open Transaction. That includes subscripts. 

    7. You can not have a Revert Transaction or a Commit Transaction on their own. That includes subscripts.

    8. To optimize performance, make sure you have developer layouts for you to navigate to that do not have any slow-performing objects on them (unstored calculations, summary fields, etc).

    9. Enter find mode before navigating to a layout to do a find. This will ensure you do not load any record data unnecessarily.

    10. Use Get ( TransactionOpenState ) to programmatically determine if you are currently in a transaction or not.

    11. The data layer in FileMaker is still king. If you have a process that needs to go through a lot of records or make a lot of CRUD (create, read, update, delete) events across many records/tables, relationship-based scripting will perform better. 

    Conclusion

    Transactional scriptwriting should be used to ensure the entire process completes with data integrity and trust in the data of your applications when managing inventory or any data that is updated as part of process completion. Your application needs to be prepared to handle when errors occur and roll back the process when they do occur. With the new transaction script steps, that is now faster and easier than ever to do. If you need help updating your system to use transactional scripting, contact our team at DB Services.

    ]]>
    <![CDATA[Claris FileMaker Server 19.6 Overview]]> https://dbservices.com/blog/claris-filemaker-server-19-6-overview https://dbservices.com/blog/claris-filemaker-server-19-6-overview Thu, 01 Dec 2022 10:04:00 -0500 OAuth

    Apple ID Sign-In

    The highlight of this release! Users can now use their Apple ID to sign in to databases using OAuth. To use this, there are three prerequisites: an Apple Developer account, a valid SSL certificate, and SMTP configured on FileMaker Server to send email notifications. An Authkey must also be configured to properly set up Apple ID Sign-in. Documentation to get started can be found here.  

    Additional OAuth Changes

    FileMaker Server 19.6 also brings two other changes in OAuth. First, Databases that aren't configured for OAuth will no longer show OAuth sign-in, even if FileMaker Server configurations contain OAuth settings. The second change is that newly created files will now have the "Show sign-in fields when OAuth is enabled" option enabled by default.

    Admin Console and Admin API

    FileMaker Server 19.6 brought many new additions to the Admin Console and Admin API, including the ability to limit Admin Console access to specified IP Addresses, access to the Admin Console even when the Database Server is stopped or down, and a new Admin command.

    CloneOnly

    A new Admin Console parameter has been introduced in the newest update, "--cloneonly". This parameter is used with the fmsadmin backup command to create an empty clone rather than a complete backup of the specified file. As an example, the console command using this parameter would look like this:

    fmsadmin backup MyFile.fmp12 -d "filemac:/C:/MyClones/" --cloneonly

    If the destination parameter "-d" is not specified, the clone will be generated in the folder "FileMaker Server/Data/ClonesOnly/".

    This feature is also usable when creating backup schedules. When creating a schedule, the Additional Settings menu now has the option to "Clone Only". When checked, the database will be cloned to the specified folder or the default folder specified above.

    Admin Roles

    Also introduced in this new release, Admin Roles allow you to administer a subset of databases using a distinct username and password with a chosen set of privileges. These privileges currently include:

    • Perform actions on databases

    • Perform actions on schedules - Backup databases, Verify databases, Run scripts

    • View Logs


    Note that currently, Admin roles are limited to Admin Console sign-in and not the CLI or Admin API.

    Locking Console Access

    In FileMaker Server 19.6, it is now possible to limit access to the Admin Console via the Console or the Admin API.  In the Admin Console, this option can be found under "Administration > Restrict Access". An important thing to note is that IP 127.0.0.1 (localhost) is always allowed and doesn't have to be specified by the user. In the Admin API, users can both get the list of IPs currently allowed or update listed IPs, via the following commands:

    Get Restrict Access:

    GET https://hostAddress/fmi/admin/api/v2/server/restrictaccess

    This needs only the header "Authorization: Bearer {accessToken}"

    Update Restrict Access:

    PATCH https://hostAddress/fmi/admin/api/v2/server/restrictaccess

    Needed headers include "Authorization: Bearer {accessToken}" and "Content-Type: 'application/json'", and needed parameters are "restrictIDEnabled: {boolean}" and "restrictIPList: {comma separated list of IPs}".

    Additional Admin Console and API Updates

    In addition to the highlights above, this release brought a few more new features and updates to administer your databases:

    • The Admin Console is now accessible even when the database server is stopped or down

    • The Admin API can now get and set database filtering options

    • Admin API login can now be authenticated with a JSON Web Token that can be revoked at any time from FileMaker Server

    Data API

    You will also see a few Data API in this release, including:

    • Data API Database Names endpoint guest control - The Database Names endpoint now requires authentication when the following items are both enabled: The Filter Database in Client Application option and the DenyGuestAndAutoLogin flag that can be set via the CLI.

    • The "Get a Single Record by ID", "Get Records", and "Find Records" endpoints now include an optional "dateFormats" parameter which controls the format of date and timestamp returned: 0 for US, 1 for file locale, or 2 for ISO8601.

    Additional Features and Changes

    Aside from the above, the FileMaker Server 19.6 release is bringing with it many more changes, including:

    • The ability to create a CSR with a secondary machine: The Admin Console on secondary machines will now include a button labeled "Create CSR"

    • The FileMaker Data Migration Tool is now bundled with the FileMaker Server installation package - the file "FMDataMigration" is located in the same folder as other executable files

    • WebDirect updates, including improvements to the list view and better record-lock handling

    • The Admin Console now includes an option to "Download All Logs" on the Logs page

    • The Admin Console and Admin API now allow for the configuration of a second additional database folder, a second container data folder, and whether to backup the files in a second container data folder

    ]]> Wrapping Up

    The new Claris FileMaker Server 19.6 release brings a lot of new improvements to the table. The new OAuth options, the ability to create empty clones via the Admin Console, and the various improvements to existing features look to greatly improve your experience in managing your databases and FileMaker solutions. If you are looking to upgrade your FileMaker server or have any questions regarding the release, please contact us for more info to get the most out of Claris FileMaker.

    ]]>
    <![CDATA[Claris FileMaker Pro 19.6 Overview]]> https://dbservices.com/blog/claris-filemaker-pro-19-6-overview https://dbservices.com/blog/claris-filemaker-pro-19-6-overview Thu, 01 Dec 2022 10:03:00 -0500 Transaction Scripts

    Arguably the largest new feature that 19.6 brings to the table is built-in support for transactions. Transactions are an excellent way to bundle sets of actions together, executing them or reverting them as a whole instead of a several smaller pieces. They are typically used for the mass creation, editing, or deletion of records where you want to ensure the entire set of data is valid, and if it is not, discarding the entire transaction as if the script itself never ran. While Filemaker has had the capability of performing transactions via scripts, in the past it involved manually setting up a transactional environment and database tables dedicated to transactions; to help with performing this extremely useful action, Claris has added three script steps explicitly for use with transactions. These script steps are as follows:

    • Open Transaction: This step initiates the start of the transaction. Any changes in database records made after this step will be stored inside the transaction and will not be committed or reverted until the relevant transaction script step is called. If the script ends before reaching the commit step, it will automatically revert the transaction. You can make as many changes to the database as you want inside a single transaction, but keep in mind it will all be reverted unless explicitly committed via the 'Commit Transaction' script step.

    • Commit Transaction: Ends the current transaction. Regardless of whether the user chooses to keep or discard the transaction, this script step must be called to close the transaction environment. 

    • Revert Transaction: Discards any data changes the transaction made. You can set this script step to only activate based on specific conditions, and you can also optionally have it throw an error code and message in the script if it activates. Once this script step is called, it ignores any other lines of the script between itself and the 'Commit Transaction' script step and runs that step next.


    Related to the addition of transactions, the Get (TransactionOpenState) function can be used to check if the script is currently inside a transaction environment or not. It returns 1 (True) if it is, and 0 (false) if not. This can be useful for calling several different transactions in one script, as well as for error handling.

    If you would like to read more about transaction scripts, check out our Transaction Scripts article, which includes a download file and demo video. 

    Set Dictionary

    The new Set Dictionary script step allows users to specify both the dictionary and language for the current instance of the file. This can be useful for systems or layouts used by non-English users, but keep in mind that it does not translate any pre-existing text into the language, but rather checks the spells of text in the system against the language specified. When using the step, it looks something like this:

    Set Dictionary [ Spelling Language: UK English; User Dictionary: "User_uk.upr" ]

    If you want to use a dictionary other than the default for the language chosen, then it must be provided from a file source--either locally or from a container.

    Other New Functions

    In addition to the new Dictionary function, several other functions have been added or updated for compatibility with Transactions. They are as follows:

    • Get (CurrentTimeUTCMicroseconds) - This new function returns the current time in UTC format to the nearest microsecond.

    • Get (LastErrorLocation) - This new function returns the location of the error that gets returned by Get (LastError), and is compatible with transactions. If an error occurs within a transaction, then this will return the location of the 'Commit Transaction' script step.

    • The function Get (LastExternalErrorDetail) has been renamed to Get (LastErrorDetail) and now returns error details for a transaction if it is called after exiting one. This function's use--returning the text of an error, including the script name, the script step that caused the error, and the line number of the step--is unchanged from how it has been in prior FileMaker versions.

    Other Updates

    Disable context menu for interactive containers

    Users with full access can disable the context menu for containers that are interactable via the Inspector in layout mode. With this option enabled, non-Admin users will not be able to access the context menu for containers by right-clicking, thus limiting their access to edit the field.

    ]]> Delete Cached Temp Files

    Temp files are typically deleted when the user closes the file, but if you need to remove them from your system sooner, you can manually delete them from the Preferences menu. In "Preferences" > "General", a new option has been added under "Application" to "Delete cached temp files".

    ]]> Summary

    Claris FileMaker Pro 19.6 provides more innovative improvements that will make development more efficient. We are excited to use these new updates in Claris FileMaker 19.6 to continue to help you build custom applications. Contact DB Services at any time if you have questions or needs with Claris FileMaker!

    ]]>
    <![CDATA[FileMaker Authorize.net Integration]]> https://dbservices.com/blog/filemaker-authorize-net-integration https://dbservices.com/blog/filemaker-authorize-net-integration Thu, 17 Nov 2022 10:40:00 -0500 Authorize.net, founded in 1996, is one of the internet's oldest online payment methods—and it continues to be a popular choice for payment processing platforms. Over 430,000 merchants of any size have used Authorize.net to handle a billion transactions every year, and it is supported by many of the major hosting platforms like Shopify, WordPress, and BigCommerce. Using Authorize.net's streamlined and straightforward API, your business can instantly and securely interact with customers by integrating with FileMaker.

    ]]> Authorize.net Account Setup

    To begin, you must first have an account. If you don't have a merchant account, you can easily create a sandbox account to test with. To follow along with this article, it is recommended to create and use a sandbox account. 

    Once your account is created and you've logged in, one of the first screens you'll see is a popup. Here, you can change your Authorize.net account to a live version or a test version. For this article, we will switch it to live. No payments will be processed in either mode for a sandbox, but switching it to live allows us to track payments and transactions.

    From there, we can get the two pieces of information we need under Account Settings > API Credentials and Keys. We will need the API Login ID and the Transaction Key, which will need to be generated and copied.

    ]]> Our next step is to put this information into the appropriate places in FileMaker. We'll put the Login ID and Transaction Key on the setup screen of the test file, as well as select which type of account we have (merchant or sandbox). This will determine the URL of all of our API calls, which is always either https://api.authorize.net/xml/v1/request.api or https://apitest.authorize.net/xml/v1/request.api

    ]]> Creating Customer Profiles

    One of the quickest and easiest processes in Authorize.net is setting up a customer's profile—simply plug in their information and let the call do the rest of the work. However, if you're familiar with API calls, you'll notice there's something immediately strange about Authorize.net's API calls: the JSON must be ordered in a certain way, or the call won't work.

    The Authorize.net API, which is not based on REST, offers JSON support through a translation of JSON elements to XML elements. While JSON does not typically require a set order to the elements in an object, XML requires strict ordering. Developers using the Authorize.net API should force the ordering of elements to match this API Reference.

             Source: https://developer.authorize.net/api/reference

    This becomes the hardest part of integrating FileMaker and Authorize.net, as FileMaker automatically sorts the JSON alphabetically, which we don't want. Fortunately, there's always a workaround. By using a custom function called JSONSerialReorder, we can order the JSON how we need it, and the calls are back to being easy. Below is an example of using the serial reorder to make a properly formatted JSON element.

    ]]> The call above perfectly replicates this:

    ]]> Since we're only using the test environment, we can use a test credit card number. After that, we'll fill in the rest of the customer's information in FileMaker, and make the call to Authorize.net to create our profile.

    ]]> Processing Payments

    After our customer has been created, as a very basic transaction, we can charge the customer an item they purchase. This can be done in many ways, such as a subscription, charging the card, or charging the customer profile. The API call for charging a customer looks similar, too:

    ]]> When a charge comes through successfully, a "merchant email" should be sent through to the email address you used to create the Authorize.net account. 

    ]]> And that's it! A basic and straightforward approach to implementing Authorize.net and FileMaker. You can play around and see what's allowed in a call and what's not. For example, periods can't be allowed in any text, or that will mess up the call. This, among other safety checks, should be addressed before releasing an integration.

    Conclusion

    By integrating Authorize.net and FileMaker, processing and recording payments can be faster than ever, and the risk of human error is significantly reduced. There's no limit to what you can do between these two systems; pulling processed payments from Authorize.net into FileMaker is just as easy as charging a card. Combining FileMaker and Authorize.net gives your business more time to do what it does best: focus on the customer. If you would like help integrating Authorize.net with your FileMaker application, don't hesitate to contact us!

    ]]>
    <![CDATA[User Acceptance Testing]]> https://dbservices.com/blog/user-acceptance-testing https://dbservices.com/blog/user-acceptance-testing Fri, 11 Nov 2022 11:20:00 -0500 What is user acceptance testing (UAT)?

    User acceptance testing (UAT), also sometimes called end user testing, is the stage in a project where the software is tested by its intended users. The goal of UAT is to make sure the software performs as intended and no features have been overlooked or contain bugs. 

    Why is UAT important?

    Simply put, developers should build the product; quality assurance (QA) professionals should handle all the initial testing, and the end user should be completing the UAT. By sticking to this distinction, we ensure that the software is doing what it is designed to do in the user’s actual workflow that may have been missed by general QA testing. On top of validating the end-to-end business flow, UAT is also a cornerstone in helping prevent re-work after a release. Fixes that are made after the software has gone live can create an unnecessary burden and typically ends up costing more time and money than it would have if those issues had been caught prior to release. This is where UAT really thrives. 

    UAT Process Management

    The key to successful UAT is adopting industry standards. Let's go over the steps you can take to successfully implement UAT into a business development schedule.

    1. Knowledge Gathering: The first step to successful UAT is gathering the information required to create comprehensive test cases. Here, we are defining the sequence of user action, guidelines for specific tests, and intended results from the user action.

    2. Scope: While testing in general is crucial to the success of a business process, there are unique situations where UAT can safely be ignored. Ensuring that UAT is included when defining the scope of a project means that both the development team and end users can be assured that resources are not being wasted on tasks that are non-critical to the overall success of a project.

    3. Design and Execution: This is where the success of UAT will really be defined. The best suggestion is to plan time for UAT sessions before crucial milestones when the development team, dedicated testers, and end users can meet to create successful documentation. Once a testing document is created, the users that will be testing can begin work. At the end of this article, there is a downloadable UAT template that can be used during this design and execution phase.

    4. Confirmation: Once the testing document has been executed and all defects and bugs have been resolved, it is time to sign off on UAT and then go live.

    UAT Document Training

    Accurate and thorough documentation on the UAT strategy and general plan is crucial to a successful and efficient outcome. Documentation should feasibly include as much of this list as possible:

    • Out-of-scope situations worth testing

    • A generalized agreement on standards that dictate a pass or fail on a test step

    • How to carry out each step in the testing process

    • Expectations for the UAT session as a whole


    At the end of this article is a downloadable template that can get your organization started implementing a UAT cycle into your development workflow. 

    Starting at the top of the document, you should begin with general information including who will be completing the UAT tests, the project name, and any other information deemed relevant to the project. Just below this header are the columns where the actual test cases will be defined by number. Make sure to always include the date of testing for each test case.

    While most of these first columns are self-explanatory, the focus of this article’s training will be in columns C - F, which describe the user actions, expected vs. actual results, and the pass/fail column.

    ]]> Typically, the user action and expected results columns will be defined by whoever would have the most knowledge on potential fringe cases, overall workflow for the project, and where the most value will be seen from the project. 

    Following this, the users tasked with completing the UAT will fill out the columns for actual results and pass/fail. If the intended result of a step is completed, no real action is necessary and a quick check in the box defines that step has passed UAT. However, if something unintentional happens during a step in the process, this is where the most valuable information will be found. Issues that would be helpful to add here would be inconsistencies in visual elements within the project, defining whether or not the user experience is intuitive and efficient, and any error messages that may get presented.

    ]]> Finally, the notes field at the far right is a great spot for documentation of fixes or where developers or support employees can put the date that they resolved the issues, which lets the UAT professionals know it is safe to test again. Think of the notes field as a sort of change log for each individual step.

    The scope of the project will dictate whether the bottom tabs of the document are necessary. If the scope is small and the project does not have multiple iterations or releases, then we can easily use one dedicated document to complete all UAT. However, if there are known milestones in the project development cycle, having separate tabs for milestone-specific UAT sessions is beneficial.

    ]]> Conclusion

    A successful UAT cycle can take some time, but the benefit of spending that time upfront will prove invaluable to anyone that’s experienced the hassle and cost of post-release bug fixes. By allocating resources early in the scope of a project for UAT planning and execution, there will be greater security in knowing that a project is truly ready to be released into the wild. While it is great to be skilled in all steps of a project’s lifecycle, one key thing to remember is: developers should develop, internal QA should be done by dedicated QA professionals, and the intended end users should be the last bastion to complete UAT.

    If you have any questions regarding this article, the downloadable template, or user acceptance testing as a whole, please feel free to reach out to DB Services and let’s see how we can implement UAT in your organization. 

    ]]>
    <![CDATA[Salesforce Spring '23 Release Dates]]> https://dbservices.com/blog/salesforce-spring-23-release-dates-and-preview-information https://dbservices.com/blog/salesforce-spring-23-release-dates-and-preview-information Thu, 03 Nov 2022 09:14:00 -0400 Though many of us are still enjoying the changing leaves and cooler weather of autumn, it's already time to start preparing for the Salesforce Spring '23 release that is quickly approaching. Let's talk about the important dates you'll need to know for this release.

    Get Ready for the Release!

    Important Dates for Spring '23

    • Pre-Release Org Sign Up: December 15

    • Release Notes: December 21

    • Sandbox Previews: January 1

    • Release Dates: January 13, February 3, February 10 

    ]]> Spring '23 Pre-Release Org

    Pre-release orgs are a great way to test the new release features in a clean, stand-alone environment before they're rolled out into your sandbox and production orgs. We will add the link to sign up here when it becomes available.

    If you already had a pre-release org for Winter '23, you can log back into that one to access your Spring '23 pre-release org.

    Spring '23 Release Notes

    Release notes offer us our first in-depth look into each new feature that will be implemented across Salesforce once the release goes live. You can easily search for the updates that will be made to the products you use!

    You can also find updates, ask questions, and discuss your favorite features in the Release Readiness Trailblazer Community Group.

    Be sure to sign up for our newsletter so you can stay up-to-date on when the release notes become available!

    Spring '23 Sandbox Preview

    The Sandbox preview is a great way to test out the new features as they pertain to your unique configurations within your own Salesforce org, without affecting your live environment. Use the Salesforce Sandbox Preview Guide to determine if you want to upgrade your Sandbox or keep it on Winter '23 until Spring '23 officially releases.

    Spring '23 Release Dates

    The most important thing to do is make sure you're aware of when your Salesforce instance is going to be upgraded to Spring '23. Be sure to test everything before the release goes live to ensure everything works properly and you know how to navigate the new features and upgrades. Be sure to check out the Release Resources page to help prepare for the new updates!

    You can find your Salesforce instance by going to company information in Setup within Salesforce. To find your release date, go to Salesforce Trust, select your instance name, and click on the "Maintenance" tab. This will show you the date that your org will be upgraded to Spring '23.

    If you have any questions about Salesforce or want to get started on your digital transformation, contact us today!

    Sources: Salesforce Admin Blog

    ]]>
    <![CDATA[Salesforce Custom Objects]]> https://dbservices.com/blog/salesforce-custom-objects https://dbservices.com/blog/salesforce-custom-objects Tue, 01 Nov 2022 11:37:00 -0400 Whether you are new to Salesforce or have been using the platform for years, it can sometimes be difficult to know when to utilize its native form and function versus building a custom solution to best fit your needs. One of the simplest (yet still complex) examples of this is the use of custom objects.

    Imagine you have just signed into your new Salesforce org for your sales-based business, and you are ready to start building out the platform. You have a checklist of tasks for new accounts that you have been keeping in Excel and want to bring into Salesforce. The tasks could be automatically created as task records for each new account, but your process doesn’t exactly match the native function of task records. Additionally, you have over 100 tasks per account, and you don’t really like the idea of having that many related tasks to keep track of.

    You start to think about maybe creating a custom object that houses the task list and keeps track of their status. Then the dilemma sets in. If you use a custom object, are you going against the intended functionality of the system? Would you be missing out on key features that are linked to the standard object?

    This is the kind of scenario Salesforce admins face constantly, and the concern is valid.

    It does not, however, mean we must remain in FUD about the value of custom objects. By understanding our business processes and breaking down the requirements into digestible and translatable objectives, we can be confident that the solutions we build will meet our needs. And properly deployed custom objects play a crucial role in delivering on that inherent promise of customizability.

    What is a Custom Object?

    To answer the question, “What is a custom object?” it would first help to know what objects are at all.

    ]]> In Salesforce terms, objects are database tables where business-specific data is stored. Think of it like a spreadsheet where columns represent different fields and rows represent different records. When you need to represent a relationship to another object (ex. a Contact to an Account), one of those fields will hold that relationship.

    Depending on the Salesforce product you are using, a variety of these objects and relationships will come standard on the system. These are called standard objects and some of them are important for system functionality, like the User or Profile objects. But many more of them are intended to represent common business objects like accounts, contacts, leads, etc.

    As you may have surmised by now, custom objects are objects that are not standard. These objects can be created by the user or may come as part of a package installed from the AppExchange or somewhere else. And their purpose is to provide a method for users to store data and relationships in ways that would not be fully serviced by a standard object.

    Simply put, if you have data that you want to store in Salesforce, but it doesn’t make sense to use a standard object, you could create a custom object. You may be wondering, “This sounds simple; why would anyone be afraid of custom objects?” There are a few very important components to that answer. 

    Custom Object Considerations 

    ]]> What Could Go Wrong 


    1. Relationships, Redundancy, Reports

    These 3 R’s represent the structural aspect to consider when determining how objects fit in the data model. It’s all fine and good to have a custom object sitting alone by itself with no relationships to other objects, but the value of this is limited. Relationships add dimensions to your data and allow you to draw deeper insights and find meaningful patterns that you can act on. That is if the relationship is represented accurately.

    As an example, consider a business that utilizes the standard Account and Contact objects but has another type of contact that they want to segment from their standard contacts because they serve a different role on the account. To facilitate this, their admin essentially clones the Contact object and calls the new custom object Contact 2. And some of the standard contacts may also be Contact 2’s, so they will have records in each object.

    After a while, the admin notices some flaws with the option they chose. Because there are redundant records between objects, some discrepancies in contact data exist due to users not updating both records, and they don’t know which contact information is correct. Also, they now have to run 2 separate reports to see all their contacts and have to manually stitch them together to get the actual report they need. On top of that, there are even more issues to deal with. 

    2. Record Sharing

    After creating the Contact 2 object, users started noticing that almost everyone had access to all the new Contact 2 records. The standard Contact object had sharing settings established that represented record access by sales division and territory. But the new custom object was created with public read/write access and users who should not have had access to certain records had erroneously modified them.

    3. Object Permissions

    Additionally, issues with object permissions for the Contact 2 object were not correctly established, causing users not to have visibility of certain fields that they should have, or not able to see any records at all.

    4. Features and Automation

    Lastly, users reported that features and automated processes built around the standard Contact object could not be readily utilized with the new custom object. They learned that leads may only be converted to a standard Contact record and that a record-triggered flow to send notifications and make field updates would need to be cloned and amended to facilitate the new object.

    Clearly, the admin in this example did not fully realize the consequences of this approach. Had they done so, they may have looked for alternative solutions that leveraged the standard functionality of Contact Roles, bypassing the need for a custom object. This cautionary tale only serves to illustrate the value of a thorough comprehension of your business processes related to your requirement. 

    Now let’s explore an example where analysis and proper utilization of Salesforce tools produce a satisfactory solution.

    What Could Go Right

    Company A is a service business that provides inventory management to its accounts. These accounts should be able to see and place orders for inventory held by other accounts that they have an agreement with. Because these relationships changed so frequently, they could not use Groups alone to share required records. Their admin realizes that to be able to meet this need, a representation of a many-to-many relationship between account and account will need to be used. 

    The admin evaluates their options and determines that the relationship itself should be a record and that no standard object would be able to be utilized to meet this need. They create the custom object (aka Junction object) and use this as a foundation to build their entire management solution.

    Because the relationship between accounts was accurately understood, a mindful evaluation of their needs resulted in a new object with no redundancies. Additionally, because the custom object was used to relate inventory and order data between accounts, they were able to create reports that contained all the information they needed without extra manipulation. 

    As a part of deploying their solution, Company A’s admin based their sharing rules on the junction object to ensure each account had access to the records they needed. Finally, because this custom object was a completely novel representation of data in their system, they did not need to worry about granting object permissions to their external users or maintaining access to flows or standard features. 

    Though the extra analysis of their requirements cost them some time in the beginning, the value realized through the end product was far greater than if they had mimicked the route taken in the previous example.

    When to Use a Custom Object vs. a Standard Object

    Now that you have seen examples of both a poorly conceived utilization of custom objects and a skillful one, it may still be tricky to discern when the proper situation is to utilize them over a standard object. There are also some less obvious factors that you should consider depending on your situation. To distill the lessons we learned earlier and add some additional context, here are some questions you can use to help guide your decision.

    1. Is there a standard object that mostly represents the type of data I am looking to store? 

    Often, if there is a standard object that exists which could serve as the target object with some mismatches (ex. Missing fields, relationships, or segmentation) you may want to consider some ways in which you could use the standard object and make modifications. A combination of fields, record types, page layouts, sharing settings, and other features can go a long way in meeting your needs.

    2. Are there features specific to a standard object that cannot be easily replicated with a custom object? 

    In addition to the lead conversion example in the scenario above, certain features and rules may be specifically scoped to standard objects. Consider the requirements of your needs and if they intersect to help you decide.

    3. Are there fields on a prospective standard object that I don’t need?

    Some standard objects have required fields that may not be necessary for your needs. For example, Opportunities require a close date for the record to be saved.

    4. Are you planning to utilize the same object for many different apps? 

    If many divisions or people will be storing data in the same object and require different record types, page layouts, and security settings, it may make more sense to create a custom object. Depending on the nature of the object, the needs of the business, and the effort of maintenance, a custom object might be better suited to the job.

    5. Will creating a custom object require the creation of additional objects?

    If you are attempting to recreate a relationship between a parent and child object, you very well may have to create more than one custom object. This may be easily doable depending on the situation but could also cause an undue amount of extra work.

    Do Not Object to Custom

    At this point in our understanding of custom objects, I sincerely hope you've been assuaged of any residual FUD. The fact is that if you intend to bring your entire business into the platform, it is unlikely that you can get away without needing to create a custom object at some point. But that should not be any reason to raise fear, uncertainty, or doubt about the way you use objects, so long as you employ thoughtful analysis to the particular needs of your process. Custom objects are meant to set your data free (figuratively), not pigeonhole it into some object that was never intended to hold it. 

    If you wish to explore the true potential of a thoughtfully designed data model in your Salesforce org, please to contact DB Services for any questions you may have!

    ]]>
    <![CDATA[FileMaker SignNow Integration]]> https://dbservices.com/blog/filemaker-signnow-integration https://dbservices.com/blog/filemaker-signnow-integration Tue, 18 Oct 2022 11:25:00 -0400 When it comes to sending important legally binding documents, no application does it as well as SignNow. With over 28 million users in more than 20 different industries using the enterprise-grade eSigning platform, it's no wonder so many businesses rely on it. This guide will show you how you can begin sending customized documents, as we walk you through this jam-packed tutorial. Integrating SignNow with your FileMaker solution makes sending virtual documents an easy task.

    ]]> SignNow Setup

    Before you start sending documents, you will need to create a SignNow account. For this tutorial, we will use a developer sandbox account. Once you have familiarized yourself with the integration features, you can move on to the production version. Remember the production version is not free. There is a free trial version, but you need to pay based on how many signatures/documents you are sending on a monthly basis.

    Once you have created an account, you want to go to the API settings page. To navigate there, go to the bottom-left of the navigation menu and click on API. Then you will appear on the API key settings page below.

    ]]> Once you are here, click on the blue button "Add App" to add a new API key. This will generate the basic token we need to copy and paste into our FileMaker application. Be sure the toggle is green, which ensures the API key is active. 

    Next, open up your FileMaker application and enter the required information. We need the API URL, the basic token, and the login username and password. For this example, we are using the sandbox environment, so the API URL is: https://api-eval.signnow.com, but once you are ready for production, you can use the API URL: https://api.signnow.com.

    ]]> The login username and password are from the SignNow account that you just created, and the basic token is the one you generated from the API settings page. Once all this information is filled in, you can proceed to the next step: getting the access and refresh token. Just click on the "Get Access & Refresh Token" to generate the tokens needed for all our API calls. We are now ready to create templates. 

    Create Templates

    Instead of storing templates in SignNow, we are adding the ability to store the templates in FileMaker. This will give you more power as a user to customize the templates and save them all in the same location.

    Usually, when you want a template, you would have to go to SignNow, add a template, and add the customized smart fields like the signature, date, and more, then pull the template ID from SignNow into FileMaker. This process is fine, but it doesn't give you as much control. Let's dig into why.

    Hit the "New Template" Button to go to the template setup page below.

    ]]> Here, you can enter the basic info like the name of the template and the description. The skip upload button allows you to override the template upload to SignNow so you can manually add the smart fields that will appear on the template document. We would advise not using that option unless you know the exact dimensions and location (down to the pixel) of where you want certain fields to show. 

    Add all the basic info, then start going down from step 1 to step 4. In step 1, you want to insert the document that you will be using as a template. Hit Insert to insert a PDF or a Word document file. 

    In step 2, hit the Upload to SignNow button to upload the template to SignNow. Remember, you need to have already logged in to your SignNow account because this step automatically opens up the webpage URL to the template document for you to add the smart fields. See image below.

    ]]> If you have not done so, the webpage will fail to load. You can always click on the generated link to open up the webpage if you need to go back.

    ]]> In the webpage that opened up with the template you uploaded, add all the smart fields that you need. Just a reminder that calculated field, drop-down field, and radio button group are not supported for this demo, but all the other fields will work. In this example, we have added an initials field to every page besides the last page and added a signature and date field on the last page. Once you have added all the fields you want the user to sign or enter data for, click on the save and close button in Sign Now. This completes step 3 and will allow you to save all the data before you pull it into FileMaker.

    ]]> Once the template is saved, we want to perform step 4 by hitting the Create button. If there are any errors, like no smart fields added to the document, it will capture the error and tell you so at this point. Otherwise, the smart fields are generated and the template document that was uploaded to SignNow is now deleted.

    ]]> As you can see, we pulled in an initials field that was created for every page but the last page. We also created the signature and the date field for the last page. Note that the pages start with 0 because that is how SignNow recognizes the pages. So the template we uploaded had 7 pages total. We pull in 8 fields with their exact dimensions, location, and page where they are located. All this information is in FileMaker now. 

    The most powerful aspect of this? You can modify them! You can manually add more fields and unique ones that are not on the list like a stamp field, change the dimension, change the page where they would appear, or delete them. A warning, though; if you add a field like on page 10, but there are only 7 pages, or if you add negative dimensions, the system will error out. But as they say, with great power comes great responsibility!

    Uploading Documents and Sending

    Once we have at least one template set up, we can now upload a document and send it using that particular template. Click on the next step button to go to the final upload and send document layout. To upload, select the template, insert the document to upload to SignNow, and hit upload. This will generate a link where you can see the document uploaded to SignNow. Another warning here; if you choose the wrong document template and document to upload, you will get an error. There is no way to check the document you uploaded is matching the templates, so you have to be diligent with your uploads here!

    ]]> Once the document is uploaded, it is very easy to send. Just add the recipient email address (the user who would be filling out all the information in the document sent). You can also use Cc recipients to allow multiple users to just be able to view the document, but they will not be able to sign anything. In the example, I am sending the document to three different emails.

    ]]> Once you hit send, if it was successful, you will get a message that says "Successfully sent document to users". To double check, you can go to SignNow and see that it is sent to three email accounts with one signer and two viewers.

    ]]> Conclusion

    Integrating SignNow with your FileMaker system can reduce the costs of sending documents while streamlining the process and allowing for automation. SignNow also allows you to easily create templates on the FileMaker side, giving you full control to customize your document signatures and other fields. Contact us today for assistance integrating SignNow with your FileMaker system.

    ]]>
    <![CDATA[AWS: Why Go Serverless?]]> https://dbservices.com/blog/aws-why-go-serverless https://dbservices.com/blog/aws-why-go-serverless Wed, 12 Oct 2022 11:21:00 -0400 AWS provides users with a framework and a set of tools for building powerful serverless applications. These tools offer the ability to run code, run and build your applications, and manage your data all while not having to worry about managing and maintaining servers. Some of the serverless architecture tools AWS offers include AWS Amplify, AWS Lambda, DynamoDB, Amazon API Gateway, and Amazon S3. If you are looking for a way to quickly build large-scale applications while not having to worry about spending time on infrastructure or managing servers, building an application using AWS' serverless architecture may be the way to go. In this article, we will discuss what serverless architecture is, why it is useful, and go into more depth about some of the tools offered.

    ]]> What is serverless architecture?

    Serverless architecture is a way for you to build applications without having to worry about managing infrastructure. Though the name may suggest it, AWS serverless architecture does not mean there is no infrastructure or that the application is not running on servers. Instead, it means that AWS handles all the server management for you. It allows developers to build applications without having to worry about managing servers. This removes responsibility from the developers and allows them to focus completely on building the application.

    Why is serverless architecture useful?

    Time-Savings

    Building an application using a serverless architecture can be very useful as it frees up a significant amount of time for the developers. Since AWS handles server management, the developers no longer have to worry about spending time setting up or managing servers. Instead, they can use this valuable time to focus solely on building the best possible application. This time saving also helps you get faster time-to-market for your application. 

    Flexibility

    AWS serverless architecture also provides flexible scaling for your application. AWS allows you to adjust the capacity of your application by toggling units of consumption such as throughput and memory. This simplifies things and allows you to scale your application easily and quickly.

    Billing Model

    AWS offers a pay-for-use billing model for your serverless applications. This means you are not paying for unused servers, which allows you to optimize your costs and save money.

    AWS Tools

    AWS provides a set of tools that, when used together, allow you to build a powerful serverless architecture. Below is more information on some of these tools as well as an example diagram of how these tools may be connected when building a serverless architecture.

    AWS Amplify

    AWS Amplify is a package of tools that allows you to quickly build and scale web and mobile applications. Some of the things included in AWS Amplify are code libraries, ready-to-use components, and a built-in Command Line Interface (CLI). This allows you to quickly put together backend pieces for your application instead of having to do it all by scratch. Using AWS Amplify along with other AWS tools is one of the quickest ways to build your applications from the ground up.

    AWS Lambda

    AWS Lambda is an event-driven serverless computing platform that allows you to run code without having to manage servers. Lambda will deal with everything that is required to run and scale your code. It also allows you to potentially save money since you only pay for the time you use; you are not charged for the service when your code is not running.

    Amazon DynamoDB 

    DynamoDB is a flexible and fast NoSQL database service. It is a fully managed, serverless, key-value NoSQL database designed to run high-performance applications at any scale. It offers many features including built-in security, continuous automatic backups, and data import and export tools.  If you want more information on DynamoDB and NoSql databases check out our article that compares NoSQL vs. Relational Databases!

    Amazon API Gateway

    Amazon API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale. It allows for efficient and flexible API development at any scale. APIs act as the "front door" for applications to access data, business logic, or functionality from your backend services. API Gateway allows developers to create RESTful and WebSocket APIs to enable two-way communication between applications. 

    Amazon S3

    Amazon Simple Storage Service (Amazon S3) is an object storage service offering scalability, data availability, security, and performance. S3 can store data for basically any use case at any size. It offers cost-effective storage classes that allow you to optimize your cost and easy-to-use management features that make it easier to organize and configure your data.

    ]]> Conclusion

    An application built using a serverless architecture can save time for developers, allow for flexibility when scaling your application, and save you money. AWS offers a wide variety of tools that allow you to build out your serverless application. If you are looking for a way to build an application without having to worry about managing or maintaining servers, a serverless architecture through AWS is a great option. 

    If you have any questions about serverless architecture or the tools AWS offers, contact DB Services, and let's talk about what we can accomplish together. 

    ]]>
    <![CDATA[Surveys for Success: Wheeler Mission]]> https://dbservices.com/blog/surveys-for-success-wheeler-mission https://dbservices.com/blog/surveys-for-success-wheeler-mission Thu, 06 Oct 2022 11:03:00 -0400 <![CDATA[Claris Studio: Kanban Boards]]> https://dbservices.com/blog/claris-studio-kanban-boards https://dbservices.com/blog/claris-studio-kanban-boards Fri, 30 Sep 2022 10:35:00 -0400 Claris Studio is a new online client that allows you to view and interact with your data from the web.  The release of the platform has brought with it a wide variety of new tools.  One of these is the Kanban board, a fantastic organizational tool for managing your projects!

    ]]> What Is A Kanban Board?

    For those unfamiliar with the idea of the Kanban board, it is an organizational tool used to help visualize current tasks related to a project. It makes use of columns and cards to show teams where they stand on their work and what needs doing, all in a clean, easy-to-interpret form.

    Getting Started

    Creating Columns

    Getting a board started in Claris Studio is incredibly simple. On login, you'll find yourself in the "Views" menu. From here, you'll select the "Create New View" drop-down in the upper right and click "Kanban". This will bring you to a blank board where you can get started. Each Kanban has four default columns: Not categorized, To Do, In progress, and Done. These four columns provide a strong base for organization, each representing a category to place project tasks based on status.  

    Now, you're not limited to only these four categories. You could break down pending tasks into categories by making new columns for each of them. Say you wanted to have a column for potential tasks for an employee, "Bob". To give them this separate organizational space, you would select the arrow in the top-right of the column you'd like to add this new one next to and select "Add Column After" or "Add Column Before". This will make a new column adjacent to the one this option was selected from, which can be freely named. We'll refer to this example as "Pending for Bob". Now, we can add cards to this column and start organizing our project.

    ]]> Tasks as Cards

    Now that we have a new column, let's add tasks. To create a new task card, we select the + button found at the bottom of the column we want to add it to. This will bring up a window to fill in information related to the work it represents. By default, this window has 5 boxes: "Title", "Subtitle", "Tag", "Image", and "Status". To continue with our previous example, let's say Bob is being assigned a future task and it needs to be put with his other pending tasks. In this case, we'll create a new card titled "Bob's Job", and fill in other information as needed. However, we don't need the default subtitle field, but we do need a description. We can rename the subtitle field to meet our needs by selecting the drop-down to the right of the field name. This will load up another window where you can change information relating to that field, including its name.  This feature is incredibly important, as users might not need only the default fields, or they might not need them at all.  As such, this ability to add custom fields and descriptors to your Kanban cards will be incredibly useful to many users!

    ]]> Having touched on the core components of Kanban, we're ready to move to the next step: tracking project progress via the board.

    Organization and Tracking Tasks

    Moving Cards

    Continuing with our example regarding Bob, once approval has been given for Bob's Job, we need to move the card over to indicate that the task needs to be done. On the Kanban board, this is extremely simple. We just pick up the card and move it to the next column. In Claris Studio, this is accomplished through click-and-drag. This can be done as needed for each task until the board is up-to-date.

    Organizing Your Board

    Claris Studio's Kanban offers a variety of features to make finding the tasks you need as easy as can be.  At the top of the board, there is a line of different tools to filter, sort, search for, or regroup your tasks.

    ]]> The first method we'll go over is "Group by". This allows us to group tasks by any single-choice field on a card. Say our "Assigned to" we referenced earlier was a selection for names. We could group by our "Assigned to" field and separate our tasks by team member. On a more crowded board, this would make finding a specific user's tasks simple.

    The "Filter" option allows you to only display cards based on various criteria input by the user. This includes searching for exact matches in a field or fields that don't have a certain word, among many other filtering options.

    ]]> Next, the "Sort" option allows users to sort by any number of rules. These rules are based on whichever fields users want to sort by in ascending or descending order. 

    The final organizational point on this line is the "Search" feature. This is exactly what it sounds like. You can enter in words and the board will highlight all the cards with text matching that search. This is perfect for when you don't want to filter away all other tasks but still locate a specific card.

    Conclusion

    The Kanban board is a wonderful method for managing your projects, and Claris Studio brings it to a user-friendly online platform. Claris Studio's Kanban board brings a variety of convenient features you don't get with a physical board and many other online clients. Using this and the other tools introduced in Claris Studio, you'll be able to take project management & organization and bring them to the next level! If you'd like to take advantage of Claris Studio for your organization, contact us at DB Services and we'd be happy to help get you started.

    ]]>
    <![CDATA[Claris Studio: Dashboards]]> https://dbservices.com/blog/claris-studio-dashboards https://dbservices.com/blog/claris-studio-dashboards Thu, 29 Sep 2022 11:09:00 -0400 Claris Studio is a new tool that makes your data easily accessible from the web. There are multiple ways to view data in Studio; in this article, we will be discussing Dashboards. Dashboards provide a visual representation of your company's data. Users can quickly build graphical displays to view relevant information. 

    ]]> To follow along, you'll need access to Claris Studio and the data file at the end of this article (our thanks to Debra Dalgleish at Contextures for the excellent sample data).

    Studio Dashboards are based on Spreadsheets. Before we can begin working with dashboards, we need a Spreadsheet with data in it. We'll start by creating a Spreadsheet with sample data. If you already have a Spreadsheet in Studio you'd like to use, skip ahead to Create a Dashboard. 

    Create a Spreadsheet

    Sign in to Claris Studio and go to the Views page. Create a new Spreadsheet by clicking the Create New View button and selecting Spreadsheet.

    ]]> Studio will create a blank Spreadsheet with a couple default columns. Click the table name to give your table a more descriptive name and delete the default columns.

    ]]> Now you have a blank Spreadsheet that's ready for data!

    The sample data we are using has the following columns: OrderDate, Region, Rep, Item, Units, Unit Cost, and Total. Click the plus button to add a column. Select the appropriate Field Type for each column: Date for OrderDate; Short Text for Region, Rep, and Item; and Number for Units, Unit Cost, and Total. The empty Spreadsheet should look like this:

    ]]> Now it's time to add data. You can import CSV files, add data from Claris Pro, or manually add data right in the Spreadsheet. We'll import a CSV file. Since we have the columns all set up, it's very easy to import our data. Click Table Actions > Import from CSV. If you haven't already, download the DB Dashboards Sample Data file at the end of this article and select this file to import. You'll be presented with a column-matching screen.

    ]]> Because we gave the Spreadsheet columns the same name as the columns in the CSV file, they should match up. Verify this and click Import. Studio will import the data, and now our Spreadsheet is populated!

    ]]> Create a Dashboard

    Now that we have a Spreadsheet with data, we can create a Dashboard! Click the Create Dashboard button located by Table Actions. A Quick Chart pop up will display. We can use this to create an initial chart for our dashboard. As an example, let's see how much our representatives have sold. Change the Chart Type to Bar and set the X-axis Field to Rep. Set the Y-axis Field to Total, and the Summary Type to Sum. Now we can easily see which representatives have sold the most.

    ]]> Click Create Dashboard. Studio will create a dashboard with the chart we just created. 

    ]]> Dashboards are made up of different objects. These objects can be Charts, Summaries, Images, and more. 

    Dashboards employ many of the same controls that the other Views in Studio do. You can rearrange objects on a Dashboard by clicking and dragging. Click the Dashboard title to change it to something more descriptive. To change the header or an object's settings, click the gear icon for that object. To delete an object, click the circle with three dots and select Delete. 

    It's important to note that Dashboards are just a window into your data. If you need to add more data or edit existing data, that will have to be done in Claris Pro or the Spreadsheet. However, after you make your edits, your Dashboard will automatically update with the new data (you'll need to refresh the window if you have the Dashboard currently open).

    Customize Your Dashboard

    Let's customize our Dashboard. Mouse over the chart we just created and click the gear icon in the upper right. You can change the source table, Y and X axis names, and more. Go ahead and change the axis names to something more descriptive. Click out of the settings popup. The chart will refresh and the new names will appear. You can change the chart name by clicking the "Enter Chart Title" text at the top of the chart. Now our chart is easier to read and understand:

    ]]> To add more data to the Dashboard, we need to add more objects. In the upper left, you can select "Add Object." You can drag objects out of this menu and place them on the screen. Additionally, you can click next to the border of an existing object. Mouse over the border, and a green line will appear with a plus icon. Clicking this will display the Add Object menu:

    ]]> We'll add another chart. Once you click the Chart option, Studio will add another chart to the screen. Odds are, the fields that Studio picked are not the ones you want to display. Click the gear icon and adjust the chart. We'll create a Pie Chart to show which products have been ordered the most. Set the X-axis to Item and the Y-axis to Units, with the Summary Type set to Sum. We don't need to display a label for the X-axis, so enter a space in the name field. This will hide the default name, which is the data source field name. Change the chart name, and we now have a good-looking pie chart located under our bar chart:

    ]]> Now, let's play around a little with what else Dashboards have to offer. Add a Summary object under the pie chart. Summary objects give us another insight into our data; we'll add one to show information for one of our sales reps. In this case, the newly created Summary displays the record count for the table:

    ]]> We'll change this slightly to show the record count for one sales rep, which will tell us how many orders they have handled. Click the gear icon for the Summary, click the Filter field, and add a condition. Adjust the parameters so that it reads "Rep is equal to Kivell." 

    ]]> Click out of the pop ups. Now our Summary field will display the total orders for Kivell. Change the Summary name by clicking the gear icon, changing the label text, and clicking back out. The Summary now is properly titled and showing the correct information:

    ]]> You can continue to add different objects to customize your dashboard. We've also created a sample dashboard for you to explore, similar to the one we just created. Additional objects have been added to give you a feel for the capabilities of Studio Dashboards.

    Claris Studio Dashboards is a new and exciting way for users to view the information they need to see. Separate Dashboards can be created for each user's unique needs, enabling them to quickly access relevant data. If you have questions regarding Claris Studio Dashboards and how they can help your company, or if you would like to get access to Claris Studio, contact DB Services - we're here to help!

    ]]>
    <![CDATA[What is Claris Studio?]]> https://dbservices.com/blog/what-is-claris-studio https://dbservices.com/blog/what-is-claris-studio Wed, 28 Sep 2022 12:18:00 -0400 A web-based platform from the new Claris suite, Claris Studio makes it easy to gather, analyze, and manage your data online. With custom forms, dashboards, and many other cloud-native, no-code Views, Claris Studio makes data management easier than ever. Organize your Claris Studio Views into Hubs – user-specific collections of Views – to focus your team on the information they need most, and enjoy 2-way communication between your Claris Studio and Claris Pro solutions.

    ]]> Views

    The main components of Claris Studio are Views. Comparable to a pre-built Claris Pro layout, there are a few different types of Views – Spreadsheets, Forms, Dashboards, Kanban, and List-Detail – all of which are easily constructed with Claris Studio's drag & drop, no-code interface. Views feature responsive web-ready design for various screen sizes and even support your browser's Dark Mode. After creating a view, it can be published online and included in a Claris Studio Hub.

    Spreadsheet View

    The Spreadsheet View allows you to sort, filter, group, and summarize your data in rows and columns. Spreadsheets serve as the backbone of other Views in Claris Studio, allowing you to easily add and configure the fields you need to drive your business. In the Spreadsheet View, you can set a field's type, assign it a default value, and create the options your users will select for fields like Checkboxes.

    ]]> Once a Spreadsheet View is created, you can quickly create other interactive Views which use the Spreadsheet's data. If you already have data to crunch or you'd like to see your Claris Studio data through a different lens, Spreadsheet Views can also import from and export your data to CSV files.

    ]]> Form View

    Claris Studio Forms are highly customizable Views that facilitate easy collection of data in a multi-page web form. The drag & drop interface lets you quickly add and reorganize both fields and entire pages of your Form. 

    ]]> Once your Form is built, enable Public Sharing to release it online and immediately begin collecting data. Claris Studio's screen-friendly responsive design is especially apparent on Forms, offering cohesive and logical breakpoints which make it easy on your users to participate – regardless of the device they connect from.

    Dashboard View

    Dashboards allow your team to make quick decisions using visual representations of your data. With Dashboards you can create summaries and animated bar, line, and pie charts. Like Form Views, it's easy to drag, drop, and resize these elements as needed. These components are especially customizable, allowing you to compile and filter your data to best answer your business' questions.

    ]]> List-Detail View

    List-Detail Views are Claris Studio's version of the classic master-detail screen – quickly search and filter your data, and spend time more effectively on the individual records which need the best attention. 

    ]]> Kanban View

    Track your progress on a project with this task management view. Kanbans are a great way to assign team members to records and make progress on your workflows. Claris Studio makes setting these up a breeze – if you don't have a Status field in your table, adding one from a Kanban View prepopulates its options with common steps for your team to complete. 

    ]]> These records are grouped by status and show which team members have been assigned. Your team members can then filter the board to show only the records assigned to them. 

    Hubs

    A Claris Studio Hub is a collection of Views that are shared with selected team members to provide them the data most relevant to their role. A single View can be added to multiple hubs.

    ]]> Team Managers create and edit Hubs, add Views to them, and add team members. Managers can see all Hubs available in the organization, while team members can only see the Hubs that have been shared with them. 

    Integrating Claris Studio with Claris Pro

    One of the most exciting features of Claris Studio is its two-way communication with Claris Pro – any updates or new records made online or from your desktop will immediately be reflected in the other app. It's easy to use your online Claris Studio solutions as data sources in Claris Pro, where you can develop more robust analysis and data manipulation tools.

    ]]> Claris Studio's customizable cloud-based Views make it easier than ever to collect and review your data from any device, anywhere in the world. Its simple and powerful tools allow you to manage teams, track projects, and analyze your data the way you need to see it. Ready to upgrade your business? Contact us today!

    ]]>
    <![CDATA[Utilizing Claris Pro with Claris Studio]]> https://dbservices.com/blog/utilizing-claris-pro-with-claris-studio https://dbservices.com/blog/utilizing-claris-pro-with-claris-studio Tue, 27 Sep 2022 11:27:00 -0400 With the release of Claris Studio and its associated programs, Claris Server and Claris Pro, there is a lot to learn about the new applications and how they work with each other. In this article, we will unpack the details of the software and how it can be used to create new solutions for you and your business. 

    ]]> What is Claris Studio?

    Claris Studio is the new web-based platform developed by Claris. With Claris Studio, you can easily create a variety of screens called "views" for displaying, entering, and manipulating data. Unlike previous web tools from Claris like FileMaker WebDirect, Claris Studio gives developers an efficient and lightweight platform for creating solutions entirely on the web without needing external software like FileMaker Pro. However, this does not mean that developers using Claris Studio have to completely abandon client-side applications, as Claris also released a companion program called Claris Pro.

    What is Claris Pro?

    At first glance, Claris Pro seems very similar to FileMaker Pro. While this observation is true in many cases, the two applications do have some differences, most notably the file extensions used for the two apps. As of the time of writing, FileMaker Pro still uses the well-known .fmp12 file format, whereas Claris Pro uses the new file extension .claris. These extensions speak to the core difference between the two programs: namely that FileMaker Pro is meant for solutions that are meant to be hosted on FileMaker Server and utilize the current suite of FileMaker tools, while Claris Pro is designed specifically for creating solutions that integrate data from Claris Studio. 

    FileMaker developers who want to take advantage of the tools offered by Claris Pro can convert their existing .fmp12 files to .claris files using Claris Pro; however, it should be noted that this conversion is currently only a one-way conversion and .claris files are not compatible with FileMaker Pro or FileMaker Server. 

    Should developers need to share their Claris Pro apps, Claris has included options for peer-to-peer connections as well as a counterpart to FileMaker Server in the form of Claris Server.

    How to Use Claris Pro with Claris Studio

    As mentioned previously, Claris Pro is designed specifically for creating non-web solutions for Claris Server and Claris Studio. Unlike FileMaker tools like WebDirect where data, database schema, and layouts are all developed in FileMaker and put on the web, Claris Studio and Claris Pro function in reverse. The data, database schema, and views are created and manipulated within Claris Studio using a web browser. Claris Pro then allows non-web solutions to use this data by treating Claris Studio as an external data source. For developers familiar with connecting ODBC/JDBC solutions to FileMaker Pro, the process for connecting and utilizing data from Claris Studio in Claris Pro will feel very similar. 

    Adding and Working with Claris Studio Data Sources

    When viewing the relationship graph in the Manage Database settings, current FileMaker Developers will feel right at home. The relationship graph functions almost exactly the same, save for a new addition when adding table occurrences. When you add a new table occurrence, you will now be able to select a "Claris Studio Data Source" as the data source for a table occurrence. 

    ]]> This allows developers to tie data from a view in Claris Studio to a table in Claris Pro. Once added, the name and fields related to the original schema will appear in italics just as an ODBC/JDBC shadow table would.

    ]]> The field controls are also similar as table schema, including field options, cannot be changed in Claris Pro. However, unlike traditional ODBC/JDBC shadow tables, unwanted fields can be removed from Claris Pro. Removing the field does not change the database schema in Claris Studio, but merely makes data related to that field inaccessible in Claris Pro.

    ]]> While schema cannot be changed, Claris Studio shadow tables also retain the ability to add supplemental fields including unstored calculations and summaries for interpreting data. 

    ]]> Continuing with the similarities, database schema and records can be synced from Claris Studio in manage database using the sync button.

    ]]> Another important detail to note: while numeric-based fields in Claris Studio share the same data type in Claris Pro, there are a number of text-based field types that exist in Claris Studio that do not exist in Claris Pro. These fields are converted to the text data type in the table definition found in Claris Pro. The Claris Studio fields that will be converted to text are the following:

    • Short Text

    • Long Text

    • Drop-Down

    • Checkboxes

    • Single Choice

    • Phone

    • Address (Broken Up By Subfield)

    Conclusion

    Claris Studio offers a new way for developers to create, store, and display data, all from a web-based platform. Claris Pro creates a nice bridge for existing FileMaker developers and future Claris Studio developers to have access to the new tools provided by Claris Studio, without forsaking the client-based solutions provided by the FileMaker Suite. With Claris Pro, developers can convert exiting FileMaker applications or create new solutions that seamlessly tie the new features of Claris Studio with many of the existing capabilities of FileMaker Pro.

    If you're interested in utilizing the new Claris Studio or Claris Pro, contact DB Services and we will help you take advantage of all these new platforms have to offer.

    ]]>
    <![CDATA[Connect Google Ads Lead Form Extension to Salesforce]]> https://dbservices.com/blog/connect-google-ads-lead-form-extension-to-salesforce https://dbservices.com/blog/connect-google-ads-lead-form-extension-to-salesforce Fri, 23 Sep 2022 11:05:00 -0400 Lead Form extensions are one of the newest extension types Google Ads has introduced. These extensions allow you to capture leads when people submit a lead form directly on your ad. You have the option to download your leads in a CSV file or create a webhook integration to receive them directly in your CRM. Today, we're going to demo how to create a custom webhook to capture those leads in Salesforce.

    ]]> Setting Up Your Salesforce Org

    There are just a few things that need to be set up in Salesforce before establishing your webhook. You’ll be creating a custom metadata type, a new site, and a custom object that can log any errors thrown from your webhook.

    Create a Custom Metadata Type

    Using a custom metadata type to store relevant information for your webhook rather than hardcoding this information in Apex allows for an easier way to update the webhook key and optional email. You can name this anything you’d like. For simplicity, we named our’s Google Leads Webhook Settings. This will hold your Google lead form secret, and if you want to send an email notification upon creation of the lead, an email address.

    ]]> After creating the custom metadata type, you will then create a record for it. Our record is labeled “Default Settings,” which we will query for and reference in our Apex class. The record will store your Google lead key that you’ll create via any random key generator you choose and will store the email address you would like the notification sent to, if you chose to send a notification.

    ]]> Custom Object for Error Logging

    In order to log any errors you may experience when using your webhook, you will want to create a custom object to log those errors. For this example, the error logging object’s name is “Google Lead Webhook Error.” You will create one custom text field that will be used to store the error message received. After creating this object, you are ready to set up your Apex controller.

    ]]> Apex Controller for Your Webhook

    Now that your org is set up, you’ll need to create an Apex class that will create a lead and, optionally, send an email notification.

    Create a class that uses Rest Resource that has a URL map to the Lead object. 

    ]]> Next, you will create an httpPost method that will retrieve the lead information sent for your Google Ads Lead Form.

    ]]> Inside of this method, you will grab the body from the request and parse through the body's data. After parsing through the data and performing some error handling, you'll create a new Lead record, populate the information with the lead information in the request body, and insert the new record into your org.

    Optional: Send a New Lead Email Notification

    If you want to receive an email notification every time a new lead is added from the lead form, you'll need to create an additional method to do so. You'll perform a query on your custom metadata type record to grab your notification email address. From there, you'll populate the necessary information to send an email through Apex using the Messaging class. The Messaging class allows you to set the "Reply to" email address, which allows you to reply directly to the person that submitted the lead form. You can add any necessary information such as the lead's name, phone number, description, etc. into the body of the email. After customizing the email, your work in Apex is finished, and you're ready to create the custom website.

    Custom Site

    Your custom site will bridge the gap between Google Ads and Salesforce. After labeling and naming your site, set up your site with the settings displayed in the image below.

    ]]> Save and activate your new site and copy the Site URL to use later on when setting up your webhook in Google Ads.

    After saving, select the "Public Access Settings" button. This will take you to the profile that was created for this site. Give this profile access to your Apex class. If you're sending a notification email, give the profile access to send email.

    Setting Up A Google Lead Form Extension

    In the Ads & Extensions section of Google Ads, go to Extensions. Click the + button to add a new extension and select Lead Form Extension. You can add the extension to your entire account or just a campaign. Select Create New and fill out the desired fields. Note: You will need a URL that links to your company's Privacy Policy to create a lead form extension.

    Saving Your Webhook and Key on the Google Lead Form

    At the bottom of the lead form you just created, there is a section labeled “Export leads from Google Ads.” Under “Other data integration options” you will insert your Site URL from the site you created in Salesforce into the webhook URL section and insert your key that is saved in your custom metadata type.

    ]]> After inserting those, you will select “Send test data” at the bottom, and you will either receive a success message or a failure message. After receiving your success message, a new test lead should be generated in your Salesforce org and your optional notification email should be sent.  

    Conclusion

    Lead Form extensions from Google Ads are a quick and easy way to obtain leads directly from your ad. With a little help from Apex and a webhook, you'll be automating lead creation in no time.

    ]]>
    <![CDATA[Introduction to AWS Amplify Studio]]> https://dbservices.com/blog/introduction-to-aws-amplify-studio https://dbservices.com/blog/introduction-to-aws-amplify-studio Fri, 16 Sep 2022 11:04:00 -0400 AWS Amplify is a toolbox that allows developers to build scalable, full-stack applications from core AWS services for data storage and access, application logic, authentication, and more. As an open-source project with millions of downloads,  Amplify has gained a large community since its initial release. Included as part of the Amplify framework, Amplify Studio aims to reduce development time by using its point-and-click interface to quickly configure data structures, frontend UI components, and user access permissions.

    ]]> Working with the Backend]]> Defining a data model using Amplify Studio’s interface can reduce the time needed to configure database tables and GraphQL schema manually. Tables, fields, and relationships are specified using a graphical interface. Authentication for your application can also be set up through Amplify Studio in a few clicks. Per-table authorization rules for create, read, update, and delete actions and user authentication options are all editable through Amplify Studio's interface.

    Once your changes are saved, Amplify takes care of the rest; generating tables in DynamoDB, building a GraphQL API schema to access the tables, and adding any Cognito resources needed to apply the authentication rules. In this article’s example, a simple blog post application with email and password authentication was created.

    In this rudimentary example, we have a user that can create, read, update, and delete their own set of blog posts. All users have the ability to create and read any blog post. If you’re unfamiliar with Amplify’s GraphQL authorization syntax, Amplify Studio is a good resource for producing the applicable rules. By switching to the GraphQL schema tab, you can see the generated code based on the tables created and selected authorization rules.

    ]]> After deploying the backend and allocating the necessary AWS resources, the Amplify configuration files will need to be created or updated in your application through the Amplify CLI. Using the amplify pull command, the Amplify backend can be added to your application’s repository. This will create an amplify/ directory in your project that contains all the resources and definitions needed to interact with the backend AWS services.

    ]]> Working with the Frontend

    In order to generate front-end component code from design assets, Amplify Studio is integrated with Figma, a prototyping and design tool. By linking your application’s Figma file or using Amplify’s sample Figma file, components can be configured and translated to ready-to-use React code. In this example, we’ll use Amplify’s provided file and components to make a simple feed of blog posts.

    ]]> After linking the Figma file, styles and components can be browsed in Amplify Studio’s interface. Using the SocialPost component, it can be configured to bind data from the schema and generate the React code needed. We’ll map the title, author, date, and content fields to the data in the component. Once we have the component configured, another amplify pull is needed to update the local repository.

    After the pull is complete, you’ll now have a folder of components created from the provided Figma file with the properties configured through Amplify Studio applied. To use the post component configured earlier, we need to import it from the components folder and bind our data.

    ]]> Pricing

    AWS customers are charged based on which underlying AWS services are used through Amplify's framework; therefore, it is important to understand the resources Amplify Studio allocates. There are no additional charges for using Amplify's frameworks, including Amplify Studio. However, Amplify hosting charges are based on building and deployment times, and the size of the application hosted. Amplify is also available for the AWS Free Usage Tier, which includes 1,000 build minutes per month, 15 GB served per month, and 5 GB of data storage per month.

    Conclusion

    Whether it's used to build an entire application or just to generate a data model and GraphQL schema, Amplify Studio is a toolbox that will help accelerate development. By being a control center that spans design to deployment, it's easy to get started turning your idea into a scalable application or increasing the productivity of your current processes. Have an idea for a web application but don't know where to start? Contact us and let's design and develop your idea together!

    ]]>
    <![CDATA[Introducing Claris Studio]]> https://dbservices.com/blog/introducing-claris-studio https://dbservices.com/blog/introducing-claris-studio Thu, 08 Sep 2022 13:48:00 -0400 What is Claris Studio?

    Claris Studio is a cloud-native development environment that seamlessly integrates with Claris Pro, Claris Go, and Claris Server. With Claris Studio, you can now gain greater visibility across your entire business by bringing all your data together in one place. 

    Why should I use Claris Studio?

    Bring Your Data Together

    Increase your efficiency with one, unified platform that holds all the data across your entire business. Your data will update in real-time across the Claris platform and you can create reports, charts, and dashboards to display your data in the way that best suits you and your business.

    Views

    Choose which ways you want to visualize and work with your data to increase visibility and efficiency. The following types of views are currently available:

    • Forms: Easily collect data in a multi-page web form

    • Spreadsheet: Sort, filter, group, chart, and summarize your data in rows and columns

    • List-detail: Organize your records into a list and dig into each record to edit or review the record details

    • Kanban: Track your progress on a project with this task management view

    • Dashboard: View your data at a glance with charts, summaries, and more

    Hubs

    A hub is an organized collection of views that are shared with selected team members. Views can be added to multiple hubs. 

    Team managers can create hubs, add views to them, and add team members. Team managers can see all hubs available in the organization, while team members can only see the hubs that have been shared with them. 

    One Platform, One Claris ID

    Your Claris ID allows you to navigate between Claris Studio, Claris Pro, and Claris Go with just one login- no need to sign in to multiple accounts!

    What else is new?

    • Apps created with Claris Pro now use the filename extension .claris

    • Claris Server is available to host .claris files. When you install Claris server and open Admin Console for the first time, sign in with your Claris ID account.

    You can get access to Claris Studio with the Claris Platform Bundle for $18.75 per user/per month for 12 months. See more pricing on the Claris Store.

    Conclusion

    We are excited about the new launch of Claris Studio and we look forward to discovering new solutions using the Claris platform. As always, Claris continues to show its dedication to solving critical workplace problems efficiently and effectively. If you are interested in Claris Studio, contact us at DB Services and let's discuss what problems we can solve together.

    ]]>
    <![CDATA[Salesforce Field Service Implementation Guide]]> https://dbservices.com/blog/salesforce-field-service-implementation https://dbservices.com/blog/salesforce-field-service-implementation Wed, 07 Sep 2022 10:07:00 -0400 As you are reading this article, you may find yourself on the precipice of a significant change to your business’s service processes including the way you manage service resources and connect with your customers. Whether you’re on the search for a suitable successor to your current field service solution or looking to build out your Salesforce Field Service environment, the amount of planning and research put into arranging a well-conceived implementation will pay out dividends on the backend.

    For all the same reasons your business requires a field service-oriented platform with the flexibility and tools to meet your various needs, there is a significant amount of consideration to make about how your interdependent processes are best translated and configured into the system that touches everything important to an optimized service business. This guide provides you with a comprehensive overview of how to effectively leverage the powerful management tools in Salesforce Field Service.

    ]]> 1. Outline Your Processes

    Does your business currently utilize service territories to schedule and manage field techs? 

    Do you plan to automatically create and schedule service appointments? 

    How do you prioritize which appointments are scheduled when, and how do you create the optimal appointment schedule for your team? 

    Just thinking about some of these questions can cause your head to spin a little, which is why it's so important to create a detailed outline of your current business processes. Even those with an intimate understanding of how their business works may be confronted with questions they have never considered before when implementing Salesforce Field Service. And the answers to some of those questions may affect efficiency or customer satisfaction down the road. Having a well-documented resource to reference when developing solutions will help ensure your org is aligned with your goals.

    Here are some of the most important questions to ask yourself when creating this outline:

    • Are you moving from an existing field service management platform? What business processes are developed around the existing platform and need to be retained?

    • How do you currently organize and manage service techs? What is the mobile platform you use? How many team members do you have? What is the nature of the work they do, and how complex is it? Do you have service crews that work on services together?

    • Do you plan to integrate Salesforce Field Service with ERPs or other external systems? Do connectors already exist, and do they meet the needs of the integration? Are there processes that are currently performed in an external system that could better be served by Salesforce (ex. inventory management)?

    • What are the biggest pain points with your current process? What are the most important enhancements you are looking to implement? What metrics are most important to track and improve with the implementation? 

    2. Territories, Operating Hours, & Shifts

    Designed to facilitate the requirements of teams of any size and configuration, Salesforce Field Service allows users to configure territories, operating hours, and shifts that mirror your existing team organization profile.

    ]]>
  • Service territories allow you to define where your service team completes work. They typically represent geographical areas and can be defined using Map Polygons to determine exact boundaries between territories. Add service territory members to enable field resources (technicians) to be eligible for service appointment assignments. Service Resources may even have membership to multiple territories.

  • Operating hours indicate when work can be scheduled. They can be defined on accounts, service territories, and service territory members. Along with Service Appointment scheduling windows, operating hours aim to schedule appointments that meet time constraints on several levels.

  • Shifts can be created to schedule ad hoc appointments outside of regular operating hours or for workers who don’t have a set schedule. They let you set up work intervals that vary from day to day or week to week and can be used in conjunction with or instead of operating hours.


  • Together, these three tools enable your business to schedule work whenever you need the right people to perform the job. They also act as the foundation for building your work order management system and schedule optimization.

    3. Work Order Management

    The term “Work Order Management” represents the interaction behavior and hierarchy of several objects in Salesforce Field Service

    ]]> Here are a few terms to familiarize yourself with when configuring this section:

    • Work order – Represents work to be performed on your customer’s products.

    • Work order line item (WOLI) – The detailed explanation of a task to be performed by the technician.

    • Service appointment – Represents an appointment to complete work for a customer. Service appointments can be child records of Work Orders or WOLIs and will be the record that interacts with the scheduling tools.

    • Work type – Templates that save you time and make it easier to standardize your field service work. They represent predefined pieces of information that are unique to a particular service task, such as estimated duration, skill requirements, or product requirements. Work types can be defined on a Work Order or WOLI and those requirements will be inherited by the record.

    • Asset – Represents a specific purchased or installed product.

    • Maintenance plans – Let you define the maintenance schedule for one or more assets and generate a batch of Work Orders for future maintenance visits. Work types can also be defined on maintenance plans and Work Orders or WOLIs will inherit the work type.

    • Statuses – Statuses represent where a Work Order, WOLI, or Service Appointment is in regard to a predefined work process. They are used by a variety of processes and triggers in Salesforce Field Service, and accurate configuration is important to ensuring these processes work with your records as expected.

    4. Your Workforce

    Service resources and service crews represent your field service team and can be assigned to complete service appointments. After you create these records, you may assign permission sets to members of your team who work as dispatchers or support agents.

    ]]> As mentioned above, Service Resources are assigned to one or more Service Territories to add them as a candidate for service appointment assignment. If your business requires proficiency in certain skills to complete some tasks, you can add those skills to service resources and they will be respected in scheduling optimization, as well as Service Territory membership.

    If some of your service work requires a team of service resources whose combined skills and experience make them a good fit to work together on appointments, you may create a Service Crew and assign them as a unit. Implementing service crews requires an extra bit of consideration in areas including absences, geolocation tracking, membership requirements, crew size, and more. If this is a feature you intend to utilize, please review Salesforce Field Service documentation to verify your requirements can be met.

    5. Your Inventory 

    Salesforce Field Service has a robust set of tools to effectively track and manage every item in your inventory. From storage to requests and transfers to consumption, you can make sure your field techs have the right parts to complete their work. 

    ]]> These are some of the objects to know about:

    • Locations – Physical places in the world where inventory is kept, such as a warehouse or service vehicle.

    • Product items – A representation of an item in your inventory stored in a location. For products that are stored in more than one location, a product item record should be created for each location.

    • Products required – As described earlier in the guide, represent products that are needed to complete a particular Work Order or WOLI.

    • Products consumed – Products used during the course of the Work Order that no longer exist in your inventory.

    • Product item transactions – Auto-generated records that describe actions performed on the product item (replenished, consumed, or adjusted.)

    • Product requests – Orders placed for products (ex. for replenishment when low in stock.)

    • Product transfers – Enable you to track product transfers between locations.

    • Return order – Enable you to track the return or repair of products.

    • Shipments – Represents a shipment of items between inventory locations.

    6. Scheduling Optimization

    The Schedule Optimization tool offers one the biggest time-savers and opportunities for value extraction in the entire Field Service platform. If you have ever had to construct a weekly appointment schedule, you may be aware of how difficult it can be to coordinate availability, time constraints, technician ability, and scheduling priorities. And then, attempting to find the most efficient configuration and utilization percentages or to navigate a cancellation or schedule change, one might cite this as a reason to find another line of work. 

    But with Salesforce Field Service, this is no longer a dreadful task, but rather offers businesses peace of mind that their resources are being utilized as efficiently as possible. 

    ]]>
  • Scheduling policy – Represents a collection of objectives and rules to help guide the optimizer. When using the optimizer, either through a scheduled run or manually, users may select which scheduling policy to use.

  • Work rule – A rule that filters the list of potential candidates to be assigned to a particular appointment. One example of this is the Match Skill rule which, as its name suggests, filters out service resources who do not possess the skills required to complete a job.

  • Service Objective – A goal or target of a particular policy. By assigning weights to these objectives, users can promote or de-emphasize the relative importance of factors such as customer preferences, travel time, or business priorities.

  • Relevance group – Represent a subgroup of service appointments or service resources. These groups can be used to apply targeted work rules or service objectives.

  • 7. Mobile Configuration & Flows

    For a mobile workforce that uses their mobile devices to perform a variety of essential tasks including record updates to accessing knowledge articles and more, an application tailored to their needs can be the difference between a happy and engaged team and a disconnected one. Luckily, the Field Service app (available for iOS and Android) offers an easy-to-navigate user interface with offline access capability and the potential for complex mobile flows.

    ]]> Combined with your business's unique needs for customization, the nature of a mobile app like this will require special consideration. When developing the desired end-product for this section, please review the app specificationsand consult with a certified partner such as DB Services to ensure your requirements can be met.

    8. 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 Field Service. 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 in your org. Alternatively, if an out-of-the-box option won't cut it, a consultancy such as DB Services can help you build a bespoke integration solution to fit your needs. 

    ]]> Unleash the True Potential of Your Organization

    The possibilities for building a custom field service implementation are nearly endless when considering all the offerings in Salesforce Field Service. And with a comprehensive understanding of your business and service processes, a tailored Field Service implementation 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 Salesforce Field Service!

    ]]>
    <![CDATA[FM Quickstart 2023]]> https://dbservices.com/blog/fm-quickstart-2023 https://dbservices.com/blog/fm-quickstart-2023 Fri, 02 Sep 2022 11:45:00 -0400 New iPad Functionality

    Need to access your data on the move? With this year’s release, anyone who signs in using FileMaker Go on an iPad can see screens that feel and function smoothly.

    Similar to the iPhone functionality added in FM Quickstart 22, users can view and edit the companies and contacts, as well as many of the other sections.

    • Update the information for an order and connect it to companies and contacts.

    • Access QuickBooks functionality on the go.

    • Check on a shipment and update its information.

    • Find all the details about a purchase order.

    • Stay up to date on the status of your inventory and purchase orders with the Receiving section.

    • Glance through work orders and see their progress.

    • Add documents and notes as needed under each section.

    ]]> Screens are optimized for easy clicking and allow for a crisp, clean experience. With the new iPad functionality, you’ll never have to miss an update.

    Pivot Table

    Looking for a dynamic new way to analyze your data without getting things messy? FM Quickstart’s pivot table has your back. Findable from the reports module, the pivot table allows you to see your order summary data with deeper breakdowns.

    ]]> By default, ordered products are sorted by date and display their total price per date. Of course, it wouldn’t be a pivot table if you couldn’t change the fields you wanted to display. Choose between criteria like an item’s unit cost, the day it was ordered, how much was ordered, and more. You can even change the values from total price to count sold.

    Not a fan of the table format? No worries. You can change how the data is displayed, as well. Switch between a table, bar chart, heatmap, line chart, and many of your favorite combinations in between. It even allows for easy copying and pasting to an Excel file using the “TSV Export” format.

    Your order data has never been more convenient to access than with FM Quickstart’s new pivot table.

    Transactional Inventory

    Lots of moving data slowing you down? With FM Quickstart’s refurbished inventory system, we’ve utilized one of FileMaker’s secret strengths to better improve your data flow: transactional relationships.

    Before this year's release, many of the inventory calculations were unstored. This meant that every time you needed information on an item, everything had to be calculated and re-calculated. Now, with the transactional system, everything is stored and no longer needs re-calculating every time. When making changes to inventory counts, it's now a simple addition or subtraction from the currently-stored stock. 

    With transactional relationships, FM Quickstart 2023 removes a lot of redundancy and gets the information where it needs to be when it needs to be there. This sort of functionality gives you a leg-up on competitors by strengthening your internal system, and it’s scalable for a business of any size—especially those with large quantities of data.

    Conclusion

    DB Services is proud to present FM Quickstart 2023 free and totally unlocked to the Claris FileMaker community. This robust Enterprise Resource Planning (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 2023, please visit the official FM Quickstart website here to have it sent directly to your email inbox.

    Please 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 Winter '23 Release Highlights]]> https://dbservices.com/blog/salesforce-winter-23-release-highlights https://dbservices.com/blog/salesforce-winter-23-release-highlights Thu, 18 Aug 2022 10:03:00 -0400 Cozy up by the fireplace with a nice blanket and a cup of hot cocoa; Salesforce's Winter '23 update is as cool as ice! This release is packed with innovative content ready to be used within your Salesforce organization. We discuss some of our favorite new features coming in Winter '23. Here are a few of the most exciting highlights from the release:

    ]]> Salesforce Platform: Break Up Record Details in Accounts, Contacts, and Opportunities

    Salesforce's Dynamic Forms allow the creation of user-centric page layouts that display the right amount of information, foregoing the necessity for multiple page layouts and separate profiles.

    ]]>
  • Create Flexible Record Pages - Use Dynamic Forms to make pages for accounts, contacts, and opportunities.

  • Create Sections and Fields - The Lightning App Builder allows the addition of fields and field sections without using the page layout editor. Find the Field Section option and the available fields for each object in the Fields tab next to Components, and drag your desired fields onto the page.

  • Configure Sections and Fields - Along with this, employ visibility rules to enhance user experience.

  • Migrate Layout to Dynamic Forms - A Lightning record page may be migrated by selecting the Edit Page option from Setup, and the Upgrade Wizard takes the fields and sections you choose to be added to the page.

  • Automation: OmniStudio

    OmniStudio provides a modular suite of services, task-based components, data model objects, and other reusable industry-specific solutions. You can create guided interactions and complex processes using data from Salesforce and external sources.

    A few key similarities between OmniScripts and Screen Flows are as follows: they both create guided interactions with branching logic, can read/write Salesforce data, can call Apex classes and custom LWCs, may be embedded in 3rd party web pages, are responsive, and more. OmniScripts stands out with custom stylesheet support, dynamic LWC screens, Google Analytics integration, and low code API consumption.

    As a rule of thumb, OmniScripts should be used for external personas and industry use cases, while Screen Flows should be used for employee-facing use cases. 

    OmniStudio Licenses and Permission Sets

    The OmniStudio User user license's standard permission set is now part of the Admin user license, creating one primary OmniStudio user license. 

    Standard OmniStudio Runtime

    • Activating an OmniStudio component is now faster.

    • Already active OmniScript and FlexCard components can run natively in your org or from the installed package.

    • If an OmniStudio component wasn't active before Standard OmniStudio Runtime is enabled, activating that component no longer generates LWCs.

    • A package-generated OmniScript or FlexCard component can run natively in your org through deactivation and reactivation.

    Standard OmniStudio Content

    • Out-of-the-box standard OmniStudio components run natively in your org.

    • OmniScript and FlexCard standard components are visible in the Lightning and Experience Builders and render out-of-the-box standard OmniStudio content.

    • Out-of-the-box standard OmniStudio content and custom OmniStudio content are visible on the OmniStudio product home screen.

    • Create a version to modify out-of-the-box standard OmniStudio content. Version 1 remains unmodifiable.

    OmniStudio Migration Tool

    OmniStudio for Vlocity

    After migrating custom objects to standard objects, edit the standard object versions of migrated OmniStudio content.

    OmniStudio FlexCards

    OmniStudio

    • Add a standard FlexCard to an LWR Experience site when Standard OmniStudio Runtime is disabled.

    • Add the generated FlexCard LWC to the LWR Experience page. 

    • View out-of-the-box standard FlexCards in the FlexCard Designer Preview.

    • FlexCard standard component is supported on Home pages.

    • Add an out-of-the-box standard FlexCard or OmniScript component as a custom LWC by entering the name of the out-of-the-box component in the FlexCard Designer's Custom LWC element.

    • Reference a packaged custom label in a standard FlexCard component.


    OmniStudio and OmniStudio for Vlocity

    • Data and Update Datasource actions support SOQL and SOSL data sources.

    • Enable continuation on FlexCards that call a long-running Integration Procedure or Apex class.

    OmniScripts

    OmniStudio

    • Add out-of-the-box standard OmniScript components from the Build Panel of the OmniScript Designer in between or on steps.

    • Previously unsupported features are now supported in Winter '23 and later releases.

    OmniStudio DataRaptors

    OmniStudio

    Create different versions of a DataRaptor by enabling DataRaptor Versioning and OmniStudio Metadata in OmniStudio Settings.

    Sales Cloud: Custom Opportunity Fields in Forecasts

    Need to look at a specific attribute and single out the data you want to study? Now your sales team can filter forecasts by numbers, currencies, picklist fields, and custom fields. When you create a forecast type in the setup flow, select standard and custom fields to filter by. You can add up to three conditions and use the AND operator.

    ]]> Service Cloud: Swarming

    Swarm on Customer Issues in Slack

    Service organizations are given the tools required to collaborate at scale with experts, solve customer issues, and report on Swarming participation and impact. Agents can involve other experts and seamlessly log collaboration, participation, and ownership, as well as save time and increase customer satisfaction through a more efficient service model. The Service Cloud for Slack app, now generally available, includes some enhancements since the beta release.

    Speed Up Your Time-to-Swarm with Guided Swarming Setup

    The enhanced setup page is sure to get your team swarming. You can give users access to objects, set up your Service Console, and configure flows. If Slack is your primarily collaboration tool, the setup brings you to the new unified Salesforce for Slack Apps setup.

    Add Multiple Users to Your Swarms

    Creating a swarm is easy! Save time adding swarm members one by one with the ability to select multiple users by name and add them all at once.

    Save Time with Swarm Records That Close Automatically

    Keep your teams productive with swarm and swarm member records that close when a related case or incident is closed.

    Swarm on a Record Multiple Times with Overridable Swarm Record Names

    Override the default swarm record name with a name that is specific to your needs or naming conventions. Your teams can more easily identify the swarm’s purpose from the case or incident list view, especially if a record has multiple ongoing swarms.

    Add Swarm Members More Easily with Swarm Member Descriptions

    The Swarm Member Name field is now called Swarm Member Description; users will more easily understand that they can include information about the swarm member or swarm and not reenter the user’s name.

    Catch Up on Service Cloud for Slack App Features

    You can use the Service Cloud for Slack app to swarm on customer issues directly from Slack.

    Experience Cloud: Deploy Partial Site Content with Change Sets

    Clicks, not code! With partial deployment, you don't simultaneously finalize and deploy all of your updates; rather, each update is moved from the test environment to production at its own pace. Create an outbound change set, add the new component type, select only the updated components, and deploy. 

    Analytics: Dashboard Lightning Reports with Direct Report Queries

    Using Direct Report Queries, you can access and interact with all your analytics in a single, consistent space:

    • Unify Your Analytics - Instead of relying on multiple different tools, you can incorporate tabular, summary, aggregate, and matrix reports in your CRM Analytics dashboard.

    • Build New Reports - Report insights can be visualized in different ways by exploring various CRM Analytics functionalities. 

    Field Service: Add Flexibility to Work Order Generation

    Taking the most recent work order completion date into account, you can now create recurring work orders on a floating schedule; work orders completed ahead or behind schedule generate another work order based on the recurrence cadence. This is in contrast to fixed schedules wherein work orders are scheduled at exact intervals determined by the work order start date.

    Commerce Cloud: Order on Behalf of Shopper

    Waiting on a shopper to place an order? Service agents can now directly place orders on behalf of shoppers through a streamlined process using a sequence of API endpoints.

    Industries: Customer Service with Service Console for Manufacturing

    With Service Console Manufacturing, you can empower your customer service representatives to deliver a smooth service experience and increase customer satisfaction. On a single screen, CSRs manage end-to-end service interactions and can verify a customer's identity, view a timeline of interactions with them, and find information about related orders, assets, and cases. They can also search for knowledge articles, receive alerts for record changes, take contextual actions, and capture interaction details.

    ]]> Conclusion: Grow an Efficient Business

    With the Winter 23' release, Salesforce introduces many new and improved features that showcase a commitment to continuous growth and advancement as well as serve to refine their user experience. If you'd like to learn more about these updates or any of the others included in the release, please check out the official release notes. If you have any questions about Salesforce or want to see any of the implementations in your own Salesforce organization, contact DB Services!

    ]]>
    <![CDATA[FileMaker Dashboards]]> https://dbservices.com/blog/filemaker-dashboards https://dbservices.com/blog/filemaker-dashboards Wed, 10 Aug 2022 11:10:00 -0400 When making a robust solution in FileMaker that you want to suit your needs best, it’s important to consider the app's purpose and projected user pool. As more and more users enter the file and use it for their needs, the higher the priority to filter down the system's records on a per-user basis becomes. Thankfully, with the addition of a system dashboard to your FileMaker project, you gain a fast and user-friendly way to present the data of each user without the need for slow and bulky found sets.

    ]]> Why A Dashboard Matters

    Consider a FileMaker solution where you are presented with a form view of Sales Invoices upon opening it. The system will likely be unsorted, and the only way to see the Sales Invoices for a particular user is to search in Find Mode for that user and then tab through each individual record. It will be a slow, arduous process to view all that data, especially as the size of your data set grows. However, with the addition of a system dashboard, you can now view all of that data from a splash screen. Before, it would have required performing a find search and clicking through each record; now, you can simply scroll through a portal with all the relevant data. A dashboard saves you and your users time, efficiency, and money.

    Creating a Dashboard

    To create a dashboard for your system, the initial step will be to create a new table; this new table will be used as the ‘mediator’ of sorts for each table you have in your system. This table will be called "SESSION” and will be based on the individual user session at any given time. With this, each user can see their own relevant data from the moment the file loads up for them, increasing efficiency.

    ]]> Create a new layout for SESSION and set up a navigation from this new layout to the pre-existing layouts and create an in-layout navigation—we’ll be using a tab control for this example. Set up the tabs to correlate to your data sets: we’ve made tabs for sales tasks, a calendar displaying these tasks, sales prospects, sales quotes and invoices, as well as shipping. For each data set, we’ll need to create a relationship between our new SESSION table and the corresponding data table.

    These relationships will be based on global fields within the SESSION table—this allows the dashboard to remain the same no matter what record you’re on, allowing each user to keep their dashboard the same for their entire time in the system. Code examples of how to create a filter for the dashboard using these global fields are provided in the sample file, the FM Quickstart dashboard. FM Quickstart is DB Services' free FileMaker ERP template. The full FM Quickstart template can be downloaded for free on our official FM Quickstart website.

    ]]> In this example, the dashboard has already been created. However, for the purposes of this article, you can still follow along.

    ]]> Back on the dashboard, create a new portal for each tab you’ve made using these new relationships. Each of these portals forms the basis of the value of a dashboard in your system: a quick, easy way to view your data without having to go looking for it. You can even edit these relationships to add additional parameters to filter these portals. The more filters you add, the more you can fine-tune the data you view! 

    Conclusion

    Dashboards in FileMaker solutions are an excellent way to increase your app's value and speed up your users' workflow. They remove the need for constantly using found sets to view the data you want and allow you to view the entire system in a quick sweep—right from opening the project. The return on investment for a system dashboard is incredibly high, and we firmly believe that they are a valuable necessity in any new FileMaker project. If you'd like assistance creating a dashboard in your FileMaker solution, DB Services is ready to help. Contact us today and let's talk about what we can accomplish together!

    ]]>
    <![CDATA[Claris Licensing Price Increase]]> https://dbservices.com/blog/claris-licensing-price-increase https://dbservices.com/blog/claris-licensing-price-increase Thu, 04 Aug 2022 14:09:00 -0400 Recently, they have made significant investments in their platform and products that we are very excited about, including the upcoming Claris Studio, Claris Pro, Claris Problem Solvers Circle, and Claris Platform Bundle. These additions and improvements have resulted in enhanced performance, security, and reliability of Claris products. 

    Beginning September 24, 2022, a 10% increase in licensing price will become effective for all new and renewal customers. 

    Claris will honor in flight quotes. They will also honor existing quotes through September 23, 2022, so be sure to renew by then to save money on licensing!

    Renew Your Licensing Now

    Contact us to renew your Claris license before the price increase takes effect on September 24, 2022. You can renew early for up to 5 years to save money on licensing. We also offer FileMaker Development, FileMaker Support, FileMaker Training, and FileMaker Coaching. Contact us today for a free analysis and consultation! 

    ]]>
    <![CDATA[Claris Platform Bundle]]> https://dbservices.com/blog/claris-platform-bundle https://dbservices.com/blog/claris-platform-bundle Fri, 29 Jul 2022 11:41:00 -0400 Claris Platform Bundle

    The Claris Platform Bundle gives your organization access to the full suite of Claris products  - Claris FileMaker, Claris Connect, Claris Studio, and Claris Pro - without having to purchase a site license. You have the freedom to choose the number of users to license and the length of time: 1, 2, or 3 years. You'll. be able to explore Claris' new technologies and prototype, test, and build new solutions. Here's what you need to know:

    What's Included

    • Claris FileMaker Volume License

    • Claris Connect Standard Licensing Plan

    • Claris Studio Developer Preview

    • Claris Pro Developer Preview

    • Claris FileMaker Data API

    • Claris Developer Tools

    • White-Glove Onboarding

    When & How You Can Enroll

    The program is open from July 28, 2022 to September 23, 2022.

    Contact Claris Sales directly or your Claris Partner. If you do not have a Claris Partner, please contact our team. We are a Claris Platinum Partner and the #1 Claris Partner in the Americas, and we would be happy to help guide you in the right direction to achieve your organization's goals.  

    Pricing & Cost

    Claris Platform Bundle pricing is determined based on your current or most recent annual contracts and costs 25% more than the price to renew your current Claris annual contract. Education and nonprofit customers are eligible for an additional discount.

    ]]> Claris Problem Solvers Circle

    Claris listened to customer feedback about the Problem Solvers Circle, and they've implemented a few changes for this quarter's program. Let's review what you need to know about the Problem Solvers Circle.

    The Problem Solvers Circle gives your organization access to the entire Claris suite of products  - Claris FileMaker, Claris Connect, Claris Studio, and Claris Pro - for everyone in your organization under one, simple licensing plan. You can choose between 1, 2, or 3-year annual site license terms. 

    What's Included

    • Claris FileMaker Annual Site License Agreement for all your users

    • Claris Connect Standard License

    • Claris Studio Developer Preview

    • Claris Pro Developer Preview 

    • Claris FileMaker Data API

    • Claris Developer Tools

    • White-Glove Onboarding

    • Access for anonymous users

    When & How You Can Enroll

    The program is open from July 28, 2022 to September 23, 2022.

    Contact Claris Sales directly or your Claris Partner. If you do not have a Claris Partner, please contact our team. We are a Claris Platinum Partner and the #1 Claris Partner in the Americas, and we would be happy to help guide you in the right direction to achieve your organization's goals.  

    Pricing & Cost

    Problem Solvers Circle pricing is determined based on your current or most recent annual contracts and costs 45% more than the price to renew your current Claris annual contract. Education and nonprofit customers are eligible for an additional discount.

    ]]> If you have any questions about the Claris Platform Bundle or Problem Solvers Circle, or if you'd like to take advantage of either of these programs, contact us today and let's discuss your digital transformation.

    ]]>
    <![CDATA[Salesforce Winter '23 Release Dates & Preview Information]]> https://dbservices.com/blog/salesforce-winter-23-release-dates-and-preview-information https://dbservices.com/blog/salesforce-winter-23-release-dates-and-preview-information Wed, 13 Jul 2022 09:35:00 -0400 Get Ready for the Release!

    Winter '23 Pre-Release Org

    Winter '23 Pre-Release Orgs are live as of August 11. Pre-release orgs are a great way to test the new release features in a stand-alone environment before they're rolled out into your sandbox and production orgs. If you already had a pre-release org for Spring '22, you can log back into that one to access your Winter '23 pre-release org.

    Winter '23 Release Notes

    The official release notes are probably the most highly anticipated date of the each release. These offer us our first in-depth look into each new feature that will be implemented across Salesforce once the release goes live. They became available on August 17 at Salesforce Help.

    Be sure to check out DB Services' Salesforce Winter '23 Release Highlights!

    You can also find updates, ask questions, and discuss your favorite features in the Release Readiness Trailblazer Community Group.

    Winter '23 Sandbox Preview

    The Sandbox preview is a great way to test out the new features as they pertain to your unique configurations within your own Salesforce org, without affecting your live environment. Use the Salesforce Sandbox Preview Guide to determine if you want to upgrade your Sandbox or keep it on Summer '22 until Winter '23 officially releases.

    Most Sandboxes will be updated August 26.

    Salesforce Winter '23 Release Dates

    The most important thing to do is make sure you're aware of when your Salesforce instance is going to be upgraded to Winter '23. Be sure to test everything before the release goes live to ensure everything still works properly and you know how to navigate the new features and upgrades. Be sure to check out the Release Resources page to help prepare for the new updates!

    The three main release weekends for Winter '23 are:

    • September 9, 2022

    • October 7, 2022

    • October 14, 2022


    You can find your Salesforce instance by going to company information in Setup within Salesforce. To find your release date, go to Salesforce Trust, select your instance name, and click on the "Maintenance" tab. This will show you the date that your org will be upgraded to Winter '23. 

    ]]> If you'd like to check out our favorite new features and upgrades in Winter '23, read our Salesforce Winter '23 Release Highlights article. If you have any questions about Salesforce or want to get started on your digital transformation, contact us today!


    Sources: SalesforceBenSalesforce Admins

    ]]>
    <![CDATA[Surveys for Success: Gleaners Food Bank]]> https://dbservices.com/blog/surveys-for-success-gleaners-food-bank https://dbservices.com/blog/surveys-for-success-gleaners-food-bank Wed, 06 Jul 2022 11:09:00 -0400 <![CDATA[FileMaker Text Message Integration with Message Media]]> https://dbservices.com/blog/filemaker-text-message-integration-with-message-media https://dbservices.com/blog/filemaker-text-message-integration-with-message-media Wed, 29 Jun 2022 11:12:00 -0400 In today's world, one of the fastest and most effective ways to reach your customers is through text messaging. With Message Media integrated into your FileMaker solution, you can contact any potential prospects or existing customers with minimal effort, right on their mobile devices. Let's take a look at how we can do this.

    ]]> Getting Started

    Before getting started, you will need to first have a Message Media account. There is a free trial version offered that will allow for 25 messages to test functionality before committing to purchasing. After signing up, you will be granted an access key and secret, which can be considered your login information in order to use the services. You'll want to keep this information secret and store it in a secure location.

    Sending A Text Message

    One of the main features of Message Media is the ability to send text messages. To do this, all you need is an access key and secret, a valid phone number to send the message to, and the message itself. You can send multiple messages at once and to different people all in one request which makes it very easy to reach a large customer base.

    Here is an example of how simple the request can be:

    ]]> Below is an example of the response received from a successful request:

    ]]> Note the Message ID that is returned. This is the key piece of information you will need in order to track and verify the status of the message you sent. To find more detailed documentation and review other features of Message Media, refer to the documentation found here.

    Conclusion

    Keeping in contact with your customers not only allows for a better relationship, but also provides an opportunity to create new ones. With the ability to easily integrate Message Media with your FileMaker application, you can even set up automation to reach out to customers you haven't heard from in a while or to follow up to seal the deal with a prospecting customer. If you have any questions or wish to discuss integrating Message Media with your FileMaker system, please contact DB Services.

    ]]>
    <![CDATA[FileMaker CopyLiveText & ReadQRCode Functions]]> https://dbservices.com/blog/filemaker-copylivetext-and-readqrcode-functions https://dbservices.com/blog/filemaker-copylivetext-and-readqrcode-functions Wed, 15 Jun 2022 12:02:00 -0400 With the release of Claris FileMaker 19.5, there are some new functions related to containers that offer new ways to increase efficiency, accessibility, and utility in app development. These new functions, CopyLiveText and ReadQRCode, offer the ability to parse out text and read the contents of QR codes. Using these functions, users can implement image captions and image tagging for searching images, removing the need for complex integration solutions for the same text parsing purpose.

    Let's take a look at some quick examples of what you can do with these new functions. Feel free to follow along with the sample file provided at the end of this article. 

    ]]> CopyLiveText Function

    Upon start-up, you should see the intro page with a tab for each new function. Stay on the CopyLiveText tab for now. Insert a photo of your choice that contains text in it. Please be aware that as of FileMaker 19.5, CopyLiveText only works on image files, not PDFs or other file types allowed within containers.

    ]]> Your screen should look similar to this. Clicking the ‘Copy Container Text’ button will active a short snippet of code containing the new function in question, shown below. Once activated, it will scrape the text off of the image and paste it into a text field below, with remarkable accuracy.

    ]]> As of FileMaker 19.5, the function returns a text value, in a language code of your choice between the following options: 

    • "en-US"

    • "fr-FR"

    • "it-IT"

    • "de-DE"

    • "es-ES"

    • "pt-BR"

    • "zh-Hans"

    ]]> As you can see from this example, CopyLiveText transcribes the text from the container file and converts it into a text value that you can now manipulate as you wish. A word of caution: Although the script is quite accurate, the harder it is for you, the user, to read the image text, the harder it will be for the function to read it. Choose images with acceptable quality, and make sure your text fonts are legible to the human eye, and you will have no problem using this function to your advantange.

    ReadQRCode

    Once you are satisfied with the CopyLiveText function, choose the second tab in the demo file. The ‘ReadQRCode’ tab should look similar, but it is quite different in function. Insert a QR image of your choice into the container. For the purposes of this demo, we have opted to showcase the potential for QR codes that lead to website URLs, but in practice, you could utilize any variation of QR codes that you so choose.

    ]]> Once you have a QR image inserted, click the button as before. The code, for the purposes of this demo, will send you to a web viewer layout, with the URL destination filled in by the contents of the QR code.

    ]]> Our sample QR Code takes you to our very own homepage, dbservices.com. As previously mentioned, you do not have to merely use the ReadQRCode function to access URLs; in fact, it could be used in a similar fashion to CopyLiveText by storing plain text in the QR code instead of a URL. In short, anything you could typically use a QR code for, you can now use inside of FileMaker without the need to read it with a QR code reader.

    Conclusion

    As your FileMaker application evolves, so too will your needs and the use cases for the application. With these new features added in FileMaker 19.5, Claris opens the proverbial door for new ways to utilize containers in a way that best suits your application. Whether it’s to appeal to users with new accessibility features, to add new value to your search engine with image tagging, or to streamline the process of using QR codes by now using them directly in the application, these new features have the potential for endless value for any FileMaker application. 

    If you are interested in implementing the new CopyLiveText and ReadQRCode functions into your Claris FileMaker solution, contact DB Services and we'd be happy to help.

    ]]>
    <![CDATA[Parallel Backups on FileMaker Server]]> https://dbservices.com/blog/parallel-backups-on-filemaker-server https://dbservices.com/blog/parallel-backups-on-filemaker-server Wed, 15 Jun 2022 12:01:00 -0400 Backups are an integral part of any database system, ensuring your information is safe and up-to-date in the event of system failures and crashes. Until now, Claris FileMaker Server has backed up the files in your solution one-by-one, but FileMaker Server 19.5 has introduced the ability to enable parallel backups, and it's a game-changer, greatly increasing the efficiency of protecting your important information.

    ]]> What is a parallel backup?

    Traditionally, FileMaker has used a linear, one-by-one approach to perform backups. Now, with parallel backups, the server can backup multiple files at once, greatly speeding up the process. To assign a definition to the process, a parallel backup is the backing up of multiple files simultaneously across multiple processors or CPU threads.

    Parallel backups are an example of Task Parallelism, in which a task is broken down into easier-to-handle subtasks to be executed. These tasks are then handled concurrently by the server machine's processor. To use a tangible example, think that a single cashier at a store has a long line of customers that they have to check out one at a time. This would take that one person a considerable amount of time. Now a second cashier comes in and is also able to check customers out.  The first cashier's line sees this new cashier and half of them go to the second's line. These two cashiers are now both handling a customer, meaning two customers are being checked out at a time as opposed to one, saving both cashiers a large amount of time. Applying this to backups, our two threads, or "cashiers", can process one file each, greatly reducing the time and improving the overall efficiency of the backup process.

    FileMaker Parallel Backups

    To perform a backup in Parallel, FileMaker Server 19.5 makes use of transaction data from FileMaker Pro 19.5 and FileMaker WebDirect to separate related backup files into groups. Each of these groups is then backed up in its own thread during the backup. In progressive backup, the pause and resume steps for each thread are processed in parallel.

    Compared to backing up files sequentially, you'll see definite performance improvements. These performance improvements can be even more notable when:

    • Backups are processed on hard drives optimized for parallel write requests

    • Backups are processed while one or more files are in use

    Working With Parallel Backups

    You can enable Parallel backups on your server by navigating to Backups from the top navigation and selecting "Backup Settings".  There you'll find a toggle for Parallel Backup, this can be enabled and disabled as desired.

    ]]> Parallel Backups can also be enabled, disabled, or viewed in the FileMaker Server Admin Console using the commands:

    • View: fmsadmin get serverprefs ParallelBackupEnabled

    • Enable: fmsadmin set serverprefs ParallelBackupEnabled=true

    • Disable: fmsadmin set serverprefs ParallelBackupEnabled=false


    The FileMaker Admin API also supports these functionalities with the URL https://host/fmi/admin/api/v2/server/config/parallelbackup

    Enabling and disabling Parallel Backups is done using the PATCH method and a boolean value used to toggle the feature, returning a JSON to designate if the change was accepted, as seen below.

    ]]> In the above example "host" will be replaced by your server's address or IP, and ClarisIDToken will be replaced by a Claris ID Authentication token received after authenticating with your admin credentials.

    To check if Parallel Backups are enabled, the PATCH method is used, and returns a JSON object designating whether the feature is enabled or disabled.

    ]]> If you need any further information on the Admin API, you can view our article about it here.

    Log Messages

    When backups are processed in parallel, a new event log message is created that includes the fileset, a numeric ID for a group of databases backed up together. Below are a few examples of log messages you'll see when performing parallel backups.

    • Start of backup fileset 0, total files 1

    • Starting to back up database DBName1, current status: Normal(fileset: 0)

    • Backup of DBName1 completed, current status: Normal(fileset: 0)

    • End of backup fileset 0, total files 1


    You will have strings of messages following these patterns for each file and fileset being backed up, as well as messages indicating any problems that may occur during the backup process.

    Conclusion

    Parallel Backups are a powerful tool to increase the efficiency of protecting and storing your organization's important data. The ability to backup multiple files at a time is a huge evolutionary step in the world of data protection and recovery, greatly reducing the time needed to ensure the safety of information across multiple databases. If you have any questions about Parallel Backups, please contact DB Services and we'll be glad to help!

    ]]>
    <![CDATA[Claris FileMaker Server 19.5 Overview]]> https://dbservices.com/blog/claris-filemaker-server-19-5-overview https://dbservices.com/blog/claris-filemaker-server-19-5-overview Wed, 15 Jun 2022 12:00:00 -0400 Scripting Updates

    Scripting Engine Cache Increase

    The first major change coming to FileMaker Server 19.5 is an upgrade to the FileMaker Script Engine. The new FMSE will be shipped with a new cache size of 256MB – a fourfold increase from the previous cache size of 64MB. The FMSE is in charge of executing server plugins, performing scripts via PSOS script steps, or performing server-side schedules. Thus, the increase in cache size will increase performance from scripts, as well as decrease the likelihood of scripts failing due to a lack of resources. To measure the performance impact of these changes, we ran a script that created 25 records and sorted them using calculations on both a 19.5 Server and a 19.2 FileMaker Server. As displayed in the screenshots below, top call statistics showed the sort performed almost three times as fast on the 19.5 Server. In addition, the scripts' overall performance improved by 22% when run on the 19.5 FileMaker Server.

    Original Benchmarks

    ]]> 19.5 Server Benchmarks

    ]]> Backup Process

    Also included in this release are two updates to backup processes in FileMaker Server: the Parallel Backup Command and the Cancel Backup Command. 

    1. With Parallel Backup enabled, FileMaker will now use file groups to organize related files and process them using multithreading so that full and progressive backups can be run simultaneously. By default, Parallel Backups are disabled, so you will need to access the admin console to enable this new feature. If you want to learn more about Parallel Backups in FileMaker, check out our article.

    2. The new Cancel Backup functionality allows you to terminate the currently running backup initiated by Schedule, On-Demand, or Auto-backup. Please note that using the Cancel Backup command during a parallel backup will not end the other processes. Backups can be canceled in one of three ways:

                   1.   Command Line: "fmsadmin CANCEL BACKUP"

                   2.   FileMaker Admin API URL:https://host/fmi/admin/api/v2/server/cancelbackup

                   3.   Admin Console

    ]]> Save a Copy as XML Script Step

    The final script update we will cover is the ‘Save a Copy as XML’ script step that is now available to use on server. Similar to the DDR, this command allows you to save a copy of your database’s architecture with the added ability to compare it to a prior XML for changes made.

    Linux

    New to the Linux side of things will be an update for Ubuntu 20.04. Web server support will be switching from Apache to a faster and more efficient Nginx platform.

    Web Direct

    Lastly, local accounts can now be hidden on WebDirect for OAuth. To improve user experience, Claris also provides JavaScript files to automate the OAuth sign-in process so WebDirect users can bypass the login screen. If you wish to still sign in without OAuth, you can enable the "Show sign-in fields even when OAuth or AD FS is enabled" option under the File Options menu.

    ]]> Conclusion

    The new Claris FileMaker Server 19.5 includes many more upgrades and fixes to previous versions. These new features promise to bring more speed and efficiency to Claris FileMaker applications. If you are looking to improve your application or upgrade to the new 19.5 Claris FileMaker Server, contact us for more info and get the most out of your Claris FileMaker solution. 

    ]]>
    <![CDATA[Claris FileMaker Pro 19.5 Overview]]> https://dbservices.com/blog/claris-filemaker-pro-19-5-overview https://dbservices.com/blog/claris-filemaker-pro-19-5-overview Wed, 15 Jun 2022 11:59:00 -0400 JSONGetElementType Function

    Furthering Claris’ development of JSON handling, FileMaker 19.5 includes a new JSON function: JSONGetElementType. JSONGetElementType is used to return the type of JSON data of a parameter. This parameter can be in the form of an object name, array, or path. The most notable use for this function is for validating a string as valid JSON data using the following syntax:

    (JSONGetElementType ( {text parameter}, “”) = JSONObject)

    This validation provides increased efficiency in validation when passing JSON objects as parameters or when receiving API responses.

    Preserve Empty Tab Order for Copied Objects

    Copied and pasted layout objects will no longer automatically receive the next serial tab order value. Now when an object is pasted, if it has no tab order associated, it will have an empty tab order value on the pasted object as well.

    ]]> Change Locale Using the Data Migration Tool

    Originally released in FMP 12, the data migration tool has been a powerful command-line tool for moving data from one file to another. The migration tool gave developers the benefits of moving all data at once, automatic data mapping between target and source tables, and the ability to migrate data like user accounts and value lists, which were not previously available through the data import process found in FileMaker Pro. The data migration tool has been updated in 19.5 to allow for the changing of locale for the target file. The list of localization regions is as follows:

    ]]> Remote URLs Now Require Approval

    FileMaker Pro 12 added the ability to access files and scripts through URLs. Users are able to access FileMaker files by opening a web browser and entering a web address in the format:

    fmp://{{account:password@}hostAddress/}filename

    After running this, an instance of FileMaker Pro would be opened on the user's machine for the file using the host and credentials (if provided). This feature still exists; however, unrecognized hosts will now be prompted that the host is not recognized and will be asked to confirm they do want the host to be able to open the file. This dialogue box will also have the option to always permit fmp URLs from this host to prevent the dialogue box from appearing in the future. This change also applies to scripts run through fmp URLs.

    Summary

    Claris FileMaker Pro 19.5 provides security and convenience updates that make development both safer and easier. We are excited to use these new updates in Claris FileMaker 19.5 to continue to help you build custom applications. Contact DB Services at any time if you have questions or needs with Claris FileMaker!

    ]]>
    <![CDATA[NoSQL vs. Relational Databases]]> https://dbservices.com/blog/nosql-vs-relational-database https://dbservices.com/blog/nosql-vs-relational-database Wed, 01 Jun 2022 11:35:00 -0400 For decades, relational databases have been the go-to choice for developers. However, in recent years, relational databases have struggled with the workload that many applications now use day-to-day. Relational databases just don't have the flexibility and scalability required to deal with the amount of data. That's where NoSQL databases like Amazon DynamoDB shine. NoSQL databases are able to scale well to meet these requirements and allow for a less structured design.

    Choosing between a NoSQL database like Amazon DynamoDB and a relational database will have lasting impacts on your project. Performance, ease of use, scalability, and more will all be impacted by the type of database you choose to use. It is an important decision when starting a new project. But what exactly are the differences between the two types, and how do you decide which one will suit your project best? 

    ]]> Major Differences

    Flexibility

    NoSQL allows you to be much more flexible with the structure of the database. A relational database requires a static structure and schema that must be defined at the start of the project. This can be nice when you need a structured schema, but becomes a problem if you need to make changes to the structure as it can be time-consuming and expensive. With NoSQL, you don't have these problems. Since there is no defined schema, it allows for more dynamic schemas. This makes it ideal for more complex projects that have constantly changing data structures.

    Scalability

    NoSQL is designed to scale horizontally whereas relational databases are designed to scale vertically. Vertical scaling means that in order to scale up, you have to upgrade the machine/server that hosts the database. This can be nice and easy, but if you are constantly scaling up, it can get very expensive. Horizontal scaling, on the other hand, involves adding more machines/servers to the resource pool. This is more cost-efficient since you can continue to add cheaper servers. This also allows for rapid growth with minimal downtime.

    Querying

    Relational databases query using the SQL language. Since SQL has been around for many years, it is well supported and documented. SQL is great when needing complex queries that require joins. NoSQL data can be queried quickly, but queries are more limited.


    ACID vs. BASE

    According to the CAP theorem, it is impossible to achieve both consistency and availability in a partition tolerant distributed system. ACID and BASE are database models that attempt to deal with the limitations of the CAP theorem in different ways. Relational databases use the ACID database model to have a consistent system. NoSQL databases use the BASE database model that focuses on high availability.

    ACID (used by Relational databases)

    • Atomicity: Database transactions can be made in multiple statements and atomicity guarantees that each statement will either succeed or fail. If any statements in the transaction fail, it fails the whole transaction and doesn't change the database. This makes sure that the database has only valid and complete data.

    • Consistency: Ensures that any data being written to the database is valid and complies with all defined rules of the database.

    • Isolation: Since transactions are sometimes run concurrently, isolation ensures that each transaction will not affect any other transactions being executed.

    • Durability: Guarantees that once a transaction has successfully completed, it will stay that way even in the instance of something like a power failure.

    BASE (used by NoSQL databases)

    • Basically Available: Instead of needing immediate consistency, BASE will ensure that data is available by replicating across the nodes in the database.

    • Soft State: Since there isn't immediate consistency in a BASE system, data values may change over time. BASE delegates the responsibility of consistency to the developers.

    • Eventually Consistent: BASE doesn't enforce data consistency, but it still can achieve it. It also allows for data reads even when it hasn't achieved consistency. 

    When To Use NoSQL vs. Relational

    So when exactly does it makes sense to use a NoSQL or a Relational database? These days it makes sense to use NoSQL databases in many cases. But there are still plenty of use cases when a relational database is the way to go. 

    If you have large amounts of data or data types and need a flexible schema, you'll want to use a NoSQL database like Amazon DynamoDB as it allows for this flexibility. If you anticipate you'll need to scale your project up quickly and inexpensively, then a NoSQL database is the best option. 

    If you need to use complex queries to get and format your data, consider using a relational database. You'll also want to use one if you're working with smaller amounts of data and don't expect that to change. SQL and relational databases are much more structured and using NoSQL in this instance would be overkill. You will also want to take into account that since relational databases and SQL have been around for many years, they are more supported and stable, and there are larger communities for support and help.


    If you have questions about the differences between NoSQL and Relational databases or you want to know which one to use for your project, contact DB Services and let's talk about what we can accomplish together. 

    ]]>
    <![CDATA[Claris Problem Solvers Circle]]> https://dbservices.com/blog/claris-problem-solvers-circle https://dbservices.com/blog/claris-problem-solvers-circle Thu, 26 May 2022 13:59:00 -0400 This is a limited-time opportunity to build on the success your organization has had with Claris by building and testing new solutions on one, simple licensing plan. This program is limited to the first 500 customers. Contact us now if you'd like to enroll in the Problem Solvers Circle before spots run out.

    What are the benefits?

    This program gives you complete freedom to explore, build, prototype, test, and refine solutions over time that will continue to improve and evolve your business. Here are just a few of the benefits of the Problem Solvers Circle:

    • Opportunity to burn through your backlog

    • Streamlined licensing for all Claris products

    • Advanced developer access to Claris Studio

    • Unrestricted access for additional anonymous users

    • Build connections between all the apps you use for your business

    • Get expert advice to identify improvement opportunities

    Who is eligible?

    To be eligible for the Claris Problem Solvers Circle, you must be a Claris Volume License or Site License customer Customers with expiration dates beyond two years or an already expired contract are also eligible. If you're not sure if you are eligible for the Problem Solvers Circle, contact our team at DB Services and we can help you determine your eligibility.

    Conclusion

    We are excited to see what innovative ideas the Claris Problem Solvers Circle brings! For any other questions about Problem Solvers circle, visit their FAQ page or contact us and we'd be happy to help. If you would like to enroll in the Problem Solvers Circle, contact us now to secure your spot. 

    ]]>
    <![CDATA[Business Days in Salesforce CRM Analytics (Tableau CRM)]]> https://dbservices.com/blog/business-days-in-salesforce-crm-analytics https://dbservices.com/blog/business-days-in-salesforce-crm-analytics Wed, 18 May 2022 11:02:00 -0400 It's common for businesses to want to take business days into account when showing data on a dashboard in CRM Analytics (formerly Tableau CRM) to compare those figures to the last year's same period. The problem is that CRM Analytics does not have a native set of functions to calculate business days; however, Sales Cloud does. We demo how to utilize Sales Cloud's business hours object and some custom Apex to generate business days to sync to Analytics for dashboard queries.

    ]]> Setting Up Business Days Within Sales Cloud

    Business Hours and Holidays

    Before we dive into the Apex code, we have a few things to set up within Sales Cloud. To start, we need to set up our business hours and holidays. Business Hours is a standard object on the Salesforce platform that stores your company's business hours and holidays. Setting up your business hours allows for Salesforce to automatically determine what is a business day or not. Salesforce does not account for observable holidays, though, which means you will have to build out your own code in Apex to work around that.

    ]]> After you have established your holidays and business hours within Sales Cloud, this information is ready to be used in your Apex code.

    Business Day Object

    To store your business day records, you will need to create a custom object. Ours is called "Business Day". Our object has one custom field, which holds the date. This object will be used to record each individual business day in a given year.

    ]]> Using Apex Code to Determine Business Days

    In order to create records in our Business Day object, we will need to leverage the isWithin standard Apex function on the Business Hours object. This function takes in the ID of your business hours and a Datetime variable as parameters and returns whether the given Datetime is within your business hours. In the example below, we use the ID of the default business hours and instantiate two Datetime variables, startDateTime and endDateTime.

    ]]> Using the Datetime variables from above, we iterate through the starting date up to the end date and use the isWithin function to determine if the day is a business day. If the current day is a business day, it then creates a new Business Day record and adds it to a list. After it has gotten to the end date, the list is then uploaded into your database, and ready to be used in Analytics Studio. We recommend having this logic for generating the records automated with a scheduled automation that runs on the first day of the year to eliminate the hassle of running this manually every year.

    ]]> Tableau CRM Analytics Studio

    Once we have the list of Business Day records for this year, we can use them in Analytics Studio as a data set. In order to use our data set in Analytics Studio, we have to create a dataflow that inputs our Business Day records. This dataflow has only two steps. In the first step, we are pulling in the date field from our custom Business Day object.

    ]]> The second step generates the data in Tableau CRM based on the parameters from the first step.

    ]]> Once you create your data set, you are able to use it within SAQL queries and on your dashboards in Tableau CRM. 

    Conclusion

    Creating a business days data set in Tableau CRM is a useful tool that can serve many purposes. You can create dashboards and limit SAQL queries to tailor your reports around your company's business days, making a unique experience specific to your company. If you need help customizing your Tableau CRM Analytics Studio and Sales Cloud experience, contact DB Services today!

    ]]>
    <![CDATA[FileMaker UPS Integration]]> https://dbservices.com/blog/filemaker-ups-integration https://dbservices.com/blog/filemaker-ups-integration Tue, 10 May 2022 11:33:00 -0400 UPS not only delivers your packages with quality, but they also offer an API to streamline any shipping needs that you may have for your company or application. With their API integrated into your software, you can validate addresses, check shipping costs, compare delivery services and rates, print labels, track packages, and much more in one consolidated package.

    In this article, we will be covering two highly useful actions: address validation and tracking. We will demonstrate how you can integrate these actions into your current FileMaker system.

    ]]> Getting Started

    To start, you will need to set up a UPS account. After setting up your account, you will need to generate an API access key. An access key is what the API uses to authenticate your access and allows entry to their software. Your access key is essentially an extra password and should be treated as such. You should keep this secret and store it in a secure location.

    ]]> Address Validation

    With address validation, you can compare city/state/zip combinations and ensure that the info provided is valid. If the address combination is not valid, a list of possible cities/states/zips will be returned. This functionality is limited to addresses in the 50 United States and Puerto Rico. To find more detailed information, read the Address Validation documentation.

    Below is an example of what our request looks like. The only required information is the country code and zip code, along with your login credentials and access key which are passed in via the headers of the request.

    ]]> Here is an example of a successful response from this request:

    ]]> Tracking

    The tracking functionality allows customers to track their shipments and view specific details about the shipment status. By utilizing tracking, you can view your package’s journey from start to finish and see every location the package has been to along with the time of arrival. To be able to use this feature, you will first need a reference/order number. UPS provides some order numbers to test with, and that is what we will be using in this demonstration.

    Below is an example of a successful response from our tracking request. 

    ]]> Conclusion

    Shipping is critical for many companies; if your business is doing a large volume of shipping, it can be a hassle. Save yourself time and frustration by integrating your FileMaker system with UPS to easily manage all your shipping needs in one consolidated package. If you have any questions or wish to discuss integrating UPS with your FileMaker system, please contact DB Services.

    ]]>
    <![CDATA[Salesforce Summer '22 Release Highlights]]> https://dbservices.com/blog/salesforce-summer-22-release-highlights https://dbservices.com/blog/salesforce-summer-22-release-highlights Thu, 28 Apr 2022 15:23:00 -0400 Lather on the sunscreen and pour a cold glass of lemonade; warm weather is here, which means it's time for Salesforce's Summer '22 update release! This release is chock-full of exciting customization updates ready for you to use within your Salesforce organization. We discuss some of our favorite new features coming in Summer '22. Here are a few of the most exciting updates:

    ]]> Salesforce Platform

    Custom Address Fields (Beta)

    This feature, while currently in Beta, allows for improvement of data accuracy and user experience. With a custom address field, users will be able to populate a custom address field manually or using a Google lookup. After the address has been input, it can then be accessed as a structured compound data type, or as individual address components. 

    Customize and Filter Related Lists in the Lightning App Builder

    Tired of going into page layout editor to adjust your Related Lists? Now you can customize your Related Lists directly within the Lightning App Builder by using the new Dynamic Related List-Single component. This new component allows you to customize the Related List by:

    • Giving the list a descriptive name

    • Choosing the list's fields and sorting the order

    • Applying filters to the list

    Below, we use 2 dynamic related list-singles in Lightning App Builder. One displays Opportunities that were created in the last 30 days, and the other displays Opportunities that have an amount higher than 500,000.

    ]]> Development: Write Queries with GraphQL API (Beta)

    Do you want to better your app's performance and send and receive data more efficiently, but don't want to use REST APIs? Look no further than GraphQL API for Salesforce. You can query all of the data you want in a single request, and receive only the data you need. This API can be used to aggregate records, request explicit fields, introspect the schema, and more.

    Automation: Flow Tests (Beta)

    Is debugging your record-triggered flow your least favorite part of its development? This feature is still in Beta, but you can test your flow to test its results, and identify run-time failures. Automated testing will save you time, and helps improve your flow's reliability. Creating, saving, and running tests will all be done within Flow Builder, before activating your flow. There are some limitations to flow tests, though. You can only test a flow path that runs immediately, and flow tests do not support flows that run on record delete. 

    Below is a flow test that tests a simple flow that updates a custom checkbox, Opportunity is Closed Won, whenever an Opportunity's stage is changed to Closed Won. The first test asserts that the checkbox was updated to true, and the second asserts that the checkbox was not updated. The first assertion passes, while the second fails.

    ]]> Analytics: Find the Best Report Type for New Reports

    Save time on selecting report types by utilizing the new enhanced report type selector. The enhanced report type selector allows for quick access to recently used report types, and allows the user to view the fields and objects included in the report type. This enhancement allows you to see if the report type is standard or custom, and hides report types you don't need, leading to a cleaner, and more efficient user experience. 

    Clouds

    Sales Cloud: Manage Associations Between Automatically Captured Emails and Related Records

    Looking to override automatic associations that happen with Einstein Activity Capture? With this release, you now can. You have the choice of removing some or all of the associations between an email and related records, and you can also add new associations. This gives you the flexibility to associate information with more relevant records.

    Service Cloud: Add Flexibility and Power with Messaging for In-App and Web

    This update allows Enterprise Service Cloud users to start conversations with customers on their app or website. It enhances the pre-chat support by gathering the customer's needs and accesses records before the agent connects in the Service Console. It also provides a more modernized experience by utilizing mobile push notifications and custom branding. 

    Experience Cloud: Create Records More Efficiently for High-Volume Sites

    Want your high-volume Aura site to maintain efficiency? With this update, you can enable your site to generate five times as many records simultaneously without slowing down. Utilize this update to keep your site moving during heavy traffic spikes. 

    Commerce Cloud: Sell Globally in B2C Stores

    Want to sell globally in your B2C store? You can specify currency and language for a B2C store. To sell globally, select the country that you want to allow purchases from, and choose whether taxes are included or not in the store prices. There are also new, configurable properties to translate store labels and inform users whether prices displayed include taxes or not. 

    Field Service: Make Appointment Status Changes Easier

    Obtain accurate activity insight without interrupting your mobile workers by setting up your Field Service mobile app to update appointment statuses. This update includes a manual, timed, or automatic mode for Automatic Status Change and allows your mobile workers to stay focused on their job, while automatically giving your back-office workers the activity insights they need.

    Pardot: Automate Better with Completion Action Enhancements

    Your automations in Pardot just got better. You can now apply completion actions to prospects that meet certain conditions you define. These conditional completion actions are grouped based on prospect conditions. You also can combine standard and conditional completion actions on a single asset, making it fully customizable.

    Industries: Invoke Decision Matrices from Flows

    Flows created by using Salesforce Flow can now invoke a decision matrix action element. A decision matrix is an exact-match-based lookup table, which means that it will match your input to a row in the table and return the row's output. In this case, it returns the output to the flow. To utilize this in a flow, you will add an Action element to the canvas, select the decision matrices category, search for your desired matrix, and then enter values into the parameters that are defined in the matrix. 

    Get Customizing and Automating

    With this release comes even more customization and flexibility within your Salesforce organizations. Though these are only a few highlights of the '22 Summer release, it's clear that Salesforce is committed to their user experience and building unique, customizable organizations. If you'd like to learn more about these updates, or any of the many other updates, read up on the official release notes. If you have any questions about Salesforce or would like to see these updates implemented into your Salesforce organization, contact DB Services!

    ]]>
    <![CDATA[Claris Studio Preview]]> https://dbservices.com/blog/claris-studio-preview https://dbservices.com/blog/claris-studio-preview Thu, 28 Apr 2022 14:19:00 -0400 Exciting new changes are on the horizon for Claris! On April 26, Claris shared their company's focus for the future with some exciting announcements, including their new product called Claris Studio, updates to branding and existing products, plans to make Claris more available, and their new Problems Solvers Circle program. If you'd like to see the official announcement, watch the Claris Studio preview webinar here. Let's highlight some of the updates that we are most looking forward to.

    Claris Studio: The Future of the Claris Platform

    Claris announced the official name of their new product, Claris Studio. Claris Studio is a web-based developer environment that promises to be fast, flexible, powerful, and easy to use, in addition to working seamlessly with current Claris products. What we know today as Claris Connect will be automatically included in Claris Studio. Existing Claris products will be rebranded as Claris Pro, Claris Go, and Claris Server.

    ]]> In its first release, Studio will include hubs, anonymous views, and centralized identity management. Dashboards in Studio will show data from Pro and Studio, meaning all your data will be connected on a single, unified platform. Claris Studio will become available in Fall 2022. 

    One Platform, One License For Everything

    As Claris continues to look toward the future and modernize their product line, they shared several exciting updates about licensing. This new licensing model will more easily allow developers to create and test freely until they are ready to share their solutions.

    Freemium Access

    Claris Pro will be available to download for free for single users. You are able to create and test solutions for as long as you like without time pressure. Binaries and tools are completely free, and you will only be charged when you deploy a solution into production and share it with others. Here are their main focuses when it comes to the new licensing model:

    • No friction for new adopters

    • Free access to Claris Studio

    • Freemium version of Claris Pro

    • Honor the power of our developer

    One of their first steps toward empowering developers is making three helpful developer tools available to all:

    1. iOS App SDK: Create and deploy native iOS apps through mobile device management. Users can access your app on their iOS device without installing FileMaker Go.

    2. Data Migration Tool: Migrate data and user accounts from a source file to a target file. You are able to move data into development, test, and production environments on Windows, macOS, or Ubuntu Linux.

    3. Custom App Upgrade Tool: Quickly add fields, tables, and new scripts with this developer preview command-line tool. This tool is helpful if you want to upgrade your app but don't want to lose (or can't migrate) your data, schema, or layout customizations.

    Unified Platform

    In addition to making Claris products more available, they are also focusing on creating a more cohesive, connected platform. In Studio, users and organizations can be managed in one location, and you can easily add other users to your organization to share your solutions. All your data will be available across the Claris platform. 

    Problem Solvers Circle

    Claris' new program for existing customers and developers is called the Problem Solvers Circle. This program is a two-year agreement that grants you access to every available product from Claris, including preview access to Claris Studio. You will have two years to build, test, and deploy solutions that will prove Claris' value within your business. This will be available on May 3 to the first eligible 500 customers at a 30% increase from your current licensing price. 

    ]]> The low-code development platform market is expected to reach $36.43 billion USD by 2027. Claris continues to invest in low-code solutions that organizations can use for a wide range of continuous improvements. Contact DB Services if you'd like help enrolling in the Problem Solvers Circle.

    Conclusion

    We are looking forward to all the upcoming changes to the Claris platform. As always, Claris continues to show its dedication to solving critical workplace problems efficiently and effectively. If you are interested in taking advantage of any of these new and exciting updates to the Claris platform, contact us at DB Services and let's discuss what problems we can solve together.

    ]]>
    <![CDATA[FileMaker Screen Pop with Twilio]]> https://dbservices.com/blog/filemaker-screenpop-twilio-integration https://dbservices.com/blog/filemaker-screenpop-twilio-integration Thu, 07 Apr 2022 11:03:00 -0400 Twilio is a leading cloud communications platform according to a IDC MarketScape report. Their platform is used by major companies, such as Lyft, Twitter, American Red Cross, and Salesforce, expanding digital communications with custom, scalable solutions. A FileMaker and Twilio Integration works great together as well for sending reminder messages to your clients or automated internal communication within your organization. It can also receive information just as well as it sends it out. You could retrieve answers from surveys or appointment confirmations you messaged to customers. Wouldn't it be great if FileMaker notified you when your customers contacted you, just as easily as you contacted them? Through the use of a webhook and a few lines of code, your FileMaker solution can notify you via screen pops when your customers reach out to you.

    Let's see what a customer call notification could look like.

    ]]> Setup

    Twilio Account - If you already have an existing account, you can log in to your console. If not, you can sign up for a trial account here.

    Twilio Console ​- On the console, you can activate a trial phone number. Once you have an active number, you can navigate to the active number settings by clicking on the active number to configure Twilio to contact your webhook.

    ]]> Webhook File - This web script is what connects Twilio to FileMaker. When you receive a call to your active number, Twilio's API will pass that call's information to the webhook file, and the webhook file will then 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 Twilio's API. Twilio's API expects a TwiML response, so our webhook returns a "Hello World!" response to tell the caller. You can read more about what else can be returned from your webhook in Twilio's API Documentation.

    FileMaker Solution - You will then need to set up a web log table to store data from incoming calls passed by Twilio, as well as a listener table. The webhook data will contain which phone number was called and that's how you will know which user to notify in your solution.​​

    How It 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 Twilio, Twilio passes the call to the webhook file.

    3. The webhook file runs a script in the FileMaker solution to create a new record in the web log table and transfers the call data into this record.

    4. After the web log record is created, the webhook will find the user's listener record and delete it, causing our OnRecordLoad script to trigger.

    5. The OnRecordLoad script then performs the screen pop by opening a new window and showing the call's information in front of the user.

    ]]> Conclusion

    With a webhook, you can integrate your FileMaker solution with Twilio to provide screen pops, showing call and messaging data and much more. Contact us today if you would like help integrating your FileMaker solution with Twilio!​

    ]]>
    <![CDATA[Salesforce CPQ: Fixing Percent of Total Calculations for Amended Quotes]]> https://dbservices.com/blog/salesforce-cpq-fixing-percent-of-total-calculations-for-amended-quotes https://dbservices.com/blog/salesforce-cpq-fixing-percent-of-total-calculations-for-amended-quotes Thu, 31 Mar 2022 09:23:00 -0400 Salesforce users looking to enhance their product-quoting processes can take advantage of Salesforce Configure, Price, Quote Software, or CPQ. Salesforce CPQ allows users to create complex pricing structures through a range of new functionality, including the ability to dynamically price an item based on a percentage of the total quote amount. This Percent of Total pricing, or POT, works well when creating a new quote, but users may be disappointed to find that it breaks down when they attempt to amend an existing quote. However, with some JavaScript and a little TLC we can bridge this gap in functionality, allowing you to amend quotes to your heart's content. Let's take a closer look.

    ]]> The Problem

    Let's suppose your company sells electronics, and you want to provide an optional support package for your customers. Because the amount of work involved varies based on the amount of hardware they purchase, you decide to price the support package as a percentage of the total cost of the purchased hardware. This works well for larger accounts, but you decide it's not worthwhile to maintain smaller accounts that might only pay, say, $50 a month. To avoid this, you add a minimum amount of $200 to the support price calculation, and your shiny new "Hardware Support Package" is configured something like this:

    ]]> So far, so good! You whip up a couple of quotes to make sure the Percent of Total price calculation still works correctly with your minimum price constraint. Here is an example of a quote where the support price is 25% of the software total, since this amount is greater than the $200 minimum:

    ]]> And an example of a quote where the support price defaults to the $200 minimum:

    ]]> It works exactly as expected, and your confidence quickly grows. You officially implement this pricing structure, and you begin sending quotes like those above to your customers. You receive good feedback from your sales reps, until one of them tries to amend one of these quotes in a previously accepted contract. Let's use the smaller quote from above, and assume the customer now needs a total of three charge controllers. The additional cost should push the new Percent of Total calculation above the $200 minimum, and the amendment quote should reflect the additional cost of the support package. However, our new quote seems to have missed this memo:

    ]]> Needless to say, this behavior can lead to lost profits on amended contracts. We have a problem.

    The Solution

    According to the official documentation, "Salesforce CPQ doesn’t support the Percent of Total Constraint field on amendment quotes." Rather than letting unaware users face bizarre or inconsistent results when attempting to amend a quote, CPQ simply ignores any such POT fields. Thus, to get the calculation to function properly, we first have to override this default behavior; then, we can implement our own solution.

    CPQ's default behavior works roughly as follows: if a quote item on an amended quote uses Percent of Total pricing and that item has either a minimum or maximum price constraint, then CPQ automatically sets the unit price of that item to zero. Thus, one way to circumvent this behavior is to get rid of the price constraint of a POT item whenever it appears on an amended quote. (Astute readers may note that this sounds like a bad idea, given that our whole goal is to preserve the price constraint; this will be accounted for in our next step.)

    Step 1: The Price Rule

    One of the easiest ways to automatically adjust price calculations is to create a price rule, so let's try that. The entry conditions for our new rule should essentially mimic CPQ's default behavior outlined above; we want our conditions to apply only to quote lines on an amended quote which have constrained POT pricing.  Setting the calculator evaluation event to "On Initialization;Before Calculate" allows our rule to run before this particular bit of CPQ default behavior, and adding two new Price Actions to the rule allows us to zero out the pricing constraints:    

    ]]> Step 2: The Plugin

    Now that we have circumvented CPQ's default behavior, we are free to create our own solution. Salesforce CPQ allows users to extend its functionality through custom scripts, and for our situation, we want to create a Quote Calculator Plugin.  As the name suggests, this plugin will run every time a quote is (re)calculated, which allows us to define the logic for calculating our amended POT price. 

    In order for our plugin to calculate the price correctly, it needs data from three different types of records: Quote, Quote Line, and Subscription. These objects all have fields that reference the "original quote," which allow us to directly compare the new quote data against the data from the quote being amended.

    With this information in hand, we can calculate the desired price for our item and set the list price accordingly. The code snippet included below is excerpted from our Quote Calculator Plugin:

    ]]> This code is part of our onAfterPriceRules() method, which is executed during the second round of calculations. The most important part to note is that we are updating the setter for each quote line item's list price attribute to use our custom logic. Also, it may be helpful to note that the above attribute "aggregatedSubData" is used to store the "original quote" info returned by a SOQL query earlier in the script. The exact details of your implementation will depend on how your org is configured, and more details and examples can be found in the CPQ Documentation.  

    The Conclusion

    Salesforce CPQ provides great tools for businesses to tailor their pricing practices to best suit their own needs. If you need to further customize your process to add Percent of Total Calculations on Amended Quotes reach out to us at DB Services and we'd be happy to help!

    ]]>
    <![CDATA[Surveys for Success: GlobalGiving]]> https://dbservices.com/blog/surveys-for-success-globalgiving https://dbservices.com/blog/surveys-for-success-globalgiving Fri, 25 Mar 2022 11:36:00 -0400 GlobalGiving has been responding to disasters and supporting emergency aid and long-term relief programs since 2004. They provide grants and resources directly to recovery efforts led by people who live and work in affected communities. More than $100M in disaster donations have been facilitated by GlobalGiving through funds just like the Ukraine Crisis Relief Fund. 

    More than 3.4 million people have fled Ukraine in response to Russia's invasion in February 2022. Millions more are displaced within the country, making this the fastest-growing refugee crisis in Europe. Eight years of armed conflict in eastern Ukraine had already created a humanitarian crisis, and GlobalGiving’s local partners had been on the ground long before the news cameras arrived. Donations and grants provided by the Ukraine Crisis Relief Fund will support ongoing local recovery efforts and help make their communities more resilient to future disasters.  

    Each customer survey we receive is an additional donation towards GlobalGiving's Ukraine Crisis Relief Fund. Your feedback for DB Services will not only help our team, but support the mission of GlobalGiving in the process! Simply fill out our surveys with your feedback, and together we can make a positive impact. 

    ]]>
    <![CDATA[Salesforce Summer '22 Release Dates & Preview Information]]> https://dbservices.com/blog/salesforce-summer-22-release-dates-and-preview-information https://dbservices.com/blog/salesforce-summer-22-release-dates-and-preview-information Wed, 16 Mar 2022 11:06:00 -0400 Get Ready for the Release!

    Summer '22 Pre-Release Org

    Pre-release orgs are a great way to test the new release features in a stand-alone environment before they're rolled out into your sandbox and production orgs.  These became available on April 21.

    Summer '22 Release Notes

    The official release notes are probably the most highly anticipated date of the each release. These offer us our first in-depth look into each new feature that will be implemented across Salesforce once the release goes live. They became available on April 27 at Salesforce Help.

    Summer '22 Sandbox Preview

    The Sandbox preview is a great way to test out the new features as they pertain to your unique configurations within your own Salesforce org, without affecting your live environment. Use the Salesforce Sandbox Preview Guide to determine if you want to upgrade your Sandbox or keep it on Spring '22 until Summer '22 officially arrives. 

    Sandbox previews begin on May 6.

    Salesforce Summer '22 Release Dates

    The most important thing to do is make sure you're aware of when your Salesforce instance is going to be upgraded to Summer '22. Be sure to test everything before the release goes live to ensure everything still works properly and you know how to navigate the new features and upgrades. Be sure to check out the Release Resources page to help prepare for the new updates!

    The three main release weekends for Summer '22 are:

    • May 21, 2022

    • June 4, 2022

    • June 11, 2022


    You can find your Salesforce instance by going to company information in Setup within Salesforce. To find your release date, go to Salesforce Trust, select your instance name, and click on the "Maintenance" tab. This will show you the date that your org will be upgraded to Summer '22. 

    ]]> If you'd like to check out our favorite new features and upgrades in Summer '22, read our Salesforce Summer '22 Release Highlights article. If you have any questions about Salesforce or want to get started on your digital transformation, contact us today!


    Sources: SalesforceBen, Salesforce Admins

    ]]>
    <![CDATA[Fillable PDFs for Salesforce Field Service]]> https://dbservices.com/blog/fillable-pdfs-for-salesforce-field-service https://dbservices.com/blog/fillable-pdfs-for-salesforce-field-service Tue, 01 Mar 2022 11:31:00 -0500 Automating the generation and parsing of fillable PDFs in Salesforce Field Service can help you save time and eliminate human errors during data entry. Some service companies choose to use fillable PDFs rather than a mobile app to fill out complex inspection reports because PDFs are presented in a format that is more straightforward. We will demonstrate how to do this using a Lightning Web Component to run PDFLib. PDFLib is a powerful and valuable JavaScript library that can be used to create and modify PDF documents and fill forms, allowing your developers to automate generating and parsing your field service reports. This is typically used in relation to assets. PDFLib's features include supporting modification of existing documents and working in all JavaScript environments, allowing its users to not be limited to using Node or the Browser. 

    ]]> Loading the Library into Salesforce

    To begin, you will want to download the minified version of the library, and review its API documentation. After that, you will begin loading the library into your Salesforce org.

    You will want to add the minified version of pdf-lib.js as a static resource in Salesforce. Our sample code assumes that the static resource is named PDFLIB. Then, in the Javascript class that you plan to use the library in, import the library by using the following import: 

    ]]> When working with libraries in LWCs, you will want to use the following function, which loads in your specified library. Once the library has been loaded in, it will be available in the DOM.

    ]]> PDF Generation 

    To begin PDF generation, you will need pdf templates that are then stored inside of Salesforce. You will grab the PDF as binary data from an Apex controller and then pass that to a load function in the library. 

    ]]> Before generating the PDF in Salesforce, you should consider creating pdf templates of the reports in a PDF editor of your choice. You will want to give each fillable field a unique enough name so that you can easily extract data from it later. An example of this would be the following: Fire_Pump_Asset_Inspection__c-Certifications__c-AssetId-Checkbox-Red.

    In the above example, we are using FieldType to specify the form field's type so that we can accurately extract data from the field later on. For example, to pull a value from a text field using PDFLib, you will use the getText() function. To pull a value from a checkbox, you will use the .isChecked() function. (Note: checkboxes return boolean results. If you want to grab the value from the checkbox, you will have to hardcode the value into the field name.) 

    ]]> We are also separating each index with a hyphen rather than a period because we want to avoid interrupting PDFLib's existing logic; dot notation is used throughout the library.

    To accurately relate the data that we are parsing to the right asset, we've put a placeholder for AssetId. We then use PDFLib to alter the names of the fillable fields so that we can replace our placeholder with the correct asset ID.

    There are times that you might need to add more pages to a document because you are inspecting more than one asset on the job. PDFLib allows you to do this by using the copyPages function:

    ]]> You can then generate the PDF by passing the pdf bytes to an Apex controller. (PDF bytes are acquired through the saveAsBase64() function.) When generating a report that has sub-assets, have the user input a rough estimate of the number of sub-assets that belong to a location. Pad that by 15-20%, and that's how you decide how many pages we need to copy in the copyPages function.

    ]]> Parsing the PDF

    Now that your tech has finished filling out all of their reports, they need to load them back into Salesforce. For the example below, we've used Salesforce's lightning:fileUpload component. This component passes back a list of content version IDs and content document IDs.

    ]]> In our example, we retrieved the document as a form using PDFLib's getForm() function. Then we created maps to hold the Salesforce field names and their values. 

    ]]> For each page of the uploaded form, we grab its respective field names through the page.node.Annots() function. Then we loop through the annots, and in each iteration of the loop, we grab the unique name that we had previously assigned to each field.

    ]]> The first index of our unique field name will always be the name of the custom object, and the second index will always be the field name. We grab the Salesforce field name and put it into a variable, this will be our key in our map. We then extract the form field type, which allows us to accurately select the function that we need to use to get the value from the form field. Once our map is completed, we use an Apex controller to perform an upsert operation on it.

    Sub-Assets

    Often, you will have several sub-assets relating back to a primary asset. These will take a similar approach as regular assets. We relate the sub-asset back to its parent asset and location. The naming convention will be like the one that we set up for regular assets: Name_of_Salesforce_Object-Name_of_Objects_Field-Asset_Type-AssetId-FieldType-FieldValueIfCheckbox. We loop through the sub-assets and create records in the respective custom object in Salesforce.

    Error Handling

    Technicians may be uploading several reports throughout the day, so adding a little bit of error trapping can help ease the process for them. We suggest adding a hidden field to each PDF called workOrderId. While generating the document, we can replace that field with the actual work order ID of the current work order. When someone uploads that PDF later on, it will check to make sure they are uploading to the right work order. If they aren't, it throws an error with the work order ID they should be uploading to.

    ]]> Conclusion

    PDFLib is a powerful tool for any organization using Salesforce Field Service. The ability to automate the generation and parsing of your service reports will eliminate user error during data entry and it will give your users more time during their day to focus on other important tasks. If you need help generating fillable PDFs in Salesforce Field Service, please contact DB Services and let's discuss what we can accomplish together.

    ]]>
    <![CDATA[FileMaker ShipStation Integration]]> https://dbservices.com/blog/filemaker-shipstation-integration https://dbservices.com/blog/filemaker-shipstation-integration Fri, 18 Feb 2022 11:09:00 -0500 ShipStation is a web-based e-commerce shipping platform that can streamline and automate your fulfillment processes, allowing you to manage all your small parcel and LTL shipping needs in one place. ShipStation notifies the selling channel and your customer of the shipment and provides tools to track shipments and manage returns.

    Companies that use both FileMaker and ShipStation often find themselves doing double data entry from one system to the next. In this article, we will demonstrate how you can eliminate the hassle of manually creating orders and shipping labels, updating product and customer data, and retrieving shipping rates by integrating your FileMaker solution with ShipStation.

    ]]> Setting Up a ShipStation Account

    First, you will need to set up a  ShipStation account. Once you have your account, you will need to generate your API key and API Secret. The API Key and API Key Secret are essentially software-level credentials that allow a program to access your account without the need for providing your actual username and password to the software. These values can be used to access all of your account data and should be treated the same as a username and password. Don't share your API Key and API Secret.

    ]]> The ShipStation "create order" API call requires parameters outside of the URL encoded parameters shown below. This API call requires an orderNumber, orderDate, orderStatus, billTo, and shipTo to be passed in the request body. The five required and any additional parameters will need to be JSON-encoded text, passed as a parameter using the cURL variable. Detailed information about all parameters is available in ShipStation documentation.

    I saved five required parameters in variable and named it $data: 

    ]]> Example of our cURL request: 

    ]]> After our cURL request, ShipStation will return a response to FileMaker, either with an error code or full information about the order. If it was a new order, ShipStation will generate an orderKey inside our response. The orderKey needs to be saved if you plan to update your order to get information back from ShipStation. Adding our orderKey to the cURL option will update the existing order. Here is an example:

    ]]> Conclusion

    Double data entry can be a thing of the past by integrating ShipStation with your FileMaker solution. You can manage orders and shipments, create shipping labels, and retrieve shipping rates through the ShipStation API. Automate your orders and shipments while eliminating double data entry to avoid human blunders and saving time.. Please contact us if you need further assistance or would like to discuss getting your FileMaker Solution integrated with ShipStation.

    ]]>
    <![CDATA[FileMaker ActiveCampaign Integration]]> https://dbservices.com/blog/filemaker-activecampaign-integration https://dbservices.com/blog/filemaker-activecampaign-integration Wed, 09 Feb 2022 10:37:00 -0500 ActiveCampaign is a popular automation platform that lets you easily standardize your workflows, boasting dozens of ways it can prove useful to almost any business. From sales follow-ups all the way to healthcare reminders, ActiveCampaign is used by 150,000+ companies worldwide, helping them streamline the way they reach out to their customers. In tandem with FileMaker, ActiveCampaign can be used as a powerful tool to keep in touch with just about anybody with an email address, making sure all your open loops are successfully getting closed on a regular basis. In this article, we will be covering how to integrate FileMaker with ActiveCampaign by syncing contacts and adding them to automations.

    ]]> Setting Up an ActiveCampaign Account

    Before we can get started, you will need an ActiveCampaign account. For the purposes of this demo, you can use a trial account to gain access to the basic features ActiveCampaign has to offer, including the API. Once you have an account made, go to your settings to get your API URL and API Key. Both of these pieces of information will be needed to establish a link from FileMaker to ActiveCampaign. 

    Integrating ActiveCampaign with FileMaker

    Using the "Insert From URL" script step alongside some cURL, you can perform a call to the ActiveCampaign API with the credentials you got from the previous step. Please note, however, that the URL of the API request differs from account to account, so your API request must be prefixed with the API URL you got earlier (shown below). 

    ]]> If we were to create a contact in ActiveCampaign, a standard payload would look like this:

    ]]> After a successful post through the API when creating a contact, you should get a response like this: 

    ]]> Conclusion

    By integrating ActiveCampaign with your FileMaker system, you can leverage ActiveCampaign's vast collection of automation tools to perform a wide variety of tasks. Regularly reaching out to clients, patients, or colleagues can change from a time-consuming chore to a completely automated process that requires minimal to no input -- while also minimizing the need for double data entry and lowering human error to boot. If you would like assistance integrating ActiveCampaign with your FileMaker solution, please contact DB Services and we can help you get started. 

    ]]>
    <![CDATA[FileMaker Authentication with Salesforce]]> https://dbservices.com/blog/filemaker-authentication-with-salesforce https://dbservices.com/blog/filemaker-authentication-with-salesforce Fri, 04 Feb 2022 10:44:00 -0500 FileMaker's custom IdP authentication is a great way to extend your organization's security. FileMaker has used Amazon, Google, and Microsoft with an easy configuration since version 16. Now, we have the ability to configure a custom provider using industry-standard OAuth2 or OpenID protocols. We will be showing you how to configure your Salesforce instance as an authentication source for your FileMaker applications. 

    Using an identity provider is a great way to manage and secure your application.  

    ]]> Preparing the Salesforce Organization 

    Let's start by preparing the Salesforce organization. Every identity provider will require configuration. We will need information from this process when configuring the FileMaker Server Custom IdP settings. 

    Identity Provider

    In your Salesforce setup, search for "Identity Provider." This page allows you to enable Salesforce as a single sign-on provider. Once enabled, it will prompt you to choose the certificate used when communicating. For the purpose of this article, we will use the default self-signed certificate.  

    Save your certificate and document your Issuer on the following screen. For example, in my test org, it is https://dbservices-b-dev-ed.my.salesforce.com, which we will use to configure our FileMaker Server below. 

    ]]> Connected Apps

    After your Identity Provider is enabled, you will need to create a Connected Application. At the bottom, you will find the Service Providers section. Click the link to create a new Connected App: "Service Providers are now created via Connected Apps. Click here."

    ]]> Fill in (at a minimum) the required basic information at the top of the form.

    • App Name

    • API Name- Default to the app name.

    • A contact email

    • Logo URLs- You can use their default logos or upload your own.


    Next, check the box to Enable OAuth Settings.

    • Callback URL - This is the URL the app will call when a sign-on is successful. It is the same for every FileMaker server, just replace YourFMServerDomain, with the public address of your FileMaker Server.

    • OAuth scopes - You will need to include two scopes in order for the app to authenticate properly. 

    • Access the identity URL service (id, profile, email, address, phone)

    • Access unique identifiers (OpenID)


    Save your changes, the confirmation screen will have additional information we need to document for the implementation.

    Confirmation Page

    Before leaving this page, be sure to copy and document both the Consumer Key and the Consumer Secret. Keep this information in a safe place; we will use it later.

    ]]> Configuring FileMaker Server

    Next, we will configure our FileMaker Server. This is where all the information we've collected will be put to use. Along with the information we collected, we will also need the endpoints our OAuth provider uses to make the necessary calls. The required endpoints are for the authorization code, authorization token, and authorization profile. The paths for Salesforce all begin with the Issuer path we documented above in our case, https://dbservices-b-dev-ed.my.salesforce.com. The endpoints for our server would be: 

    • Authorization Code → https://dbservices-b-dev-ed.my.salesforce.com/services/oauth2/authorize

    • Authorization Token → https://dbservices-b-dev-ed.my.salesforce.com/services/oauth2/token

    • Authorization Profile → https://dbservices-b-dev-ed.my.salesforce.com/services/oauth2/userinfo


    After logging into your FileMaker Server Admin Console, navigate to the Administration tab and then to the External Authentication area on the sidebar. Now, we'll expand the Custom IdP Authentication Settings.

    ]]> Now that we have all the required information, we will enter it into the server settings. As you can see, everything we collected fits into the FileMaker settings page in the first set of fields. Along with this information, we need to let FileMaker Server know the user account schema and scope. The standard for these is: 

    Schema: email

    Scopes: OpenID, profile, email 

    These let FileMaker identify the user account information when logging into the server. Finally, choose the authentication type you are using and save your settings - in our case, that is OAuth 2.0. 

    ]]> Verify Your Identity Provider

    FileMaker provides a way to verify your settings, and we recommend you test your settings and confirm you can authenticate correctly before moving on to configuring your FileMaker files.

    ]]> Configure FileMaker Pro Security

    As the last step, add your users under FileMaker Security. You will find a Custom OAuth from the list of configured providers. Add any authorized users and choose a privilege set for them. 

    ]]> Conclusion

    This custom configuration with Salesforce is a great way to manage and secure your FileMaker application. If you have any questions or need help using Salesforce as an authentication source for FileMaker, contact our team at DB Services and we will be happy to assist you. 

    ]]>
    <![CDATA[DB Services Achieves Salesforce Ridge Consulting Partner]]> https://dbservices.com/blog/db-services-achieves-salesforce-ridge-consulting-partner https://dbservices.com/blog/db-services-achieves-salesforce-ridge-consulting-partner Mon, 31 Jan 2022 11:09:00 -0500  "Salesforce is a great platform that aligns perfectly with our company's mission- to provide clients with solutions that will make their business more efficient and effective," says Jeremiah Kincaid, VP of Salesforce Consulting. "We look forward to our future in partnership with Salesforce."

    Since becoming a Salesforce partner, our team has worked to provide our customers with superior service and exceptional expertise in all things Salesforce.  With a 4.9/5 star rating on the Salesforce AppEchange and 25 active certifications (and counting), we have only scratched the surface of what we can accomplish with Salesforce and we look forward to what is in store for us in 2022 and beyond! 

    If you want to discuss your Salesforce needs, contact DB Services and let’s find a solution that works for you!

    ]]>
    <![CDATA[DB Services Awarded GSA Schedule Contract]]> https://dbservices.com/blog/db-services-awarded-gsa-schedule-contract https://dbservices.com/blog/db-services-awarded-gsa-schedule-contract Wed, 26 Jan 2022 11:03:00 -0500 “Our team has been providing digital transformations that make businesses more efficient and effective for nearly twenty years,” said Kevin Hammond, CEO of DB Services. “We are excited for this additional opportunity to provide innovative services and solutions to government agencies."

    DB Services is a certified Claris FileMaker, Salesforce, and AWS partner focused on software consulting and development and dedicated to helping organizations with their digital transformation initiatives. Its mission is to make organizations more efficient and effective through digital transformations while offering superior service and exceptional expertise. Since 2003, they have worked with hundreds of clients large and small to provide custom solutions. They have also worked with agencies such as NASA, USAF, and NOAA providing software licenses and development services.

    For more information regarding DB Services’ GSA Schedule offerings, please request our GSA Schedule online using our contact form.

    ]]>
    <![CDATA[Salesforce Spring '22 Release Highlights]]> https://dbservices.com/blog/salesforce-spring-22-release-highlights https://dbservices.com/blog/salesforce-spring-22-release-highlights Wed, 12 Jan 2022 11:12:00 -0500 Platform: Flow Orchestrator

    Coming out of beta and with some additional functionality, the Flow Orchestrator gives admins greater ability to build and coordinate complex processes that involve multiple people over multiple stages with multiple flows.

    ]]> Some key functions this tool offers to users:

    • Orchestrate Multiuser Processes - Without using any code, you can now combine new and existing processes into a single interface. Steps allow you to define which flows to add and where, including the assignment of users to each step and where the flow appears for them. Stages allow you to group steps together and can utilize decision elements for more complex logic.

    • Customize Entry and Exit Conditions with Evaluation Flows - Evaluation Flows allow you to define custom criteria for stage exit conditions and step entry and exit conditions.

    • Assign Interactive Steps to Groups or Queues - Instead of assigning an interactive step to an individual, you can assign it to a group of users and avoid process bottlenecks.

    • Process Background Steps Asynchronously - Background steps enable users to call autolaunched flows and run without user interaction. Now, when an autolaunched flow is called in the background and contains external callouts, you can mark that step to be processed asynchronously to prevent orchestration errors.

    Sales: Collaborative Forecast Enhancements 

    Released in 2018, collaborative forecasts have enabled users to plan their end-to-end sales cycle and achieve more realistic sales expectations throughout their organization. Some enhancements for this tool found in the release:

    • More Efficient Collaborative Forecasts Setup - Setup has never been easier with an improved user interface including a new look and configuration items brought together on a single page.

    • Quick Insights from Core Forecasting KPIs - Add new columns to your forecasting grid to calculate Gap to Quota and Pipeline Coverage and avoid time-eating metric calculations.

    • See Recent Changes in Forecast Categories - With the ability to see week-over-week forecast changes, you can now be more aware of when to adjust your forecasting strategies.

    Service: Workforce Engagement

    This new offering for call centers features a suite of tools aimed at improving scheduling forecasts and agent happiness. Here are some key takeaways:

    • Long-Term Forecasts - Workforce analysts have been using intelligent forecasts to plan staffing needs around anticipated workload volumes on a 12-week horizon. Now they can project out to 52 weeks.

    • Long-Term Capacity Plans - Budget and hiring capacity plans enable call centers to meet customer SLAs through predictions made by Omni-Channel plans. Similarly to the forecast update, this extends the capacity plan horizon from 12 to 52 weeks.

    • Historical Adherence Metrics - Build better schedules by comparing anticipated schedule adherence versus actual adherence. Planners now have access to the Historical Adherence Dashboard and see statistics for schedule adherence, conformance, Omni-Channel status, and scheduled versus presence time.

    • Mass Shift Update - This tool allows planners to update shifts in bulk, defining criteria to select a batch of shifts and assign agents, update shift statuses, or both.

    • Limit Non-Standard Shifts - Agent work-life balance is important and not all shifts are desirable. Scheduling rules that limit inconvenient shifts assigned to each agent enable planners to employ more equitable shift scheduling.

    Pardot: Enhanced Landing Page Experience

    In the Winter '22 release, Enhanced Landing Pages for Pardot gave users some really useful features to create landing pages including Drag-and-drop builder, responsive design, Salesforce CMS images, and Salesforce reporting. 

    ]]> This update brings even more options to configure your landing page.

    • Customize Pardot Form Styles - Dial in the look of your Pardot forms with the added ability to apply colors, fonts, margins, and more.

    • Set a Redirect for Unpublished Landing Pages - Users now have the ability to define a custom redirect URL when a Pardot landing page is removed from the internet.

    • Add Scripts - Enhanced landing pages now support script code in the header or footer of an individual landing page using <link>, <script>, and <style> tags.

    • New Page Layouts and Breadcrumbs - With new prebuilt layouts and breadcrumbs for row editing, creating an Enhanced Landing Page can be lightning fast.

    Experience: Archive Experience Cloud Sites & Maintenance

    Retiring a website can be a bittersweet experience. You’re happy with the look of your shiny new site, but you may want to keep the old one around for reference, in which case, you could archive it... unless it was a Salesforce Experience Cloud site. Until now!

    Salesforce has added a new Archive button to the detail page of your site, which makes the URL unavailable to all users and instead displays a site under maintenance page. If you ever decide to bring it back, you can simply unarchive it. Users can archive up to 100 sites and they do not count against the 100 active site limit.

    Commerce: B2B Promotions

    Several new types of commerce promotions have been created for B2B stores, allowing you to offer your customer coupons, fixed discounts, and more promotions per cart.

    Additional updates include creating multiple product discounts for the same promotion, the ability to view all promotions applied to an order, and Commerce Promotions API access through Apex. 

    Analytics: Edit Multiple Fields Inline on the Report Run Page

    For anyone who has ever wished they could make inline edits to multiple fields and clean data from within a Salesforce report without rerunning it every time, your wish has been answered. A welcome enhancement to the Inline Edits on Reports from the Summer '21 release, the added functionality allows you to make edits to a field with related fields on the same record. When you do this, the related fields are marked as Pending and are updated with the new value upon saving the edits. Multiple-field inline editing for reports has entered Beta testing and will be available to most users in the Spring '22 release. 

    ]]> Field Service: Bundle Service Appointments

    A small but important enhancement here, the ability to bundle short appointments at nearby locations allows you to assign a service tech to the bundle to complete them in succession. Additionally, you can automate the creation of bundles and save time on assigning multiple service appointments.

    CPQ: Browser Performance Improvements

    Anyone who has dealt with a complex CPQ implementation knows how slow it can be to run certain operations. By utilizing new Web Components V1 tech, Salesforce has made the program far less browser-hungry. This update was first made available in the Summer '21 release and will be enforced in Spring '22.

    Industries: Net Zero Cloud

    Sustainability Cloud is now Net Zero Cloud and has become a core Salesforce App. It promises to help collect, categorize, and analyze energy usage and greenhouse gas emissions data throughout your organization’s business activities. This allows you to gain accurate insights into your carbon footprint and identify areas of improvement.

    Conclusion: Resolve to Work Smarter

    With all these awesome enhancements and much more, the Spring '22 release should provide plenty of motivation to kickstart your year with a renewed commitment to continuous improvement. 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[Surveys for Success: St. Baldrick's Foundation]]> https://dbservices.com/blog/surveys-for-sucess-st-baldricks https://dbservices.com/blog/surveys-for-sucess-st-baldricks Mon, 10 Jan 2022 11:16:00 -0500 DB Services has chosen to support the St. Baldrick's Foundation this quarter with our Surveys for Success program. St. Baldrick’s is the largest charitable funder of childhood cancer research grants, supporting research at all 200+ institutions in the US that treats kids with cancer. The Surveys for Success program is our way of saying thank you for your valuable feedback by paying it forward to those in need.

    Worldwide, 300,000 children are diagnosed with cancer each year, and in the U.S., more children die of childhood cancer than any other disease. Driven by a mission to ensure kids survive and thrive after cancer, St. Baldrick's has been a part of virtually every advancement in the field over the past 20 years. St. Baldrick's volunteers and donors have funded more than $312 miliion in lifesaving childhood cancer research, and their rigorous scientific review process ensures that every possible dollar goes to the most promising research. Visit StBaldricks.org to learn more, donate, or volunteer to help conquer kids' cancer.

    ]]> Each customer survey we receive is an additional donation towards St. Baldrick's. Your feedback for DB Services will not only help our team, but support the mission of the St. Baldrick's Foundation in the process! Simply fill out our surveys with your feedback, and together we can make a positive impact. 

    ]]>
    <![CDATA[FileMaker Google Maps Polygon Integration]]> https://dbservices.com/blog/filemaker-google-maps-polygon-integration https://dbservices.com/blog/filemaker-google-maps-polygon-integration Wed, 29 Dec 2021 11:19:00 -0500 Google offers a plethora of APIs to integrate different Maps features in custom solutions, including polygons. In Google Maps, a polygon defines a series of connected coordinates, forming a closed loop. They can be used to define the boundaries of a lake, city, or forest, for example, and can be useful to show the distribution of features in different regions on the map. In this article, we'll discuss how to use the Google Maps JavaScript API polygons feature to display locations and regions on a virtual map embedded in your FileMaker solution. 

    ]]> 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.

    ]]> Once you have created the project, you will then need to enable the Google Maps JavaScript API and then set up the credentials for the API. Once you have an API key, paste it into the example FileMaker solution.

    ]]> Storing and Restoring Polygons

    A FileMaker record needs to be created for each polygon drawn on the map. This allows the polygon to be recreated when the map is refreshed or used on a different layout in the FileMaker solution. To achieve this, we take the properties of the polygon object and send them to FileMaker using the FileMaker.PerformScript() function. This logic is contained in a listener function that runs when the user has completed drawing a polygon on the map.

    ]]> We use a handler script in FileMaker to take the polygon properties and create a FileMaker record and assign those properties to a field.

    ]]> We need a script and JavaScript function to restore polygons that are stored in FileMaker. The FileMaker script creates a list of polygon properties through a cartesian relationship and calls an associated function using the Perform Javascript in Web Viewer script step.

    ]]> Finally, the JavaScript function takes the list of polygon properties and adds them to the map.

    ]]> Conclusion

    Using Google Maps polygons in conjunction with your FileMaker solutions enables you to display useful and dynamic geographical information with simple FileMaker scripts and a few lines of code. If you have any questions or want to discuss a Google Maps integration in your FileMaker solution, please contact DB Services.

    ]]>
    <![CDATA[FileMaker Mailchimp Integration]]> https://dbservices.com/blog/filemaker-mailchimp-integration https://dbservices.com/blog/filemaker-mailchimp-integration Tue, 21 Dec 2021 10:49:00 -0500 Intuit's Mailchimp is a powerful tool that allows you to engage with your customers to boost your business with an advanced, yet easy-to-use marketing platform. With over 12 million active customers and a total audience of over 4 billion, Mailchimp has become a leading marketing platform for all types of businesses. Companies that use both FileMaker and Mailchimp often find themselves doing double data entry from one system to the next. In this article, we will demonstrate how you can eliminate the hassle of manually updating your email lists by integrating your FileMaker solution with Mailchimp.

    ]]> Setting Up a Free Mailchimp Account

    First, you will need to set up a Mailchimp account. Once you have your account, you will need to generate your API key. This key will be used to authenticate with the API so Mailchimp knows who you are. Make sure to generate an API key, not a client key for mobile apps.

    Now that you have your API keys, we will need to grab the Audience ID of your default audience. This ID will be used to tell the API where to push your contacts. Free accounts are only allowed one audience (list), Essentials allows up to 3, Standard up to 5, and Premium allows unlimited. Navigate to all contacts, click on the Settings dropdown, and select "Audience name and defaults." From here, you can copy the Audience ID to the right.

    Integrating With the Mailchimp Marketing API

    The Mailchimp "add members to list" API call requires parameters outside of the URL encoded parameters shown below. This API call requires an email and status to be passed in the request body. The two required and any additional parameters will need to be JSON-encoded text, passed as a parameter using the cURL variable.

    ]]> It's important to note that with a successful API request, Mailchimp will NOT return a response to FileMaker. This means it's important to consider this in your error trapping, as FileMaker will generate a false error code 10 as there is no response returned.

    The API will return a response if an incorrect request was made. For example, if a contact unsubscribes to the list, the API is not allowed to resubscribe them. If this happens, Mailchimp will return an error along with the contact's subscription status, which you can parse out using the native JSONGetElement () function.

    Conclusion

    Double data entry can be a thing of the past by integrating Intuit's Mailchimp with your FileMaker solution. You can manage lists, activities, events, and much more through the Mailchimp API. Automate your surveys, email campaigns, and marketing processes while eliminating double data entry to avoid human blunders. Please contact us if you need further assistance or would like to discuss getting your FileMaker Solution integrated with Mailchimp.

    ]]>
    <![CDATA[DB Services Named Claris Growth Partner of the Year for 2021]]> https://dbservices.com/blog/db-services-named-claris-filemaker-growth-partner-of-the-year-for-2021 https://dbservices.com/blog/db-services-named-claris-filemaker-growth-partner-of-the-year-for-2021 Wed, 15 Dec 2021 14:15:00 -0500 DB Services CEO, Kevin Hammond, reflects on the award: "It is an unprecedented honor to be given the Claris Growth Partner of the Year award for 5 years running. Our incredible team and drive for innovation and growth continue to put us at the forefront of the Claris space."

    DB Services' mission is to make organizations more efficient and effective through digital transformations while offering superior service and exceptional expertise. With over 19 years of Claris FileMaker experience, DB Services is dedicated to advocating and growing the FileMaker community. 

    Since 2003, DB Services has provided custom applications and workflow solutions to Fortune 500 companies, small businesses, K-12, Universities, nonprofit organizations, and more.  DB Services is also Claris Business Alliance Platinum Member, and provides FileMaker DevelopmentFileMaker SupportFileMaker TrainingFileMaker Cloud Hosting and FileMaker Licensing. With over 20 Certified FileMaker Developers and 5 consecutive Partner of the Year awards, DB Services is considered one of the top Claris Partners in the country.

    For a complimentary analysis and consultation, contact DB Services or give us a call at 888-488-0191.

    ]]>
    <![CDATA[Claris FileMaker 19.4 Overview]]> https://dbservices.com/blog/claris-filemaker-19-4-overview https://dbservices.com/blog/claris-filemaker-19-4-overview Wed, 17 Nov 2021 11:37:00 -0500 Claris FileMaker Pro 19.4

    The latest release of FileMaker Pro allows us to install it on both the latest operating systems offered including Windows 11 and macOS 12 Monterey. Claris has you covered! 

    Monterey Shortcuts To Streamline Your Everyday Tasks!

    ]]> In this simple example, you can see we prompt the user for an invoice number. Once they provide the number, macOS Shortcuts will call a predefined FileMaker script with the input as a parameter, allowing us to interact with our custom applications in whole new ways!

    ]]> Session Identifiers

    By default, FileMaker Server displays the username configured under the Preferences for FileMaker Pro and Go, while WebDirect uses a seemingly random alphanumeric string. FileMaker 19.4 now has the ability to set an identifier for the current user. This identifier will be carried over to the server when running things server-side or while using FileMaker WebDirect. 

    ]]> This is done through the use of a new script step allowing you to customize the name.

    Set Session Identifier ( ) 
    Conversely, a new function that has been added will allow you to get the name you specified in any calculation context for use at a later time.   

    Get( SessionIdentifier )
     ]]> Claris FileMaker Server 19.4

    Customizable OAuth Providers

    FileMaker Server has been able to use Amazon, Google, and Microsoft as an identity provider for the last two versions. While a great addition to the platform, it did limit your choices for OAuth identity providers. The latest version of Claris FileMaker extends this to include all OAuth2 or OpenID protocols providers, such as Ping, OneLogin, Auth0, and Okta. This is achieved using a simple form within the Admin Console. 

    ]]> Summary

    The Claris team continues to improve the FileMaker platform by creating innovative improvements and leveraging the new macOS Monterey features. We're excited to automate your day-to-day tasks using Shortcuts. 

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

    ]]>
    <![CDATA[Salesforce Implementation Checklist: 9 Steps to Success]]> https://dbservices.com/blog/salesforce-implementation-checklist https://dbservices.com/blog/salesforce-implementation-checklist Fri, 05 Nov 2021 11:35:00 -0400 Through it all, Salesforce continues to remain one of the largest players and one of the best platforms in the market. But we all know that it's an extremely complex platform with plenty of depth- and finding the best implementation for your company can be difficult.

    So, you find yourself here after making the great decision to use Salesforce to fulfill your business needs and extract the greatest value from your data and processes. But the out-of-the-box configuration will rarely serve all of your unique requirements. A Salesforce implementation will get you and your users started using a platform that is tailored to your business. And the difference a well-planned implementation can make is well worth the resources you put toward its design. 

    We've put together a comprehensive, downloadable 9-step checklist that will help guide you down the right path with your Salesforce implementation. Whether you choose to hire a consultancy like DB Services or go it alone, these steps will help to ensure you have a successful implementation.

    ]]> Feel Great About Your Implementation

    After completing all the steps, building, testing, training, deployment, and beyond, you can certainly feel great that your Salesforce org was incepted with the utmost care and consideration. It will provide a steady and scalable framework that will provide the greatest value for your business for years to come. 

    If you are interested in crafting your best Salesforce implementation or if you have any other Salesforce needs, contact us at DB Services and let's discuss what we can accomplish together!

    ]]>
    <![CDATA[FileMaker Google Drive Integration]]> https://dbservices.com/blog/filemaker-google-drive-integration https://dbservices.com/blog/filemaker-google-drive-integration Mon, 01 Nov 2021 11:17:00 -0400 We all have files and they all have to be saved somewhere. For over a billion people, that somewhere is Google Drive. Google Drive is a top choice for file and content sharing if you're looking for ease of access, safety, privacy, and seamless collaboration. If you're interested in using FileMaker to seamlessly share files to and from Google Drive, we have just the integration for you!

    ]]> Creating a Free Developer Account

    To use the Google Drive APIs, you’ll need to create a project space in the Google Developer’s Console by going here and following these instructions:

    From the dashboard, create a project. Once you’ve named and saved it, you’ll need to enable the APIs and Services that you need. There’s an aptly named button for that. Use the search field in the center of the screen, and then select the Google Drive API from the results. Enable it.

    At this point, you should now be on the overview screen. You’re going to need to set up all the specifics of your connection, so click the button for “Create Credentials”. There are five steps to this that you’ll need to complete:

    1. Make sure you have the Google Drive API selected, and that you select “User data” as the type of data you will be accessing, then click “NEXT”.

    2. For “Your Credentials”, enter an app name (might I suggest “FileMaker”?) and your email address in the two appropriate fields, before saving and continuing.

    3. “Scopes” can be very important, but this is just a demo. Save and continue.

    4. Your OAuth Client ID. This one is important. FileMaker will use HTTP requests to connect to Google Drive, so for this one, select “Web Application”. Give your application a name. Then, add an authorized redirect URI, and paste in this address "https://dbservices.com/Authentication/FileMaker%20Google%20Drive%20Integration/Pull-Code" before hitting “Create”.

    5. You now have a client ID. Hit done.

    You’ve just created your OAuth 2.0 Client ID. It contains several pieces of information that you need to gather and give to FileMaker, but more on that in a minute.

    On the navigation list to the left, click on "OAuth consent screen".  Right now, your integration is locked in an internal testing mode.  You've got two choices on how to proceed:

    1. Click the button to "Publish App".

    2. Click the button to "Add Users" under Test users, and add your email address.

    Once you've made your choice, move back to the Credentials screen and then click the pencil icon in the Actions column. In the top right corner of the screen, you should see your Client ID and your Client Secret. FileMaker is going to need both of these values to connect to Google. 

    Finally, we get to FileMaker!

    Open our demo file and confirm that you’ve followed all the steps necessary to set up your Google project. Check off the steps as you go. For the final step, plug in the values for Client ID and Client Secret before clicking the Go To Example button.

    ]]> Everything that we will need to do to accomplish this demo is handled by the gold buttons on the left side of the screen. If you’re curious about the “hows”, you can check out the values found in the “Behind the Curtain” box.

    Begin by clicking button 1 and requesting an access code from Google. FileMaker will use the Open URL script step to reach out to the Google API and request access to your account. Thankfully, Google is not a trusting sort, though. A browser window should open and Google will first ask you to verify who you are, and then make sure that you trust FileMaker to do your bidding. If you say yes, Google will send you back an access code.

    You can now click on button 2. Using the information that we’ve collected so far, we’ll reach out to Google again to request back two new codes: a limited-time access token for making additional requests, and a refresh token. As our time limit runs out, the refresh token will make it easier to get a new access token without going through all the steps we did to get our first one. 

    So now we reach the whole point of the demo. Click on the Upload File button and see the magic. A few seconds go by and…nothing happens. Unless you looked at the “Results Returned By Google” field in Behind the Curtain. Google has given us back a JSON result, describing the file that it received. For the skeptics among us, log into your Google Drive and confirm that the Test PDF file is now there.

    But like any good magic trick, it’s not just about making something go someplace else. You have to bring it back. So for our final step, click on the Download File button and watch as the file reappears. 

    Conclusion

    And with that, we conclude our simple demonstration of integrating FileMaker and Google Drive. If you are like me, you are probably getting ready to take apart our completely unlockedsample file and break it down for yourselves. That's okay. We welcome it.

    At DB services, we love FileMaker, and we love helping our customers get the most out of it!  Connecting FileMaker to Google Drive is just one of the ways that we can assist you.  Please feel free to contact us if you need further assistance, or if you would like to talk about how we can help you be even more successful with FileMaker.

    ]]>
    <![CDATA[Surveys for Success: Team Rubicon]]> https://dbservices.com/blog/surveys-for-success-team-rubicon https://dbservices.com/blog/surveys-for-success-team-rubicon Mon, 18 Oct 2021 11:16:00 -0400 DB Services has chosen to support Team Rubicon this quarter with our Surveys for Success program. Team Rubicon is currently coordinating with the Department of Defense to meet the humanitarian needs of the many Afghan families who are resettling into cities across the United States. The Surveys for Success program is our way of saying thank you for your valuable feedback by paying it forward to those in need. 

    Team Rubicon is made up of military veterans who are dedicated to continuing their service by assisting the most vulnerable communities worldwide before, during, and after disasters and humanitarian crises. Veterans work alongside first responders, medical professionals, and civilian volunteers, utilizing technology solutions and hard work to make the greatest impact possible. From preparation to recovery, the team leverages their skills and experience to support those hardest hit in communities across the US. For veterans, this continued service also provides them with three things they often miss after leaving the military: a purpose, gained through disaster relief; community, built by serving with others; and identity, from recognizing the impact one individual can make. 

    Team Rubicon is currently supporting Afghan family resettlement in all phases of the process. They are currently supporting the management of donated goods and setting up the logistics at each donation point for collections and distribution, setting up housing units as families transition into communities, and providing translators where requested. Visit their website to donate, sign up to volunteer, or find Amazon wishlists tailored to the specific needs of each base. 

    Each customer survey we receive is an additional donation towards the Team Rubicon. Your feedback for DB Services will not only help our team, but provide Team Rubicon with donations in the process! Simply fill out our surveys with your feedback, and together we can make a positive impact.  

    ]]>
    <![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.

    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 Guide]]> 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 DB Services 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 Guide]]> 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 Salesforce 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[Salesforce 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[Salesforce 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.

    \tFinally, 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 Salesforce!

    ]]>
    <![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[Salesforce 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 backups. Improvements 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[Salesforce 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.

    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. As of FileMaker Go version 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 keyword: 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 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. 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 CampaignDocparserGoogle TranslateQuickBooks
    AsanaDocusignMailchimpSlack
    AWS LambdaDropboxMailgunStripe
    AWS SESEventbriteMailparserTrello
    AWS SNSFileMaker CloudMS SQL ServerTwilio
    AWS SQSFileMaker ServerMySQL ServerTwitter
    BoxFormstackParticleTypeform
    CalendlyFreshdeskPipedriveWufoo
    ClearbitGoogle MapsPubNubZendesk

    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

    DeveloperFileMaker PlusEssentialsStandard
    Pricing$19.99 per month$49.99 per month$99 per month$249 per month
    Active FlowsUnlimitedUnlimited15Unlimited
    API Calls500/month10k/month10k/month50k/month
    AppsUnlimitedUnlimitedUnlimitedUnlimited
    FileMaker AppsUnlimitedUnlimitedUnlimitedUnlimited
    CollaborationYesYesYesYes
    Update TimeReal-timeReal-timeReal-timeReal-time
    SSOYesYesYesYes

    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 EssentialsFileMaker Cloud Standard
    5-10 users5-100+ users
    t2.largeVaries based on number of users.
    Host 3 appsHost 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/2010-04-01/Accounts/{accountID}/Messages.json

    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. If you'd like help getting FileMaker Cloud Schedule Manager set up, please contact our team at DB Services.

    ]]>
    <![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 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.

    ]]> 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 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 DevelopmentFileMaker SupportFileMaker TrainingFileMaker 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 platforms, Salesforce 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. TheHTTP_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.

    web apps with vue 2-way data bindingComputed 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.

    web apps vue computed propertiesFilters

    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.

    web apps vue filtersMethods

    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.

    web apps vue methodsConclusion

    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.

    If you're interested in extending your FileMaker application with Vue.js, contact DB Services today and let's talk about what we can accomplish together.

    ]]>
    <![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 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.

    If you're interested in taking advantage of all the benefits FileMaker 18 has to offer, contact our team and let's talk about what solutions we can create together.

    ]]>
    <![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 As of FileMaker 18, the 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.

    If you want to learn more about how FileMaker 18 database engine improvements can benefit your business, or you need help implementing a custom FileMaker solution, contact DB Services.

    ]]>
    <![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 as of 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!

    If you have any questions about script error logging or need help with your FileMaker application, please contact our team at DB Services and we would be happy to help.

    ]]>
    <![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!

    Contact us if you have any questions about the While function or need help implementing your FileMaker solution.

    ]]>
    <![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.

    ]]>

    Managing 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.

    ]]> 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.

    ]]> 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.

    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/E9953196A1CE2F19!28596/children?$expand=thumbnails <br>--header "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.

    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 Microsoft Outlook and Microsoft Office are among the most popular business software packages and services on the planet, with Outlook.com alone boasting over 400 million users in 2018. With the Microsoft Graph API, integrating Outlook and its calendar with your FileMaker solution has never been simpler. In this article we will walk through how to use the Microsoft Graph API to create events in Outlook Calendar using FileMaker, streamlining event and scheduling management in your FileMaker solution by eliminating double data entry.

    **Updated February 2022

    ]]> What You Need

    You must have an active Office 365 subscription 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 to create an Azure Active Directory Tenant first if you are using a personal account and not a work or school account. An Azure app must be created to make use of the Graph API. Go to the Azure portal and add an app.  Creating one can be done through selecting “App Registrations” from the Manage section on the left of the Azure Active Directory screen.  After selecting this, select “New Registration” to create your app.  Give the new app a name and select an account type depending on who will be connecting to this application.  It is also recommended to add a Redirect URI, as most authentication scenarios will require one.

    ]]> After creating your app, go to your new App and select the Certificates & Secrets tab under the Manage section and create a new client secret. A client secret will expire after at most two years, so you will eventually have to return to this menu and create a new one before expiration. 

    ]]> Managing App Permissions

    Microsoft Graph requires that each user give the app permission to push and pull data between their Outlook Calendar and FileMaker. Before users can give permission, default permissions will need to be set up on the application registration page. This can be accessed via API Permissions under the Manage section of AAD.  There are two types of Microsoft Graph permissions: delegated permissionsand application permissions. For purpose of this article, delegated permissions will be used to communicate with the Outlook Calendar as a user rather than as an application.

    For the Outlook Calendar Integration, the following delegated permissions must be added:

    • Calendars.ReadWrite

    • Calendars.ReadWrite.Shared

    • User.Read

    • offline_access

    ]]> Making Requests and Parsing the Response

    Microsoft Graph API supports multiple types of HTTP requests such as POST, GET and DELETE. You can perform all actions by using FileMaker’s native Insert from URL[] script step and providing a valid URL and cURL options including required fields within the JSON body specified by the documentation.

    Here is a sample request body to create a calendar event. Note the formatting of theDateTime element, “YYYY-MM-DD”. For more details, refer to Microsoft Graph's properties under the event page

    ]]> If a successful request is made, the API will return a JSON-encoded body. You can check for any encountered errors by looking at the following function after the Insert from URL[ ] step: 

    ]]> Or through multiple error traps checking dumped response headers, such as:

    ]]> These functions will return 200 on a successful call; else the API encountered an error. If the API call was successful, you'll get a JSON-encoded response body like below with an event ID and a change key that you will need to use when updating events:

    ]]> Things to Think About
    • It's important to note that if permissions on the application registration page are changed, users will need to reauthenticate and allow the application use of those new permissions. The same needs to happen if you delete and regenerate your application password.

    • Some users will not have permission to allow application access to their Outlook calendar. Make sure your 365 administrator gives this to each user before attempting 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 using a public calendarthat anyone can see to avoid the need to constantly log back in.

    • You will need to refresh your access token at least once every hour, as the token expires after 60 minutes. We recommend error trapping 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 event and scheduling workflows by providing 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 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 innovative, powerful custom applications for organizations all around the world and works seamlessly across Windows, Mac, iPad, iPhone, and the web. The new release of the 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 Desktop. If you would like help taking advantage of all the great new features FileMaker 17 offers, contact us today.

    ]]>
    <![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 As of 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. if you need assistance setting up push notifications for FileMaker Go, please contact us and we'd be happy to help.

    ]]>
    <![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. As of FileMaker 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://{{server}}/fmi/data/v1/databases/{{database}}/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://{{server}}/fmi/data/v1/databases/{{database}}/layouts/{{layout}}/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://{{server}}/fmi/data/v1/databases/{{database}}/layouts/{{layout}}/records/{{recordId}}/containers/{{containerFieldName}}/{{repetionNumber}}
    -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.

    If you need further assistance with FileMaker add-on tables, please contact our team at DB Services and we'd be happy to help.

    ]]>
    <![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.

    If you have any questions or would like to get set up with FileMaker Cloud Schedule Manager, please contact us.

    ]]>
    <![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 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.

    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. If you need help integrating Xero with your FileMaker application, contact us at DB Services.

    ]]>
    <![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 As of 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.

    ]]> From here just type in your database name, layout name that you wish to pull data from, and the account name and password. You will have to do this process for each layout you wish to pull data from, and like the PHP API, you will only have access to fields that are on the layout.

    Worksheets, Dashboards, and Stories

    In Tableau, each worksheet is an individual chart, and a dashboard is a combination of various worksheets that are capable of interacting with each other. You use the same worksheet in multiple dashboards making unique combinations to dig into your data. Stories are similar to dashboards, except they have multiple pages and are similar to a slide show. Tableau has a great drag and drop interface that is really powerful and will automatically try to determine the best chart type to use.

    ]]> Adding Dashboards to FileMaker

    Once you've created and published a dashboard, you can easily display the results in a FileMaker solution through the use of a web viewer. After publishing your dashboard to the cloud or server you can copy and paste the embed code into a FileMaker web viewer, just make sure to prepend the text with "data: text/html," before the rest of the embed code. Check out the demo file at the bottom of the article to view an example.

    Tableau Deployment and Pricing

    Deploying Tableau is a bit similar to FileMaker in that there is a desktop client edition for creating and editing charts and a server edition used for hosting the information. You can host directly through Tableau using Tableau Online or you can manage your own server. The pricing for each option is as follows:

    • Tableau Online - $42 per user a month (Server managed by Tableau)
      or

    • Tableau Server - $35 per user a month (Requires setting up and managing server)
      and

    • Tableau Desktop Professional Edition - $70 per user a month (Most likely only need one copy)


    There is also a personal edition of Tableau Desktop, but it can't connect directly to FileMaker, and cannot publish data to Tableau Online or Tableau Server. For testing purposes, there is also Tableau Public that you can get from public.tableau.com, which will let you try out Tableau. The only way to save your data using Tableau Public is to a public server which would let anyone see your data, so be careful of what you save while testing.

    Conclusion

    Tableau allows us to dissect our FileMaker data in a really easy and powerful way. There is a reason that business intelligence has become so popular in the last few years: it can help us comprehend massive amounts of data at a glance, allowing companies to identify, monitor, and quickly adapt to trends to help improve business decisions. For further assistance connecting Tableau to your FileMaker solution, contact our team at DB Services and we'd be happy to help.

    ]]>
    <![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. If you need further assistance creating crosstab reports in FileMaker, please contact us today.

    ]]>
    <![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.

    Please contact us if you need help creating a custom application on FileMaker 16.

    ]]>
    <![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 As of FileMaker Server 16, we now have 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 its 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.

    If you need further assistance creating PDFs from FileMaker Server, please contact our team at DB Services and we would be happy to help.

    ]]>
    <![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 guiding potential customers at a show to the booths they would be interested in? As of 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. If you need further assistance taking advantage of the new location monitoring features in FileMaker Go, contact us today and we would be happy to assist you.

    ]]>
    <![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. If you'd like assistance using REST APIs to integrate web solutions with FileMaker, please contact us today.

    ]]>
    <![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 would like further assistance using FileMaker card windows, please contact us and we would be happy to help.

    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 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. Please contact us if you would like help taking advantage of FileMaker's new JSON functions.

    ]]>
    <![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 as of 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. If you need help setting cURL options in your FileMaker solution or want help integrating with 3rd-party web services, contact our team at DB Services.

    ]]>
    <![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 as of 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. Please contact us if you need further assistance taking advantage of the Layout Objects window or any of the other new features in FileMaker 16.

    ]]>
    <![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 always 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. Please contact us if you would like assistance taking advantage of the latest FileMaker security updates.

    ]]>
    <![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. Feel free to contact us if you need any assistance with your FileMaker application.

    ]]>
    <![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.

    METHODROUTEPARAMSACTION
    GET/postsRetrieves a list of all posts.
    GET/posts/1Retrieves post with ID number 1.
    GET/posts/1/commentsRetrieves 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/1Deletes 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. If you'd like assistance using REST APIs to integrate web solutions with FileMaker, please contact us today.

    ]]>
    <![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.

    ]]>

    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.

    ]]>

    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.

    ]]>

    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.

    ]]>

    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.

    ]]>

    And in the documents in SharePoint, the new document is created!

    ]]>

    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. If you would like further assistance integrating FileMaker and SharePoint using Microsoft Graph, feel free to contact us today.

    ]]>
    <![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.

    ]]> 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.

    ]]> 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. Please contact us if you would like help integrating Stripe with your FileMaker application.

    ]]>
    <![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. Contact us if you would like to discuss integrating FileMaker and Salesforce using Zapier.

    ]]>
    <![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.

    ]]> Pushover Icon

    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 workforce 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. Contact us if you would like assistance extending FileMaker with notifications.

    ]]>
    <![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 troubleshoot 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. Contact us if you need assistance integrating this solution into your FileMaker application.

    ]]>
    <![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 filemaker 15 logo

    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.

    Need assistance in taking advantage of all the new features of FileMaker 15? Contact us and let's discuss what we can accomplish together.

    ]]>
    <![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.

    ]]> 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. Need help with WebDirect? Contact us today and we'd be happy to help.

    ]]>
    <![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. If you need assistance setting up iBeacons with your FileMaker application, contact our team at DB Services.

    ]]>
    <![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.

    DB Services can help you get the best price for FileMaker licensing. Contact us today to make sure you're getting the best licensing for the lowest cost.

    ]]>
    <![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.

    TimestampDatabase Server timestamp at the collection interval, using same format as the other log files.
    Start TimeTimestamp at the start of the remote call (seconds.fraction since the Database Server was started)
    End TimeTimestamp 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 ElapsedTotal number of microseconds elapsed for the remote call so far.
    OperationThe 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%).

    TargetThe 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 TimeMicroseconds of elapsed time for the remote call in this collection interval.
    Wait TimeTime waiting for other clients (in microseconds) for the remote call in this collection interval.
    I/O TimeTime waiting for disk input/output (in microseconds) for the remote call in this collection interval
    Network Bytes InNumber of bytes received from the client during this collection interval
    Network Bytes OutNumber of bytes sent to the client during this collection interval.
    Client NameA 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.

    Need help taking advantage of Top Call Statistics Logging to empower your administrators? Contact us to discuss a solution for your FileMaker application.

    ]]>
    <![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.

    If you need help integrating Touch ID & 3D Touch to extend your FileMaker Go solution, contact us and let's talk about what we can accomplish together.

    ]]>
    <![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 FileMaker's capabilities to integrate with millions of other apps. It will be interesting to see the creative ways people put them to use.

    If you are interested in extending FileMaker's capabilities by integrating with a 3rd-party app, contact our team at DB Services.

    ]]>
    <![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 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.

    Contact us today if you are interested in taking advantage of new features in FileMaker 15 like the Portal In-Line Progress Bar.

    ]]>
    <![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:
    https://www.youtube.com/watch?v=XLhahiAPEDM&feature=youtu.be

    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. If you'd like assistance taking advantage of FileMaker 15's new features, contact us.

    ]]>
    <![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, let's review those changes.

    Watch on Youtube: FileMaker 15 Security Features

    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.

    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. Contact DB Services at any time if you have questions or needs with FileMaker.

    ]]>
    <![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! Feel free to contact us if you need help taking advantage of these new in-product updates.

    ]]>
    <![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 Whether 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, but 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 breakpoints 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. A workaround for this is cutting the largest objects into quarters or smaller elements and then aligning 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 workaround 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 organizational 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 sending 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 come 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, and 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.

    ]]> Geolocation

    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, a 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.​ If you need assistance building a radius search in your FileMaker solution, ​contact us​ today and we'd be happy to help.

    ]]>
    <![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. Contact us if you'd like help with custom button icons.

    ]]>
    <![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 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

    ]]> Check out our presentation on FileMaker Security with the FM AcademyReach 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.

    Integrating your FileMaker system with USPS means less human error and increased accuracy. If you'd like help integrating USPS with FileMaker for address validation, contact us today and we'd be happy to help.

    ]]>
    <![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 on new FileMaker 14 features.

    Overview

    Some of the biggest news in the FileMaker 14 platform includes

    • New Design Tools are available that 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 your 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 you're using third-party plug-ins then you need to 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 than 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 enabling 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 a 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 Desktop. Contact us if you would like assistance taking advantage of these new features.

    ]]>
    <![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!

    Need help with the new Script Workspace? Contact our team at DB Services and would be happy to help.

    ]]>
    <![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 out Emory’s article on Button Icons for more details. [link to Emory’s article]

    You can use the Button Bar Setup dialog to specify the pattern and the size of your icon (section 2). But to specify the color of your icon you will need to go to the Inspector’s appearance tab and choose the Button Bar: Icon component.

    The Button Bar: Icon component has the same five states as the Button Bar: Segment component and they behave in a very similar way.

    Hiding a Segment

    Hidden object behavior for a button bar is configured at the segment level. This means each segment can be hidden independently. So when a segment is hidden, the rest segments will resize to fill in the space left by it. In this way, you won’t have a gap on your button bar when you need to hide segment in some situations.

    We will use a function bar as an example. We have segments that we only want to show in Browse Mode (“Find”, “Show All”, “Duplicate”), segments just for Find Mode (“Perform Find” and “Cancel Find”) and segments that work in both modes (“New” and “Delete”). After setting theirhiding conditions separately, here is what it looks like in Layout Mode:

    FileMaker Function Bar Layout Mode

    In Browse Mode the “Perform Find” and “Cancel Find” segments will hide and the rest segments will fill in their spaces.

    FileMaker Function Bar Browse Mode

    In Find Mode the “Find”, “Show All” and “Duplicate” segments will hide.

    FileMaker Function Bar Find Mode

    The total length of the button bar remains the same.

    Autosizing

    The button bar’s autosizing behavior makes it friendly for layouts designed for multiple screen sizes. If a horizontally aligned button bar is anchored to both left and right, when the screen width changes, each segment will resize itself evenly to fit in the new screen size. The same goes for a vertically aligned button bar that is anchored to the top and bottom.

    As an example, the navigation bar below is anchored to both the left and right. Here’s what it looks like before we stretch the screen:

    FileMaker Navigation Bar Before Screen Size Change

    Here is what it looks like after we make the screen wider:

    FileMaker Navigation Bar after Screen Size Change

    A use case for this would be using it in FileMaker Go solutions. If you place a button bar on a layout designed for FileMaker Go and set up its anchors properly, it will resize itself when the user rotates the screen. like the example above

    Conclusion

    The button bar is one of the new design tools that FileMaker 14 brings to us. By combining it with other new features of FileMaker 14, like Navigation Parts, it will help developers build a solution that looks and behaves more consistently with much less effort.

    If you need help implementing the new button bar in FileMaker, please contact us.

    ]]>
    <![CDATA[FileMaker Navigation Parts]]> https://dbservices.com/blog/filemaker-navigation-parts https://dbservices.com/blog/filemaker-navigation-parts Tue, 12 May 2015 12:04:00 -0400 With its newest release, FileMaker has given developers the opportunity to create solutions with a refined, polished look, while simultaneously providing new, much-needed functionality. One way it does this is through two new layout parts, called “Top Navigation” and “Bottom Navigation”, providing layout parts that can be fixed to the top and bottom of the screen and parts that don’t move when scrolling or zooming.

    FileMaker 14 Navigation Bar Setup

    What are they?

    While having fixed layout parts was possible in previous versions of FileMaker in List view using headers and footers, nothing was available for Form view, as the header would disappear when scrolling or zooming and the footer would only be visible once you reached the bottom of the screen. Now, for example, FileMaker Go solutions can become much more like native application navigation by always allowing users access to the navigation. Normal FileMaker solutions receive the same benefit, providing navigation similar to web applications users are experienced with. Combining these layout parts with another new feature, the FileMaker Button Bar, creates a method for navigation that is much easier to implement than previous methods like grouping individual buttons together in the layout header.

    FileMaker 14 Navigation Bar Unscrolled

    A Navigation bar still at the top of the screen after scrolling down.

    FileMaker 14 Navigation Bar Scrolled Down

    How do we add them?

    Top and bottom navigation can be added through the “part setup” section of the layouts menu. If you are using a Top Navigation part, it will be the upper-most part and cannot be moved. A bottom navigation part will be the bottom-most part and also cannot be moved. Outside of their obvious purposes of navigation, these layout parts can be used for anything the developer wants the user to see at all times.

    FileMaker 14 Navigation Bar Part Definition

    Conclusion

    The addition of these new navigation parts is exciting news for both FileMaker developers and users, as it means easier to design and easier to use solutions. We at DB Services can’t wait to put them into action! If you'd like help taking advantage of this new functionality, contact us at DB Services.

    ]]>
    <![CDATA[FileMaker 14 Security]]> https://dbservices.com/blog/filemaker-14-security https://dbservices.com/blog/filemaker-14-security Tue, 12 May 2015 12:03:00 -0400 The new version of FileMaker 14 has overhauled the security settings to enhance your user experience. These are welcome additions that provide a more secure environment for all users.

    Server 14 Changes

    FileMaker Server Pin

    New to FileMaker Server 14 is the ability to specify a unique 4-digit PIN number. It is important to document and/or not forget your pin because it cannot be changed or retrieved. This pin can now be used to reset the Admin Server password. This is done via the Command Line Interface with the resetpw feature.

    Be careful, entering the wrong pin 5 consecutive times will disable the pin and require a reinstall to reset it.

    FileMaker Server PortsPorts, ports, ports! Being able to change the port from the standard 80 and 443 was a highly requested feature in FileMaker Server 13. Using non-standard ports will not prevent a targeted attack on your server. However, it will help minimize the non-targeted type attacks that are hunting for open web server ports.

    Pro 14 Features

    FileMaker Server LoginGone are the days when a user leaving their computer unattended can compromise FileMaker security. You are now required to enter a Full Access account to open the Security settings.

    FileMaker Server Basic Settings FileMaker has done a great job updating the user interface for managing security settings. Using the new Basic Setup window under Manage Security makes it easier to manage accounts without getting lost in the details of privilege sets, extended privileges, and file access settings. You can still access privilege sets, extended privileges, and file access settings via the Use Detailed Setup button under Manage Security.

    FileMaker Windows LoginWindows and FileMaker Go users can now save passwords when connecting to servers and opening files. While a welcome feature this does present a new security concern. Like their Mac counterparts, anyone can access files without authenticating. Luckily FileMaker 14 has a solution. This can be disabled via File Options-->Allow Credential Manager to save password.

    Keep In Mind

    • Ports – You can only define the FileMaker Server 14 ports during installation.

    • FMS Progressive Downloads – You now have the option of using HTTPS with progressive downloads from container fields.

    • FMS SSL Certificate – You can now use the Admin Console to import a certificate from a trusted authority. Whereas FileMaker Server 13 required this to be done via the command line interface.

    • File Options – Be sure to set the minimum version allowed to 14 otherwise someone with FileMaker 13 can circumvent the new security.

    • Password Quality – FileMaker will now display your password quality as weak, moderate, or strong.

    If you would like assistance enhancing your FileMaker security settings, contact us and we'd be happy to help.

    ]]>
    <![CDATA[FileMaker 14 Starter Solutions]]> https://dbservices.com/blog/filemaker-14-starter-solutions https://dbservices.com/blog/filemaker-14-starter-solutions Tue, 12 May 2015 12:02:00 -0400 If you are looking to build a new application but don’t want to start from square one, there is a Starter Solution for you! FileMaker includes 16 Starter Solutions (templates) that makes it easy to start building a new application that fits your needs. In addition to having a head-start on creating a solution, 12 of the 16 Starter Solutions includes a brand new theme to make your custom application look and feel new. The Enlightened Theme took the prize as most popular Theme among the Starter Solutions with 6 of the 16.

    How to Begin

    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 14 and the Launch Center will come up. From the Launch Center you can click the “New” drop down menu and select Starter Solutions. Or, if you already have FileMaker 14 open, you can select File > New From Starter Solution.

    FileMaker 14 Launch Center

    Arguably the best part of these 16 Starter Solutions is that they give you a great design to give you a running start to building your own Custom Solution. These templates are fully customizable which allows you to create and mold the solution to fit your industry and the data you wish to manage.

    Main Additions to FileMaker 14 Starter Solutions

    With a new version, came new and great changes to the Starter Solutions, which benefits users to have an even better start to a custom solution. WebDirect layouts are now included in all but 2 Starter Solutions (Event Management, Research Notes). The look and feel to most Starter Solutions has changed as well implementing new Themes which will be highlighted below. The only Starter Solutions that don’t have any changes at all are Assets, Contacts, Content Management and Invoices. These are disputably the best Starter Solutions and all already include WebDirect layouts. The addition of WebDirect layouts are welcomed to make a uniform set of Starter Solutions.

    Estimates

    The Estimates Starter Solution is still similar to the Invoice Starter Solution. The main change is the look, changing Themes from Cool Gray to Enlightened.

    FileMaker 14 Estimates Starter Solution

    Event Management

    The Event Management Starter Solution made significant changes, which makes it very user friendly and easy to navigate on Desktop or iPhone/iPad. Right away you notice the three key features in FileMaker 14 with the Navigation Bar at the top, the Button Bar that uses two of the 140 Button Icons. This however doesn’t include a WebDirect layout. The Theme also changed in this Starter Solution going from Ocean to Enlightened.

    On the Event Detail Layout for Desktop, there are now 4 tabs that make it easy to navigate between Contributors, Tasks, Agenda, and Guests. With this change, it eliminated another box on the layout making it easier to use and not as “busy”.

    On the Event Detail Layout for iPad, the big change is eliminating the “Overview Layout” which makes for a more user-friendly layout that organizes information more efficiently in space.

    FileMaker 14 Event Management Starter Solution

    Expense Report

    The Expense Report Starter Solution has added a WebDirect layout as well as changing Themes from River to Vibrant. This Starter Solution allows you to print or email expense reports that track expenses by line item and by mileage.

    FileMaker Expense Report Starter Solution

    Inventory

    The Inventory Starter Solution has changed looks going from River to Vibrant as well as adding WebDirect. This is a popular Starter Solution that organizations use to store company information as well as record transactions to calculate the Units on hand. It is also easy to make reports and import inventory.

    FileMaker 14 Inventory Starter Solution

    Meetings

    The Meetings Starter Solution has added WebDirect layout as well as changing the feel of the solution by switching Themes from River to Sophisticated. This Starter Solution is clean and crisp and allows you to save related meeting, create new meeting as well as send/print reports.

    FileMaker 14 Meetings Starter Solution

    Personnel Records

    This Starter Solution has changed themes from Ocean to Tranquil. It has also added WebDirect but still does not have an iPhone layout. This Starter Solution is a great way to keep track of all your staff and contractors in a single location as well as record their time off in that tab making it easy to use.

    Filemaker 14 Personnel Records Starter Solution

    Product Catalog

    The Theme has changed from Onyx to Enlightened and added a WebDirect layout as well. This Starter Solution makes it easy to save all of your products (and show a picture of it too) with the associated documents and makes it easy to send an email of the information.

    FileMaker 14 Product Catalog Starter Solution

    Projects

    The Projects Starter Solution has also made significant changes. Not only did it add a WebDirect layout and changed Themes from River to Enlightened, but also created a more user-friendly experience, by utilizing new features such as Navigation Bar, and Button Icons

    The template added a “Contacts” layout which has a pop-up window to sign in. With the added contacts, you can “Add Resources” to tasks as well as discuss with other Contacts the progress of the Project or questions concerning the task. This makes it very user friendly and easy to collaborate with others.

    FileMaker 14 Projects Starter Solution

    Research Notes

    The Research Notes Starter Solution made minimal changes. The only change is the look (from Onyx to Vibrant), there is still no WebDirect or iPhone layouts. This starter solution still makes a nice clean solution that makes it easy to find notes and store documents in one central location.

    FileMaker 14 Research Notes Starter Solution

    Resource Scheduling

    The Resource Scheduling Starter Solution made a Theme change from Ocean to Sophisticated and adding WebDirect Layouts. This solution has a lot of information in the layouts letting you create schedules for people, equipment, materials, locations and other items while utilizing the tabs to make a nice clean solution. You can also create a Schedule Report that can be printed, emailed or sent as a PDF.

    FileMaker 14 Resource Scheduling Starter Solution

    Tasks

    This Starter Solution added WebDirect and switched Themes to Sophisticated from ocean. The Tasks Starter Solution is similar to the Projects Starter Solution by allowing you to create a task and assign to multiple people. One nice aspect of this template is the unlimited number of attachments to a task to reference.

    FileMaker 14 Tasks Starter Solutions

    Time Billing

    The Time Billing Template changed themes from Cool Gray to Enlightened and added WebDirect layouts, but still doesn’t have a iPhone layout which would be convenient. The template is great, however, to view all completed and pending billings for your customers in one location. Also includes the ability to print or send an email of the Time Billing.

    FileMaker 14 Time Billing Starter Solution

    Conclusion

    FileMaker has continued to improve the Starter Solutions by using new modern design tools to make the templates look great. FileMaker is dedicated to improving the WebDirect foundation and provide more capabilities making it one more deployment option for the FileMaker platform as all but 2 Starter Solutions now contain WebDirect layouts.

    These improvements further show FileMaker’s commitment to make great looking and usable applications, proving that FileMaker is at the top of the market for easiest-to-use database solution.

    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.

    ]]>
    <![CDATA[FileMaker Script Acronym Completion]]> https://dbservices.com/blog/filemaker-script-acronym-completion https://dbservices.com/blog/filemaker-script-acronym-completion Tue, 12 May 2015 12:01:00 -0400 Overview

    With the release of FileMaker Script Workspace comes the ability to use type ahead acronym completion for script steps. This gives developers the ability to code their scripts with much greater speed than typing out the entire script step name, or by having to find and double click the script step on the list of steps as was mandatory in previous versions of FileMaker.

    Acronym Completion

    A common (and long-named) script step is the “Go To Related Record” script step. Previously you had to find the step in the list and double click it to use it in your scripts. Now if you want to select the script step, you can click into the script and type “gtrr” to have it automatically come up.

    FileMaker Go To Related Record

    You’ll notice that while the results are displayed alphabetically, the “Go To Related Record” script step is highlighted. The auto completion selects the first step with the least amount of unmatched words by default. For example, “gtrr” selects “Go To Related Record” over “Go to Record/Request/Page” because the “Page” in “Go To Record/Request/Page” is unmatched in the acronym. So since “Go to Record/Request/Page has one unmatched word and “Go To Related Record” has none, hitting enter it would select “Go To Related Record”.

    Spaces are ignored with acronym completion, so your acronyms can be typed out with or without spaces between the letters.

    FileMaker Go To Related Records Spaces

    Acronym completion is also not case sensitive.

    FileMaker Go To Related Record Case Sensitive

    Acronym completion is only used when all other completions find no matches. For example, say you want to select the “Open Preferences” script step. Typing “op” will select all the script steps with “op” in it before selecting the “Open Preferences” script step.

    FileMaker Go To Related Records Matching

    You will have to scroll down the list to select the “Open Preferences” script step.

    FileMaker Go To Related Records Matching Scroll

    Conclusion

    Among FileMaker 14’s many new features, acronym completion offers developers the ability to create and edit scripts much faster. By allowing them to type just a few quick letters rather than having to type out the script step or manually scan a list and double click, these seconds can add up to minutes and even hours for those who script frequently. Acronym completion is just one of the many new features that allow an even better development and user experience in FileMaker.

    Want help taking advantage of this feature? Contact us today!

    ]]>
    <![CDATA[FileMaker Avalara Sales Tax Integration]]> https://dbservices.com/blog/sales-tax-integration-in-filemaker https://dbservices.com/blog/sales-tax-integration-in-filemaker Thu, 02 Apr 2015 00:00:00 -0400 Finding the tax rate for an address can prove to be quite tricky. The sales tax can vary based on the jurisdiction of the location where some states have a statewide sales tax. Integrating FileMaker with a web service to automatically find the sales tax will take a lot of the guesswork out of running your business.

    ]]> Sales Tax Through Geolocation

    When searching for the web service you would like to use, you will want to make sure you find one that allows you to get the tax rate using an address or latitude and longitude. Most web services offer a look-up based on a zip code, however, oftentimes that will return an inaccurate sales tax because a specific zip code can have multiple jurisdictions within it. In our example, we are using the free service from the Avalara Tax Rates API in order to find the sales tax from a specific street address. This API will translate an address to geographic coordinates behind the scenes in order to provide the most accurate tax rate for that address. However, if your tax needs are more complex, Avalara does provide other services.

    Integrate With FileMaker

    ]]>

    CreateTransaction Endpoint

    For paying customers, Avalara offers more powerful endpoints for tax calculation. Similar to the free AvaTax API above, the CreateTransaction endpoint will calculate sales tax based on an address. Unlike the free API, the CreateTransaction endpoint will return the amount of tax owed on a transaction, keep records of every transaction and tax calculation, allow you to specify tax jurisdictions for an address manually, and more. 

    ]]>  

    Unlike the free AvaTax endpoint, data is sent as a JSON object along with your other cURL options. Multiple taxable items can be included in one transaction. Just like before, the Insert from URL script step is used.

    ]]> Because you have the option to include taxable items and their prices in the data JSON object, Avalara will return the amount of tax owed on the transaction along with a breakdown of which tax jurisdictions contribute to the total tax amount in JSON encoded format. Using the JSONGetElement( ) function in FileMaker to parse relevant data is fairly straight forward. For a tax rate calculation like this, you would pull the rate value in each item of the details (tax jurisdictions) arrays within each of the line objects as shown above. 


    ]]>
    <![CDATA[Interactive PDFs in FileMaker Go]]> https://dbservices.com/blog/interactive-pdfs-in-filemaker-go https://dbservices.com/blog/interactive-pdfs-in-filemaker-go Tue, 03 Mar 2015 00:00:00 -0500 Interactive containers were introduced in FileMaker 12 to enable users to view the content of PDFs, audit files and video files directly in FileMaker Pro. A common use case for interactive containers is to use them to scroll through pages of a PDF, zoom in and out, and copy text, all without having to leave FileMaker Pro.

    The problem, however, is that interactive containers aren’t fully supported in FileMaker Go. For example, PDFs only show their first page and to view the full content the user will have to tap on the container field and choose “View” to open up the PDF file in a PDF reader app.


    FileMaker Go

    In some use cases, the user may want to be able to do data entry and view the content of a PDF file at the same time. In FileMaker Go they will have to switch back and forth which could harm the usability and user experience. One workaround for this problem is to display the PDF in a web viewer instead of a container field. This can be done natively in FileMaker Go.

    Web Viewer + File URL = Interactive PDF

    Web viewer, as a browser inside FileMaker, not only can show web pages, but it can show files on your device as well. Hence, we can display PDFs on our devices in a web viewer. The URL we use to retrieve the PDF file is called File URL

    File URL usually takes the form of

    file://host/path

    If file resides on a different machine, you should specify the fully qualified domain name as host. Otherwise you can omit the host part and it is taken to be “localhost”.

    Path is the directory path to the file you want to retrieve. It takes the form of directory/directory/…/file_name.

    As an example, let’s say I want to retrieve a txt file named “foo.txt” stored in folder folder1/folder2/ on my device. Since the file is local, I would omit the host part. Path would be folder1/folder2/foo.txt. Put them together, the file URL is “file:///folder1/folder2/foo.txt”.

    Note that I used three “/“ in between “file:” and “folder1/…”. The reason is, technically speaking, when host is omitted, you should keep the “/“ after it. However many interpreters can handle situations where the third “/“ got omitted together with the host. On the iPad we can use either form. Both “file:///folder1/folder2/foo.txt” (three slashes) and “file://folder1/folder2/foo.txt” (two slashes) are recognizable on iPad.

    So in order to display the PDF in a web viewer, all we need to do is to export the PDF and use the path to the exported file as a file URL in the web viewer.

    FileMaker Go

    A Step-by-Step Example

    1. Since we will display the PDF in a web viewer, you will need to add a web viewer to your layout. Double click the web viewer in Layout mode to set the Web Address for the web viewer to be a global variable that’s going to store the file URL.

    2. Then you need to name your web viewer using the inspector.

    FileMaker Go

    3. Build a script to export the PDF file and display it in web viewer. Here is an example:

    #PURPOSE: To export PDF file to temp folder and set web viewer
    #Start, End Context: Sample File, Sample File
    #2015-02-16, WD, Created script.
    #
    #
    #----------INITIALIZE-----------
    Allow User Abort [ Off ]
    Set Error Capture [ On ]
    Freeze Window
    #
    #
    #----------HANDLE UI ERRORS-----------
    Perform Script [ "UI - Halt If Not in Browse Mode" ]
    Perform Script [ "UI - Halt If No Records in Found Set" ]
    Perform Script [ "UI - Commit Record and Halt If Invalid" ]
    #
    #
    #----------POPULATE PARAMETERS, VARIABLES, CONSTANTS-----------
    #Constants
    Set Variable [ $TASK_NAME; Value:"View PDF in Web Viewer" ]
    Set Variable [ $ERROR_MSG_SUMMARY; Value:"Unable to view field PDF in web viewer. " ]
    Set Variable [ $CONTAINER_PDF; Value:"CONTAINER: PDF" ]
    Set Variable [ $WEB_VIEWER_PDF; Value:"WEB VIEWER: PDF" ]
    #
    #
    #----------MAKE SURE THERE IS A PDF TO VIEW-----------
    If [ IsEmpty ( Sample File::pdf ) ]
        Show Custom Dialog [ Title: "Sorry"; Message: $ERROR_MSG_SUMMARY & "There is no PDF to view. Please insert
         a PDF file to the container field."; Default Button: "OK", Commit: "Yes" ]
        Go to Object [  ]
        Insert PDF [  ]
        Exit Script [ Result: 0 ]
    End If
    #
    #
    #----------EXPORT PDF TO TEMP FOLDER-----------
    #Copy pdf to temp container
    Set Field [ Sample File::zgcTempExport; Sample File::pdf ]
    #Grab temp path
    Set Variable [ $filePath; Value:Get( TemporaryPath ) & GetContainerAttribute( Sample File::zgcTempExport ;
    "filename" ) ]
    #Generate FM file path
    Set Variable [ $filePathFM; Value:"filemac:" & $filePath ]
    #Export to temp path
    Export Field Contents [ Sample File::zgcTempExport; "$filePathFM" ]
    #Error trap export
    Set Variable [ $lastError; Value:Get( LastError ) ]
    If [ $lastError ≠ 0 ]
        Go to Layout [ original layout ]
        Show Custom Dialog [ Title: $TASK_NAME; Message: $ERROR_MSG_SUMMARY &
        "Could not export PDF to temp folder." & "¶¶" &
    "ERROR: " & fmErrorMessage( $lastError ); Default Button: "OK", Commit: "Yes" ]
        Exit Script [ Result: 0 ]
    End If
    #Generate file URL
    Set Variable [ $$fileURL; Value:"file:/" & $filePath ]
    #
    #
    #----------SET WEB VIEWER-----------
    #Go to target layout
    Go to Layout [ "Example" ]
    #Set web viewer
    Set Web Viewer [ Object Name: $WEB_VIEWER_PDF; Action: Reset ]
    Go to Object [ Object Name: $WEB_VIEWER_PDF ]
    #
    #
    #----------WRAP UP-----------
    Exit Script [ Result: 1 ]Example Script Breakdown
    
    1. Copy the PDF to a temporary container field. In our example, Sample File::pdf is where the PDF stored. Sample File::zgcTempExport is a global container field created to temporarily store the PDF that needs to be exported. By doing this we can make this script more generic. If you have multiple sources to display you can simply change this step without having to change the whole script.

      #Copy pdf to temp container Set Field [ Sample File::zgcTempExport; Sample File::pdf ]
    
    1. Grab temp path. We will export the PDF to iPad’s temporary path since we don’t actually want to expose the exported file to the user and want it to be automatically cleaned out at some point after use.

     #Grab temp path Set Variable [ $filePath; Value:Get( TemporaryPath ) & GetContainerAttribute ( Sample File::zgcTempExport ; "filename" ) ]
    
    1. Generate the FileMaker file path by adding prefix “filemac:” in front of your file path.

     #Generate FM file path Set Variable [ $filePathFM; Value:"filemac:" & $filePath ]
    
    1. Export to temp path. Use “Export Field Contents” script step to export the PDF file to the path stored in variable.

     #Export to temp path Export
     Field Contents [ Sample File::zgcTempExport; “$filePathFM” ]
     #
     #Error trap export
     Set Variable [ $lastError; Value:Get( LastError ) ]
     If [ $lastError ≠ 0 ]
         Go to Layout [ original layout ]
         Show Custom Dialog [ Title: $TASK_NAME; Message: $ERROR_MSG_SUMMARY & "Could not export PDF to temp folder." & "¶¶" & "ERROR: " & fmErrorMessage( $lastError ); Default Button: “OK”, Commit: “Yes” ]
         Exit Script [ Result: 0 ]
     End If
    
    1. Generate file URL. In this step we added the prefix “file:/“ in front of $filePath to get a file URL. Note that I only add one “/“ here. Together with the ‘/“ returned at the beginning of Get ( TemporaryPath ) that give us two “/“ in total, regardless of whether the host name is omitted or not. I did this to increase portability. Using “file://“ (double slashes) is fine on iOS and Windows, but not on Mac OS. “file:/“ (single slash) works on all three platforms.

     #Generate file URL Set Variable [ $$fileURL; Value:"file:/" & $filePath ]
    
    1. Go to target layout and set web viewer. These two steps are just to make sure the web viewer will refresh and show the PDF properly. This script could be either added to a script trigger or bound to a button. Be sure to download our Interactive PDFs in FileMaker Go Sample file to get a better understanding of how this work.

     #Go to target layout
     Go to Layout [ “Example” ]
     #
     #Set web viewer
     Set Web Viewer [ Object Name: $WEB_VIEWER_PDF; Action: Reset ]
     Go to Object [ Object Name: $WEB_VIEWER_PDF ]
    

    Conclusion

    By combining web viewers and file URLs you can show the contents of a PDF in FileMaker Go that works in a similar way as interactive containers in FileMaker Pro. This will expand the use cases for FileMaker Go solutions and enhance the usability when users need to do data entry and view the content of a PDF at the same time. Contact us if you would like help with interactive PDFs in FileMaker Go.

    ]]>
    <![CDATA[FileMaker Community - The New Technet]]> https://dbservices.com/blog/filemaker-community-the-new-technet https://dbservices.com/blog/filemaker-community-the-new-technet Tue, 27 Jan 2015 00:00:00 -0500 FileMaker recently launched their free resource site the FileMaker Community, and with it came a nice new and easy to use website. If you were one of the 60,000-plus current member of TechNet, you will automatically gain access to the FileMaker Community

    FileMaker Community key features include:FileMaker Community

    • Technical Documentation

    • Webinars

    • Sales Tools

    • Developer News

    • Technical Resource Library

    • Developer Discussion Forum

    Also, there is the FileMaker Developer Subscription, where for $99 a year you have exclusive access to:

    • Pre-Release FileMaker Software (when available) wink* wink*

    • A download of the latest official FileMaker Training Series (FTS)

    • FileMaker Server Development License (limited to 3 simultaneous clients)

    What really stands out to me in the FileMaker Community is the resources. Under the Resources Tab, you will find:

    1. Videos: This includes product, webinar and DevCon videos to learn more about FileMaker and how to become a great developer.

    2. Examples and Tools: This shows specifics in developing that may help you in certain situations as you are developing.

    3. Briefs: Digs even deeper on FileMaker concepts and features.

    4. Product Documentation: Documents include FileMaker Pro 13 User Guide to how to update versions and up to FileMaker Server 13 Custom Web Publishing with XML and PHP.

    Discussions and Forums are of course still available in the FileMaker Community, but the different options and routes are incredible. You can jump to “Certified Discussions” for advanced discussions with developers or simply ask a question in a specific category or even take a poll or create a video. All of these different options can be found under the Discussions Tab.

    FileMaker Community BadgeThe end goal for FileMaker Community is to “deliver the resources that people need to succeed in building and deploying FileMaker solutions in a single, searchable and engaging online spot.”

    Whether you are new to FileMaker, or a long time developer, there is a place for everyone in the FileMaker Community.

    ]]>
    <![CDATA[Reading FileMaker Crash Reports]]> https://dbservices.com/blog/reading-filemaker-crash-reports https://dbservices.com/blog/reading-filemaker-crash-reports Mon, 19 Jan 2015 00:00:00 -0500 FileMaker CrashThough FileMaker crashes are rare, when they do happen, it can be a pain for developers and users alike. They can cause many headaches such as corrupted databases, loss of data, loss of recent development changes, etc. For developers, it can be especially difficult because it is hard to debug and find the cause of the crash as the FileMaker application stops responding after a crash. For those of us using the FileMaker platform to create FileMaker databases, there is not much we can do to fix the cause of the problem. However, we can find what is causing the issue and attempt to work around it. In this article, we will show you how to take advantage of the Mac crash report and the Windows DebugDiag tool to efficiently identify workarounds when FileMaker crashes.

    Mac Crash Reports

    When a crash happens, you are presented with the option to view the report. The report contains information about the user’s environment and the stack trace at the time of the crash. For a detailed explanation of each part of the report, go to the Apple crash report technical note. For FileMaker developers, the important sections to look into are the process information, basic information, exception information, and the backtrace information, with the backtrace information being the most useful.

    The process information and basic information sections are the first two sections of the report. The process information section is where you can find what version of FileMaker the user is currently using.

    Mac OS X FileMaker Process Information

    The basic information section gives you the Mac OS version the user is on at the time of the crash. You will want to make sure that the user is on a compatible version of the Mac OS. This will only be a concern for FileMaker 12 and prior as FileMaker 13 does not allow users to install on an unsupported OS.

    Mac OS X FileMaker Basic Information

    The exception information section of the report gives you the crashed thread number. You will want to look at the backtrace of the thread with this thread number.

    Mac OS X FileMaker Exception

    Backtrace Section

    The backtrace section is the most important section of the report. It gives you the list of functions called within a thread with the most recently called at the top starting at 0, and the oldest at the bottom. You will want to look at the 2nd and 4th columns of the backtrace. The 2nd column gives you the application that calls the function. The 4th column is the function being called. You will want to look at any com.filemaker lines starting from the top and work your way down to see what functions are being called. You will want to focus on the functions that make sense to you as a developer. This will give you a list of possible things to try to avoid using in your FileMaker database. In the example provided below, the user reported that their FileMaker would crash but they did not know why. When the user sent the crash report, we were able to see that the FileMaker function calls consistently referenced LayoutMenu. We then made sure that all layouts were not visible in the layout menus. This stopped FileMaker from crashing.

    Mac OS X FileMaker Backtrace

    Windows Crash Reports

    When FileMaker crashes on a Windows machine, the user is not automatically presented with the option of viewing the stack trace at the time the program crashed. In order to view the crash report in Windows, you will first need to download and install the DebugDiag tool from the Microsoft website.

    Open the DebugDiag Collection program and add a rule, which will be used to create a crash dump file once FileMaker crashes. To create the rule, you will need to set the rule type as a Crash and the target type as a specific process. You will then select FileMaker out of the list of process names. Please note that FileMaker needs to be running in order to select it out of the list of processes.

    Crash Dump File

    Windows DebugdiagAfter you have set up the rule, anytime that FileMaker crashes, a dump file will be created in the Userdump Path. Windows dump files cannot be viewed with a standard text editor, because it is a binary file. You will need to open the DebugDiag Analysis program and select “Crash/Hang Analyzers” and add the dump file as the data file. Now you can start the analysis, which will give a break down similar to the Mac crash report including the OS, the thread which caused the exception, and the stack trace. In the example provided below, FileMaker would continuously crash when running a script that printed numerous layouts in rapid succession. When we looked at the crash report, we were able to see that the FileMaker function calls referenced portals and related sets. This gave us the ability to narrow our search of a workaround by investigating the portals on these layouts for possible corruption.

    Windows FileMaker Crash Report

    Conclusion

    The crash report provides valuable information, which can be used to help pinpoint exactly what in your FileMaker database is causing the FileMaker application to crash. Using the crash report allows you to narrow down the possible issues until a real solution is found.

    ]]>
    <![CDATA[What to know about FileMaker Server Transition Licensing]]> https://dbservices.com/blog/what-to-know-about-filemaker-server-transition-licensing https://dbservices.com/blog/what-to-know-about-filemaker-server-transition-licensing Tue, 18 Nov 2014 00:00:00 -0500 FileMaker Server 13FileMaker has announced that they will be discontinuing FileMaker Server Transition (formerly FileMaker Server Advanced) on December 3, 2014, resulting in a price increase. If you have FileMaker Server Transition, it is because you had FileMaker Server Advanced. So you may be asking yourself, “Do I need to renew early so that I can lock in the savings?” There are different actions to take to answer this question and to find out what you need.

    To begin with, FileMaker no longer makes Server Advanced as of FileMaker Server 13. The differences in Server’s are solely on the number of FileMaker Go and WebDirect Connections you need (Concurrent Connections). In the past, Server Advanced had extra features like more Instant Web Publishing Users, no sharing limits, and more CWP connections, but this is no longer the case.

    Back to the question if you are needing to renew your FileMaker Server Transition, and the answer is simply the number of Concurrent Connections you need for FileMaker Go and WebDirect. FileMaker Server Transition includes 25 Concurrent Connections. If you find yourself not needing that many connections, then there is the next step of determining how many connections you need and what to do to get the correct licensing. If you need 25 Concurrent Connections for FileMaker Go and WebDirect, by all means, renew your licenses by December 3rd to save 50%!

    If you are under annual volume licensing, FileMaker last month came out with Decrease connection packs for the server. So, if you find that you only need +5 Concurrent Connections, there is a new SKU that brings you to the correct licensing and save you money by not paying for the extra 20 Connections.

    If you are under standard volume licensing, things are a little bit different. For instance, if you are only needing +5 Concurrent Connections you would renew maintenance for FileMaker Server +5 connections and resulting in the correct licensing and saving you money. But, in this circumstance, you would not be receiving a new License Key at point of purchase, but retaining your old key for Server Transition, resulting in +25 connections. This change down to 5 connections would come when the newest version of FileMaker is released, resulting in a new License Key.

    Conclusion

    Before renewing your FileMaker Server Transition, make sure you know the difference. Knowing the difference could result in saving you money and getting you on the correct licensing. FileMaker today has 371 different licensing SKU’s so there are a lot of different options out there. Feel free to contact us to ensure that you get the best licensing for your situation.

    ]]>
    <![CDATA[FileMaker Scripting Best Practices and Conventions]]> https://dbservices.com/blog/filemaker-scripting-best-practices-and-conventions https://dbservices.com/blog/filemaker-scripting-best-practices-and-conventions Mon, 13 Oct 2014 00:00:00 -0400 In application development, you want to build systems for the end user and it is important to keep the developer in mind when coding, so the application is usable behind the scenes as well as upfront. At DB Services we have several conventions that we consider to be some of the best practices to adhere to when developing. Let’s take a look.

    Error Trapping

    One thing that can drastically improve the user experience is user-friendly error trapping. Instead of no indication if an operation fails, giving the user a detailed error message of what went wrong in any given process can go a long way in building user trust. It also empowers the user to fix the problem themselves. Not only that, it can help the developer figure out what went wrong. The key is to be specific in the error message to the point the developer has enough information to know exactly which line of code failed, and on what record it occurred. One way we do this at DB Services is to also include the FileMaker error, after saying specifically what went wrong.

    FileMaker Error Message

    To create this sort of user-friendly error message, Set Error Capture should be turned ON and Allow User Abort should be OFF. Turning off Allow User Abort will make sure the user cannot press the Escape key to halt the running script. Leaving on Allow User Abort could potentially strand the user in some layout they do not expect to see or should not have access to. The user could also put the database in an inconsistent state if the script is in the middle of making changes to data.

    Turning on Error Capture will make sure default FileMaker errors do not interrupt the user experience, but also puts the burden on the user to pass along the all-important errors on to the developer.

    Proper Context

    One of the easiest ways to incorporate error trapping is to run subscripts at the beginning of any script called from the interface to ensure the script cannot be run in an unintended context. The three most common things to check for are the following:

    1. Is the user in the correct mode?

    2. Are there records in the found set?

    3. Can the record be successfully committed?

    FileMaker UX Scripts

    The last one is important because if field-level validation fires, then the commit will fail, but the script may keep running with unintended consequences.

    Record Locking

    There are several things that have a high likelihood of going wrong. Set Field is a big one. Be sure to test for record locking whenever a record needs to be updated.

    FileMaker Trap Record Locking

    New Record and Delete Record can both fail if a developer in Manage Database locks the table, so be sure to trap after these steps as well. Go To Related Record (GTRR) can be especially dangerous since if there is an error, the script will continue running in the wrong context with potentially devastating consequences to data. On top of this, the GTRR step will sometimes give a false positive error when there really wasn’t an error in the case that you perform a GTRR on a found set. The correct way to trap this step is to ensure the layout before the step is different from the layout afterward. Lastly, any time the application is interacting with systems outside of FileMaker, be sure to pass all errors up to the user. This includes Export Records, Import Records, and also anything like HTTP Post that interacts with the web. Writing error-trapping code might take extra time upfront, but it will save a lot of time when reading and troubleshooting code in the long run.

    Quick Tip For Debugging

    One way to debug through a script trigger is use the Step Into button on the script debugger. If used on the step that would trigger the script, debugger will step into the script trigger as it fires. So for example if you step into the Commit Record script step, and there is a trigger that will fire every time a record is committed, you can debug through that trigger.

    FileMaker Debugging

    Conclusion

    Make things easier on the users and other developers by making code that is robust and readable. Be sure to download our FileMaker Scripting Template database if you would like a copy of our template script and the three error-trapping scripts that come with it.

    If you'd like help implementing best practices in your FileMaker system, please contact us and we'd be happy to help with error trapping, debugging, naming conventions, and any other FileMaker needs.

    ]]>
    <![CDATA[Creating Readable FileMaker Code Saves Time, Money]]> https://dbservices.com/blog/creating-readable-filemaker-code-saves-time-money https://dbservices.com/blog/creating-readable-filemaker-code-saves-time-money Tue, 16 Sep 2014 00:00:00 -0400 When writing code, you can only choose two of the following:

    1. Code that is quick to write

    2. Easy to read

    3. Works well

    At DB Services, we think it is more valuable to place a higher focus on readability of code that works well than quickness of writing. Since developers spend more time reading and debugging code than actually writing it, any efficiency we can gain through maximizing readability will add up quickly. This ultimately benefits the client because optimizing the readability of code gives the biggest bang for your buck.

    Let's take a look at a couple ways we do this.

    Template Scripts

    When it comes to the application development process, humans are the most expensive part and conserving labor hours is the best way to lower costs. One way we do this is using templates for similar code when working on processes. With carefully crafted templates that use clean, readable code, we are able to save development time. Plus, the familiarity with the code we already know works allows us to get moving rapidly and accurately.

    FileMaker Template Script

    If we need to create something new with no similar code, using a blank template script helps to make a readable, robust script.

    Good Comments

    Commenting well is possibly the biggest part of writing scripts that are easy to scan and read by developers. To comment well, it’s important to create a high readability factor. High readability can be achieved by spacing out different parts of the code into blocks, preferably by thought process behind each block. Basically, try to keep everything related within a block and allow proper spacing between each block so there is a visual cue where each block begins and ends.

    For example, the first block might be grabbing all the parameters and variables, the second block might be creating a new record and making sure that record is created properly. The third block might be creating related line items, and so on and so forth. It’s important to keep the spacing consistent so it is easy to scan. Indenting the section headers also helps separate the comments from the actual code.

    Here is a side-by-side of the same script:

    FileMaker Readable Script

    On the left is a well-commented script; on the right is the same script with no comments. In order to understand a script without comments, a developer has to read every single line to figure out what’s going on. If you comment well, then months later when you need to jump into the code, it won’t take nearly as long to decode what is going on.

    Conclusion

    Because developers spend so much time reading and debugging code, it only makes sense to take a little extra time at the front end of the process to create readable code. In the long run, that little bit of extra time at the beginning saves developers a lot of time and frustration down the line. All of which makes for a better product and better value for the client.

    Please reach out to us if you need assistance creating readable code in your FileMaker application.

    ]]>
    <![CDATA[How to Create a PDF from FileMaker Server]]> https://dbservices.com/blog/how-to-create-a-pdf-from-filemaker-server https://dbservices.com/blog/how-to-create-a-pdf-from-filemaker-server Tue, 12 Aug 2014 00:00:00 -0400 PDF and FileMaker Server iconsHave you ever wanted to email customers their invoices automatically? Have you ever wanted to generate and email a report to your employees every morning? Have you ever just wanted to create a PDF from FileMaker Server? If you have answered yes to any of these questions, congratulations, you have come to the right place! Currently FileMaker Server does not support the creation of PDFs natively; however, if you have PHP enabled for your database, you can create a PDF from the server.

    ]]> What Is Needed

    First, you will need to download a PHP library that will allow you to create a PDF using PHP. I recommend using the Free PDF library as this article will assume you are using the FPDF library. Once you have downloaded FPDF and placed it within your web server, you will then need to create your report using PHP and the FPDF library.

    Creating The PDF Using PHP

    PHP PDF coding exampleThe next step is to write the PHP script that will create the PDF and output it back to FileMaker as a PDF. Because PHP is creating the entire PDF, all the business logic to create the report will need to be within PHP. You will need to use Custom Web Publishing to bring in any data that you may want within the report that is in your FileMaker database.

    As you gather your data from FileMaker, you will build your PDF by setting the X and Y coordinates and the font of each object in the PDF. Check out the FPDF tutorial page for a quick tutorial on building PDFs with PHP to get a better understanding on how to use this library to its full potential. Once you are finished building the report, you will use the FPDF Output() function to output the PDF as a file back to FileMaker.

    Saving The PDF From Server

    The final step is to write a server-side script in FileMaker that will run the report. Use the Insert from URL script step to call the PHP script. The URL needs to be the web address of the PHP script. The Insert from URL script step will enter the content of your PHP file, which is a PDF, into a specified container field. Now you have everything you need in order to create a PDF using FileMaker Server.

    Conclusion

    Using PHP to build a PDF is a great way to automatically create and email PDFs from FileMaker Server. Feel free to download our example FileMaker database and PHP files and watch our YouTube video tutorial above so you can try this technique yourself. Or contact us and we would be happy to assist anyone looking to create PDFs from their FileMaker Server.

    ]]>
    <![CDATA[FileMaker Encryption With BaseElements]]> https://dbservices.com/blog/filemaker-encryption-with-baseelements https://dbservices.com/blog/filemaker-encryption-with-baseelements Thu, 24 Jul 2014 00:00:00 -0400 We here at DB Services love the BaseElements plugin. In fact we love it so much we decided to sponsor the development of HTTP POST in the plugin back at the beginning of 2012. Since then, we've used the HTTP POST functions in many web service integrations and are thankful for Goya's continued contributions to the FileMaker community with this Swiss-army-knife-esque, open-source plugin.

    Just as we've needed HTTP POST many times over the years, we've also needed field-level encryption. So, as history tends to do, we repeated ourselves by sponsoring the development of the plugin again, but this time for encryption functions. The latest beta version of the BaseElements plugin (2.3 as of 4/23/2014) now includes a set of AES encryption functions that can be used to encrypt text fields in a FileMaker database.

    FileMaker Encryption Functions

    Where Encryption Fits

    The new encryption functionality in the BaseElements plugin allows you to securely store sensitive data, such as credit card numbers and SSNs (ideally you wouldn't store this data, but if need be, encryption is an important component of PCI and HIPAA compliance). Encrypting the entire database at rest, using FileMaker Pro 13 Advanced's new file-level encryption, is also important in protecting sensitive data, but will not help you once a user has the database open. Encrypting at the field level prevents unauthorized users from accessing sensitive data in open FileMaker files, whether that be from exporting records, checking out a field value in Data Viewer, or accidentally stumbling upon a developer layout displaying the field.

    If you have a FileMaker system that could benefit from a tighter security policy, contact us to discuss helping you add encryption to your system using the BaseElements plugin.

    New Functions Sponsored by DB Services

    1. BE_Encrypt_AES( key ; text ). Does what it says on the tin: it encrypts a piece of text using the AES-256 bit encryption algorithm. AES is an industry-standard encryption algorithm developed by the National Institutes of Standards and Technology (NIST). The function outputs the results as a Base64-encoded string, so it can be stored in a text field.

    2. BE_Decrypt_AES( key ; text ). The opposite of encrypting, decrypting takes the encrypted string and outputs back the original piece of text. You must use the same key you used to encrypt.

    A Couple Things to Note

    • Key length. From a functionality perspective, the length of the key doesn't matter: the plugin will work no matter how long the key is. My understanding is that the plugin will take whatever you pass as the key, MD5 hash it and use of first 256 bits of the hash as the real key, guaranteeing that the key is always 256 bits (AES-256 requires 256-bit keys). Despite the wonderful user-friendliness here, we strongly recommend you use a key of sufficient length and randomness, such as a UUID. The MD5 hashing doesn't increase the security of the encryption if an attacker uses the BaseElements plugin to try and guess the key.

    • Initialization vectors. People familiar with AES will no doubt wonder why the functions don't include an argument for an initialization vector (IV). The plugin doesn't support IVs at this time. IVs add an extra layer of security to the encryption, by giving different output for the same input. In other words, if you encrypt “abc” twice, you will get two different results, as long as you use two different initialization vectors. Decrypting these two different results would give back “abc” as expected. IVs protect against dictionary attacks and rainbow tables, and also slow down brute-force attacks. These are the same protections you get when you salt a password before hashing it. IVs can be thought of as salts for encryption.

    https://youtu.be/3OsRnCVU6xU

    If you are interested in sponsoring the plugin yourself, or donating to the cause, check out the BaseElements Plugin Donations and Sponsorship page. Nick at Goya is a pleasure to work with and is very timely in responding to questions and requests.

    We hope to see more of the FileMaker community sponsoring and contributing to the BaseElements plugin. FileMaker plugins on GitHub are like custom functions on BrianDunning.com: The more plugin code available to the community, the better off the community at large will be. Open source is a rising tide that lifts all boats!

    ]]>
    <![CDATA[Fun with DDRs - Extracting Images in FileMaker Layouts]]> https://dbservices.com/blog/fun-with-ddrs-extracting-images-in-filemaker-layouts https://dbservices.com/blog/fun-with-ddrs-extracting-images-in-filemaker-layouts Sun, 08 Jun 2014 00:00:00 -0400 Update: There are other, more efficient ways to extract images out of a layout, as long as the image was inserted into the layout as an image object (aka via Insert-->Picture or drag and dropped). This is just one technique that gets you more familiar with the XML DDR. Starting in FileMaker 14 you can now export the graphic on the layout in layout mode by right clicking and selecting 'Export Graphic'.

    If you're anything like me, you've had moments where you needed to modify an icon in an inherited FileMaker solution, but didn't have the original file. Like everything in FileMaker, there are a number of ways to get the original file back out. In this article, we'll show you how to extract images in layouts using the XML DDR.

    Watch a Demo of using a DDR to extract an image out of a FileMaker layout

    ]]> 1. Create a new FileMaker file and paste image onto layout (Optional)

    FileMaker New DatabaseI highly recommend creating a new, blank file and pasting the image you want to extract into the new file's layout. You can get the image onto your clipboard by right-clicking on the image in layout mode in the original FileMaker file and selecting Copy.

    The point of this is to make searching the DDR much easier, and much faster, as a new file's DDR is very small compared to an existing FileMaker file with 85 tables and 600 layouts. Not only that, but because the image is the only object on the layout, you'll find the image in the much faster as there will be less objects to wade through under the Layout tag in the DDR.

    Alternatively, you could create a new blank layout in the existing FileMaker file, and paste the image onto there. The DDR will take longer to run than a new file, but because the image is the only object on the layout, you'll still find it pretty quickly with a text editor's find.

    You'll need FileMaker Pro Advanced to run a DDR. And make sure to run an XML DDR, not an HTML DDR, as the HTML DDR doesn't have the hexadecimal representation of the image, which is the crux of this technique.

    FileMaker - Creating XML DDR2. Run an XML DDR

    You'll need FileMaker Pro Advanced to run a DDR. And make sure to run an XML DDR, not an HTML DDR, as the HTML DDR doesn't have the hexadecimal representation of the image, which is the crux of this technique.

    3. Open the file-in-question's DDR in a text editor and search for layout's name

    FileMaker - Finding Layout in DDR

    Make sure to open the XML file of the FileMaker file that contains your image, not the Summary.xml file. The name of the layout will be in a name attribute in a Layout tag, to the far right of the tag. Threw me off a little bit when I first started using this technique, as you'd expect the name to be to the far left.

    4. Find the hexadecimal representation of the image

    FileMaker - DDR Image Hex and Type

    You are looking for GraphicObj tags. Luckily they stick out pretty easily: they're marked by HexData tags, one or two of which contain long, random-looking numbers and characters that go off into infinity across your screen. This seemingly random string of characters is the image, in hexadecimal form. The goal is to convert the hexadecimal back to the original file.

    All you need to do now is determine which HexData tag you care about. If FileMaker has stored multiple versions of the original image, you should see multiple stream tags, and within those, a Type tag and a HexData tag. Find the Stream tag with a type that matches the original image's type. In the example above, there's only one stream tag, and its type is PNG. That's our original image's type.

    5. Copy the hex onto your clipboard

    FileMaker - DDR Copy Hex on to your clipboard

    You should be able to just double-click on any part of the hex representation and it'll select the whole thing (this double-clicking ability does depend on your text editor – ymmv). Right-click, copy and done.

    6. Convert the hex to the original image file

    Go to any online hex-to-binary converter to convert the hexadecimal representation of the image to a file that you can save to your desktop.

    FileMaker - Hex to Binary online converter

    To use the converter, change the input type on the top right of the page to Direct input, paste the hex into the box, check the Download result? checkbox (it should turn to "Yes, download") and then press the Hex>Bin button. The converter will automatically save a bin2hex.data file to your desktop. This is the image file. Rename it to something that makes sense to you, and change the file extension to match the image's type (e.g. png, jpeg, etc.). Double-click on the file to open it and make sure the image looks correct. If so, you're done!

    A Few Things to Note

    • Online hex-to-binary converters have file size limits. Every online hex-to-binary converter that we've come across has a limit on the number of hex characters that you can paste into the converter. In the case of i-tools.org, there's a limit of 10 MBs, which is pretty good. You shouldn't have any issue here as long as you are trying to extract icons.

    • The original image's file name is lost. There's a stream of type FNAM for each graphic object in the DDR, which suspiciously looks like the words "file name" to me. But to date, we haven't been able to extract the original file name with the hex for the FNAM stream. You end up with le garbage converting the hex to text with an online converter. FileMaker encodes text as UTF-16; that's probably the key to getting back the original name.

    • Third-party apps that extract the contents of FileMaker's clipboard can save you a couple steps. No need to fuss around with a DDR if you use a third-party product that can extract the XML from FileMaker's private clipboard. All you need to do is copy the image in layout mode, and then use one of these products to paste the XML representation of the image into a text editor. From there you can find the hexadecimal representation of the image and convert it to binary with an online converter. Check out myFMbutler's Clip Manager for FileMaker or 2empowerFM's Clipboard Explorer to get your feet wet in the power of using FileMaker's internal XML to make your life as a developer easier and more efficient.

    The Future

    If you feel extracting images in layouts should be easier and more intuitive (like a right click-->Export option), feel free to reach out to FileMaker, Inc. and submit a feature request. The more voices requesting a feature, the more likely FileMaker, Inc. will put it in the product line.

    In the meantime, give the technique a spin and become a little more acquainted with the XML DDR. We'll dive into how to extract an image that was inserted as the background of an object in part 2! If you need any assistance, please contact us and we'd be happy to help.

    ]]>
    <![CDATA[FileMaker Increasing Renewal Rates]]> https://dbservices.com/blog/filemaker-increasing-renewal-rates https://dbservices.com/blog/filemaker-increasing-renewal-rates Mon, 05 May 2014 00:00:00 -0400 Quick Facts
    • There is no penalty for renewing early.

    • New licenses purchased with renewals are offered at a lower rate until June 27, 2014. Save money by purchasing any additional licenses needed to take advantage of the promo price.

    • Maintenance program customers have the option to renew for two years for additional savings.

    • FileMaker will no longer offer discounted upgrade pricing for existing customers.


    Now is the time to upgrade to FileMaker 13. FileMaker will no longer be offering discounted pricing for upgrades effective September 26, 2014. This means customers without a maintenance contract will have to pay full price for the new version.

    Customers with a current maintenance contract or annual licensing conveniently receive the new version when it is released, allowing customers to decide when to upgrade and saving the customer from paying full price for the new version. Having a current maintenance contract is especially important now that FileMaker will no longer be offering discounted upgrade pricing.

    Renew Your Contract Now

    Give us a call to renew your contract before the price increase takes effect on June 28, 2014. We also offer FileMaker DevelopmentFileMaker SupportFileMaker Training, and FileMaker Coaching. Contact us today for a free consultation.

    1Percentage was calculated by comparing FileMaker Pro 12 and FileMaker Pro 13 annual prices as well as FileMaker Pro Advanced 12 to FileMaker Pro Advanced 13 prices.

    2Site licensing prices will not be increasing at this time.

    ]]>
    <![CDATA[FileMaker Themes Best Practices]]> https://dbservices.com/blog/filemaker-themes-best-practices https://dbservices.com/blog/filemaker-themes-best-practices Thu, 10 Apr 2014 00:00:00 -0400 Creating Custom Themes

    You may notice from the Manage Themes option below that there is no "New" button.

    ]]> The process for creating a custom theme is done in layout mode with the Inspector. FileMaker will not let you save a new theme until you have changed an existing one. After saving your change to the style, you will see the red triangle next to the theme name in both the Styles and Appearance tabs of the Inspector. From here, you can choose to "Save Changes to Theme" or "Save as New Theme". Both options will create a custom theme in your FileMaker file.

    ]]> If this is an existing system and has multiple layouts with the same theme applied, I would recommend choosing "Save Changes to Theme". That way, all layouts with this theme will have the new custom theme applied to them as well. If you choose "Save as New Theme", you will have to manually apply your custom theme to all the other layouts.

    Note: If you upgraded from FileMaker 11 or earlier, all your layouts will have the Classic theme applied. FileMaker does not allow you to "Save Changes to Theme" for the Classic Theme.

    Importing Themes

    ]]> Creating custom themes is great. However, it is only half of the piece to this puzzle. Being able to reuse our themes across multiple files or solutions is just as important as creating them in the first place. You can do this from the theme manager, File > Manage > Themes or from the Change Theme window in Layout mode. Reusing themes follows the same method as importing other FileMaker objects. First, choose the FileMaker file that contains the custom theme; then, select it from the list of available custom themes. It will now be part of your FileMaker database and can be applied to any layout.

    Styles

    In FileMaker 13, we now have the ability to specify styles at the object, layout, or theme level. Which level you choose to save your style at depends on whether you intend to reuse the style or not.

    • Object Level - Only exists on the individual object, can not be reused

    • Layout Level - Can be reused on the current layout

    • Theme Level - Can be reused across other layouts

    Now that we know how to create our own theme, let's customize it further.

    Object Level Styles

    Object level styling is what FileMaker developers have been doing for years. Choose any object on a layout and modify it via the Inspector. These changes are saved to the individual object on the current layout.

    Layout Level Styles

    To take our object level style to the next level, we need to save it to the layout level. Saving it at the layout level will allow you to reuse your style in the current layout. The image on the right shows the default style for an edit box in one of my favorite themes, River Touch. Since it's a touch theme, the fields are 18pt font for easy use by hand. We would like to scale that down to a size appropriate for a desktop computer, say 13pt. I went ahead and formatted the field above it to display the way all default fields should appear.

    From the Inspector, you can easily identify the applied style by the red triangle. Click the red triangle to save your changes. You have two options: Save Changes to Current Style or Save as New Style. It is important to understand the difference. If you Save Changes on the default style, then any newly created fields will start with these defaults. This method of saving defaults is a great improvement over previous versions. The other option is to Save as New Style. This new style won't automatically be applied to new fields, but the style can be reused with other objects of the same type.

    Theme Level Styles

    To reuse our layout-level style across multiple layouts, we first need to save our style to the theme. Just like at the layout level, we have two choices: Save Changes to Theme or Save as New Theme. Save Changes to Theme will save all of the layout-level styles to the theme, not just the current one in the Inspector. Furthermore, all layouts with the theme will be automatically updated. This is where the "C" (Cascading) in CSS comes into play. The Cascading nature of CSS will first apply any object-level styles, the layout-level style will apply any attributes not defined at the object level, and finally any attributes not defined by the object or layout level will be set by the theme. The two layouts below have the same theme applied; the green button, blue button, and text field all have custom styles saved at the theme level.

    IMPORTANT! SAFELY CHANGING THE DEFAULT STYLES

    When you choose Save as New Style, it only stores CSS for the attributes you have explicitly set. If you later save a new default style at the theme level, any attributes not defined by an object level or layout level style will be updated. This may follow conventions for other applications and CSS. Unfortunately, FileMaker does not show us the individual CSS elements for our custom styles, making it difficult to know what will be applied and/or updated. It can be very frustrating as a user. I hope FileMaker will make the CSS more transparent by allowing us to view what attributes are explicitly set in a custom style.

    Now let's edit the text field below the buttons on layout 1 to have a red background, ensuring my changes are saved to style at the layout level. Notice layout 2 (below) did not update. This is because we did not save our changes to the theme, we saved just to the layout style.

    ]]> Next, in layout 2 we will update the blue button to make the font smaller and the text box below it have a purple background and 24pt font. This time, I'll save the changes to both at the theme level. Layout 1 now has the same blue button, the text box is still red, but the font size has been changed to 24pt font. Even though both text objects still have the same style applied from the Inspector, visually they are different.

    ]]> We have now introduced fragmentation into our layouts. Upon closer examination of Layout 1, we find the layout theme is not saved. Since Layout 1 does not have the most recent version of the theme, we have a few options to deal with it. We can save Layout 1 as the theme, which will cause the edit box on Layout 2 to become red. Any other layouts with this theme will be updated as well.

    Another option is to use "Revert Changes to Theme" from the Inspector. For example, in Layout 1, Revert Changes to Theme will revert any layout-level styles since the last time the theme was saved on the current layout, effectively removing the fragmentation between these two layouts. The best part is it will only affect theme and layout-level styles and any object styles specific to this layout will be unaffected.

    Note: Saving changes to a theme is an irreversible step. Reverting your layout will not revert the theme once it has been saved.

    Recap

    Once you have applied custom styles at the theme level to all your objects, we can do something that was not previously possible with native FileMaker: Update an object's appearance on one layout and see those changes applied across the entire database. Tired of looking at that white layout background? Simply change the color and save your theme. This is a powerful new feature we are excited to take advantage of in our solutions. You do have to be careful due to the lack of visibility as to which styles are theme level and which are layout-level. I am certain FileMaker will improve upon this visibility in the future. If you'd like any assistance, please contact us.

    ]]>
    <![CDATA[FileMaker WebDirect]]> https://dbservices.com/blog/filemaker-webdirect https://dbservices.com/blog/filemaker-webdirect Tue, 11 Mar 2014 00:00:00 -0400 WebDirect enhances the FileMaker platform by allowing you to publish your database to the web like never before. Real-time updates, a defining characteristic of the FileMaker experience, have made their way to the web. The real-time updates make WebDirect behave just like the Desktop client, where changes to a record are automatically synced to connected users without the need to manually refresh the screen. What makes WebDirect stand out above other web technologies is that no web development skills are required. Just like its predecessor, Instant Web Publishing (IWP), building a solution for WebDirect follows the WYSIWYG (What You See Is What You Get) format all FileMaker developers have grown accustomed to. Simply build your database using FileMaker Pro, host it with FileMaker Server 13, and you can access your database application via a web browser!

    WebDirect is very simple to get up and running, but don't let that simplicity fool you: Testing and optimizations for WebDirect are key to an enjoyable user experience. Almost every interaction, whether it be a keystroke or mouse click, is handled by the server, effectively transforming your web browser into a thin client. For those interested, WebDirect utilizes the Vaadin Web Application Framework, or "v-app", underneath. In a sense, FileMaker Server becomes a terminal server hosting its own v-app. As you can imagine, this architecture requires a significant amount of resources on the server. Let's discuss a few ways to help optimize your solutions for performance keeping in mind how server-intensive WebDirect is.

    Dedicated Layouts

    FileMaker WebDirect Use Dedicated LayoutsIf you have ever developed for IWP or FileMaker Go you will already be familiar with the concept of dedicated layouts. The idea is to create separate layouts or screens devoted to each platform, e.g. Desktop, iPad, iPhone, and Web. In the Invoice Starter Solution that comes with FileMaker 13, you can see that FileMaker makes use of dedicated layouts, even for WebDirect. The WebDirect layouts minimize the number of objects displayed on-screen through the use of a slide control. As a user I can still access all of the same data and charts but only one at a time, ensuring the layout loads quickly in the browser and the server isn't wasting CPU cycles trying to translate a huge layout into HTML and CSS.

    Good News!

    If you already have dedicated IWP layouts you can easily transition the layouts to WebDirect and use FileMaker Themes.

    FileMaker Invoice Template WebDirect

    FileMaker Themes

    With FileMaker 12 came Themes, which are built upon a new layout engine that utilizes Cascading Style Sheets (CSS). CSS is most commonly found in web pages and is used to format objects within a layout in FileMaker without needing to repeat that formatting information across multiple objects of the same type. This greatly reduces the amount of code needed to render a layout. FileMaker definitely had WebDirect in mind as they transitioned to the new layout engine.

    FileMaker Select Change Theme

    When optimizing for WebDirect, your goal is to minimize the amount of CSS and data that needs to be transferred between the server and web browser. Using themes (as opposed to local styles) allows you to optimize your CSS. By far the easiest way to remove all local styles on a layout and start using only theme-level styles is to change a layout's theme. In Layout mode, choose Change Theme from the Layouts menu. Select a different theme for your layout and choose OK. You're done! This layout is now optimized for use with WebDirect.

    What Just Happened?

    FileMaker removed all local styles when you applied the new theme to your layout. All formatting on the layout now comes from the theme, ensuring the CSS needed to render the layout is as small as possible, optimizing performance for both the server and client.

    Avoiding Local Styles

    Each time you change the appearance of any of your objects without saving those changes to the theme, you are creating a local style. Local styles add to the overhead required to render your layout, putting more workload on the server and client. Because of that, you should try to avoid using the format painter and copying and pasting of layout objects. Doing so does not retain the style of the original object and instead creates a new local style.

    FileMaker Inspector Window Styles Tab

    In addition, if you upgraded a solution created prior to 12, you will want to convert local styles into theme styles. Due to the absence of themes prior to 12, converted solutions are chock-full of local styles because that was the only way formatting could be done in older versions.

    Local styles can be identified in the Inspector by looking for the "Dreaded Inverted Red Triangle"! (I like to call them DIRTy layout objects but it hasn't caught on around the office.) Avoid having local styles for your layout objects.

    Luckily, FileMaker has provided a way to clean up local styles and minimize the impact they cause. Stay tuned for part two in which we discuss preparing existing layouts for WebDirect.

    ]]>
    <![CDATA[FileMaker Relationship Graph - What They Did Not Tell You]]> https://dbservices.com/blog/filemaker-relationship-graph-what-they-did-not-tell-you https://dbservices.com/blog/filemaker-relationship-graph-what-they-did-not-tell-you Mon, 03 Feb 2014 00:00:00 -0500 FileMaker 13 introduced many new features, including a number of very useful enhancements to the relationship graph, none of which are included in the help file or release notes. This is rather surprising, as several of these improvements to the graph can really speed up development. Let's take a look at some of the new functionality.

    Jump to Last Selected

    One of the most useful features is an update to how keystroke navigation works. In previous versions, pressing a letter key with nothing selected in the graph would jump the user to the first table occurrence (TO) in the graph that started with that letter. In FileMaker 13, instead of going to the first TO, it takes the user to the last selected TO when manage database was last saved. This is extremely useful for development, as you can now be working on a new relationship, save manage database, go off and do other things, and then quickly jump back to where you left off.

    Move Cursor

    filemaker-relationship-graph-move-cursorWhen grabbing and moving TOs, the cursor in 13 has been updated to be a hand on Mac and a selection cross on Windows. This one may seem like a very minor update, however when viewing a zoomed out graph and trying to move selected TOs, it used to be really hard to tell when the mouse was directly on a TO, usually ending with the TOs becoming unselected when you mis-clicked into the background. Now the guesswork is removed and the user can easily move TOs around.

    Selecting Table Occurrences

    filemaker-relationship-graph-new-selection-boxSelection in the relationship graph is now consistent with how layout mode works. The selection box from clicking and dragging the mouse cursor now selects every TO the box touches, instead of only ones fully enclosed by the box. Holding down command (CTRL on Windows) and dragging will select the TOs fully enclosed by the box. Additionally, the color has been updated to be a blue halo around selected TOs, rather than the orange it used to be. A minor change, but it helps the application feel more consistent, as selected objects in layout mode are also highlighted blue.

    Zoomfilemaker-relationship-graph-zoom-in

    In the new relationship graph, you can now zoom in further than the default size. Previously you could only zoom out to see an overview. This adds some welcome flexibility, and will help when selecting those thin relationship lines.

    Conclusion

    The updates to the relationship graph in FileMaker 13 make development easier and faster, whether the system has 5 TOs or 500. We appreciate that FileMaker, Inc. threw in these little updates that help save time and enhance the usability of the graph. As if the new web-based admin console, custom themes and popover buttons weren’t already enough reasons to love FileMaker 13, these updates to the graph just give us more.

    ]]>
    <![CDATA[FileMaker Server + Open Directory]]> https://dbservices.com/blog/filemaker-server-open-directory https://dbservices.com/blog/filemaker-server-open-directory Mon, 06 Jan 2014 00:00:00 -0500 FileMaker Server can be set up to authenticate against Active Directory and Open Directory. For those already using a Microsoft Server as a domain controller, setup is little more than flipping a switch, while those on Mac-only networks have to do a little more.

    FileMaker Server and Open Directory can be integrated on either a single machine or across multiple machines. If you are following FileMaker Server best practices, Open
    Directory and FileMaker Server should be installed on separate machines. The directions for either deployment are the same, except for on the single-machine deployment do all the steps on a single machine.

    Note: This tutorial assumes a two-machine deployment.

    Caveats

    Setup may require an advanced understanding of networking and domain name configuration.

    FileMaker Server must be installed on a Mac as Windows-based PCs are not able to bind to an Open Directory domain. Windows clients will still be able to authenticate, as authentication is processed through FileMaker Server.

    Each FileMaker database must have a local account with [Full Access], as an Open Directory user with [Full Access] will not be able change security settings.

    Requirements
    • Mac OS X Mountain Lion (other versions may require a slightly different setup).

    • OS X Server

    • FileMaker Server

    Sections
    1. Mac OS X Server

    2. Open Directory Configuration

    3. FileMaker Server Configuration

    4. FileMaker Pro Database Configuration

    5. Troubleshooting

    Section 1: Mac OS X Server 1

    OpenDirectory Server is required and you must have a static IP and a resolvable hostname. FileMaker Server is optional.

    Step-by-Step
      1. Install Mountain Lion and update to the latest version.Screenshot 1.1 - Mac OS X Server - Setup Server

      2. If you are going to be using this machine as an Open Directory server, you will need to assign it a static IP and make sure it is using a reachable domain name.

      3. Install OS X Server

        • Purchase and download Mac OS X Server from the Mac App Store.

        • Open your Applications folder and double-click Server to begin setup.

        • On the second page of the Server setup wizard ("Accessing your Server"), you will be given three options. If the server is not going to be accessible from outside the local network, choose "Local Network" (1)

        • Step through Server setup wizard: On the section "Connecting to your Server", make sure the "Network Address" (1) is set to a static IP and "Host Name" (2) is set to the domain that resolves to the static IP you configured.

    1.2 - Mac OS X Server - Network Type

    1.3 - Mac OS X Server - Host Name

    Section 2: Open Directory Configuration

    Static IP and Resolvable DNS Name are required for configuration.

    Step-by-Step
      1. Open the "Server" application.Screenshot 2.1 - Open Directory Setup - Select Open Directory

      2. Choose "Open Directory" under "Services" section.

      3. Start the Open Directory setup wizard by clicking on the OFF/ON toggle.

      4. Choose "Create a New Open Directory Domain" and click Next.

      5. Enter the information for the Directory Administrator account, then click Next. If you get an error regarding the hostname being invalid, you need to make sure the Open
        Directory server has a resolvable domain name. You may need to check the PTR (reverse
        lookup) record to make sure it is configured correctly. (See troubleshooting section)

      6. Enter the organization name and the email address of the server administrator, click
        next.

      7. Click on "Set Up" to configure and enable Open Directory.2.2 - Open Directory Setup - Hostname Invalid

      8. Setup SSL Certificate (1), make sure that "Secure services using:" is set to your SSL

    certificate and not "Custom configuration".

    2.3 - Mac OS X Server - Setup SSL

    Open Directory Users & Groups

    Now that you have a working Open Directory server, you will need to set up users and groups to use for authentication.

    Tip

    For more control over Users & Groups, you can download Workgroup Manager directly from Apple.

    Groups

    1. Click on "Groups" (1) under "ACCOUNTS" and then choose "Local Network Groups" from the drop down menu (2).

    2. Click on the plus (+) button to create groups to control access to FileMaker databases.
      2.4 - Open Directory Setup - Groups

    Users

      1. Click on "Users" (1) under "ACCOUNTS" and then choose "Local Network Users" from the drop down menu (2).

      2. Click on the plus (+) button to create a user, enter the user's information and click "Done".

    2.5 - Open Directory Setup - Users

    1. Now right-click the newly created user, and select "Edit User…"

    2. You can assign groups to a user by click in the plus "+" button (1), and then begin typing in the blank Groups line to get the option to browse (2), which will open the Groups floating window. To add groups to the user, just drag the group name into the user Groups list.

    Section 3: FileMaker Server Configuration

    Bind to Open Directory

    These steps only apply if the FileMaker and Open Directory servers are on separate machines.

    Step-by-Step
    1. Open System Preferences, and select "Users & Groups".

    2. Click on "Login Options" (1), then click on the lock (2), and enter an administrator's credentials.
      3.1 - FileMaker Server - System Preferences

    3. Click on "Join…" (1), then click on the Server drop-down (2). You should see your Open Directory server in the list, if you do not, enter the fully qualified domain (FQDN). Press enter to bind to the directory server.3.2 - FileMaker Server - Bind to Directory

    Configure FileMaker Server

      1. Open the FileMaker Server Admin Console

      2. Click on "Database Server" (1), choose "Security" (2), change "Client Authentication" to "FileMaker and external server accounts" (3), then click Save (4)

    3.3 - FileMaker Server - Admin Console - Security

    Optional FileMaker Server Configuration

    Open Directory authentication may also be used to configure access to the FileMaker Server Admin Console. Click on "Administrator Groups" (1) click Add (2). Configure the group.

    Step-by-Step
    1. Click on "Administrator Groups" (1)

    2. Click Add (2)

    3. Enter "Group Name" (3)

    4. Enter "Group Password" (4) (required, but unused)

    5. Check "Use external group" (5)

    6. Enter Open Directory Group (6) to use for authentication.

    7. Click "Test External Group" (7)

    8. Click "Select Folder" (8) and choose a folder, if you would like to limit access to a specific folder.

    9. Click "Edit Privileges" (9), if you would allow privileges beyond the default: View Databases, Send Messages and Disconnect Clients.

    10. Click Save (10)

    3.4 - FileMaker Server - Admin Console - Admin Groups

    Open Directory authentication may also be used to provide full access to the admin console.

    1. Click on "General Setting" (1)

    2. Check "Use external group" (2)

    3. Enter Open Directory Group (3) to use for authentication.

    4. Click "Test External Group" (4)

    5. Click Save (5)

    Section 4: FileMaker Pro Database Configuration

    To use Open Directory for authentication, the database must be hosted on a FileMaker Server configured for Open Directory.

    Step-by-Step

    Complete the following steps for each FileMaker Pro database you want to authenticate through OpenDirectory.

    1. Open database.4.2 - FileMaker Pro Database - Add Group

    2. Go to the menu File > Manage > Security

    3. Add Open Directory Group Account

      • Click "New..." (1)

      • Select "External Server" from the "Account is authenticated via" menu (2).

      • For "Group Name" (3), enter the Open Directory Group you would like to use for authentication.

      • Select a "Privilege Set" (4)

      • Click OK (5)

    Authentication Order

    4.3 - FileMaker Pro Database - Authentication Order

    The order matters! If a user has a FileMaker account and an OpenDirectory account, using the same username, the first account/group that accepts the provided username and password will be the one used.

    • Legacy local user "localUser" (1) [Full Access]

    • New OD Group "ODUserGroup" (2) [Edit Only]

    • "localUser" logs in with his old local password and is given [Full Access] even though he is in the group "ODUserGroup" and was expected to have [Edit Only] access.

    Section 5: Troubleshooting

    What to do if you are getting an "invalid hostname" error, or are unable to connect to the Open Directory server using SSL.

    • Run the following command from Terminal to check your configuration:

    sudo<br>changeip -checkhostname
    • The most common issue is that the domain lookup and
      reverse lookup (PTR record) do not match, you should contact your network administrator or
      internet provider.**

    • If you are unable to login with OpenDirectory Credentials: On the FileMaker server, unbind and rebind to the OpenDirectory server in System Preferences - Users & Groups - Login Options.

    • Recommended: Install Mac OS X Server on all the machines used, though it is optional for the FileMaker Server machine.

    ]]>
    <![CDATA[FileMaker Field Picker]]> https://dbservices.com/blog/filemaker-field-picker https://dbservices.com/blog/filemaker-field-picker Tue, 03 Dec 2013 12:05:00 -0500 FileMaker 13 comes with many new features. One exciting feature, the Field Picker, provides convenient and time-saving options when creating or editing layouts.

    The Field Picker allows users to add multiple fields at once to a layout, create new fields, and edit field options, all without opening Manage Database.

    To access the Field Picker, in Layout mode in the toolbar, go to View > Field Picker or select the Field Picker button on the right side of the function bar next to the layout stencil guides button.

    Adding Fields to Layouts

    You can add multiple fields to a layout at once, which will definitely speed up the process when designing layouts. Under Drag Options, you can choose between horizontal and vertical placement of the fields, as well as three different options for label position: No labels, labels above the fields, or labels to the left of the fields.

    FileMaker Field PickerCreating and Editing Fields

    The Field Picker allows you to quickly create a new field and view or edit any field options just like you can using File -> Manage Database. To edit the field options, right-click on the field from the Field Picker and you can select Field Options or Delete Field. Be careful though, just like when using Manage Database, the Field Picker will lock the current table when editing field options if you are working on a live FileMaker system. You can also change the type of field from a pop-up menu to Text, Number, Date, Time, Timestamp, Container, Calculation, and Summary.

    The Field Picker is a very useful and convenient new feature. One year from now, it will be hard to imagine a time without the conveniences of the Field Picker.

    ]]>
    <![CDATA[FileMaker Slide Controls]]> https://dbservices.com/blog/filemaker-slide-controls https://dbservices.com/blog/filemaker-slide-controls Tue, 03 Dec 2013 12:04:00 -0500 Slide Controls

    FileMaker Slide Control Status ToolbarOne of the newest additions to the FileMaker arsenal of development tools are slide controls. Slide controls act much in the same way as tab controls but with a few key features that make slide controls special.

    Navigation Dots

    filemaker-sample-slide-controlPerhaps the best thing about slide controls is the ability to hide the navigation dots that navigate to different panels. Hiding the navigation dots now allows you to easily make a hidden panel that can only be shown under certain circumstances (e.g. Only show the cost panel if the user is the admin). When "Show navigation dots" is enabled, a slide control behaves in the same way as a tab control. To navigate to different panels, all you need to do is click on another navigation dot. The left-most navigation dot will always be the default panel when a layout loads. In order to build a hidden slide control panel, disable "Show navigation dots". Then, make the default panel empty and send the user to another panel only when you want via a script.

    FileMaker Slide Control Status ToolbarSwipe

    Another new feature unique to slide controls is the ability to enable swipe gestures. This allows users from FileMaker Go to slide to another panel through a one-finger swipe, enabling easier navigation and viewing from a mobile device. Note that when the "Enable swipe gestures" option is selected, FileMaker Go users will be able to navigate to different panels regardless of whether the "Show navigation dots" option discussed earlier is selected or not.

    ]]>
    <![CDATA[Rest Easy With Encrypted Databases in FileMaker]]> https://dbservices.com/blog/rest-easy-with-encrypted-databases-in-filemaker-13 https://dbservices.com/blog/rest-easy-with-encrypted-databases-in-filemaker-13 Tue, 03 Dec 2013 12:03:00 -0500 The new version of FileMaker 13 has added database encryption to its ever-growing list of features. Anyone familiar with HIPAA is likely already familiar with encryption of data at rest. However, this feature will be beneficial to everyone and I see no reason not to take full advantage of it. Note: Encryption requires FileMaker Pro Advanced to set up.

    How It Works

    To set up encryption, fire up FileMaker Pro Advanced and launch the Developer Utilities. Add the file(s) that you wish encrypt, then under Solution Options select Specify, and choose Enable Database Encryption from the Solution Options. You will need to specify a FileMaker Account with Full Access privileges for the file(s).

    Next, enter an encryption password and password hint, if you wish. Don’t lose this password! Close the Solution Options window and click Create.

    Congratulations! Your database is now encrypted at rest!

    In order to open any of the databases, you will be required to first enter the encryption password.

    You also have the option to Remove Database Encryption. The process to remove encryption is just as straight-forward as adding it: Simply provide an account with full access credentials and the encryption password to reverse the process.

    FileMaker Field Picker

    Keep In Mind

    • FileMaker Server – You are still required to enter the encryption password when hosting with FileMaker Server. Luckily, unlike FileMaker Pro, you do have the option of saving the password.

    • Backups – They are encrypted whether they are created with FileMaker Server or FileMaker Pro.

    • Exporting Records – Records exported are always saved to a non-encrypted file.

    • Container Fields – All External Container Data in your files will be encrypted during the process. If you wish to leave your external container data unencrypted, choose Keep Open Storage option while specifying your Solution Options.

    • Shared ID – This can be used to add additional database files to the encrypted solution.Pro Tip: Decrypting and then encrypting the entire solution with the new file(s) added accomplishes the same goal.

    • Get(EncryptionState) – FileMaker 13 provides us with a new function to get the encryption state of a database. Along with the encryption state, it will also return the Shared ID of the encrypted database.

    Encryption is a great new feature that gives you another level of security beyond a login. The files still appear as .fmp12 files, but require the encryption password to access.

    ]]>
    <![CDATA[FileMaker 13 Whats New]]> https://dbservices.com/blog/filemaker-13-whats-new https://dbservices.com/blog/filemaker-13-whats-new Tue, 03 Dec 2013 12:02:00 -0500 The new version of FileMaker 13 is here! Below, we look at the full FileMaker 13 platform (FileMaker Pro 13, FileMaker Go 13, and FileMaker Server 13), highlighting some of the best new features and recapping the differences between this and prior versions of FileMaker Pro.

    Overview

    FileMaker 13 Advanced logo

    Perhaps the biggest news in the FileMaker 13 platform is the introduction of WebDirect to replace IWP (Instant Web Publishing). WebDirect allows you to easily publish your database application in a browser on the web.

    With WebDirect also comes the introduction of new licensing for WebDirect and FileMaker Go in FileMaker Server via Connection Packs.

    Operating system requirements have changed in the latest version, with support being dropped for Windows XP, Vista, Windows Server 2003, and Snow Leopard. We welcome the support of Windows Server 2012 Standard. In addition, FileMaker Go 12 is no longer available on the App Store with the release of FileMaker Go 13. These changes do not impact many, but for some, the licensing and support changes will require some technology investment.

    Many usability improvements and technical features have been added that continue to extend the previously-laid groundwork of the powerful, easy-to-use, rapid development solution you get with the FileMaker platform. Below, you will find in-depth details on each of the new features across the platform.

    FileMaker Pro 13

    The latest version continues to add new features and enhance usability for users and developers. Let's start with the user experience enhancements with layouts, styles, and themes.

    Popover Windows

    We think this is the year of the Popover Window. Everyone will be adding Popover Buttons with Popover Windows in their solutions. In prior versions, you had to create a new layout for popover windows, but now you just add a Popover button and you're done.

    Read more about FileMaker Popover Windows as we love this feature's flexibility and speed.

    Slide Controls

    Similar to Tab Controls, a new feature that can be easily added is called a Slide Control. You can use a Slide Control with swipe gestures on iOS devices running FileMaker Go.

    Read more about FileMaker Slide Controls as an option for your databases.

    Field Picker

    Another very cool feature is the ability to use the new Field Picker when designing layouts. The Field Picker gives you the ability to easily find a field using a filter by field name, edit field options without going into Manage Databases, drag and drop multiple fields on a layout at one time, and much more.

    Read more about the FileMaker Field Picker.

    Themes

    Making an application beautiful is getting easier with the number of template designs now available. FileMaker 13 comes with 11 new Themes, pushing the total number of Themes to more than 50. Plus, if you want to customize an existing theme and apply it to all your layouts, you can now do it, saving you lots of time and energy.

    Custom Layout Themes

    One of the big new features is you can change a Theme and Save it as your own New Theme. Each Theme includes a default style for every object, layout part, and layout background that you can modify. It's similar to how CSS elements function on websites.

    Modifying the themes is easy, as well. In the Inspector Palette there is a new tab called Styles that allows you to manage the Parts, Shapes, Edit boxes, Drop-down lists, and Pop-up menu styles. You also have the ability to Manage Themes via File > Manage > Themes, which allows you to import, duplicate, and share custom themes. Themes are a very powerful feature in FileMaker 13 that we're sure you'll love as much as we do.

    Starter Solutions

    FileMaker 13 comes with four updated Starter Solutions (Assets, Contacts, Content Management, and Invoice Starter) in the existing 16 Starter Solutions. (In particular, I really like the Invoice Starter Solution.)

    The Invoice template includes a Dashboard and a top-tier navigation that provides a great framework for navigation. All of the new Starter Solutions includes layouts for iPad, iPhone, Desktop, and new Web layouts for WebDirect. I expect new users will enjoy starting with the Invoice template for a customer, quote, or invoicing system. Be sure to check them out!

    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.

    Insert From URL, HTTP Post

    There are a lot of new script steps and functions in FileMaker 13. However, I want to focus on just one function we are happy to see has arrived: HTTP Post. The HTTP Post function was something we sponsored in the BaseElements Plugin awhile back to be free to the FileMaker community but is now native in FileMaker 13. You can now do HTTP Post using the Insert From URL script step. This is very common for integrating your solutions with other Web Services and is a nice upgrade for users.

    FileMaker Go 13

    The new version of FileMaker Go 13 on the App Store means FileMaker Go 12 is no longer available on the App Store. FileMaker Go 13 has all the features you get in FileMaker Pro such as Slide Controls, Popovers, Navigate Slide Controls and Records with Gestures, Detecting Screen Rotations, plus some specific iOS features listed below.

    Barcode Scanning

    Previously, you had to use a third-party application for barcode scanning, but now barcodes can be scanned directly from your iOS device using the camera. You implement barcode scanning using the Insert From Device script step. Sixteen bar code types are supported, including Code 39, Code 93, Code 128, EAN-8, EAN-13, EAN/UPC Composite, GS1 2-Digit Add-On, GS1 5-Digit Add-On, GS1 DataBar Expanded, GS1 DataBar (RSS), ITF-14, ISBN-10, ISBN-13, QR Code, and UPC-1, UPC-E.

    iOS Keyboards

    There are seven new iOS keyboard types for easy data entry. The custom iOS keyboards include: Email, URL, Number, Numeric 10-Key, Number and Punctuation, and Phone. In the Inspector Palette in the Data tab under Behavior is a new Touch Keyboard type option. This will help you create a wonderful experience for your users using FileMaker Go on a mobile device.

    FileMaker Server 13

    FileMaker has combined FileMaker Server and FileMaker Server Advanced into a single product now called FileMaker Server 13. All the features that were a part of Server Advanced are now part of FileMaker Server and you simply purchase Connection Packs for your WebDirect and FileMaker Go concurrent connections. In addition, under the hood, FileMaker Server got much easier to use with a Web Browser Server Admin Console, WebDirect replacing IWP, and the consolidation of TCP/IP ports used by FileMaker Server.

    WebDirect

    Goodbye IWP and a big welcome to WebDirect! With WebDirect, you do not need to install FileMaker Pro client. The new layout engine, based on CSS and released in FileMaker 12, was built with WebDirect in mind. Now you get high-fidelity WYSIWYG database publishing to the web without having to learn any HTML, CSS, PHP, or another language to create a website database application. In addition, you get real-time updates in the browser just like we have come to expect in the desktop client.

    This is a 1.0 release and provides many more FileMaker Pro client capabilities on the web. Right now, the recommended hardware supports up to 50 concurrent connections with WebDirect and we did notice in our testing it's a little slower than FileMaker Pro. We expect new versions to continue to build on this great foundation and provide more mobile browser capabilities. WebDirect is one more deployment option for the FileMaker platform.

    Read more about FileMaker WebDirect and best practices.

    Server Admin Console

    Say goodbye to the FileMaker Server Admin Console built in Java. Getting rid of Java means we longer have to worry about the next release of Java breaking the Server Admin Console. Revamped in HTML 5, administration is much easier and more secure. On the down side, right-clicking is no longer available, but maybe we can get that feature back in the next version.

    Database Encryption

    You can now store FileMaker Databases on the server and set them up to be encrypted at rest. AES 256-bit encryption ensures all data is encrypted, even the temp files.

    Read more about FileMaker Database Encryption.

    Perform Script on Server

    Have you ever wanted to perform a script, but process that on the server instead of the client? You can now do that and you also have the option to Wait for completion. By being able to run scripts on the server, you can do things like sending mass mails or processing and emailing a report—things that take minutes to complete or that will complete faster on the server versus the client.

    Conclusion

    The new FileMaker 13 platform continues to focus on its unparalleled ease of use to create custom applications for organizations all around the world. There are still many things we did not cover here that continue to bring added simplicity to users and developers.

    FileMaker Go continues to be a fantastic product as well, allowing organizations to create a custom application on iOS devices while providing an incredible ROI.

    After 18 months, we are happy to see FileMaker 13 is here and look forward to this major release to build awesome custom applications for the Mobile, Web and Desktops.

    ]]>
    <![CDATA[FileMaker Popover Buttons]]> https://dbservices.com/blog/filemaker-popover-buttons https://dbservices.com/blog/filemaker-popover-buttons Tue, 03 Dec 2013 12:01:00 -0500 FileMaker 13 introduced two major interface controls that greatly enhance the user experience and modern look of a FileMaker application: Slide controls and popover buttons.

    Most web users are familiar with these two controls. Slide controls have been a mainstay of homepages over the past 4 years, providing visual interest and highlighting key content on a site. Popovers are a perfect solution to showing more detail on a page without leaving the page or popping open a new window, giving the whole experience a bit of visual flair while maintaining the context of the user's work.

    At its core, popover buttons are a space-folding device, akin to tab controls: they allow you to have more objects on a layout without overwhelming the user. Tools that facilitate progressive disclosure enable developers the ability to provide clean, simple interfaces that introduce detail only when the user needs it. Popover buttons are one of many tools that FileMaker 13 introduced to help developers build an interface that progressively discloses information.

    Let's take a look at how to add and configure popover buttons.

    FileMaker Sample Popover Button

    Adding a Popover to a Layout

    FileMaker Popover Button Status Toolbar

    There are two main ways to add a popover button to a layout:

    1. The status toolbar. The directions here differ depending on your operating system. On Mac, click and hold the Button tool on the status toolbar (shown above). Select the Popover Button option. Hover your mouse anywhere over the layout; you'll notice the pointer changed to crosshairs. Click and drag the crosshairs on the layout itself to add the button. On Windows, instead of clicking and holding the Button tool, click on the arrow next to the Button tool. Select the Popover Button option. The rest is the same.

    2. The Insert menu. Choose Insert menu > Popover Button. FileMaker will add the popover button to the spot where you last clicked on in the layout. Immediately after adding the button, FileMaker will show you the button, the popover and the Popover Setup dialog. At this point you can add a label to the button, add objects to the popover or change the popover's settings.

    Components

    There are two components to a popover:

    1. The button. FileMaker the Button The button looks and behaves just like a regular button, but instead of running a script when the button is pressed, it'll open up the popover. You can still run a script when the button is pressed by tying an OnObjectEnter script trigger to the popover, not the button itself! Tying an OnObjectEnter to the button doesn't do anything. Be careful: OnObjectEnter triggers fire after the event occurs, FileMaker The Popover so the user will see the popover before your script runs.

    2. The popover. This is the box that appears to the side of the button where your additional content goes. To show the popover in Layout Mode, either double click on the button or right click on the button and select Display Popover.

    You can style these two components separately using the Inspector.

    Adjusting the Knobs

    FileMaker Popover Settings

    Popover buttons have a couple unique settings that aren't available to other interface controls:

    • Position of the popover relative to the button. You can specify which side of the button the popover should appear next to. FileMaker will do its best to position the popover on the side you specify; however if there isn't enough room, FileMaker will display the popover on a side that does have enough space. If no side has adequate space, FileMaker will show the popover on the side you specified but it'll: 1) Be truncated, and 2) Have a scrollbar so you can access the rest of the objects.

    • Specifying the popover's title. The title will appear on the top of the popover and can be dynamically set from a calculation. You can choose to hide the title if necessary by unchecking the Show title bar option in the Popover Setup dialog.

    Some Miscellany

    • There's a new badge to indicate if a button is a popover button. You can turn on the badge in layout mode via View menu > Show > Popover Buttons.

    • Popover buttons can be added to portals. For all those developers who were planning to use popovers to extend the amount of information in a portal row, you're in luck. However, the same restrictions apply to the popover as they do to the portal: you can't add panel controls, other portals, etc. to the popover because it's an extension of the portal.

    • Popovers can't be nested. Popovers within popovers within popovers? Not quite. What's interesting, though, is that FileMaker will allow you to put a popover button inside a popover, but the button won't show the 2nd popover.

    • Popovers can have slide controls and tab controls inside them (as long as the popover button isn't inside a portal). Feel free to space-fold yourself into oblivion by adding slide controls and tab controls to your popover. No real need to nest popovers when you can nest panel controls.

    • A script can be triggered when a popover is opened or closed. You can set these via the Popover Setup dialog > Script Trigger button. Configure an OnObjectEnter trigger to fire a script when the popover opens and an OnObjectExit for when the popover closes.

    Modernity

    The last few versions of FileMaker have seen a focus on providing developers the tools needed to make FileMaker applications modern. Themes, styles, gradients, shadows, slide controls, popover buttons—these are some of the many features demonstrating FileMaker, Inc's commitment to improving user experience and design. We are already looking forward to where FileMaker 14 will take us next!

    ]]>
    <![CDATA[FileMaker Ends Support for Bento]]> https://dbservices.com/blog/filemaker-ends-support-for-bento https://dbservices.com/blog/filemaker-ends-support-for-bento Sun, 04 Aug 2013 00:00:00 -0400 Bento database box

    Bento, the Mac OS X database solution that was touted as user-friendly and relied heavily on templates, has been discontinued and will no longer be supported or updated. That’s news that could be tough for some small organizations to swallow.

    Bento provided the ability for five users to share a database and integrated with other native Mac applications, which allowed small organizations to do pretty powerful things at a reasonable price. Those organizations will now need to look for an alternative database solution, including upgrading to FileMaker Pro.

    First released for the desktop in January 2008, Bento later became the first FileMaker product compatible with iOS in early 2009. However, once FileMaker Go was released in July 2010, it marked the beginning of the end for Bento. Bento only had one release after that.

    Bento will no longer be available on the App Store as of October 1, 2013.

    Upgrade Bento to FileMaker

    Give us a call to discuss your Bento databases and the plot the best path to migrate your Bento database to FileMaker. We offer FileMaker Development, FileMaker Coaching, and FileMaker Licensing. Contact us today for a free consultation.

    ]]>
    <![CDATA[Natively Resize Images in FileMaker]]> https://dbservices.com/blog/natively-resize-images-in-filemaker https://dbservices.com/blog/natively-resize-images-in-filemaker Tue, 02 Apr 2013 00:00:00 -0400 FileMaker 12 has many new exciting features, including 16 new starter solutions, layout themes, a 64-bit server, improved container storage and performance, and much more. One exciting "sleeper" feature that has us at DB Services appreciating the new version more than ever is the ability to natively resize images. This makes managing the size of your database simpler and provides you the ability to resize images in FileMaker Go on the iPad and iPhone. With the ability to natively resize images on any platform, you may want to optimize the images in all your FileMaker applications. Let's take a look at how this resizing works in FileMaker 12.

    How It Works

    There's one main function that does the heavy lifting: GetThumbnail( ). As long as you know the width and height that you want to shrink an image down to, this function is essentially all you need to get the job done.

    GetThumbnail( )

    There are three parameters to pass the function:

    • Get Thumbnail Expression screen shotsourceField. This is the container that contains the image you want to resize.

    • fitToWidth. This is the width to shrink (or enlarge) the image to.

    • fitToHeight. This is the height to shrink (or enlarge) the image to.

    One thing to keep in mind is that FileMaker won't distort the resized image: it'll always maintain the proportions of the original image. The width and height parameters tell FileMaker what box the resized image should proportionally fit into. If the original image is 400x500 and you want to resize it down to 200x400, FileMaker will return a thumbnail of 200x250, which both fits into the box and retains the original 4:5 aspect ratio.

    Putting It on Autopilot

    Auto Enter Calculation Screenshot

    By far the easiest and most robust way to implement reducing the size of an image is to do it inside an auto-enter calculation of the container field itself. The auto-enter will replace the original image with the resized version automatically, eliminating the need to script the resizing. This also ensures the database doesn't keep a copy of the original, which would defeat the purpose of resizing in the first place: To ensure the database maintains a healthy diet of lean-and-mean images and doesn't expand its waistline too much over time. If you want to keep the original, then use 2 fields, one for the original and one for the smaller image.

    Avoiding Pixelation

    Auto Enter Avoid Pixelation ScreenshotOne of the nice latent features of the GetThumbnail( ) function is that it will automatically prevent you from pixelating the new resized image: you can only shrink an image, not expand it.

    In the event that FileMaker removes this safeguard, you can add a bit more code to the original function call above to ensure your resizing is future proof and will never pixelate an image. All you need is to make use of a couple new functions in 12: GetWidth( ) and GetHeight( )

    Using these two functions will give you the original image's width and height. If the original width is smaller than the resized width, tell FileMaker to make the resized image the same width as the original. Same idea with the height. This ensures you will never pass dimensions to the GetThumbnail( ) function larger than your original image's.

    Native Bliss

    Resizing images in FileMaker 12 is a straightforward task that'll work on any platform. Given the increasing prominence of mobile devices, we are excited that we can resize images in FileMaker Go running on the iPad and iPhone where pictures are now commonly taken.

    ]]>
    <![CDATA[Upgrading FileMaker Pro, Part 2 - File Consolidation]]> https://dbservices.com/blog/upgrading-filemaker-pro-part-2-file-consolidation https://dbservices.com/blog/upgrading-filemaker-pro-part-2-file-consolidation Thu, 07 Mar 2013 00:00:00 -0500 This is part two of a two-part article tackling the challenge of converting and consolidating FileMaker Pro .fp3 and.fp5 file types to .fp7 and .fmp12. In part one, we covered the FileMaker Conversion process. In part two, we'll cover the process of Consolidating FileMaker Files.

    Consolidating FileMaker Files, Tables First

    Start the consolidation process by first putting all the tables into a single file. You do this by importing all the tables from each file into the single .fp7 or .fmp12 file solution (requires FileMaker Advanced to copy/paste tables, use FileMaker 8 Advanced or greater).

    One of the new features in FileMaker 7+ is the ability to add timestamp fields for creation and modification. If you like, go ahead and add those fields now. Also, if you want to create a script to import records from the .fp7 or .fmp12 files into the main file, you should do that now, too.

    While pasting your tables, an import.log file will be created by FileMaker. Save this log as you will need to fix any errors from lookups to auto-enter calculations that utilize relationships not currently in the solution.

    TIP: If you are using a Mac, install 2 copies of FileMaker Pro. Then run one with the consolidated FileMaker file and one with the non-consolidated FileMaker files so you can easily copy and paste between them.

    Add Relationships

    Create all Relationships (TOs) from the individual files you are integrating into your new consolidated file, naming the relationships exactly as the individual files relationships are named. Be sure to keep any prior relationship rules (sort, del, cre) present.

    TIP: If you used the Hub and Spoke approach where you are consolidating all files into your largest file, then you need to update any existing TOs that are using an external data source. FileMaker makes it easy to identify external TOs by putting them in italics. Double click the TO and change the data source to the current file and the table you created in the single file and verify the relationship is correct.

    Add Value Lists

    Add all Value lists used in .fp5 files to the single .fp7 or .fmp12 file.

    Tip: Consolidate value lists when possible by giving them the same name in all the files. Do this when you see a value list that is using another file value list. Make sure these value list names are the same name as their source value list. When you paste the layouts in a later step, they will all use the same value list.

    Note: As of FileMaker 16, you can now copy and paste value lists between files saving you time here.

    Fix Fields Errors

    Review all the fields in the tables. Use the Import.log file to identify the errors and resolve them. The errors come from importing the tables without having the table occurrences present. Errors will be in the Calculation fields, Auto enter calculations of fields, and the Lookups in fields. The calculations will be commented-out from the importing of the tables and the lookups will be broken. You may wish to rewrite the lookups to auto-enter calculations here as well.

    Add Layout Names

    Create layouts with the exact name of the layout in the individual files you are integrating into the new single file solution. Don’t copy/paste layouts yet. First, name layouts identically to those in your current FileMaker version, remember to set layout type (form or list), and set fixed print margins in pixels to ensure identical layout setups.

    Import Scripts

    Import all Scripts from each file. Look for import errors (they will be saved to the import.log file), typically from identical script names or relationship names not being identical. Rename the scripts as needed, ensure the relationship names are correct and then delete the scripts you imported with errors and repeat the import until absolutely zero errors are present upon import.

    Copy and Paste Layouts

    Copy and Paste layouts from each file into the appropriate layout. Make sure any buttons on the layout are now linked to the correct scripts and fields are linked to the correct tables/relationships. This is where all the hard work of conversion and consolidation comes together and why it is so critical to ensure unique names for relationships and scripts. The only bad news here is the tab order will have to be reset for these layouts. The good news is now, as of FileMaker 10, tab orders are much easier to adjust.

    Tab Orders

    Set tab order for each layout that was copied/pasted into the consolidated file(s). Update Date Fields to use drop-down calendar.

    External Scripts Now Internal Scripts

    Consolidate all external script references into the correct file and select the same script name. The Metadata Magic Conversion Issue Report will help you if the system came from FileMaker 6 or prior.

    Preventing Conversions Issues

    The last thing anyone wants is to have the client or user tell you about a problem that is related to your file consolidation. So take the proactive steps below to make the system bug free.

    • Review all the Go to Related Record calls to ensure you are in the correct context/layout. Once consolidated, the Go to Related Record may incorrectly state 'current layout' to the related table.

    • Review all New Record, Duplicate Record, and Set Field calls to ensure a commit record request is present to prevent record locking.

    • Import Records script steps need to be reviewed. They may have pointed directly to one of the files that has been consolidated.

    • Export Records where a Group By is checked by default. This is rare to see, but if the system exports many things to Excel, this is more likely to be seen.

    • Custom Functions, if you're consolidating files from FileMaker 8 or higher, make sure the custom functions are in place and have no errors.

    • Adjust Window Hide. Remove them from the files that have been consolidated, or the main window will hide.

    • Close File, same as above with Window Hide, remove them from the scripts, or the main file will close.

    • Any field validation may need to be reviewed as in .fp7 field validation occurs when any field is modified and the field may not be present on the layout.

    • Review manage security if you're consolidating to make sure all permissions are in place and work as expected.

    Test, Test, Test

    In consolidating files, the script consolidation rewrites and testing of solutions is 80% of the development (e.g. Print Scripts, consolidating navigation).

    Custom Menus (Optional)

    Consider using Custom Menus to improve your application and the overall user experience. When you use Custom Menus, you should first (and always) remove the Delete Found Records menu from Records menu set. Next, you should further customize the Records menu set further for each area of your application to help improve the user experience. For example, in the Contacts area of your application, you can rename "New Record" to "New Contact." You can then continue reassigning each layout to its own appropriate custom menu as you see fit.

    DDRs and Third Party Developer Tools (Optional)

    Run DDRs and tools like Goya's Base Elements or Inspector to fix any errors that exist. For us, this is not optional.

    Conclusion

    FileMaker file consolidation provides the developer with an ideal environment that leads to time savings when developing. You can save 15-25% of your time working in a consolidated FileMaker application as you reduce the number of redundancies in your application and complexity passing variables and data between files. Keep in mind that separate files do make sense in some applications, though you must use your judgment as to what makes the most sense for your application. Happy FileMaking!

    ]]>
    <![CDATA[Upgrading FileMaker Pro, Part 1 - FileMaker Conversion]]> https://dbservices.com/blog/upgrading-filemaker-pro-part-1-filemaker-conversion https://dbservices.com/blog/upgrading-filemaker-pro-part-1-filemaker-conversion Wed, 06 Mar 2013 00:00:00 -0500 This is a two-part article tackling the challenge of converting and consolidating FileMaker Pro .fp3 and .fp5 file types to .fp7 and .fmp12. In part one, we cover the FileMaker conversion process. In part two, we cover the process of FileMaker File Consolidation. If you are already using FileMaker 12 or above, go on to part two.

    Between the two parts, we will guide you through converting and consolidating a multi-file .fp5 solution while maintaining the functionality of your previous solution. And of course, you’ll be gaining all the latest FileMaker feature enhancements. Once you complete the conversion and consolidation process, no layouts will be visible to the end-users, scripts will be hidden, and your menu will be custom-designed to clean up your interface and enhance the user experience (e.g. Report Menu). The end result will be a consolidated, clean, single .fmp12 solution from what was once a multi-file .fp3, .fp5, or .fp7 system. (Depending on your consolidation design, you may actually have a few files, but it will still be greatly improved.)

    Planning the FileMaker Upgrade

    1. Upgrade, convert, and consolidate files to the latest version of FileMaker

    2. Rebuild from scratch in the latest version of FileMaker

    3. Upgrade to the latest version of FileMaker as is

    4. Evaluate other technologies/solutions

    While everyone has different needs, of the four options, we most often recommend going with the first option. We suggest this route because it costs the least long-term, carries the least amount of risk, and provides the most benefits. However, converting FileMaker Pro from .fp3 or .fp5 format to .fmp12+ can be a complex task that poses challenging problems.

    Scheduling and Planning

    Making the jump from FileMaker 3, 4, 5, 5.5, or 6 to FileMaker 7, 8, 8.5, 9, 10, 11, or 12 involves proper planning. Depending on the complexity of your FileMaker .fp5 system, this can take anywhere from a few days to a few weeks, depending on the number of files, scripts, layouts, relationships, and value lists in your solution.

    Tools

    We highly recommend these tools to effectively convert your files:

    • FileMaker Developer 6 (no longer supported/sold, used to create DDR). The DDR is used to evaluate the solution.

    • New Millennium's MetadataMagic ($200-$700) to clean up file references, find errors in the .fp5 format, and generate a Conversion Issues Report to reference.

    • FileMaker Pro Advanced ($499)

    • Goya Base Elements ($499) or Beezwax Inspector ($495) to clean up solutions in .fp7 or .fmp12 format.

    Obviously, this can really add up money-wise. If you’d like help, fill out our FileMaker Project Request and we can work with you to get you the best possible solution.

    1. Preparing for Conversion to FileMaker .fp7 or .fmp12

    Before you start converting your files, you need to carefully map out your solution. Mapping involves knowing all your files in your current system, their primary relationships, and how you would like to arrange them in your new FileMaker system. This not only leads to better system architecture, but oftentimes, mapping out the files highlights files that are no longer used and can be eliminated.

    To understand the main components of any system and guide the solution, we always create an Entity Relationship Diagram (ERD). The ERD becomes the cornerstone of the development process. While the average user can usually skip this part, you must be sure to know your solution to ensure the application is properly designed.

    Next, you need to create a DDR in FileMaker 6 Developer. The DDR is a report of the entire system at the file level and helps determine whether to use the hub-and-spoke methodology or to rewrite the entire system. The DDR will be referenced throughout the conversion process. If you do not have FileMaker 6 Developer, this can be skipped, but be sure to know your solution so the application is properly designed.

    Passwords

    Ensure all your files have the same full-access password. FileMaker 6 and prior are not case sensitive, while FileMaker 7 and higher versions are case sensitive.

    Cleaning up your existing solution

    Run your existing solution through MetadataMagic’s Developer Software. MetadataMagic will do three key things for you:

    1. Consolidate File References - This is important because FileMaker 5, 5.5, and 6 assign a file reference a unique value each time a file is referenced in a script, relationship, or value list. In essence, here you’ll be consolidating each of these file references before converting. You'll save yourself many hours consolidating this way rather than consolidating manually in FileMaker 7+.

    2. Produce an Errors Report - We highly recommend you fix these errors before moving forward. Typical errors include Fields, layouts, relationships, value lists, and scripts.

    3. Produces a Conversion Issues Report - The report tells you the number of possible issues you need to address. This will be very useful once the solution is converted to the latest version of FileMaker. Save this report for future reference.

    TIP: If your solution is in production and you don't want to do this on a live copy, take the latest backup and do this work and the remainder of the conversion from the backup.

    Purging

    Right now is a good time to eliminate/purge items no longer used rather than carrying around the luggage throughout the conversion. Identifying the relationships to purge is a top priority as we like to rename the table occurrences to a single naming convention. We recommend you run the solution through MetadataMagic or BaseElements each time you purge items to ensure you didn't create any errors and identify new items to purge. In a worst case scenario, you can easily go to a backup. Do the purging before the renaming to reduce your workload. Make sure you get approval before purging layouts and scripts as sometimes they are used by developers only.

    TIP: When purging you should also look for items used in indirection, referencing an item by name instead of by the element's internal id before purging.

    Functions

    • DatabaseNames Evaluate( ) FieldBounds( ) FieldComments( ) FieldIDs( ) FieldRepetitions( ) FieldStyle( ) FieldType( ) GetField( ) GetNextSerialValue( ) LayoutObjectNames( ) RelationInfo( ) ValueListItems( ) Lookup( ) ExecuteSQL( ) Get ( LayoutName ) Get ( LayoutTableName )

    Script Steps

    • Set Field by Name[ ] Go to Layout[ ] (By Name option) Go to Related Record[ ] (By Name option)

    Read more about Indirection at Goyas' BaseElements, Unreferenced and Indirection.

    FileMaker Naming Conventions – Best Practices

    Ensuring unique names in all files for relationships, layouts, valuelists, and scripts before converting is absolutely essential to a smooth conversion that includes file consolidation. Do this now, not later. It will save you hours of time. For very large solutions, the easiest thing to do is add a prefix to all the relationships, scripts, value lists, and layouts based on file name.

    Read more about relationship naming in DB Services’ article, FileMaker Naming Conventions and Standards.

    Relationship Naming

    For relationships, we recommend using a standard convention such as adding a suffix to each relationship that has sorts and/or cascade create/delete rules (e.g. client__INVOICE__srt_cre_del).

    TIP: Expect to review all Go to Related steps in scripts or on layouts after conversion. These will be found in the Conversion Issues Report.

    Layout Naming

    Next, document all layouts visible to the user. This will help ensure you include navigation to the visible layouts either as part of the user interface or in custom menus.

    TIP: Generate a list of duplicate layout names and only rename/add prefixes to duplicate layout names.

    Script Naming

    A good practice here is to generate a list of duplicate scripts and only rename/add prefixes to the duplicate script names. Next, document all scripts visible to the user. This will help ensure that any scripts in the current Scripts menu are included either in layouts or menus. Be sure to review the Scripts that are visible to end-users.

    Tip: In the pre-FileMaker 7 days, each file was a single table. When you called a script in another file, FileMaker assumed you were now in the context of the file you just called. So, if you called an external file script and the first line was New Record Request, then in the consolidated file in .fp7 or .fmp12 format, you would be creating a new record based on where you are at and not in the external file in .fp5. For this same script to work appropriately in a consolidated file in .fp7 or .fmp12 format, you need to change the context of the script to have a Go To Layout to the appropriate context before the New Record Request.

    MetadataMagic's Conversion Issue Report provides a great starting point for all occurrences of scripts called externally. The external script must have a Go To Layout call present at the beginning of the script. Also, scripts that call an external script and return must have a Go to Original Layout after executing the external script.

    Value lists

    Again, ensure unique value list names in all files. A good practice is adding a prefix based on the file name/table to each value list. This will allow you to easily know what file the value list originated in the .fp5 format.

    Fields

    Update field names to a standard naming convention. We use lowerCamelCase, where key fields begin with an underscore, no spaces in field names, no non-SQL compatible field names, and all non user-editable fields and derived fields begin with 'z', etc.

    Best Practices

    • Ensure housekeeping fields exist

    • Creation/modification date and times

    • Creator and modifier names.

    • Ensure primary key fields exist, either UIDs or auto-increment fields

    • Ensure the fields are using the same naming convention.

    2. Converting To .fp7 (FileMaker 7, 8, 8.5, 9, 10, 11)

    Now that you’ve finished all of the steps above, it’s time to convert all files to FileMaker 7+. That said, we recommend you do the conversion in FileMaker 11 as early versions of FileMaker like version 7 handle file conversions differently and do not provide the copy and paste functions now available in FileMaker 8+.

    3. Converting To .fmp12 (FileMaker 12, 13, 14, 15, 16, 17, 18, 19+)

    Read the FileMaker's Knowledge-Based Article Converting older FileMaker Databases to the .fmp12 format. This article also includes FileMaker Trial Download Links that you will need to upgrade from the .fp5 format. Warning: It will be much easier to download and install the older versions on Windows vs Macs.

    Are you looking to consolidate the files? We commonly use the Hub and Spoke method, to consolidate the files to the largest file to serve as the single.FMP12 file. The largest file of solution is typically based on the number of scripts, layouts, relationships. This will save you a lot of time.

    Continue to Upgrading FileMaker Pro, Part 2 - File Consolidation.

    ]]>
    <![CDATA[FileMaker Naming Conventions and Standards]]> https://dbservices.com/blog/filemaker-naming-conventions-and-standards https://dbservices.com/blog/filemaker-naming-conventions-and-standards Fri, 18 Jan 2013 00:00:00 -0500 FileMaker Naming Conventions and Standards

    Having FileMaker Naming Conventions and Standards is especially important when working in a team environment. You will find applications easier to maintain and developer-friendly. The solution will be self-documented by the metadata of your development standard.

    The recommendations below are based on our naming conventions and standards from our years of experience and are the foundation of all of our solutions. What is really important, no matter what development naming convention and standards you choose, is that you be consistent throughout your FileMaker Pro application and document your naming conventions and development standards.

    This standard is by no means how you must develop your FileMaker Pro solutions. We continuously evolve our naming conventions over time as FileMaker introduces new features and capabilities. You are at your own discretion as how you build and develop your Filemaker application. We hope to provide you with valuable insight into how we develop consistency in our FileMaker Pro projects.

    1. Relationship Graph - Table Occurrence Naming Convention and Standards

    This is the most important naming convention for FileMaker Developers. Determining your standard for the relationship graph that focuses on readability is critical as FileMaker is context-driven. The goal should be that you never feel the need to print out the relationship graph. Many times developers create their FileMaker table occurrence names without a naming convention in the relationship graph. The FileMaker relationship graph provides great flexibility, the more rope the more you can hang yourself.

    The first thing we do is follow an anchor buoy naming convention that avoids relating base table occurrences to each other as you may create an inter-tangled web that is difficult to maintain when developing over time. Our methodology will NEVER connect one base table to another to ensure readability as the solution grows over time. We also always CAPITALIZE all table names. You will see why below.

    The anchor buoy methodology we use ensures each relationship is created from the context of the base table and the base tables are never connected to each other. The relationships connected to the base table begin with the prefix of the base table (ie contact__ORDERS__contactID__del_cre). The table occurrence is assigned to is designated in ALL CAPS (ie contact__ORDERS__contactID__del_cre) in the table occurrence name. The suffix includes any optional parameters being used in the relationship, cascade delete, ability to create related records via the relation, and sort if present in the relationship (ie contact__ORDERS__contactID__srt_del_cre).

    Many times relationships are only one relationship/table away, but as solutions become more complex and benefit from good relational design the relationships may go 3+ relations away, thus the anchor buoy methodology is used from the base table. This could be Contacts->Orders->Line Items. The syntax for 3 or more table occurrences is below.

    <starting-from-tablename-lowercase>__ <next-to-tablename>__ <DESTINATION_TO_TABLENAME>__ {<optional_descriptor>}_ {<del>_<cre>_<srt>}

    Terms in braces optional, based on perspective and usage. Example: contacts__orders__LINE_ITEMS__del_cre_srt

    Relationships back to the same table are documented as SELF relationships and the destination table name is called SELF <starting_from_tablename_lowercase>__SELF__<description_lower_case>> {_<del>_<cre>_<srt>}.

    The main purpose of this technique is to never connect one base table to another as this will relate all tables over time and create complexity when looking at related relationships with ongoing development and maintenance. The downside of this hybrid relationship convention is many times you create the same relationship in another base table to replicate the same functionality in different contexts, but the upside to us is lower long-term development costs with the simplicity of having good metadata in the table occurrence/relationship names.

    2. Field Naming Convention

    Lower Camel Case Naming Convention

    The use of lower Camel Case naming convention is our preferred method. This is the practice of writing compound words or phrases without the use of spaces and each word is capitalized. (eg. iMac, ). This convention helps maintain SQL compatibility, avoids the usage of spaces in field names, and keeps field lengths to a minimum character level.

    Keys

    All key fields begin with an underscore, followed by ' k' for key, then the type of field is designated (ie. __kpn and _kfn). Proper field naming will provide self-documentation, also known as metadata (data about the data), and be very resourceful as the field name itself contains information about the field to the team/developer when referencing.

    Starting the field name with an underscore also is a benefit when fields are sorted alphabetically (which they are by default in the relationship graph). The key fields appear at the top.

    NOTE: In .fp5 fields beginning with an underscore character sorted alphabetically would appear at the bottom, in .fp7 data is now sorted via UNICODE instead of ASCII in .fp5.

    Naming Key fields, types of keys (Metadata)

    __kpnID - primary key (should be in every table)
    _kfnOrderID - foreign key (one or more likely in many tables)
    _kctDescription - compound key (combination of fields)

    Derived Data (non-user-editable)- Calculations, Summary, Global Fields

    Naming derived data fields creates metadata on the field level. We always start derived data fields and non-record level data (globals) with the letter 'z'. This self documents the type of field and also sorts to the bottom of the list alphabetically by field name.

    The order of fields when sorted alphabetically will be key fields, user fields, and then derived fields and non-record level fields. ie (calculations, globals, summary). A great benefit of this naming convention is when working on the solution the field name provides metadata to the developer as to what type of field they are working with. A field starting with 'zct' means the field is a calculated text field, etc.

    1st Character of Non-User-Editable Fields

    z - All non-user-editable fields start with the letter "z" to ensure they sort to the bottom of the list of fields when sorted alphabetically. This is the first character of all non-user-editable fields. (we name the field zip code, postalCode or addrZipCode to avoid the common zip code field being in the list of z fields).

    2nd Character of Non-User-Editable Fields

    g - global field (used as a prefix for all global fields, data used for all records in the table) c,s - calculation, summary fields (used as a prefix for calculation or summary fields, ie zc, zs).

    3rd Character of Non-User-Editable Fields

    t, n, d, c, i, m - text, number, date, container, time, timestamp (used for NON-user-editable fields only currently, ie zgtMyGlobalTextField, zcnMyGlobalNumberField, zcdMyCalculatedDateField, etc).

    Examples of Naming NON-USER-Editable Fields

    zcnTotal zgtUserLogin zsTotalInvoices

    Housekeeping Fields

    Include in every table Creation date, times, timestamp's (at minimum include timestamp) Modification date, times, timestamp's (at minimum include timestamp) Creator/modifier names creationDate, creationTime, creationTStamp modDate, modTime, modTStamp creatorName, modName

    3. Layouts

    Context

    Your standard for relationships and table occurrence will drive the standard you chose with layout names and their table occurrences they are assigned to. We like to attach layouts to their base tables. This easily allows the understanding of the context of the layout to the developer. In addition, this allows for the organization of layouts based on the context of the table very easily.

    Layouts and the Separation Model

    In many cases, solutions are broken up into many files ranging from 2 to 6, in most cases when properly consolidating files. Depending on the development model and methodology the data being stored you may have a solution with an interface only file, a data only file, a business logic file, or separating files by their module like a file for photos, a file for calendaring, etc.

    This topic was added so you understand that you can separate the interface from the data files or choose to build the interface and data within the same file. We utilize separation on an as needed basis.

    4. Scripts

    Commenting Scripts

    Scripts need to be commented at all times. Each should begin with a PURPOSE: at the top then the details follow including when the script was last modified and by whom including the variables used and their purpose. Commenting your scripts is very important when working in a team environment. The more complex the more comments are needed. A sample of commenting we use is below.

    #PURPOSE: To show you a commented script example
    #2014-11-21, KH, created script
    #
    #Variables
    # $scriptParam - stores the script parameter, which is a list of parameters
    # $recID - primary key of the record finding
    #
    #Setting Variables
    Set Variable [$scriptParam ; Get(ScriptParameter)
    #
    # Finding Record
    ........(more stuff would be here but that's enough to understand)
    #
    # Terminating Script
    Go to Layout [original layout]
    Exit Script []
    

    Terminating Scripts - Exit Script [$scriptResult Optional]

    All scripts should include an Exit Script call at the end of the script

    1. When debugging scripts you ensure that you can see the last result of any script step. For example, if you set a field as the last step, this value is not easily seen as this is the last script step in debugging. By having an additional step of Exit Script, you will see the last result of the last action taken in the data viewer while debugging a script.

    2. In addition if you are returning a parameter that may hold one or more values this can be done in the Exit Script calculation. This provides the parent script the ability to return a Script Result value for usage.

    Navigation

    All navigation should be scripted and the use of Go to Layout on a button avoided. This provides many advantages, future navigation changes only need to take place in a single script vs changing many buttons on many layouts. In addition when referencing DDR's the layout will clearly be shown as being used which prevents accidentally deletion.

    Summary

    There are many different approaches to how you develop your FileMaker solutions. This guideline is an example of our guidelines to maintain a developer friendly solution in a team environment. Implementing naming convention and standards provides a foundation for team environments. We try to keep solutions simple enough to maintain and understand for all parties. We hope you find some of the techniques valuable for your FileMaker solution and most importantly understand the value of consistency in your FileMaker applications.

    You may also wish to read FileMaker's Development Conventions for more information and other methodologies.

    Enjoy!

    ]]>
    <![CDATA[FileMaker 12 Starter Solutions]]> https://dbservices.com/blog/filemaker-12-starter-solutions https://dbservices.com/blog/filemaker-12-starter-solutions Wed, 14 Nov 2012 00:00:00 -0500 If you are looking for a good-looking, functional out-of-the-box solution to begin a custom database system, you have to consider starting with a FileMaker Starter Solution. FileMaker 12, the latest version of the venerable database program, includes sixteen FileMaker Starter Solutions ("Templates") for you to quickly manage your data. All of the Starter Solutions include layouts (or "screens") for the Desktop, iPad, and iPhone. In addition, each of the Starter Solutions uses one of the brand new Themes, allowing you to give your custom FileMaker application a new look and feel as Themes are new to FileMaker 12.

    If one of the 16 Starter Solutions doesn't fit your 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.

    16 New Starter Solutions

    Note: If you don't already own FileMaker 12, you can download a free FileMaker Trial to give the Starter Solutions a try.

    Starter Solutions Quick Start screenWith FileMaker installed, to check out a Starter Solution, simply open FileMaker Pro 12 and the Quick Start Screen should pop up. In the lower left of the Quick Start Screen, select Use a Starter Solution. Another way to find the Starter Solutions is with FileMaker 12 already open, navigate to File > New From Starter Solution, which opens the Starter Solution window.

    Choose the solution you want to begin using and you are on your way to your own custom database.

    Designed for iOS

    FileMaker Go Starter SolutionsFileMaker Go Starter SolutionsBrand new to FileMaker Starter Solutions are newly designed layouts specifically for the Desktop, iPad, and iPhone. To the right are two samples of iPhone layouts from the Contacts Starter Solution.

    *Three of the Starter Solutions do not include iPhone layouts (Personal Records, Research Notes, and Time Billing).

    16 Starter Solutions Reviewed

    Before we dive in to the reviews, it's important to understand that the Starter Solutions ("templates") are designed to give you a running start, but you aren't locked in to the specific features of the template. All of the templates provided in FileMaker Pro 12 or FileMaker Pro Advanced 12 are free and unlocked, meaning the templates are editable, allowing you to customize the Starter Solutions specifically for your industry and domain. So, if something is missing from the application, you can add it. If something is not needed, then you can remove it from the Starter Solution. Editing the templates gives you the liberty to build the database solution of your dreams.

    Contacts

    This is one of our favorite Starter Solutions. Some of the out-of-the-box features include the ability to email a contact, launch a contact's website, view work and home addresses on Google Maps, import contacts, export contacts, and print labels. The Contacts Starter Solution also includes screens optimized to work with the iPhone and iPad. In FileMaker Go, you can add a picture directly from your iPhone. The Contacts Starter Solution also uses a great looking Theme, the River Theme, that has quickly become one of the most popular Themes for FileMaker 12.

    FileMaker 12 Starter Solutions - Contacts

    Invoices

    Another popular Starter Solution is the Invoice Starter Solution. (Prior to the Contacts Starter Solution, this our favorite Starter Solution in FileMaker 11.) FileMaker 12 debuts a new Invoice Starter Solution that has three modules: Customers, Products, and Invoices. Invoices lets you manage your customers, create & email invoices, create, import, and export products. This is quite a bit for a free out-of-the-box template. With all these features, you can get running with just a few modifications like adding your company logo and billing address to customize invoice printouts.

    FileMaker 12 Starter Solutions - Invoices

    Event Management

    Another feature-rich Starter Solution is the Event Management template. This comes with the ability to track much about an Event such as Tasks, Guests, Agenda, and Contributors. You can print guest badges, print task lists, print guest lists, print agendas, print contributor lists, and email agendas to guests. Also included is an Event Report that you can email, print, or send as a PDF. Last, but not least, there is a Contacts screen where you can track information about your contacts and see what events the person has been a contributor to. Overall, the Event Management is a very nice Starter Solution for those managing events.

    FileMaker 12 Starter Solutions - Event Management

    Assets

    This is designed to track office assets and the depreciation value of the assets. Features for the Assets Starter Solution include the ability to email an asset, import assets, export assets, print labels, run an Inventory report, and run an Asset Depreciation report. Includes screens optimized for the Desktop, iPad, and iPhone. In addition, you can capture a signature on an iOS device such as the iPhone or iPad and save images of your assets.

    FileMaker 12 Starter Solutions - Assets

    Content Management

    It's ready to collect and organize documents, music, images, and any file you wish to archive. The Content Management Starter Solution includes a relational Revision history module, a Content Browser pop-up window, importing content, exporting content, and the ability to view content by a drop down list. The Content Management uses the Glass > Onyx Theme by default.

    FileMaker 12 Starter Solutions - Content Management

    Estimates

    The Estimate Starter Solution is similar to the Invoice Starter Solution. This template has three modules: Customers, Products, and Estimates. You can manage your customers, create & email estimates, and create, import, and export Products. Once again, this template offers a lot for free right out-of-the-box.

    FileMaker 12 Starter Solutions - Estimates

    Our only wish is for the navigation to be built on the screen. Currently, you have to select the layout from the Status Toolbar to switch to other modules such as Products, Company Info, etc., which makes it a bit more difficult for new users. Overall, though, this is a very useful template.

    Expense Report

    In this template, you can track your expenses by line item and by mileage. Send your Expense Report by email or print it out directly and sign to turn in.

    FileMaker 12 Starter Solutions - Expense Reports

    Inventory

    The Inventory template stores your inventory/products in the database and records all your transactions to calculate the Units on Hand. You can also store your company information in this template for use when printing inventory reports. Easily import your existing inventory to get going quickly with this template.

    FileMaker 12 Starter Solutions - Inventory

    Meetings

    You can save related meetings, create a new meeting by simply duplicating an existing meeting, send a meeting report via email or print the report. The screenshot here is of the River theme, which I love and use in this and other templates.

    FileMaker 12 Starter Solutions - Meetings

    Personnel Records

    Document all your staff or contractors data in a single location with the Personnel Records template. In addition, you can record their time off requested in the Time Off tab. This template includes iPad layouts, but no iPhone layouts at this time.

    FileMaker 12 Starter Solutions - Personnel Records

    Product Catalog

    Save all your products along with a picture and associated documents in the Product Catalog template. You can email a catalog or single product spec sheet to others in a click of a button. Quickly import all your products to get up and running. The Content Management template uses the Glass > Onyx Theme by default.

    FileMaker 12 Starter Solutions - Product Catalog

    Projects

    Organize your Projects in detail, including the tasks and timelines. Projects allows you to view the completion percentage of a project based on the tasks and assign tasks to multiple people. The Project and the Task modules have their own data entry screens. In addition, you can filter projects and tasks individually as well as viewing all of them in the Project List screen. You can begin managing your projects and tasks with the Project Starter Solution.

    FileMaker 12 Starter Solutions - Projects

    Research Notes

    This template allows you to store notes and documents related to your research. It includes the ability to open a window that allows you to search through different search engines as well. You can easily change the theme as well to a different color style. One downside we find surprising is this template doesn't include iPhone layouts, but does include iPad layouts.

    FileMaker 12 Starter Solutions - Research Notes

    Resource Scheduling

    This solution is designed to manage resources for projects. In addition, you can create a schedule for people, equipment, materials, locations, and other items. This template also includes a Schedule Report that can be printed, emailed, or sent as a PDF. The Resource Scheduling template uses by default another popular theme in the Starter Solutions: Ocean.FileMaker 12 Starter Solutions - Resource Scheduling

    Tasks

    This is a pared-back version of the Projects Starter Solution, allowing you to create a task and assign multiple assignees. In addition, you can add an unlimited number of attachments to a task for reference—a feature not in the Project Starter Solution by default, but that can be added, of course.

    FileMaker 12 Starter Solutions - Tasks

    Time Billing

    Time Billing includes Customers, Time Billings (like Invoices), and Time Details modules. You can email a PDF, print out your time billings, and view all completed and pending billings for your customers in the system. Currently, Time Billing does not include iPhone layouts, but does include iPad layouts.

    FileMaker 12 Starter Solutions - Time Billing

    You can easily create iPhone layouts if you plan to use FileMaker Go to enter your time on your iPhone. Whether you track your time as a sole proprietor or as an organization, this is a great template for you.

    Conclusion

    It's great to see the revamp of the entire Starter Solution template set in FileMaker 12. Prior to the revamp, the Starter Solutions looked dated and that's (thankfully) no longer the case. With these templates, the average person, with the help of the new Themes, can create a pretty good-looking, usable interface and database solution.

    Further, all the Starter Solutions are now tailored to work great on iOS devices such as the iPad and iPhone using the now free FileMaker Go 12. The sixteen redesigned Starter Solutions continue to show that FileMaker's investment to stay on top as the easiest-to-use database solution on the market is paying off.

    ]]>
    <![CDATA[FileMaker 12 Managing Container Data]]> https://dbservices.com/blog/filemaker-12-managing-container-data https://dbservices.com/blog/filemaker-12-managing-container-data Tue, 10 Apr 2012 00:00:00 -0400 The new version of FileMaker 12 has greatly enhanced container field abilities in the FileMaker product lines. From images, pdfs, movies, to any file you want to store, all the files can now be easily stored in a directory outside of the database file, known as external storage. The focus of this article will primarily be on the new storage options and how they can be configured in the FileMaker 12 interface along with how the files are referenced on FileMaker Server 12. Let's unravel all the new container / file management options available.

    Managing File / Container Locations

    A new menu is now available, File > Manage > Containers, which pops open the window below, labeled Manage Containers. In Manage Containers, you have two options: 1) Storage Options, and 2) Thumbnail Options.

    Storage OptionsManaging Containers Storage pop up box - FileMaker 12

    Under Storage, you can list locations where you wish to externally store files. You have four directory paths you can specify:

    • Relative Path using a sub-folder of the database location

    • Full Path using the Volume

    • Full Path using the Drive Letter such as a mapped drive

    • Network Path (e.g. computerNameshareNamedirectoryName)

    When using a Relative Path, you must specify one or more subfolder names, I like to use the folder name files.

    Also, the New, Edit, and Delete buttons are disabled when the database is hosted on FileMaker Server. Thus, you can only edit the directories in Manage Containers when a file is in single user mode.

    Thumbnail Options - FileMaker 12Thumbnail Options

    You can now optimize the performance of streaming thumbnails over the network.

    The thumbnails are automatically generated and you have the option to store the thumbnails permanently, which uses both hard disk and RAM, or Temporary storage, which only uses RAM. Temporary storage is cleared when you close the database.

    Container Data Transfer Storage - FileMaker 12Transfer Data Button

    In the Manage Containers window you will see a Transfer Data button in the lower left. The Transfer Data button allows you to migrate your container data to your specified external directory. The Transfer Data button is greyed out above, but will become active once changes have been made at the field level to container fields that have not been transferred to their new location.

    The Transfer Data button is like a Synchronize button. When you set up your database to use external storage for the first time, you will need to move your container data. Or, if you have made changes to your container fields' external location, this is your button to Sync.

    The Transfer Data Button Functionality:

    • Requires Full Access to transfer data.

    • Allows data in container data to be transferred externally

    • Allows data externally stored to be transferred back into the container

    • Supports converting to Secure Storage and back to Open Storage

    • Allows moving data between base directories

    • Allows moving data when open storage calculation is changed

    • Does not transfer files that are stored by reference

    Basically, when you change a container field option you will need to Transfer the data to the new location and the button handles just about everything for you. Once completed, you will receive a Transfer Summary dialog and a Transfer.log file will be generated for you to review.

    Container Options - FileMaker 12Container Field Options

    At the container field level under Storage, a new option for Containers is now available. You can select to store the data externally, select where you wish to store the data based on the paths you have made available under Manage Containers, and select the type of storage. You have two types of container options available: 1) Secure storage, and; 2) Open Storage.

    Secure Storage

    Secure storage container data is encrypted on the external path specified and can only be unencrypted by FileMaker Pro. When testing, five randomly named subfolders are created and a random file name is created, encrypted, and placed in the last folder. If you're storing data that is sensitive, then Secure storage is the only way to store your data moving forward in FileMaker.

    Open Storage

    The Open storage option stores the file just as it was when you saved the file. To better organize your data, you are given additional options to define subfolders for each container field. You also have the calculation engine to your disposal to dynamically name subfolders for your container field data.

    Container Data Transfer

    When changing any of the container field level options, you will receive a prompt to transfer your container field data to the new location. Changing the folder or changing the type of storage will generate this prompt to transfer your container data. You can click cancel and later go to Manage Containers and click on the Transfer Data button as previous discussed.

    Duplicate File Names

    If you insert two files of the same name, the previously stored file will be overwritten. This is where utilizing container field options to automatically generate a unique subfolder using the primary key or UID will prevent files with the same name from being overwritten. Make sure to test saving files with the same file in different records and ensure the files are not overwritten.

    Insert File Dialog Options

    Data Options - FileMaker 12The new Insert File Dialog Options script step is loaded with 4 new features:

    • Filter file types

    • Storage Options

    • Display Settings

    • Compression

    All of these options are awesome and straight-forward so I will not go into much depth here, but the one that surprised me the most to see was compression.

    Compression

    Compression is only allowed if you have set Display Icon with filename. In addition, some file formats cannot be compressed further. The dialog mentions JPEG, MP3, but I have not seen a full list of file types omitted as some video may not be compressed further as well. The overarching point, though, is if you want to have things compressed and decompressed, you now have the option available.

    FileMaker Server Default Storage Locations

    The path of least resistance will be to set up external storage on FileMaker Server using a relative path sub folder in Manage Containers. When you have your database hosted on FileMaker Server and use the relative path folder option, the data is stored in a subfolder of the actual database location. The FileMaker Server then stores your container data natively in the following subfolders from the location of the database:

    Your Database File.fmp12 -> RC_Data_FMS -> Your Database File Name -> Manage Container Sub Folder(s) -> Field Level, Open Storage Sub Folder(s) or Secure Storage Sub Folders.

    If a field is selected to use Secure storage, then a subfolder “Secure” is created and sub folders are auto generated when the data is stored.

    Other folders may appear including RC_Cache_FMS and RC_StreamingCache_FMS.

    Note: You cannot store files outside the FileMaker Server folder such as an external drive. You will need to use a third party product such as 360Works Supercontainer.

    Backups

    Progressive Backups - FileMaker 12When backing up your FileMaker databases using FileMaker Server, any relative path container data will be included in the backup. This could lead to longer backup times if you are storing lots of files or large amounts of data. FileMaker 12 now has a new feature in FileMaker Server called Progressive Backups, which are essentially incremental backups. The first time you Enable Progressive backups, a full backup will occur so beware if you have large amounts of data. Progressive backups are ideal for those who have large FileMaker databases and for those who store lots of files in FileMaker via containers.

    Conclusion

    Overall, FileMaker 12 is loaded with tons of new container features. Previously, you had to use third party plugins for these functions, but with the new container features, we can all now embrace natively the features in FileMaker Pro, Server, and Go. Abilities such as external data storage, encrypting data via Secure Storage, controlling file type filtering via the Insert File dialog, and Progressive Backups that allow lightning-fast backups are just some of the awesome new features!

    Finally, the ability to change a container field's external storage location and have the data automatically transfer is a huge time-saver for setting up external storage and managing your container data. We really think you will like the new external storage options, the flexibility now available natively, and the enjoyable user experience of containers in FileMaker 12 and beyond.

    ]]>
    <![CDATA[FileMaker 12 Whats New]]> https://dbservices.com/blog/filemaker-12-whats-new https://dbservices.com/blog/filemaker-12-whats-new Wed, 04 Apr 2012 00:00:00 -0400 The new version of FileMaker 12 is here! Before we dive into all the features, note that version 12 is a file format change from fp7 to fmp12. This means it is not backward compatible. Below we will look at the FileMaker 12 product lines: FileMaker Pro 12, FileMaker Go 12, and FileMaker Server 12.

    Overview

    FileMaker 12 Advanced logoPerhaps the biggest news with the release of FileMaker 12 product line is it starts over with a new layout engine with Themes based on CSS3. This is good news as CSS3 allows the interface to be more modern and web-like in nature.

    CSS3 allows for some really cool features like rounded corners, gradients, and hover over. Though you are limited to roll those features out to other layouts in an efficient manner. It's still the same one-layout-at-a-time technique as in prior versions of FileMaker. FileMaker 12 doesn't allow editing CSS3 code directly‚ you need to use the Inspector to visual edit the theme one layout at a time. Overall, themes and the new layout engine are very exciting improvements and will definitely provide more powerful theme/layout features in coming releases.

    A huge improvement in FileMaker 12 has to do with containers. Now, container fields progressively stream your data (images, movies, pdfs, etc,), thus allowing you to navigate away like when loading a web page in a browser. (In layman's terms: No more waiting for a whole file to download before taking action!) This improvement provides web-like performance and huge gains in usability, a definite win for developers and users alike.

    There are many more technical and usability improvements that extend the previously-laid groundwork of the powerful, easy-to-use, rapid development solution you get with FileMaker. Below, you will find in-depth details on FileMaker Pro 12, FileMaker Go 12, and FileMaker Server 12!

    FileMaker Pro 12

    Beyond the addition of CSS3 and streaming containers covered in the Overview, FileMaker Pro 12 has many new features to enhance usability. Let's start with file conversion.

    FileMaker 12 Conversion In order to use FileMaker 12, you will need to convert your existing database(s) to utilize the new file extension fmp12. The good news here is, unlike the switch from fp5 to fp7, upgrading to fmp12 is a smooth transition for large systems. When converting your database(s), if you have a lot of data it may take some time as all the fields will be re-indexed to enjoy the newly supported Unicode 5.2.

    Windows Options When you make a new window you can now control the window options. In the New Window script step, under Specify Advanced Style Options you can specify if the window is a Standard Window, Floating Window, or a Modal Window. You can turn off the Close, Minimize, Maximize, Zoom Control Area, and Resize controls if desired. Though they are grayed out, you can still see the Close, Minimize, and Maximize.

    New Charts FileMaker continues to expand the types of charts available while increasing the ease of creating charts. You can modify charts using the new Chart inspector. New charts available in FileMaker 12 include positive/negative column, scatter, bubble, stacked column, and stacked bar, bringing the total to 10 types of charts.

    Starter Solutions FileMaker 12 comes with 16 new Starter Solutions that take advantage of the new Layout Themes in the product. The templates are more modern and provide layouts for the Desktop, iPad, and iPhone. I do not expect templates for the iPad 3 in this release of FileMaker due to the doubling of the iPad's screen resolution to 2048 x 1536, though the prior resolutions will upscale fine on the new iPad. Overall, I expect new and existing users to really enjoy using the 16 provided Starter Solutions.

    If you are looking for a pre-built CRM solution, check out our own template we custom built, FM Quickstart. It is a free download and has been optimized to run on the latest version of FileMaker.

    Layout Themes FileMaker 12 comes with 40 new designed themes out of the box. The FileMaker layout engine has been rebuilt and now uses CSS3. This change to CSS3 means you can now add gradients, rounded corners to fields, field highlighting and more. With the new layout engine, I expect to see more web-like abilities in the foreseeable future. When you upgrade, your theme will be set to Classic. The underlying CSS3 is not customizable to developers, so for now we will have to use the GUI to access the available CSS3 features.

    Streaming Containers (binary files) We are very excited about the improved usability and capabilities of containers. You can now drag n drop files into containers. You can now progressively load FileMaker container data (images, movies, pdfs, etc) and navigate away like a web page. In addition, container data can be stored outside of the database, you can have external storage. One step further, you can store your data on the FileMaker server using external storage and have the files encrypted as well. Pretty nice set of new features. Learn more in article that goes into more depth, FileMaker 12 : Managing Container Data.

    FileMaker Go 12

    Now FileMaker Go 12 for iPad and iPhone apps are available free on the App Store. Previously they were $40 for the iPad and $10 for the iPhone. This will definitely make you build an app for your iPad using FileMaker Pro. You will need to upgrade to FileMaker Go 12 to be compatible with FileMaker 12 and the fmp12 file format.

    Multi-Tasking FileMaker Go 12 now requires iOS 4.3, which takes advantage of multi-tasking. Multi-tasking means Go, when put in a suspended state, will continue to run a script once reopened.

    Location A new Location function allows you to use GPS, Cell or WiFi connections to determine your location. The more pinpointed location accuracy you want, the longer time it may take to resolve.

    Additional Features of FileMaker Go 12

    • The fmreauthenticate extended privilege replaces fmrestorelogin and now comes with a default grace period of 10 minutes. Just add a numerical value to the end of the privilege set name to set the authenticate time in minutes.

    • FileMaker Pro also now has a new function Get (Persistent ID) that returns the unique identifier of the computer or device, which is the MD5 hash value of the Mac address of the device.

    FileMaker Server

    I'm really excited about FileMaker Server 12. Finally, we have the database engine and web publishing engine 64-bit compatible! You can now also have up to 1 Terabyte of cache dedicated to FileMaker Server 12 by allocating up to 50% of the machine's RAM to the cache. Nice upgrades all around here, plus more listed below.

    64-Bit Compatibility The Server is now 64-bit compatible and allows you to load up on memory to improve performance, which is very welcomed for larger systems. In addition, the FileMaker Server components have been separated individually to improve stability (database server, web publishing engine, FileMaker script engine, and XDBC listener).

    Progressive Backups Server now supports incremental backups called Progressive Backups. If you have a large database, this will greatly reduce the time to back up your data and the disk space needed. To turn on Progressive Backups, mark the checkbox located in the FileMaker Server Admin console >> Database Server >> Folders. When you check the box and save the setting, FileMaker Server initially creates a full backup of all hosted files so beware. You can set up the interval to be anything from every 1 minute up to 99 minutes. Thereafter, only changes from the hosted file are put in the progressive backup timestamp folders.

    Improved Web Publishing The FileMaker Web Publishing engine has been improved and is faster, allowing for more connections. The maximum number of concurrent connections for Custom Web Publishing (CWP) has been increased from 100 to 200. However, you are required to have FileMaker Server Advanced to take advantage of the increase from 100 to 200 connections.

    Faster Wide Area Network Over the Wide Area Network (WAN), FileMaker is now faster. The network connections were improved to take less trips across the network and more tasks have been optimized for server processing.

    Additional Features of FileMaker Server 12

    • The FileMaker Server Deployment Wizard now shows you the activities that take place during deployment, along with the path to the log file.

    • You can now filter the Server Log by keyword and export the log.

    • You can also specify to host up to 2 Additional Database Folders instead of one.

    • You can download a hosted database file, though you have to close it first.

    • You can specify separate client limits for Custom Web Publishing and Instant Web Publishing clients in the console.

    • FileMaker Server Auto Update has been removed from FileMaker Pro and FileMaker Server. Plug-ins should now be stored in your solution and plug-ins installed from container fields.

    Conclusion

    The new FileMaker 12 product line lays the foundation with a new layout engine based on CSS3. The interface is becoming modern and web-like. I expect to see more improvements defining custom themes in future releases. The improvements to containers provide web-like performance and huge gains in usability for users of containers.

    One thing we were hoping for was the ability to create custom themes and apply the custom theme to a layout. In addition, we were hoping to be able to edit the underlying CSS3 to further customize the theme. Both features we will continue to hope and wait for.

    After 2 years, we are excited to see FileMaker 12 released and look forward to future capabilities that will come from this major release and new file format.

    ]]>
    <![CDATA[Working on a Live FileMaker System]]> https://dbservices.com/blog/working-on-a-live-filemaker-system https://dbservices.com/blog/working-on-a-live-filemaker-system Tue, 13 Mar 2012 00:00:00 -0400 One of FileMaker's strengths is how you can update a live system immediately. Utilizing this strength, however, requires knowledge of what you can do safely and what you need to be more cautious about while working on a live FileMaker database system.

    There are three areas to beware of when working on a live system:

    • Table locking

    • Users don't get new table occurrences (TOs)

    • Throwing users on default tabs when saving schema/layouts

    Table Locking

    FileMaker Table Locked Error Message screenshotIn FileMaker, table locking means that users cannot create records in a table. Even if you have the table locked, users will still be able to edit and delete existing records to their hearts' content.

    The following scenarios will lock tables:

    • Opening up Field Options on any field locks that table and it will remain locked until the Manage Database dialog is dismissed

    • Adding, deleting, duplicating or renaming a field locks that table until Manage Database is dismissed

    Other scenarios to keep in mind:

    • Modifying (aka adding, editing or deleting) a table, TO or relationship does not lock tables. Only modifying fields locks a table.

    • Modifying a calculation or summary field requires all records in the table to be unlocked to save Manage Database. This becomes a source of extreme pain the more users there are drumming away on a single table.

    Of the 3 "gotchas" in working with a live system, table locking is the most disruptive. But, as long as you understand FileMaker's behavior in all scenarios, you'll be fine.

    Tip: A table will only be locked if there's an on-creation auto-enter serial number in the table. You may consider using a universally unique identifier (UUID) via an auto-enter calculation field to avoid table locking.

    New TOs

    It's our experience that, of any changes made in a live system, the one most likely to fail to reach connected users is making new TOs. New fields, new scripts, new layouts, new value lists: Not a problem. New TOs? Usually a problem.

    To guarantee that new TOs reach connected users, have everyone affected restart the FileMaker database.

    Default Tabs

    This "gotcha" is the least problematic from a will-the-application-run-correctly? standpoint, but it's arguably the most agitating from a user's perspective. Anytime schema or a layout is saved, any users currently on that layout will be thrown to the layout's default tabs (technically, that layout's control panels' default tabs). A bit jarring, just try to avoid making changes every 2 minutes.

    The following scenarios will throw users on default tabs:

    • Saving Schema (e.g. Manage Database, Privilege Sets) throws all users on the default tabs on all layouts, as long as you made some sort of change to the schema (i.e. FileMaker had something to save). Keep in mind that FileMaker thinks you made a change the moment you go into Field Options.

    • Saving a layout throws all users on that layout's default tab

    While working on a live system is generally advised against, the reality is that many times as a developer, you'll have no choice. Even then, updating a live system is more often than not the quickest and most effective way to get things done. Understanding how to safely update live systems will not only make you a better developer, it'll make the FileMaking experience more enjoyable for your users, too.

    ]]>
    <![CDATA[BaseElements FileMaker Plugin Sponsorship]]> https://dbservices.com/blog/baseelements-filemaker-plugin-sponsorship https://dbservices.com/blog/baseelements-filemaker-plugin-sponsorship Thu, 05 Jan 2012 00:00:00 -0500 FileMaker folder icon and plug-in iconIf you use plug-ins to extend FileMaker, you have to check out the BaseElements plug-in! We like the BaseElements plug-in so much, we sponsored two new functions that allow you to use HTTP Post for FileMaker Web Service Integrations.

    The BaseElements plug-in is free, open-source, and is a terrific option when looking to extend FileMaker via a plug-in. Along with the new HTTP Post functions, the latest version (1.3 as of 1/3/2012) includes lots of new functions and is quickly becoming the Swiss Army knife of FileMaker plug-ins.

    The BaseElements plug-in now includes the ability to use HTTP Post which allows you to extend FileMaker to Web Service APIs. Push and pull data from FileMaker to a web service. This allows you to do credit card processing, sales tax lookups, integration with shipping companies (UPS, USPS, or FedEx), or with Web Services like Amazon, Google Apps, and others.

    If you're not sure whether you can integrate with a specific site, contact us to learn whether you can integrate your FileMaker solution with a web service using the BaseElements plug-in.

    New Features Sponsored by DB Services

    • BE_HTTPPost – This allows you to send data to URLs via POST. For example, you can hand-code a XML SOAP envelope and send it to a web service server. The plugin supports both HTTP and HTTPS.

    • BE_HTTP_Set_Header – Used in combination with HTTP Post, this function allows you to set headers for the Post action. Custom headers are commonly needed for web service or payment processing integration.

    We hope the FileMaker community enjoys these functions and encourage others to sponsor future functions. To find out how to sponsor future functions, visit the BaseElements plug-in Current Sponsorships and Donations page. There you will find a list of functions that need sponsoring or you can suggest a killer new feature that you would like to sponsor.

    NOTE: FileMaker released support for HTTP Post in the Insert from URL script step in FileMaker 13.

    ]]>
    <![CDATA[FileMaker and Lion Compatibility]]> https://dbservices.com/blog/filemaker-and-lion-compatibility https://dbservices.com/blog/filemaker-and-lion-compatibility Thu, 17 Nov 2011 12:03:00 -0500 Image of Mac OS X Lion boxesIf you are upgrading your FileMaker database solution or are upgrading to Lion (Mac OS X 10.7), make sure you are ready. The big reason for readiness is that the latest version of Mac OS X doesn't provide support for Rosetta. In short, Rosetta is software that was released in 2006 with Mac OS X 10.4.4 that allowed older PowerPC software to run on the newer Intel processor systems.

    Not providing support for Rosetta in Lion has caused minor and complete roadblocks to upgrading to Lion for older versions of FileMaker users.

    How this might affect you is if you're using FileMaker 6 or prior and upgrade your Mac to Lion, your FileMaker 6 solution won't work. (You would need Rosetta to run FileMaker 6 or prior.) To get your FileMaker system up and running again, it is necessary for you to upgrade your database files to the .fp7 format and use FileMaker 11 software. Upgrading from FileMaker 6 or prior involves converting the files from fp5 to fp7 which, depending on the number of files and complexity, can be a minor or major project. For more information about converting .fp5 to .fp7 and the FileMaker Conversion process.

    There are also a number of issues related to FileMaker versions 7-11. For instance, if you're using FileMaker to export files to the .xls format, then you will need to change your exports to use the new .xlsx format. The reason is that Excel 2007 and prior uses the .xls format, which requires Rosetta. This will impact FileMaker 7 - 11 users. I expect that FileMaker will eventually drop support for exporting .xls in future versions to avoid this headache.

    Currently, it does not appear that FileMaker plans to address any of the issues with Lion regarding FileMaker 10 compatibility and prior product lines. As such, we highly recommend everyone move to the latest version of FileMaker (currently FileMaker 11) to ensure Lion and future Mac OS compatibility.

    If have any questions or want to discuss your FileMaker system and the risks and rewards of upgrading to Lion, please contact us to discuss upgrading.

    ]]>
    <![CDATA[New FileMaker TechNet is Now Free]]> https://dbservices.com/blog/new-filemaker-technet-is-now-free https://dbservices.com/blog/new-filemaker-technet-is-now-free Thu, 17 Nov 2011 12:02:00 -0500 Filemaker Technical NetworkThe one-time $99/year FileMaker Technical Network membership is now free for everyone. The new FileMaker TechNet includes:

    • Technical Documentation

    • Webinars

    • Sales Tools

    • Developer News

    • Technical Resource Library

    • Developer Discussion Forum

    TechNet has also been totally revamped to include many more social networking features.

    Along with making TechNet available for free, FileMaker announced there will be a new fee-based FileMaker Developer Subscription for $99/year. The new FileMaker Developer Subscription (FDS) includes:

    • Pre-release FileMaker software (when available)

    • FileMaker Training Series (FTS) software download

    • FileMaker Server Advanced Development License (limit to 5 users)

    • All FileMaker TechNet features above

    The new TechNet is great for both new and long-time FileMaker Developers. We are happy to see TechNet become available to the community for free.

    If you haven't already, go check out FileMaker TechNet and sign up!

    ]]>
    <![CDATA[FileMaker Annual Volume Licensing (AVLA)]]> https://dbservices.com/blog/filemaker-annual-volume-licensing-avla https://dbservices.com/blog/filemaker-annual-volume-licensing-avla Thu, 17 Nov 2011 12:01:00 -0500 We find ourselves frequently recommending Annual Volume Licensing (AVLA) and Annual Site Licensing (ASLA) to our customers. Volume licensing is for those who have 5 or more FileMaker licenses or FileMaker Server.

    The benefits of AVLA include:

    • filemaker avla licensingLow cost of entry – Annual Volume Licensing is roughly 1/3 the cost of the software at retail prices. This naturally translates into huge savings when you initially purchase FileMaker software for your organization.

    • Latest version at all times – With Annual Volume Licensing, you always have the rights to the latest version of FileMaker. This means you're going to be compatible with the latest operating systems and have all the latest tools available to you that come with the new versions. (We like having the latest tools available too!)

    • Budgetary Planning – Knowing what software will cost allows you to plan ahead by including the cost of the software in your IT budget. This eliminates the need to go to your director for approval for a one-time expense.

    If FileMaker is used to manage your systems and it's considered a critical part of your organization, then Annual Volume Licensing is the right program for you.

    ]]>
    <![CDATA[FileMaker 9 Support to End]]> https://dbservices.com/blog/filemaker-9-support-to-end https://dbservices.com/blog/filemaker-9-support-to-end Tue, 15 Nov 2011 00:00:00 -0500

    ]]>
    <![CDATA[FileMaker Go 1.2 Enterprise Ready?]]> https://dbservices.com/blog/filemaker-go-1-2-enterprise-ready https://dbservices.com/blog/filemaker-go-1-2-enterprise-ready Wed, 27 Apr 2011 00:00:00 -0400 Is FileMaker Go 1.2 ready as an Enterprise-level solution? After this release, we at DB Services are believers.

    The latest FileMaker Go release has many new features

    1) Create a PDF
    2) Capture signatures
    3) AirPrint wireless printing
    4) Charting

    With the release of FileMaker Go 1.2, PDF creation works just like FileMaker Pro, making an accurately rendered PDF you can easily send via email, save, or print via AirPrint. Before the FileMaker Go 1.2 release, printing to PDF was available, but wasn't quite ready to be used in a production environment.

    Next, the signature capture feature allows you to have someone sign their name right on-screen, save it as a PNG, and easily port it around where you need a signature. This opens the door to many powerful database solution possibilities as you conduct business out in the field.

    Beyond signature capturing and creating PDFs, two more important new features are FileMaker Go's ability to create charts (bar, line, area, pie) and printing capability via AirPrint compatible printers.

    Finally, the ability to send a message when record locking occurs and the ability to open a hidden file via network path are key real-world usability improvements.

    All of what I've listed here make FileMaker Go ready for prime time as an Enterprise-level solution. I'm looking forward to pairing FileMaker Go 1.2 with iPads and iPhones to create powerful on-the-go environments!

    Note: FileMaker Go 1.2 requires iOS 4.2.1

    ]]>
    <![CDATA[FileMaker 11 Whats New]]> https://dbservices.com/blog/filemaker-11-whats-new https://dbservices.com/blog/filemaker-11-whats-new Fri, 12 Mar 2010 00:00:00 -0500 QuickFind

    The new QuickFind tool located in the upper right of the status toolbar provides users the ability to search the existing fields on the screen just like a Search Engine. Of course Find Mode is still in the product, though QuickFind is more intuitive to the masses and will help new users find their data.

    FileMaker Charts

    No longer do you have to look for a plugin or a creative way to add charts to your solution. Now FileMaker has added Line, Horizontal Bar, Pie, Area, and Vertical Bar charts natively to your application. Use the found set of records or the calculation engine to produce your charts.

    Layout Management

    Now we all can better organize our layouts just as we could with scripts. You can now create a layout folder and place your layouts in folders to better organize your system. When you have hundreds of layouts this is a very welcomed feature.

    Inspector Palette

    The new Inspector Palette is the biggest change to FileMaker 11 if you're a developer. The new Inspector Palette is now a floating dock with 3 tabs, Position, Appearance, and Data. What was once a small Object Info palette is now the Inspector Palette. This is now how you update all the properties of an Object.

    Import Custom Functions

    Yes, you can! You can now import or copy and paste your favorite custom functions from one FileMaker database to another. Though I welcome the ability to do the same with Value Lists. Maybe Value List importing will be available in FileMaker 12.

    Windows 7

    Yes, this version is fully compatible with Windows 7. FileMaker 10 while in Scripts could lead to crashes, this is now fixed.

    FileMaker Server

    FileMaker Server is now compatible with 64-bit Operating Systems. Though the software is still 32-bit, FileMaker Server is fully supported on a 64-bit OS by FileMaker.

    FileMaker Server now includes the ability to restart the Admin Console without restarting the server. This is a welcomed addition.

    Overall this version is a welcomed upgrade, providing new tools and an updated interface.

    ]]>
    <![CDATA[FileMaker UI Design for Beginners]]> https://dbservices.com/blog/filemaker-ui-design-for-beginners https://dbservices.com/blog/filemaker-ui-design-for-beginners Fri, 30 Oct 2009 00:00:00 -0400 Thanks to FileMaker's WYSIWYG editor, it's easy to get a lot of great design practice without a lot of time invested in learning a program. For the beginning designer, though, knowing where to start when designing a FileMaker user interface (UI) can be daunting. Or maybe not, but still, designing a new UI can be a complicated mess that leaves you wondering where to start... or finish.

    To help give a framework for how to think about UI design, it helps to break it into two broad, but distinct and equal chunks:

    1) Visual Design - This is the static, visual parts of the interface. Examples include layout, grid, legibility, readability, color palette, alignment, visual hierarchy, icons, aesthetics, and so on. A good, clean visual design helps users easily navigate between fields and pages.

    2) Interactive Design / Usability - Usability includes everything from the relatively simple design problems like feedback (e.g. What alerts a user that they have, say, clicked a button? A visual cue? A click noise?) to easy navigability, all the way to how a database is organized into sensible, intuitive chunks that help guide a user through the different parts of the database.

    Some of you might be wondering whether interactive design is the same as interaction design. Although the two terms are so closely related as to be nearly indistinguishable, they are different. For our purposes, Interaction design refers more to the user in relation to the greater business and how the system will support that process. Interactivity looks more at the software program outwards towards the user. I digress.

    Either way, breaking up UI design into these two chunks can help to slow your head down or route around difficult problems as they arise. You can also use it as a framework to discuss yours or anyone else's UI work. Look at the designs and ask yourself what's working visually and/or interactively. Write it down. Or don't. Doesn't matter, just think about all the little pieces branching out from the two different chunks of graphic design and interactive design. Look at your own work and ask yourself why a piece of information is in one area and not grouped with another? Test how many clicks it takes you to get between the two deepest areas of your database. Is it reasonable? Give your interface to the client or a friend and have them try it out. Is it easy to use? Does the system make sense?

    What you're ultimately looking for is a clean, easy-to-use system that gets out of the way of the user and lets them do their job. Separating the areas of interface design into two discrete parts can help give the beginning designer a framework for thinking about how to tackle the complexity of a new UI.

    A great resource for best practices regarding usability can be found in Jakob Nielsen's articles on heuristics.

    ]]>
    <![CDATA[Saving and Restoring FileMaker Found Sets]]> https://dbservices.com/blog/saving-and-restoring-filemaker-found-sets https://dbservices.com/blog/saving-and-restoring-filemaker-found-sets Wed, 02 Sep 2009 00:00:00 -0400 An Upgrade: Record Looping to Recursive Function

    The rate-limiting step of saving and restoring a found set using record looping is—you guessed it—the looping through each record! For whatever reasons, Filemaker performs exceptionally faster when running calculations than it does running certain script steps, especially when navigating from record to record. Thus to side-step the record-to-record navigation when saving a found set, you'd need to find a way to grab a list of all the records' primary keys in a calculation without navigating record-to-record. One approach is to use a recursive custom function that loops through all the records in the found set, calling itself over and over until it has compiled a list of all primary keys.

    In our case, the keystone of the recursive custom function is the built-in Filemaker function GetNthRecord(). This function returns the contents of the field you specify of the record in the current found set that you specify. So if the second Invoice record in the current found set contains the value 5.77' in the field 'Total', GetNthRecord(Invoice::Total, 2) returns 5.77. You can see that if you know the total number of records in the found set, via the Filemaker function Get(FoundCount), then you can build a recursive custom function, one that would accept four parameters:

    1. The name of the field you want to grab information from.

    2. The current iteration (which, when you first call the function, will be 1).

    3. The last iteration (this is the found set count).

    4. The current list of primary keys (you will pass empty, "", as the initial value, since you have no list at the beginning).

    You can even pass the field name dynamically via Filemaker 10's new function GetFieldName.

    Restoring the found set is the same as before: use a multi-line key relationship, where the list of primary keys is stored in a global field.

    It's All in the Details

    Of course, this method, like the previous one, will return the user to the first record in the found set, instead of to the record she/he was viewing before the find. To return to the pre-find record, you would have to store the record's primary key in a variable and then use record looping after the found set has been restored to navigate to the right record. Thus you end up stuck in the same dilemma as before, as the found set of records to loop through could be quite substantial. Even if looping through records were lightning fast, you have one other problem to contend with: the restored found set may not have the same sort order as the original. Filemaker pretty much sucks when it comes to saving and restoring sort orders, so you don't really have any room to maneuver here. Fortunately there is one other method of saving and restoring found sets that does restore sort order.

    The Best: Use Different TOs

    Not only does using different table occurrences to save and restore found sets maximize speed, but it maximizes usability. Here's how it works:

    1. Create a new TO tied to the same table as the TO of the found set you want to save. Name this TO someTableName_foundset.

    2. Create a new layout based on the someTableName_foundset TO, and name it someLayoutName_foundset.

    3. In your script, before the find, perform a Go To Related Record script step based on the find TO that navigates to the someLayoutName_foundset layout. Ensure only to show related records and match the current record only.

    4. Return to the find layout by adding a Go To Layout step after the Go To Related Record step.

    5. After the find, in whatever conditional section you have for trapping a found set of zero, perform a Go To Layout script step that navigates to the someLayoutName_foundset layout.

    6. Once on the someLayoutName_foundset layout, perform a Go To Related Record step based on the someTableName_foundset TO that navigates back to the find layout.

    Viola. Not only is the pre-find found set restored, but also the user is on the record she/he was on prior to the find and the sort order is maintained. This method really has only one user interface faux pas: the front tabs of all the tab controls reset to their default values when returning to the pre-find layout. That's another topic for another day.

    What the heck just happened?

    You're probably wondering why using two different table occurrences tied to the same table enables you to seamlessly save and restore found sets. The short answer is that Filemaker saves found sets based on TOs, not on tables. Each layout is tied to a TO, not to a table. Layouts are the primary user interface in Filemaker, and as such, are used as the foundation upon which to store interface information, such as that of found sets and front tabs.

    The most unintuitive part of using two different TOs is the Go To Related Record steps, both when saving and when restoring. It's not entirely obvious why the step even works in the first place, since your two TOs are not tied to each other via a relationship. Somehow, behind the scenes, Filemaker assumes that each record is related to all others in the found set by virtue of being in the same table. We aren't exactly sure why this works, and although we'd like to know for curiosity's sake, we're happy enough that we have a very fast and reliable way to save and restore found sets.

    It All Comes Down to User Experience

    Restoring the found set for a user is nothing more than meeting the user's expectations. Who would ever want to be thrown out of context (i.e. in a found set of zero) after selecting a report to run? I sure wouldn't. I want to be in the exact same situation as I was before selecting that report. I don't want to waste 5 seconds bewildered at why the screen looks essentially blank with no record data. And expecting this behavior is even worse. We strive to build solutions that work the way the user does, not the other way around.

    The ultimate solution to the save, restore found set problem would be one in which Filemaker builds a new script step, something akin to Go to Layout (Original Layout), like a Restore Original Found Set. Or even a duo package where you save a TO's found set and then restore that TO's found set, just like we're doing now. Regardless, Filemaker really should have a way to save and restore TO found sets on the script level, and it shouldn't have to require opening a new window.

    Of the three methods of saving and restoring found sets in Filemaker, the one that outshines the others by far is using a different TO based on the same table as the TO you want to save the found set of. Looping through records is way too slow for any moderately-sized system, and using a recursive custom function—while fast—doesn't return the user to the record he/she was on, and the found set may not be in the original sort order. For the best user experience, maximum speed and quick implementation, using a different TO to save and restore a found set is the way to go.

    ]]>
    <![CDATA[Using FileMaker Table, Layout IDs in Scripts and Calculations]]> https://dbservices.com/blog/using-filemaker-table-layout-ids-in-scripts-and-calculations https://dbservices.com/blog/using-filemaker-table-layout-ids-in-scripts-and-calculations Wed, 02 Sep 2009 00:00:00 -0400 We've all been there: You're going through an existing FileMaker solution, updating data infrastructure to align with the current project's goals and you realize you can't change the 'Service' table occurrence name to 'Order' because you've statically referenced the 'Service' table occurrence name in various scripts and calculations using the built-in FileMaker function Get(LayoutTableName). "Oh well," you say, "I can still change these Service layout names!" Except that you've also statically referenced the layout names with another FileMaker function, Get(LayoutName). Fortunately for you, there's a reliable way to reroute these references:

    1. Run an HTML Database Design Report (DDR, for short) of the current solution in a copy of FileMaker Pro Advanced.

    2. Open up the resulting HTML file in a browser of your choice.

    3. Use the browser's find function to isolate all instances of the word—in your case, 'Service'—and change these instances to use 'Order' if they're the partner-in-crime of a Get(LayoutTableName) or Get(LayoutName) statement (e.g. "Get(LayoutTableName) = "Service"").

    Unfortunately for you, this takes time and could result in transcription errors. There's gotta be a better way, right?

    No, there isn't. If you've been implementing FileMaker database solutions with references to static/hard-coded table occurrence or layout names, the only way you will be able to change said table occurrence or layout names is to drudge through your solution with DDR in hand and manually change the references to their new names. Then and only then can you feel secure in changing the table occurrence or layout names themselves.

    Of course you could just change the table occurrence or layout names and ignore the possibility that things will break if the old names are hard-coded in scripts or calculations. Personally I don't know any developer who would feel comfortable taking that risk.

    An Ounce of Prevention

    Cures are generally much more tedious to apply than preventions. Using a DDR to change references is a cure. What we really want is a prevention. Is there any way to reference table occurrences and layouts in scripts and calculations as to allow a developer to change names without breaking anything? Why yes there is: Use FileMaker internal IDs.

    When you create a new table occurrence or layout (or most any FileMaker object, for that matter), FileMaker references that particular table occurrence or layout internally with an ID. It doesn't use the table occurrence name or the layout name. What this means is that you can always isolate any table occurrence or layout you want if you only knew the corresponding FileMaker internal ID.

    Grabbing a List of FileMaker Internal IDs

    FileMaker provides a handy-dandy set of what are called design functions that spit out information about the structure of an open database file, information like a list of all field names, script names, etc. in the current file. Included in these functions are functions that list all table IDs and layout IDs in the specified file, each one separated by a carriage return. To illustrate, if you have a FileMaker file with three layouts—Order, Invoice and Contact—with IDs 3, 1, and 2—respectively—using the function LayoutNames(Get(FileName)) will return the three layouts in order of layout number, which is to say, the order in which they are organized under Manage > Layouts :

    Contact
    Order
    Invoice
    

    Now, the same file will return the following list using LayoutIDs(Get(FileName)):

    2
    3
    1
    

    Notice that the layout IDs are not the same as the layout numbers. In our example, Contact has a layout number of 1 (because it's the top most layout under Manage > Layouts), but a layout ID of 2. Order has a layout ID of 3 but a layout number of 2.

    The practical use of all of this is that you want to extract a FileMaker ID from a given table occurrence or layout name and then hard-code that ID into scripts and calculations. The difference between hard-coding a name versus a FileMaker ID is that an ID will never change while a name could change, as you may want to alter the name of a table occurrence or a layout in the future (e.g. our earlier example of 'Service' to 'Order'). The only way an ID will change is if you delete that object and then replace all instances of that object with a new object under the same function and name. Let's say you have an Avery 5160 label print layout called "Avery Labels" with the internal ID of 5 that suddenly becomes corrupted. You delete the corrupted layout and create a new one under the same name. But because this is a new object, the FileMaker internal ID is different than the original layout's ID. For illustration purposes, let's say the new layout's ID is 140. Although this new layout has the same name, same look and same function as the original one, the internal ID is different. Thus, if you hard-coded the original Avery layout's ID in any scripts or calculations, you will have to manually change those references to the new layout's ID, a task which we are trying to avoid by using IDs in the first place. However, the likelihood that you will have a corruption is much, much smaller than the want/need to change names in the future, and so using IDs are still best practice.

    Returning to our modest-sized solution of 3 layouts, we want to extract a layout ID from its corresponding layout name. The easiest way to do this is to build a custom function, as you don't want to reinvent the wheel, so to speak, every time you need a layout ID. You can build the logic to extract an ID based on a name once in a custom function and then use the custom function throughout your solutions.

    Or, you could borrow someone else's custom function and never have to invent the wheel yourself! We highly recommend you visit Brian Dunning's FileMaker Pro Custom Functions website, not only to extract IDs from names, but also to browse for any other potentially useful functions. We've gotten ourselves out of a few jams copying the free custom functions offered on this site.

    In particular, Ulf Carlsson's custom function GetLayoutID("current") will allow you to extract a layout ID of the layout name you pass in the "current" parameter.

    Doing It Yourself

    Some of you will probably feel the need to build the function yourself. In that case, all you have to know is how FileMaker's design functions LayoutIDs and LayoutNames organize their lists. Both the IDs and names are organized by layout number, and so because you know both lists are organized exactly the same way, all you have to do is find the position of the layout name in the LayoutNames list and use this position to extract the ID from the LayoutIDs list. We'll spare you the gruesome text parsing details, unless you actually want to know exactly how to do this. If so, feel free to contact us.

    IDs in Action

    Once you have a GetLayoutID([SomeLayoutName]) in place, it's time to put it to use! Because you are replacing instances of Get(LayoutName) with GetLayoutID, you need a way to dynamically determine the layout ID of the current layout. All you have to do is combine the two functions:

    GetLayoutID(Get(LayoutName))
    

    This will dynamically return the layout ID of the current layout, which is in the same spirit as dynamically returning the layout name of the current layout using Get(LayoutName) only.

    In most cases, you'll be rewriting a Boolean statement such as this:

    Get(LayoutName) = "Contact"
    

    So far we know what to replace the left side of the equation with: GetLayoutID(Get(LayoutName)). To get the right side, you'll need to know the ID of the layout you want to hard-code into this Boolean statement. The easiest way to find this ID is to:

    1. Navigate to that particular layout.

    2. Open up Data Viewer (Tools > Data Viewer, a feature only available in FileMaker Pro Advanced).

    3. Click the Watch tab.

    4. Add the expression GetLayoutID(Get(LayoutName)).

    The expression result should be the ID of the current layout, which is the one you want to hard-code. You can then ensure this is the correct ID by running the script in which you used the GetLayoutID function.

    Developers Are Human, After All

    If someone tries to read the ID code you just wrote, she/he will have no idea what layout that actually is, unlike a name, which usually provides some sort of context. Layout ID 3 means nothing to both you, who just wrote the script, and any developer down the line who reads or rewrites your script. To add a bit of context to your GetLayoutID statement, add a calculation comment with the name of the layout, like so:

    GetLayoutID(Get(LayoutName)) = 2
    //Contact
    

    The Reverse: IDs to Names

    There are times when you want to convert an ID to a name. To do so with layout IDs, you would need to duplicate the GetLayoutID custom function and basically turn the function inside-out: change all uses of layout ID with layout name and layout name with layout ID. Again, the FileMaker design functions LayoutNames and LayoutIDs are sorted in the exact same manner; all you need to do is find the position of the ID or the name you are trying to extract. If you have a layout name and want an ID, you find the layout name position in the LayoutNames list. If you have a layout ID and want a layout name, you find the layout ID position in the LayoutIDs list. Like before, we'll spare you the text parsing details.

    Table IDs

    Like LayoutNames and LayoutIDs, FileMaker provides design functions for table names and table IDs: TableNames and TableIDs. Unlike LayoutNames and LayoutIDs, TableNames and TableIDs include more than just tables: they are lists of table occurrences. Therefore we have a slightly more complex situation on our hands.

    Because TableNames returns a list of TO names, not plain ol' table names, this basically means that if you have used the function Get(LayoutTableName) anywhere with any hard-coded TO name, you won't be able to change the TO name without breaking something in the solution, unless you change the hard-coded references. What this also means is that you can change the actual table name which the TO is based off of and be safe, UNLESS there is a TO that has the exact same name as the actual table. If so, FileMaker will automatically rename the TO when the table is renamed, and in that case, if you have hard-coded references that haven't been changed, things will break.

    Once you understand that FileMaker returns lists of TOs, not table names in their design functions, everything else works exactly like layout IDs. Both TableNames and TableIDs are sorted the same way (alphabetically, in case you were wondering, and in case you were wondering further, no two TOs can have the same name) and thus once you know the position in one list, you can extract the corresponding information from the other list. Just duplicate your GetLayoutID custom function and change all references of layout name to table name and layout ID to table ID. Duplicate your new GetTableID(TableName) custom function and reverse the references to table name and table ID to obtain your GetTableName (TableID) function.

    Putting It All Together

    Using table occurrence IDs and layout IDs in scripts and calculations will allow you the freedom to rename TOs and layouts as you see fit without any logical repercussions. As a FileMaker developer who tries to build solutions as modular as possible, referencing IDs instead of names just makes sense. We all want our get-out-of-jail-free cards: who knows who will be poking and prodding at our solutions 10 years from now or how the solutions will evolve over time. IDs give the flexibility to induce needed and unforeseen change in the future.

    ]]>
    <![CDATA[Networking FileMaker Pro Databases]]> https://dbservices.com/blog/networking-filemaker-pro-databases https://dbservices.com/blog/networking-filemaker-pro-databases Mon, 31 Aug 2009 00:00:00 -0400 Networking a FileMaker database is very easy to do, but if done improperly can lead to a damaged file, data loss, or even losing the entire application. I will go over the different options you can use.

    There are three options for networking a FileMaker Pro database:

    1. FileMaker Server

    2. P2P Networking

    3. File Sharing (Not Recommended)

    FileMaker Server Networking

    In a production environment, this is the only way to network FileMaker Pro databases. FileMaker Server Networking carries four advantages over the other networking options:

    • Automated Backups

    • Preventing Data Loss / Corruption

    • Reliable Sharing

    • Scalable up to 999 users

    The biggest advantage of using a FileMaker server is automated backups, helping keep your data safe from corruption or loss. Proper backup schedules can very easily be set up in the FileMaker Server console. In FileMaker Server 10, backups are even easier because they allow multiple copies to be stored in a single folder. We recommend going one step further and backing up your backups online with a service like Mozy or iBackups.

    FileMaker Server is very reliable and should be installed on a dedicated machine that has an Uninterrupted Power Supply (UPS) installed and is not used by an end user. This way, you can be assured that your databases will always be available, won't experience crashes or outages, and not be exposed to possible data loss and database corruption.

    FileMaker Server is scalable up to 250 or 999 users with FileMaker Server Advanced.

    For information about allowing remote connections to your FileMaker Server read the DB Services' article Setting Up FileMaker Remote Connections with DynDNS

    P2P (Peer to Peer) Networking

    While P2P Networking has evolved greatly, it is not meant to be used in a production environment.

    In FileMaker Pro 9 or greater, you can network via peer to peer (P2P) for up to 9 simultaneous users. The advantage to P2P is that you can share a database on your local network very fast. All that's required is each user must have FileMaker Pro installed and boom! You are sharing your application and records.

    However, the disadvantages to P2P are there are no automated backups, file corruption can occur during computer crashes or power loss, and any time you want to connect to the database, the host must have both FileMaker Pro open and the database you wish to connect to open as well.

    File Sharing (Windows or Network Attached Storage)

    Don't do it. Why? Because only one person at a time can access the database. This is not the way FileMaker networking was designed to be used.

    FileMaker networking uses port 5003 and does not rely on the traditional way of File Sharing. Contrary to the traditional way of file sharing, you should never share the folder where your FileMaker databases reside and never connect to the database on a shared folder. You will be limiting yourself and the power of FileMaker database sharing to only one user at a time. This is not a good solution at all.

    ]]>
    <![CDATA[Resell Your FileMaker Pro Application]]> https://dbservices.com/blog/resell-your-filemaker-pro-application https://dbservices.com/blog/resell-your-filemaker-pro-application Tue, 18 Aug 2009 12:02:00 -0400 Do you have a FileMaker application you built from the ground-up? Are you considering selling your FileMaker application in the marketplace, but don't know where to start? With our experience managing multiple applications in different industries, we can help you prepare you for what to expect to maximize your success.

    Licensing

    First (and if you want to make any money), you must ensure users pay for your software. Deciding a price point is tricky, though, depending greatly on the type of system you want to sell: 1) As an open source system allowing the buyer to customize the application in Filemaker Pro. This cuts down greatly on your work after selling the system; or 2) As a proprietary system where you plan to maintain the code and provide the end users license keys to use your software.

    Open Source

    In open source systems, when a customer purchases the software, you give the entire FileMaker application and file format to them. The customer is then able to customize the software to their needs. Any time the customer wants to upgrade to a new version of your product, they will have to purchase it and re-customize the software as they see fit. The big advantage here is that there is no software maintenance on your part. Once you sell it, it's theirs. A good selling practice here is to familiarize potential customers with your product by providing a limited-time free trial version or an unlimited, simplified version of the software.

    Proprietary Software

    This approach requires you to give the user a key to use the software. You may distribute as a run-time or in a server-client environment. In the proprietary approach, you must consider how you plan to offer upgrades and/or maintenance so users can upgrade to the latest versions of your software. In the past, we have deployed a Maintenance Server that allows users to "Check for Updates" to determine whether a new version is available and if the user is licensed for updates.

    Purchase Methods

    How do you plan for users to pay for your software? Many options are available, but if you want to receive credit card payments, you must set up the infrastructure for it.

    Marketing

    How do you plan to market your software? Who is your target market and how will you reach them? Some of the more traditional marketing methods include trade shows, trade magazines, and online marketing. Do you plan to offer online demos of your product using sites like GoToMeeting and Yugma?

    One thing is for sure: if people are looking for software, people are likely to do this on their computer where they can install the software. So make sure you are visible online in the search engines--especially Google.

    SWOT Analysis

    Ensure you understand the marketplace and where you fit in your market. Do a Strength, Weaknesses, Opportunities, and Threats (SWOT) Analysis on your product in comparison to the industry you are targeting.

    Support

    How do you plan on supporting your software and your users? This can range from online forums for users to collaborate to a support toll free number to an online support request form. There are many options for you to choose.

    Many times, support will feed your development and you must maintain a project list prioritized for your developers. The development in return turns into new version releases and/or upgrades.

    Do you want to learn more about reselling your application? Read the article 50 great tips on taking your product to market.

    I'll leave you with one more tip: GREAT EFFORT = GREAT REWARD.

    ]]>
    <![CDATA[FileMaker Server Plug-Ins and Schedules]]> https://dbservices.com/blog/filemaker-server-plug-ins-and-schedules https://dbservices.com/blog/filemaker-server-plug-ins-and-schedules Tue, 18 Aug 2009 12:01:00 -0400 Installing FileMaker Server Side Plugins

    When we used the FileMaker Server Help Manual, we found Installing FileMaker Server-Side Plugins a bit tricky (we used FileMaker Server 9 Help Manual at the time of this writing).

    To get started, you need to install the plug-ins in the FileMaker Server --> Database Server --> Extensions folder just as you would with FileMaker Pro clients. The path on Windows: C:\Program Files\FileMaker\FileMaker Server\Database Server\Extensions

    In the FileMaker Server console --> Database Server area, you will find the Server Plug-Ins tab. Make sure you check "Enable FileMaker Server" to use the plug-ins. After you do this, the plug-ins will not automatically appear in the FileMaker Server Console area. You will need to stop and restart the server in order for the plug-ins to appear.

    Once the plug-ins appear, enable the plug-ins via the checkbox next to each plug-in.

    Scheduling FileMaker Server Scripts

    In the FileMaker Server Schedules, simply click Create a New Schedule. This brings you to the Task Scheduling Assistant, a very easy to use wizard consisting of 8 steps.

    Select the task "Run Script", then choose either a ScriptMaker script or System-Level Script. Our example is a ScriptMaker script.

    Next, you simply specify the FileMaker file on the server you wish to use and enter in the Account Name and Password you will be using. Alternatively, you may choose to use the Guest Account if it's enabled.

    NOTE: You do not need to use plug-ins to use the FileMaker Server scripts. You may wish to automate a report to be sent via email using a FileMaker email plugin for example.

    Select the script you wish to run in your schedule and provide a script parameter if desired.

    FileMaker Server Script Compatibility

    FileMaker Server-side scripts work like Instant Web Publishing scripts where some scripts steps are not compatible (e.g. message boxes). In the Edit Script window you can select Show Compatibility, "Server" to see which steps are not compatible in your scripts.

    FileMaker Server Email Notification

    You can enable email notifications to be sent when the script schedule is processed. Emails will then be sent when errors occur or when the script runs successfully.

    A few helpful tips for when your test server-side schedules using plug-ins:

    1. The Event.log located in the FileMaker Server sub-folder "Logs" will provide you excellent details about what occurs when a FileMaker Server schedule is run. In FileMaker Server 10 you can view the Log in the Server Admin Console now.

    2. When running a server-side script schedule, the file "Startup Script" will run prior to the script you selected. Make sure your startup script is web compatible.

    Best wishes to you on your FileMaker Server automation. For those of you who use a FileMaker robot standalone machine, challenge yourself to find a way to integrate your automation with FileMaker Server.

    ]]>
    <![CDATA[FileMaker Icons, Buttons, Interface Design Tips]]> https://dbservices.com/blog/filemaker-icons-buttons-interface-design-tips https://dbservices.com/blog/filemaker-icons-buttons-interface-design-tips Tue, 18 Aug 2009 12:00:00 -0400 Like any well-designed graphical user interface, making a great FileMaker interface means using buttons and icons. Icons help your audience visually organize the interface by giving them a visual cue for the action they are taking. This makes for a better user experience, both in practicality and sheer aesthetic.

    Using and Inserting Graphics in Filemaker Layouts

    FileMaker gives you the option of inserting pictures from a variety of graphic file types, however the graphic file type you should predominantly use is a transparent PNG. While other file types are competent, PNG has superior capability when handling transparency with a wide spectrum of color. (GIFs support transparency, but are limited to 256 colors.)

    To insert your graphics, in Layout Mode, use the "Insert Picture" function. While FileMaker allows you to copy and paste graphics, it's inconsistent in its results. As a best practice, always use the Insert Picture function.

    Download the FamFamFam Icon Silk Set

    The FamFamFam Silk Icons set, designed by Mark James, is ideal for use in FileMaker. They are small (16 px x 16 px) transparent PNGs, professionally designed, and allow for clean, easily understood interfaces. The set includes 1,000 different icons. (Did I mention they're free?)

    As you become more familiar with the FamFamFam Silk Icons set, you may notice that they look familiar. Quite simply, it's because they are used all over the web and on software UIs. If you use them well, you may just find yourself with a killer FileMaker User Interface that will make you wonder how you ever managed before.

    Over the years, we've done our fair share of creating icons, it's a time-consuming process and often outside the scope of a project. So, to save time (and money), use the FamFamFam free library of icons to help you make the interface and buttons you need.

    Here's a big thank you to Mark James and the FamFamFam web site!

    Update: Check Out the Icon Archive

    I recently was introduced to the Icon Archive which currently has over 30,000 icons that you can easily search. I'm sure you will find some great icons for your FileMaker application.

    Did you know we are an authorized reseller for FileMaker Volume Licensing? Feel free to call or contact us to discuss upgrading to FileMaker Volume Licensing.

    ]]>
    <![CDATA[FileMaker Remote Connections with DynDNS]]> https://dbservices.com/blog/filemaker-remote-connections-with-dyndns https://dbservices.com/blog/filemaker-remote-connections-with-dyndns Tue, 11 Aug 2009 00:00:00 -0400 A simple and free way to allow remote connections to your FileMaker database is setting up an account with DynDNS. This will allow you to have a dynamic IP and have a domain name that stays the same to your FileMaker Server. This solution is ideal for small businesses because of the minimal cost and ease to setup.

    To get started, set up an account with DynDNS and select a domain name to use. (Here is a list of DynDNS domains currently available. Next, install the DynDNS Updater on the FileMaker Server or the host computer of your FileMaker databases. You will need to give your server or host machine a static IP on your network and configure your router to forward port 5003 to your computer sharing the FileMaker databases.

    Properly configured, any time your IP changes your IP will automatically update with DynDNS. This allows your remote users to only need to save the DynDNS domain name in their favorite hosts in FileMaker Pro and they will be able to connect to your FileMaker databases.

    ]]>

    ]]>