New functionality usually comprises several types of filemaker objects, tables, fields, TOs, CFs, Scripts, layouts or layout objects, etc.
When transferring a single new functionality one has to copy and paste each of these different objects one after the other, which often leads to broken links (or very complicated process)
We need a method to bring all the various bits and pieces of a function together under one title, so that they can be copied and pasted as one object (a "Functionality" or maybe a "Module").
When pasting such a "Functionality" into a database,
- ALL the objects are pasted in TOGETHER
- the objects should RETAIN their references to each other! <= important
- it must be implemented in a way which makes it possible to add the bits to the right places bit by bit whilst retaining their internal references.
- it may be necessary / useful to be able to decide if an object be inserted/created or REPLACE an existing object
The details of HOW this group of objects is inserted into the destination database needs to be thought through, but here is a first idea...
- Let's say a new function "Show Last Error" is developed in File A comprising a Field, a Button and a Script.
- Having created the field + button and script in file A the user then creates a new Functionality "Show Last Error" object in File A, and adds the 3 objects to it (also by copy + paste?)
- Functionality "Show Last Error" is then copied out of File A and pasted into File B, where it appears in the list of functionalities.
- The user is then prompted to insert the bits into the correct place
- The field into the destination table
- The script into the scripts list (could be automatic as there is only one list?)
- The button into a destination layout
- Where there is a match between pasted objects and existing objects, the user can be given the option to
- use the existing object
- create a new object (Script "Show Last Error 2")
- overwrite the object (changing it's CONTENTS whilst maintaining the original internal ID)
- Simplified deployment of functionality / GROUPS of objects
- Deploy functionality error free to files where some of the objects already exist
- Less errors
- More productive developers
- Deployment of new functionality to deployed solutions
- Duplication of similar functions across files in a multiple solution
- Transfer of developed and tested new functionality from a duplicated BRANCH database to the master TRUNK database.