Your SlideShare is downloading. ×
FileMaker-Drupal Synchronization
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

FileMaker-Drupal Synchronization


Published on

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.

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 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 ● ●