Jump to content

FMSDIFM: take your FileMaker solutions to a new level with WAN connections


This topic is 4242 days old. Please don't post here. Open a new topic instead.

Recommended Posts

Hi,

I just posted a new entry on 1-more-thing blog, presenting a 'revolutionary' technique allowed by FileMaker 12.

It completely changes my life as a developer, and makes it possible to create very efficient online solutions using FileMaker Pro/Go.

It's all explained in this video.

  • Like 2
Link to comment
Share on other sites

Great stuff Fabrice! Currently running a cue service on the server but not for instant things as such. Definitely has me rethinking some stuff.

Thanks for sharing!

Link to comment
Share on other sites

That's a great technique. I'm working on a solution now that requires reports to be generated by scripts, and this could be an ideal way to reduce the processing time of the reports.

The same thing could be done pre-FM12 using a web viewer. There is a working sample file here: http://fmforums.com/forum/topic/82704-server-side-schedules-globals/#entry383783

Link to comment
Share on other sites

It could, and a long time before that with URL plugins, but it required a refresh window on FileMaker Go.

But what's more, FileMaker Server was not as powerful as it is now: 64bits (and consequently support of a lot of RAM) and 200 web connections are key factors to this technique viability.

For your report issue, it can help to create records containing only the required information so they are faster to sort and so on, but it's more the kind of things that need to run on the client side, because it has to do with display, printing, pdf stuff...

In combination with a plug-in like ScriptMaster, if can indeed produce a pdf report for you.

Link to comment
Share on other sites

I haven't implemented this method yet, but here are my notes on how I plan to do it...

  • each script that want's to use this setup needs to have two parts to it: client side and server side. The client side section is run by default. The server side section is run with a param: "is_ServerSide".
  • client-side control script

    • this script would open a new window, go to a ServerScripts layout, create a record, set script name, parameter, date/time field values, then commit the record record
    • modify window name to include the new recordID (so the window name is unique)
    • then it would call the server-side control script with a param of the current records ID.

      • in FM12 this can be done with insertURL
      • could always be done with a plug-in, but I don't like that requirement
      • setting a web-viewer is also always an option, and is nice because it doesn't require waiting for the server-side script to finish running

      [*]alternativly, it could run the server-side script on the client, under certain situations

      • conditions to do this:

        [*]would need a plug-in that can call a script by name

      [*]optionally wait for server-side script to complete? (by testing if timeFinished field contains a value)

    • file is not hosted
    • debugging mode is on

  • should test this via an onTimerScript on the unique window opened by this script - this allows the script to run in the background

    • the first test should be done without using the onTimerScript

      • and with a pre-defined wait period?

    [*]what should it do when it's complete?

  • this script is run client-side, so it can only call a user-defined script if a plug-in is used - which I don't want to have to be a requirement
  • show message to the user? This could be user-defined (by parameters to this script)

  • params:

    • ServerScriptId: id of record that was created with script name to run, script parameter, etc.

    [*]go to ServerScripts layout, find specified record id

    [*]call script with param, as specified by record contents

    [*]set script return result to field in that same record, set timeFinished field

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.