Best way to implement...

General support questions.
PostPosted: Sun Aug 07, 2005 4:41 pm
I've developed a solution for our company that is not completely finished. However, we need it so badly, I must implement it immediately.

The solution has many (probably 50) tables in it.

I plan to get FMP Server, and set it up that way for several users.

My question is this:

Knowing that I will want to work on finishing the solution off site (on my Power Book), what is the best way to switch over to a NEW updated version of a solution every time I make changes? Because there are so many tables, I cannot imagine I would have to import each table manually. Certainly there's a quick and easy way to get this done, right?

I anticipate making changes and additions regularly, but would not be on site to work on the actual file.

Any advice would be greatly appreciated.

Nate
SeedCode Staff
SeedCode Staff
Posts: 2764
Joined: Thu Nov 20, 2003 11:01 am
PostPosted: Mon Aug 08, 2005 4:19 am
Maintaining a big system is as much an art as a science. Here are a few things to think about...

If this is FileMaker 7, separating the interface and data tables can radically lessen the import burden. Breaking a solution into several data files can have the same effect.

FWIW, the project I'm most frequently modifying in FM7 looks like this:

Interface Files...

Documents (All printed Estimates, POs, and Invoices. All Reports)
Production (Data entry on Jobs, CRM, & Production Browsers)
Analysis (Sales & Production Browsers, Time Analysis)
Dialogs (For any pop-up windows and dialogs. This is to keep the # of layouts and scripts in the real files down and contains a number of small TOGs)

Data Files...

Finance (Parent records for the Estimate, POs, and Invoices, Change Notices)
Finance Lines (Estimate Line Items, etc.)
CRM (Client, Contacts, Phone, etc., Prices)
Jobs (Base Tickets, Jobs, Departments, Art)
Production (hours, shipments, outcosts, QC)
Navig (All misc, settings, graphics and Navigation- thus really a mixed data / UI file.)
Plugins (simple access-removed file containing developer codes to plugins)
Media (container objects)


Not right for every situation, of course, but I set this up to allow the shortest possible modification cycle.

You can also script your re-imports (and serial number update). I personally don't do this, but know developers who swear by it as a time saver.

You may also want to investigate a combination of off site and remote access development. Many of your change *may* be able to be done live from your location using remote access to one of your client's machines. In FM6 coming in over remote access in the middle of the night to define a few fields can save a lot of import headaches and get your client faster results. Much simpler in FM7, of course.

As soon as you begin maintaining the system through more than one venue, however, you'll want to begin keeping a simple change log and file-checkout database. This doesn't have to be anything elaborate, just something that tells you where the most recent version of the schema is and where the most recent version of the data is (if different).
John Sindelar
SeedCode
PostPosted: Mon Aug 08, 2005 6:18 pm
Jee, wiz.

Now I feel overwhelmed!

First of all, I'm in FMP7. I've got many tables, (about 50 I'd guess) as mentioned. I'm not sure if you're implying that there are advantages to having separate files...it appears you are, although I was under the impression that being able to have one file using multiple tables was a major advantage of 7, so I built the solution as such.

Also, the solution will be running on a Windows server, on all windows machines. I use a Mac Powerbook. Do you know of a remote solution that will work for this?

I was considering creating a script for importing each table (as you mentioned), but I got confused when you brought up the point of "serial number updates". Not sure how I'd get this done. Each table has an auto enter ID, which is obviously critical to the relationships.

There are still major things to do:
-Figure out the document generator and how to configure to allow users to be able to add their own templates (allowing users to add their own templates will only be critical when I eventually take the solution to market. Need to at least get a document generator of some kind implemented now)...on this subject: do you know of any open source solutions that I could just buy for this? I want to allow a user to pick any document template from a variety of categories, then view the data for the template one last time for verification or modification, then preview and print. Also logging the printed docs for the subject property, which is the master record ( or even better automatically placing a copy of the completed and printed .pdf in a pre defined container field for later viewing/printing) would also be necessary. I would imagine someone out there has done this...why reinvent the wheel???

-Figure out the integration issue with your CC Calendar (still haven't been able to revisit this since our email correspondence)
-Additional layouts, tables, etc...just more building in general

There's got to be a simple solution.

Would I be able to access the file via VPN? Just a thought...probably a stretch.

Grrr.

Nate
Posts: 46
Joined: Thu Aug 19, 2004 6:33 pm
Location: Minneapolis, MN
PostPosted: Mon Aug 08, 2005 8:41 pm
There are several reasons why building a large solution all in one file can be problematic. You've discovered one of them; imports must be done separately for each table.

I'd recommend separate files for each module, where each module is a group of closely related tables. This way you can upgrade or add an entire module, and you'd only need import the records for the tables in the one module.

However, having built everything in a single file, you'll need to decide if it's worth separating at this point. It's actually not as hard as you might think to go from a single file to multiple files--FileMaker can handle it pretty nicely. The hard parts are deciding what to move where and figuring out the security for a multi-file system.

In any case, if you don't have the luxury of working on-site, remote access software is a good idea. They can be run over a VPN or just over the Internet, providing the host has a real static IP (or exists in a static range.)

You should check out Timbuktu Pro from Netopia. It does cross-platform remote desktop control and file exchange.
PostPosted: Mon Aug 08, 2005 9:46 pm
Thanks for the input, Ender.

Regarding Timbuktu:

If I plan on doing major work on the solution after implementation, will doing it remotely thru Timbuktu, assuming a broadband connection on both sides, impose limitations on my ability to work quickly? In other words, how much slower would things be than just working on my G4 Powerbook? Concerns about dropped connections while working?

Also, can I (even if I'm on site) work on the file while it's being used?

Finally, after having been through a file corruption in the last couple weeks, what does one do to avoid this sort of thing happening to an implemented solution? Once bitten, twice shy, yes. Does FMP Server auto backup regularly (as opposed to just auto save like FMP)?

Nate
SeedCode Staff
SeedCode Staff
Posts: 2764
Joined: Thu Nov 20, 2003 11:01 am
PostPosted: Tue Aug 09, 2005 8:02 am
BTW, I'd consider VNC in addition to Timbuktu. Its free, for one thing, and is less buggy, IMHO. Windows server and client here, Mac client here. VMC does not support file transfer like TB2 does, so you'd need to use FTP for that.

Not much worry about dropped connections when using VNC or TB2- you're not really connected to your FileMaker Server, just to a client which is itself connected to the server. If your VNC etc. connection breaks, the client (on the same LAN as your FileMaker Server) keeps on cranking.

Should you open the solution over the WAN using Open Remote, however, dropped connections are an issue. Our practice is to make field definitions, account changes, and table deletions on a connected client using VNC, and to do everything else over the WAN connection as it is faster and feels more natural. (For all their speed, VNC and TB2 just aren't like using FM natively.)

As for once bitten, you'll want to set up several backup schedules on your FileMaker Server. At least two a day. During heavy development we have a separate schedule that we run on an ad hoc basis every hour or so while we're on. We haven't had any trouble making *heavy* schema changes on live systems, but others have. As I mentioned above, we refrain from making some changes unless we're doing it on a machine on the server's LAN- solely to avoid dropping a connection during schema change.

HTH.

PS. Check out the SetNextSerialValue script step for smoothing out those scripted imports.
John Sindelar
SeedCode
Posts: 46
Joined: Thu Aug 19, 2004 6:33 pm
Location: Minneapolis, MN
PostPosted: Tue Aug 09, 2005 8:25 am
Using Timbuktu is fine for adding fields or modifying a few relationships, but its slow responsiveness makes it hard to do precise layout work. Also, scrolling is difficult through Timbuktu, making it hard to work with long lists of scripts, layouts, values lists, or whatever.

There is no problem with dropped connections. Remember, the database isn't actually opened over the WAN, Timbuktu just sends the screen changes of the machine you're connecting to.

Ahh, file corruption. The best thing you can do is make frequent backups. I have my server scheduled to backup all files four times a day to a second hard drive, and each day's backups are copied to a backup machine's drives using Retrospect. We end up with a two-week cycle. From this we take the backup of the last day of the month and burn a dvd, so we have a snapshot of everything at the end of each month. Some people do less frequent backups, some do more frequent.

File corruption often occurs when files are not hosted properly, like having the files available through OS file sharing. By using Server, disabling any OS file sharing options, and taking care when opening files on the server (through the OS) that they are not already open in Server, most problems can be avoided.

There is also a risk of corruption if you get disconnected while saving a change to the schema. This is unlikely to happen while being the only user on the database, but if there are lots of users connected to a hosted solution, and you want to make changes to a key table, FileMaker has to make sure everyone has commited their record before continuing.

This brings us to the second reason why for large solutions, I don't like putting all tables into one file. If file corruption does occur, you have to ditch the entire file, going back to a clone of a previous backup and importing each of the tables from the recovered file.
PostPosted: Wed Aug 10, 2005 9:32 pm
1. Regarding scripting the importing of all tables, and using the SetNextSerialValue script:

Is this as simple as setting up an import script for each of the 50 tables, and then a separate script to update the values for each of the 50 tables?

2. I setup Server tonight, and I have 5 machines that can open the hosted file. A couple of problems, though:

All the images cannot be seen (file cannot be found). The folder with all global images are in the databases/hosted file folder. I tried changing the file references to a different folder on the server, but still no luck. The strange thing is, I can see everything fine on my Mac. All the windows machines cannot see them.

Also, the fonts are all messed up on the windows machines. A couple of them have changed the font, and the rest cannot see many of the tab labels at all. I used mostly Arial, and some Papyrus.

Thanks in advance guys. You've been a huge help. Hopefully, this thread will benefit others in the future!!

Nate
PostPosted: Wed Aug 10, 2005 10:33 pm
1. ...I find it hard to believe that there is no plug in that has been built to do this sort of things for all tables in a file!?? When I eventually take this to "shrink wrap" there will have to be a user-friendly updater for end users each time a new version is released. What do all you other developers do??
PostPosted: Thu Aug 11, 2005 8:15 pm
2. I just decided to insert the images into the global containers. A better choice anyhow. The problem is, I was originally trying to do this to the "live" file. By unhosting it, and then making this change, it all worked fine. I don't understand why, but it is what it is. Now I move forward to a different issue, which is importing photos/documents. Because the pathname is different for macs/PCs, when I do an import on one OS, I can't see the imported files on the computers with the other OS. Come on, Filemaker! Why is this so difficult? They say "cross platform"...don't they expect server users to be importing docs and images out of the box? What's up? Don't tell me I have to mess with another plug in to do this?

Return to General Support

Who is online

Users browsing this forum: No registered users and 3 guests

(855) SEEDCODE
[email protected]
Follow us: