Tags

    FileForce FAQ - Frequently Asked Questions

    Was there a previous version of the plugin that supports FileForce?

    Yes. FileForce uses remote version of the Ruby plug-in which employs a different strategy for integrating Ruby with FileMaker. The remote version acts as a client to a Ruby evaluation server. This "remote" strategy works well in both FileMaker Pro and Server editions, and it eliminates the code duplication and synchronization problems that existed with the embedded version.

    The embedded version includes a full Ruby interpreter inside a FileMaker plug-in and is not used in FileForce.

    How does FileForce work?

    There are two main parts, the plug-in and the evaluation server. The plug-in acts as an Agent that receives chunks of Ruby code from FileMaker scripts, sends it to the server for evaluation, and returns the results it receives back. For now, the server and the plug-in both reside on the same machine, but the server can be anywhere and serve many simultaneous clients, each with its own private context.

    There will be limits when dealing with very complex data relationships, just like it is in Salesforce itself. However, the
    multi-layered design of the plug-in (C++/Ruby/FMP) allows for a lot of flexibility and offers various options to solving problems.


    What technology is FileForce based upon?

    We have a plug-in which employs different approaches to solving the similar problems. To date, w have modules that sit on top of the plug-in (FMAR, FileForce, and maybe others later). Each module tackles a different technology/platform and will have its own requirements and issues, but they all depend on the same plug-in.

    In the case of FileForce, there is a FileMaker Pro plug-in which communicates with a (Ruby) daemon on the organization's server. This server passes information to and from the Salesforce server(s). There are FileMaker-specific Ruby libraries which use FileMaker's various 'classes': database, table, fields, etc..

    Does FileForce actually 'sync' FileMaker and Salesforce?
    The term "sync" can mean many things and take many forms. FileMaker Pro makes it easy to tap into the core record actions (load, commit, revert) and this allows for pseudo-realtime syncing with Salesforce data.

    What happens when two users are editing the same record (one in FileMaker and one in Salesforce)?


    Is there a notification of who is editing a particular record at a given time?


    Can both custom fields and core objects be used anywhere?
    All core objects and custom fields available in the Enterprise WSDL
    (whose names end with __c) are read/write accessible.

    What are the Ruby server functions?
    Currently, in addition to the basic CRUD (Create/Read/Update/Delete)
    functions, there are 3 additional functions:
    • Fetch all object IDs for a specific object class (list)
    • Fetch all object IDs for a related object class (one-to-many)
    • Search for instances of a specific object class that match a given query
    • Run an arbitrary relationship request (cross-object formulas, incomplete)
    It is easy to add more functions based on the above, like batch
    updating or deleting a set of objects that match some given criteria.

    Does the server support custom fields within custom objects?
    The Salesforce API has access to all objects defined in an installation (as
    described by the Enterprise WSDL), including core objects, custom
    objects, and any core and custom fields defined within them.

    What about session management support?
    Communication with the Salesforce platform is carried out via SOAP
    over HTTP, so the session management features are identical to those
    of web browsers and other REST clients.

    Describe security concerns and awareness
    Additional R& D is required for this item
    The security measures currently in place prevent clients
    (plug-ins) from interfering with each other's sessions, by creating
    isolated handlers for each. However, there are several things that can
    and should be done to address the following:

    • Preventing unauthorized plug-ins from connecting to the ruby server by adding a username/password for the connection between the plug-in and the ruby server
    • Preventing traffic sniffing by adding support for SSL to encrypt all traffic, both between the plug-in and the server and the server and Salesforce (the latter is already in place)

    Describe ownership management
    Additional R& D is required for this item
    As it is in Salesforce. the account used determines ownership and
    access privileges. Currently only one Salesforce account is supported
    per server installation. This is not on purpose or a limitation, it
    just hasn't been dealt with yet. The ideal setup will be configurable
    per plug-in instance (through the plug-in preferences dialog). When
    implemented, every instance of the plug-in can act as a unique
    Salesforce user, or share a single Salesforce account.


    Describe the concerns regarding fault tolerance
    Additional R& D is required for this item
    All errors are properly handled in Ruby when they are reported by
    Salesforce. What remains is a way to report these to FMP in a way that
    fits with and makes sense for that environment.

    What is the syntax of cross object joins?
    The syntax is similar to the Salesforce syntax for cross object
    formulas. For example, "oppurtunity.contact.account.website" will
    return the website URL for the account associated with the contact for
    the opportunity.

    If new functionality becomes available from SF, what is the turnaround?
    Rapid. Once the function become available in the WSDL, they only need
    to be wrapped with 3 to 4 lines of code to make them available to the
    plug-in. This is one of the biggest advantages to using Ruby.

    How long will it take before the plugin is updated if new SF functionality is released?
    Additional R& D is required for this item
    Undetermined at this time. It is a matter of developer availability.

    Does it support multiple network cards?
    Yes. The ruby server can be bound to a single interface card, or all
    (any) interface cards on a machine. For selective binding, multiple
    instance of the server can be launched, each bound to a specific
    interface and port.

    Does it scale? how far?
    Additional R& D is required for this item

    The answer is a partial yes, so far. The underlying technology
    will scale as much as a web server can (a lot), but there are
    currently some limits on the size of data that can be transferred to
    and from the plug-in per request. This is not a hard limit, and can be
    changed.


    This there a white paper available?
    Not at this time.

    How much data is being pumped?
    Additional R& D is required for this item
    If it's about the amount of network traffic generated, then it is akin to
    that generated by accessing Salesforce via a web browser. It is
    actually lower due to the fact that it does not download all the
    images, CSS and JavaScript associated with web pages.

    Can it 'send messages' ?
    Additional R& D is required for this item
    We're sure this can be done since it's available in the WSDL, but
    the details need investigation. We have not tested this as of 05/25/2010.
    What is ETL?
    ETL stands for Extract, Transform, Load. We designed the plug-in to fill this primary goal, not to become a complete Salesforce "clone" in FileMaker Pro. That is why many of the features above have not been addressed as of 05/25/2010.

    What about complex joins?
    There will be limits when dealing with very complex data
    relationships, just like it is in Salesforce itself. However, the
    multi-layered design of the plug-in (C++/Ruby/FMP) allows for a lot of
    flexibility and offers various options to solving problems.

    What is left in terms of development?

    • creation of an installer
    • daemon instead of process for the Ruby server
    • security rigor, client white list
    • preference dialog
    • data formatting between FileMaker and the plug-in (is it possible to create 'nested' data structures within the dict format)
    • stress test (end to end, using FileMaker scripts)
    • optimization

    How do I find out more information about this technology?
    You can send email to sales@beezwax.net and ask to be put on the FMP/Salesforce product mailing list. We will notify you of updates, specials, WebEx demos, training opportunities and all else related to this innovative product.

    Thanks,
    Ammar ( product architect and lead developer)
    Rennie (product support and sales)

    Comments

    /groups/filemakertosalesforcedirectconnect/search/index.rss?tag=hotlist/groups/filemakertosalesforcedirectconnect/search/?tag=hotWhat’s HotHotListHot!?tag=hot1/groups/filemakertosalesforcedirectconnect/sidebar/HotListrennie_jrennie_j2010-06-22 17:06:24+00:002010-06-22 17:06:24updated8rennie_jrennie_j2010-06-22 15:58:58+00:002010-06-22 15:58:58updated7rennie_jrennie_j2010-06-22 15:19:43+00:002010-06-22 15:19:43updated6Added tag - fileforce salesforce pluginrennie_jrennie_j2010-06-22 15:19:43+00:002010-06-22 15:19:43addTag5Added tag - hotrennie_jrennie_j2010-06-22 15:19:22+00:002010-06-22 15:19:22addTag4rennie_jrennie_j2010-05-27 17:13:54+00:002010-05-27 17:13:54updated3rennie_jrennie_j2010-05-25 16:16:45+00:002010-05-25 16:16:45updated2First createdrennie_jrennie_j2010-05-25 16:14:23+00:002010-05-25 16:14:23created1wiki2010-06-22T17:06:24+00:00groups/filemakertosalesforcedirectconnect/wiki/welcomeFalseFileForce - FileMaker to Salesforce Direct Connect/groups/filemakertosalesforcedirectconnect/wiki/welcome/FileForce__FileMaker_to_Salesforce_Direct_Connect.htmlrennie_j8 updatesFileForce - FileMaker to Salesforce Direct Connect What is FileForce? Briefly, FileForce is a FileMaker Pro plug-in that allows for Create, Read, Update, Delete operations upon Salesforce...Falserennie_j2010-06-22T17:06:24+00:00hot/groups/filemakertosalesforcedirectconnect/search/index.rss?sort=modifiedDate&kind=all&sortDirection=reverse&excludePages=wiki/welcomelist/groups/filemakertosalesforcedirectconnect/search/?sort=modifiedDate&kind=all&sortDirection=reverse&excludePages=wiki/welcomeRecent ChangesRecentChangesListUpdates?sort=modifiedDate&kind=all&sortDirection=reverse&excludePages=wiki/welcome0/groups/filemakertosalesforcedirectconnect/sidebar/RecentChangesListmodifiedDateallRecent ChangesRecentChangesListUpdateswiki/welcomeNo recent changes.reverse5search