FileMaker-Drupal Synchronization
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


FileMaker-Drupal Synchronization



An overview of different approaches to synchronizing your FileMaker databases with Drupal, and vice-versa.

An overview of different approaches to synchronizing your FileMaker databases with Drupal, and vice-versa.



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

FileMaker-Drupal Synchronization Presentation Transcript

  • 1. Filemaker & DrupalDrupalCamp Florida, 2013Derek DeRaps
  • 2. Todays Program1. About me2. Why FileMaker?3. Methods for Synchronization4. What are Web Services?5. Implementation Overview
  • 3. AboutDerek
  • 4. About Me.2008 Graduated Georgia Tech with BS in CS2010 Introduced to Drupal2011 Launched first Drupal 6 site2012 Launched two Drupal 7 sites2013 Came to work for Mediacurrent My first project at Mediacurrent? FileMaker & Drupal integration!
  • 5. TheProject
  • 6. My first MC Client● FileMaker back-end: Customers, Orders, Products● Orders submitted via Webform (D6)● Then processed manually● Lots of inefficiency, opportunity for automation● Goal: Automate communication of commerce data between FileMaker and Drupal
  • 7. What isFileMaker?
  • 8. FileMaker● Powerful, easy-to-use database software● Made for non-technical users (no coding)● Easily create forms, reports, labels, etc.● Drag & drop scripting editor● Web-publishing engine● Mobile app
  • 9. Over 9 zillion people useFileMaker
  • 10. Lets getSynchronized!
  • 11. Option 1 FileMaker PUSH + Drupal PUSH = Simplest SolutionFileMaker Scripts WSClient module Happy Devs. + HTTP Plugin + Drupal Rules Happy Client. Push data to Push data to Happy Buddha!"Drupal Services" "FileMaker RESTfm"
  • 12. Option 1 Drupal Push via Troi URL Plugin ServicesRESTfm Push via WSClient
  • 13. Not so fast,Buckaroo
  • 14. :(● FileMaker hooks are quirky: No easy way to capture create/delete/update actions.● Plus, FileMaker scripting = easy-to-learn but a headache for developers.● In the end, too much dependency on client to develop and maintain the FileMaker scripts.● How to get FileMaker changes into Drupal?
  • 15. Gotta be aBetter Way
  • 16. Option 2● FileMaker is NOT developer-friendly● So let Drupal do the heavy lifting● No change to Drupal→FM PUSH● Replace FM→Drupal PUSH with a Drupal sync script that PULLs records from FileMaker
  • 17. Option 2 Drupal Services PULL via WSClientRESTfm Push via WSClient
  • 18. (super secret)Option Three
  • 19. What areWeb Services?
  • 20. RESTful Web Services● REST = Representational State Transfer● Exposes resources in a standard way for external "consumption"● Data sent and retrieved in standard formats: XML, JSON, etc.● Follows a standard URL pattern for interaction: Action HTTP method URI CREATE POST /resource-type RETRIEVE GET /resource-type/id UPDATE PUT /resource-type/id DELETE DELETE /resource-type/id LIST / INDEX GET /resource-type
  • 21. Drupal → FileMaker PUSH
  • 22. PUSH via RulesReact on Events● Entity Create, Update, or Delete● Commerce CheckoutConditions● Entity is of Bundle● Field "Do-Not-Sync" = FALSEActions● Create Data Structures to hold entity data● Execute WSClient operation to send REST request
  • 23. Drupal ← FileMaker PULL
  • 24. Pulling FM RecordsCustom Module● LIST records and process them into Drupal Entities● Hint: EntityMetadataWrapper is your friendCron Job● Executes your custom modules sync code● Ideal frequency? Every few minutesPreventing Timeout● Use RESTfm filters and timestamp fields to limit LIST response● For recordsets < 100, easier to just sync all records
  • 25. Further ReadingMediacurrent Blog posts with code examples PUSH: PULL: these slides PDF:
  • 26. What Did You Think? Please Evaluate this session
  • 27. Questions? Posts Further Reading ● ●