FileMaker-Drupal Synchronization


Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

FileMaker-Drupal Synchronization

  1. 1. Filemaker & DrupalDrupalCamp Florida, 2013Derek DeRaps
  2. 2. Todays Program1. About me2. Why FileMaker?3. Methods for Synchronization4. What are Web Services?5. Implementation Overview
  3. 3. AboutDerek
  4. 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. 5. TheProject
  6. 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. 7. What isFileMaker?
  8. 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. 9. Over 9 zillion people useFileMaker
  10. 10. Lets getSynchronized!
  11. 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. 12. Option 1 Drupal Push via Troi URL Plugin ServicesRESTfm Push via WSClient
  13. 13. Not so fast,Buckaroo
  14. 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. 15. Gotta be aBetter Way
  16. 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. 17. Option 2 Drupal Services PULL via WSClientRESTfm Push via WSClient
  18. 18. (super secret)Option Three
  19. 19. What areWeb Services?
  20. 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. 21. Drupal → FileMaker PUSH
  22. 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. 23. Drupal ← FileMaker PULL
  24. 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. 25. Further ReadingMediacurrent Blog posts with code examples PUSH: PULL: these slides PDF:
  26. 26. What Did You Think? Please Evaluate this session
  27. 27. Questions? Posts Further Reading ● ●