Things to take care of when using a separation model

Hi, I am new to separation model. What things do I have to take care first when I am trying to deploy to my future solution?

Welcome to any comments. Thank you.

1 Like
  • don’t change file names because this breaks references.
  • link files through ‘File Access’ (security)
  • separate payload from UI specific data (value lists i.g.)
  • decide if the business logic will reside in the UI file or in a separate file

  • complete this list of things relevant to you and stick to it throughout development
2 Likes

Thank you. Is there any reference I have to read before I use this model?

This is a good starter:
https://filemakerhacks.com/tag/separation-model/

Searching the internet for ‘filemaker separation model’ will yield further links to useful information.

4 Likes

I would also take into account that you would need an interface and scripting to manage credentials, so when a user is created, or changes password, disable users, etc …applies to all related files.

5 Likes

Whenever possible, always add new fields to the live system data files (preferably when not in use) and bring copies of these back to your development system. If this is not possible, add fields to both systems in exactly the same order. To be safe always check the field ID numbers on both files before progressing (we have a layout dedicated to this).

There is nothing worse than having the new UI file installed and find none of your scripts or layouts recognise these as designed and then trying to trace back how from there.

We know. From (bad) experience :weary: (but wouldn’t abandon the separation system, even with recent new tools available to us).

2 Likes

I am adding fields to dev files and move live data into these files with FMT. It handles it quite well, no wrong attributions spotted so far.

Yup, it does work but we feel it is quicker to add a field to the live data file, back it up and copy it to the dev system without interrupting the production system for more than a minute or so.

Also, the dev UI file is already using the same spec data file, so less unhappy surprises after upgrade (which sometimes can be completed in under a minute, unless the FMT is required for account matching)

Just a note on “don’t change filenames”.

Provided you are using FMPA, the developer tools allows you to safely rename files. It will rename the file and modify all references to the file in all of the related project files.

5 Likes

Correct. No good idea without dev tools, can be done with dev tools.

Verify the availability of all required files of a solution at start of session
Possible causes of error: file(s) paused or closed on host.

Open File [ Open hidden: On ; “Filename” ]
Set Variable [ $Error ; Value: List ( $Error ; Get (Last Error) ) ]
// do this for all files except the current (starter) file
If ( not IsEmpty ( FilterValues ( $Error ; 100 ) ) ]
// react, i.g. abort launch
Endif

Close all open files of a solution at end of session

Set Variable [ $FilesOpen ; DatabaseNames ]
If ( not IsEmpty ( FilterValues ( $FilesOpen ; “Filename” ) ) ]
Close File [ “Filename” ]
Endif
// do this for all files except the current file
// and last but not least:
Close File [ Current File ]

2 Likes