1 2 3 Previous Next 34 Replies Latest reply on Jan 25, 2012 12:14 PM by philmodjunk

    Tracking Changes made in Filemaker...

    BradWieland

      Title

      Tracking Changes made in Filemaker...

      Post

      I share a Filemaker file with a client. It's not published or shared online, we just pass it back and forth and track the most recent version. Not elegant, I know...

      But is there a way for me to see changes that the client has made? Kinda' like a log of activity with date or time stamps, where I could see all changes made since a certain date?

      Thanks!

        • 1. Re: Tracking Changes made in Filemaker...
          philmodjunk

          Would these changes be changes in the design of the database or just changes to the data?

          I've been playing around with a change log system that uses variables and script triggers to log each change made to a record by logging the previous value to a "change log" table. That makes it possible to "roll back" all edits to a record back to the point where it was first created. If such entries include time stamps, you could use such a log to see what changes were made after a specified date and time.

          • 2. Re: Tracking Changes made in Filemaker...
            BradWieland

            Sounds like what the doctor ordered. And, no, I don't permit changes to the design of the database, just the data itself.

            Is this available now?

            Brad

            • 3. Re: Tracking Changes made in Filemaker...
              philmodjunk

              It's a methodology, not a product at this point.

              You use an OnObjectEnter trigger to perform a script that stores the current value of a field into a variable: $$Oldvalue. You use the same variable and script for all of your fields on the layout as the user can only modify one field at a time. (Won't work for batch changes with find/replace or Replace Field Contents.)

              Then use the OnObjectSave trigger to perform a script that compares the current value of the field with the value in $$OldValue. If the values are different, append both $$OldValue and the name of the current field to a pair of global fields that list all such changes since the last time the current user committed the record. Then use OnRecordCommit to perform a script that takes the data in these two lists of field names and values to create records in the change log along with entering any relevant primary keys. (It get's more tricky as you add portals to related tables that also need such change tracking.) The log records can auto-enter creation timestamps to record when each change was made.

              I've been playing around with this as I'm interested in devising a "data merge" process that can take multiple copies of a distributed database and merge changes without the data from one copy overwriting and thus losing changes made and merged previously. That requires knowing not only what record was changed but which fields in that record were changed...

              • 4. Re: Tracking Changes made in Filemaker...
                BradWieland

                I think this methodology is above me at this point, but the data merge idea sounds awesome! I have wished for this many times, since I have to "wait" to develop further until I recieve the updated file from the client since there's no way to know what changes she's made.

                I've been handling this currently by not allowing modifications in critical fields and creating related "editable" fields that I can flag and change manually.

                Would the data merge process be a "plug-in" of some kind?

                • 5. Re: Tracking Changes made in Filemaker...
                  philmodjunk

                  Would the data merge process be a "plug-in" of some kind?

                  No, it's just a set of scripts that would need to be adapted to each database where it is used.

                  I have to "wait" to develop further until I recieve the updated file from the client

                  If you are making design changes and he is making data changes there should be no need to wait like this. You can save a clone of the new version and import the data from his copy into that clone.

                  You can also use the Convert to Seperation Model to reduce the amount of importing needed.'

                  • 6. Re: Tracking Changes made in Filemaker...
                    BradWieland

                    Regarding the "clone" thing, I can see how that would work if he is mainly creating new records but, what if he is revising and editing existing records?

                    • 7. Re: Tracking Changes made in Filemaker...
                      Sorbsbuster

                      You sem to be limited by thinking that the database can either be in use for data entry, or in use for design,. but not both at the same time.  That's not the case: as Phil says, you can be designing in the background while the users use your existing file.  Then when you want to upgrade you import all the records from their current file into a clone of your upgraded file.

                      • 8. Re: Tracking Changes made in Filemaker...
                        BradWieland

                        OK, I think I get this now. I assume I would then just import the client's revised FMp file into my empty clone creating all new records? Would this also import all embedded photos within containers?

                        • 9. Re: Tracking Changes made in Filemaker...
                          Sorbsbuster

                          Yup.

                          (Though I would never embed images or docs, but always store them by reference.  You will find the file size explodes.)

                          • 10. Re: Tracking Changes made in Filemaker...
                            BradWieland

                            Thanks for the confirmation, Sorbsbuster...

                            I found that using references only wasn't proving to be reliable...certain client always ended up missing files...it was difficult to maintain 2 up-to-date image directories. Embedding hasn't been a problem so far, since I always optimize the images at 600px X 500px and create highly compressed jpg's. (Quality isn't an issue since the images are for reference only.)

                            I also use this same database to link to high-resolution masters for print output, but that is by reference only.

                            • 11. Re: Tracking Changes made in Filemaker...
                              BradWieland

                              A follow-up question. I've done what you suggest, Sorbsbuster, creating a clone of my file and then importing the updated records from my client's file. The progress bar indicates the transfer is working, taking about 30 minutes to import 2300 files (remember, there are embedding images).

                              However, even though the confirmation dialogue tells me that 2300 records have been imported, I don't see any of them. The file is still empty.

                              What am I doing wrong?

                              • 12. Re: Tracking Changes made in Filemaker...
                                philmodjunk

                                There's a message that sometimes pops up when the import is complete. Did it appear? What numbers did it report? (This message will tell you, for example how many records were not imported due to validation rules excluding them during import.)

                                What numbers do you see in the status area just to the right of the green "pie chart"?

                                • 13. Re: Tracking Changes made in Filemaker...
                                  BradWieland

                                  Yes, the message did come up. Unfortunately I didn't get a screen capture, but it said that all the records were imported (about 2300) and there were 150 fields not imported because of errors.

                                  • 14. Re: Tracking Changes made in Filemaker...
                                    Sorbsbuster

                                    Are you sure you set the source and destination Tables to be the same?  It's easy to overlook that.  (You may have imported 2300 records OK, but not into the table you are looking for them in.)

                                    1 2 3 Previous Next