In this chapter
FileMaker Extra: Converting Web-Enabled Databases
You’ve likely heard, read, or discovered on your own that the 2004 release of FileMaker Pro 7 brought tremendous changes to the FileMaker product line. The last time the product experienced such a fundamental change was in moving from version 2.1 to 3.0. If you were working with FileMaker back then (way back in 1995), you probably remember that a lot of unlearning, relearning, converting, and rebuilding had to take place. For the first time, in FileMaker Pro 3.0, the product contained such important tools as relationships and portals. It took quite a while for developers proficient with FileMaker 2.1 to fully understand relational database concepts and the benefits that portals and related fields offered over repeating fields and lookups. It was possible to convert solutions from 2.1 to 3.0 without loss of functionality, but to take advantage of the powerful new features required either extensive redevelopment or, in some cases, rebuilding the files from scratch.
FileMaker 7 represented a revolutionary shift from its predecessors. The ability to place multiple tables in a single file, the addition of an entirely new security model, the ability to create relationships based on multiple match fields, the ability to have multiple windows open in a file, server-based web publishing tools, and custom functions are some of the biggest changes. But there were myriad subtle changes as well, ranging from being able to add comments to fields and calculation formulas to changes in how FileMaker interprets alphabetic characters placed in number fields.
Because of the sweeping changes, conversion of existing solutions into FileMaker Pro 7, 8, or 9 can become a complex issue. There are circumstances where it will be a better idea to rewrite a solution completely rather than convert it; even if you do convert, you might have to do considerable development work and testing before the converted solution can be deployed. In the end, the effort to do either is well worthwhile. This chapter helps you identify the migration strategy that makes the best sense for your solution and how to go about it.
Since the previous edition of this book, the recommendations for migration choices have been simplified. If you are running a database that uses a pre–FileMaker 7 version, you are running old and unsupported software. This software might well run for years to come, but it is not being updated and you could find yourself in an infinite loop where you cannot upgrade the operating system because the database will not run on it and vice versa. If you are running pre–FileMaker 7 software, your only serious choice is whether to rewrite the system or use the built-in converter to automatically convert it. Because the automatic conversion is so simple, it is a logical first step to use that and see what you have. You can examine the converted database and estimate the amount of manual fixing up required. Because the converted database will normally run perfectly well on the current version of FileMaker, you might choose to make improvements gradually as outlined in this chapter rather than to rewrite the database from scratch.
The major architectural format change is from pre-FileMaker 7 to FileMaker 7. Because FileMaker 8 and FileMaker 9 use the same format, this chapter applies primarily to any pre-FileMaker 7 conversions. FileMaker 7, 8, and 9 can all use the same files (as can FileMaker Server 7, 8, and 9). If for some reason you are still using FileMaker 7 or FileMaker 8, you can use this chapter to convert pre-FileMaker 7 databases to those versions. Although the chapter refers to converting to FileMaker 9, the instructions are basically the same. Although the databases are the same, a few features (such as the Web Viewer, introduced in FileMaker 8.5) have changed in these versions, but the databases and their functionality are the same. FileMaker simply works around features such as the Web Viewer if you open databases that use them in FileMaker 7 or FileMaker 8.
The actual conversion of files from previous versions of FileMaker is a very simple task. Even if you have decided to do a total rewrite of a solution, you will end up performing a conversion so that you can salvage scripts and layouts. You’ll probably also perform another conversion to move the data to the new version. From here on out, though, we’re going to assume that you’ve decided to migrate your solution via conversion and will focus on the process and methods to accomplish this.
FileMaker 9 can directly convert files from versions 3, 4, 5, and 6. If you have files created in FileMaker Pro 1 or 2, you need to convert them first to version 3 or higher before converting to 9. (FileMaker 7, 8, and 9 share a common file format and no conversion is necessary to move among them.)
It’s quite likely—and even expected—that you will have to perform multiple conversions on a solution during the course of migration. Typically, the first conversion is a throwaway that you’ll use for research and experimentation. We usually refer to this as the alpha conversion. We’ve found that each solution behaves a bit differently after conversion, and rather than theorizing and guessing what features will or won’t convert well, just convert them and do some poking around. You might quickly discover you need to disable startup scripts that check for the presence of plug-ins or that you can’t open the solution because you don’t remember the case of your passwords. (They’re case sensitive starting in FileMaker 7 but not in previous versions.) If necessary, make minor adjustments to the source files and make a new alpha conversion set. The goal at this stage is simply to have a set of FileMaker 9 files that you can open and dissect. These files will never see the light of day, so experiment freely.
Later in this chapter, we’ll discuss some preconversion tasks that can make the migration process go more smoothly. When you complete these tasks and are ready to proceed, you’ll convert your files again, this time creating what we call the beta conversion set. These files will eventually be deployed as your new solution. Some solutions require significant post-conversion testing and tweaking. It’s important that you make frequent backups of your beta files during this process so that if you make mistakes, you can roll back to a stable version without having to reconvert the files.
The types of mistakes that can necessitate a rollback include things such as deleting file references before you respecify any objects that use them and removing tables or table occurrences from your files without accounting for the impact on scripts or layouts.
In cases where the testing and other post-conversion work takes days or weeks to perform, you are likely to need to do another conversion of your original system so that you can import fresh data before deploying the converted solution.
Be sure to take the old files offline during this conversion and data migration to prevent users from making additional modifications.
For this final conversion, the only thing you care about is the raw data; the solution doesn’t need to function beyond letting you open the files and show all records. You can skip converting the indexes for this conversion; they won’t be necessary for the final transfer.
It’s also possible merely to export data from your old system and import into your new one. There’s no way to import directly from the old files into FileMaker 9, though. The main drawback with exporting and importing is that you cannot transfer any data in container fields. You also lose text styling information applied to bits of text within individual fields. For these reasons, we prefer to do the final import from a freshly converted set of files.
There are a few ways to go about converting files. If you have a multifile system, it’s important that you convert all the files at the same time so that links between the files are properly preserved. The next section covers the method for converting multifile solutions.
A single-file solution is one that has no links to other FileMaker databases, whether those links are relationships, external scripts, imports, or value lists. You can convert such files simply by launching FileMaker 9, choosing File, Open, and selecting your old file. When you do so, you see a dialog asking whether you want to rename the old file.
There’s no particular need to rename the old file. During conversion, the old file is unaltered and is still fully functional; a brand new, FileMaker 9 file is created for you. You have the opportunity to name the converted file and specify a location for it as well.
If your file contains a large amount of data, it might take considerable time to convert. For the alpha conversion, it’s helpful to have all the data, but for the beta conversion, consider creating a clone of your file. This speeds up both your conversion and your post-conversion development work. Memory is also a consideration if you’re converting a large system (in the 200MB or more range). We recommend multiple gigabytes of RAM for large conversions.
When you convert a multifile relational solution, it’s important that you convert all the files at once. If you don’t, and instead use the method outlined in the previous section to convert each file individually, FileMaker forces you to wade through potentially numerous File Not Found messages as each file converts and opens. In addition, if you don’t specify the correct filename for the converted files by removing the Converted suffix appended by default, you might have a hard time fixing your file references later.
To convert a set of files all at once, simply select them all and drag them on top of the FileMaker 9 application icon. You can achieve the same thing by choosing multiple files from the File, Open dialog. Hold down the () [Ctrl] key to do this.
FileMaker does not prompt you to rename your old files or to name your new ones. Instead, it presents you with the dialog shown in Figure 20.1, in which you’re asked to select a directory in which to place the converted files. We recommend setting up a new directory for each set of converted files; simply placing them in the same folder where your old files live becomes a bit confusing, particularly if you’re performing multiple conversions.
Figure 20.1. When converting multiple files, your new files receive the same names as the old ones. You aren’t prompted for filenames the same way you are when converting single files.
As with single-file conversion, your old files are unaltered during conversion and you can still use them. Nonetheless, it’s certainly good practice to make sure that you have backups of your old system in case of an accident such as deleting or renaming the wrong files.
For each file in your old solution, the conversion routine creates a new FileMaker 9 file, named the same as the old file but with an .fp7 file extension (this file extension is common to FileMaker 7, 8, and 9). Each converted file contains a single table, named the same as the file. All the relationships turn into external table occurrences on your Relationships Graph (with the exception of self-relationships, which are created as local table occurrences).
If your databases don’t open correctly immediately after conversion, see the “Disabling Startup Scripts” in the “Troubleshooting” section at the end of this chapter.
You can and should do a number of things before converting older solutions to FileMaker 9. Your preconversion tasks vary somewhat from solution to solution, but some categories of tasks are still common to most solutions.
Our comments here are aimed at people who are converting older relational (multifile) systems of some complexity. The purpose of doing any preconversion work at all is to make the post-conversion work go more smoothly; for single-file and simple relational solutions, you might not need to have rigorous conversion plans like this in place.
The more familiar you are with a solution, the better your conversion will go. Even if you’re the sole creator of a system, having up-to-date documentation comes in handy during the conversion process. We recommend having at least the following items:
If you use FileMaker Pro Advanced, you might want to create a database design report (DDR) of your old solution as part of your documentation process.
For more information on third-party documentation tools, see “Document Your Solution,” p. 586.
Whenever you link one FileMaker file with another, FileMaker uses a file reference stored in File A to locate File B. Beginning in FileMaker 9, file references are just one example of external data sources. The operations that might require file references include defining relationships, performing external scripts, creating value lists based on the contents of fields in another file, performing an Open script step, and scripting an import from another file.
To understand how that hornets’ nest was created and why it can be difficult to untangle, you must understand how FileMaker managed file references in previous versions of the product. Prior to FileMaker Pro 5.5, all file references were stored as absolute paths: When you define a link from File A to File B, FileMaker remembers the full path to File B. On Mac OS X, that might look like /Macintosh HD/Documents/myDatabases/File B. On Windows, the full path could be something like C:/myDatabases/File B. If the link were to a hosted file, the link might include the IP address of the hosted file, as in 192.168.100.87/File B. If the hosted file were on the same subnet as the person defining the link, the IP address wouldn’t be stored; an asterisk would appear in the file reference instead.
The main problem with absolute references is that they tend to cause problems when you move files from one machine to another or rename files or folders. In those cases, FileMaker would pop up a message to the user saying, in effect, “I can’t find File B...where is it?” You would re-establish the reference by pointing to the moved or renamed file. But rather than replace the previous reference, FileMaker would store the new path as an additional search path for the given link. If you have a file that was developed over the course of many years and/or on many different machines, you might have dozens of absolute paths stored in it. If you ever had problems in previous versions where FileMaker would seemingly irrationally open the wrong copy of a given file, it was likely because there was an obsolete file reference higher up in the search order.
Another problem with file references in previous versions of FileMaker is that different linking operations might produce entirely new references. For instance, say that you create a relationship from File A to File B while both files are open on your local computer. A file reference containing the path to File B would be stored. Then you move the files to a server where FileMaker Server hosts them, and from your desktop you create a script in File A that calls a subscript in File B. An entirely new file reference is created for the external script call.
FileMaker Pro 5.5 introduced the option to store only a relative path when creating links between files. This went a long way to solve the problems caused by renaming or moving files. Rather than locate File B with a full path reference, a relative reference simply indicates the path to get to File B from File A. For example, the relative path might be ../File B, which indicates that FileMaker should look for File B in File A’s parent directory.
So what happens to all the obsolete and redundant file references during conversion? The conversion routine tries to do some consolidating and eliminating of file references that are no longer needed, but in many cases, you’ll still end up with a bit of a mess.
There are several potential problems that you may experience using a converted solution with file reference problems. The first is speed: FileMaker looks for files in the locations specified by the file references, in the order in which they appear. A complex solution with obsolete file references could take many times longer to open than one with clean file references. (The extra time is taken up as FileMaker scans fruitlessly through the obsolete references trying to find the file.)
After conversion, you can, of course, manually change all the obsolete paths to updated, relative paths. In a complex solution, this might require manually editing hundreds of references. After you finish, you’ll have solved the problem of obsolete references but not that of redundant references.
The problem with redundant references is maintenance. If you have five file references that all point to the same file, every time you set up a link to a file, you have to choose which of those five references to use. If you ever need to update the reference, you need to update it in five places. That might be an acceptable short-term solution, but eventually, you’ll want to eliminate the redundant file references.
Simply deleting redundant file references can have potentially disastrous consequences. Every link that uses the reference, be it an external table occurrence, a value list, or an external script call, will be broken and will need manual repair. The proper way to remove redundant file references is as follows:
Be sure to make a backup of your system before you start playing with file references; a small mistake, such as deleting the wrong one, can have far-reaching consequences.
In addition to file references, you can avoid other potential post-conversion problems if you do a bit of preconversion work. You can actually identify much preconversion work by examining the alpha conversion files. You might, for instance, discover that you have objects with illegal names, which are placed in between curly brackets during conversion. These can be changed in the original system so that by the time you’re ready to do your beta conversion, they’re no longer an issue. By doing as much work as possible in the pre-beta conversion stage, you reduce the amount of time and work required to get your converted files ready for production.
If there are scripts, layouts, relationships, passwords, value lists, or fields that you know are no longer used or needed, try to eliminate these before conversion. If there has been case inconsistency in the entry of passwords in your current system, take the time to standardize them. These efforts will be rewarded by shorter conversion time and having less to test after conversion. Any other housekeeping in the original files can only be beneficial, including organizing scripts, editing object names, and archiving old data.
As discussed in the previous sections, you can avoid many potential post-conversion problems by doing some preconversion work on your old system. However, a number of tasks can be done only post-conversion.
The actual tasks vary from system to system; many of the tasks listed here might not be applicable to your particular solution.
You should begin a list of post-conversion tasks during your exploration of the alpha files. You’ll spot problems and potential areas of improvement. Anything that can’t easily be fixed through preconversion work should go on your post-conversion task list. Keep in mind that you’ll end up destroying the alpha files, so don’t spend too much time or effort fixing problems. Some fixes are necessary just so that you can continue your exploration; you might opt to do other fixes just so that you can test the results.
To know what tasks you have to do after conversion, you must understand what actually happens to your files during conversion. The following sections look at five different aspects of your files: security, relationships, scripts, fields, and data. For each, we discuss what happens during conversion and what potential post-conversion tasks you need to perform.
One vital post-conversion task that goes almost without saying is testing. Before deploying a converted solution, it’s vital that you do sufficient testing to identify any problems.
If your databases don’t open correctly immediately after conversion, see “Disabling Startup Scripts” in the “Troubleshooting” section at the end of this chapter.
Depending on whether and how passwords and groups were set up in your solution, you might have some post-conversion work to do involving security. During conversion, passwords in your previous system turn into accounts, and groups turn into privilege sets. Accounts in FileMaker 9, of course, have both an account name and a password. For each account in a converted system, both the account name and password will be the same as the old password. So, a password of test123 in your old system turns into an account named test123 with a password of test123.
Post-conversion, you should change all the account names to something other than their default conversion value. Account names are visible on screen during login, so if you don’t do this it will be very easy for people to discover their co-workers’ passwords. Be sure that you distribute the new account information prior to deployment.
The conversion of groups into privilege sets is more complex than the conversion of passwords into accounts. The number of privilege sets might be greater or fewer than the number of groups in the old system. The following list explains the rules for determining how groups relate to privilege sets:
Calls to the Status(CurrentGroups)
function are turned into calls to the Get (PrivilegeSetName)
function during conversion. However, if the older function call tests for the presence of literal text strings, you might have to change the strings to the new privilege set names; they aren’t modified at all during conversion. For instance, if you used PatternCount (Status (CurrentGroups), ("masterGroup"))
in a script or calculation formula, after conversion you have to manually edit this to be Get (PrivilegeSetName) = "[Full Access]"
. Because accounts can be associated with only one privilege set, whereas passwords can be associated with multiple groups, the PatternCount
function is no longer needed.
If you specified a default password in the document preferences in your old file, the converted solution has a default account specified in the File Options. As in previous versions of FileMaker Pro, you can force the account/password dialog to display by holding down the (Option) [Shift] key as the file opens.
Older versions of FileMaker allowed you to specify a blank password as a valid way of gaining access to a file. The password list represents this as (no password). During conversion, a file with a blank password has the Guest account activated. It is associated with whatever privilege set is appropriate. When the Guest account is active, in the login dialog, users have the option of selecting the Guest Account radio button. It is grayed out if that account isn’t active.
If you convert a file that has absolutely no passwords in it, the converted file has an account named Admin with a blank password. It is assigned the [Full Access] privilege set and is set as the default login under File, File Options. A guest account is created as well, but it is inactive. This is the default behavior when you create a new database in FileMaker Pro 9.
If a file had the Multi-User or Multi-User (Hidden) option set prior to conversion, all the privilege sets will have the fmapp extended privilege enabled when it is converted to. This is required for accounts to be able to open files hosted by FileMaker Server or shared peer-to-peer. You can certainly enable or disable this extended privilege after conversion as fits your deployment needs.
During conversion, relationships turn into table occurrences. For instance, if you have a relationship from File A to File B called “File B by someKey,” when you convert these files, the Relationships Graph for File A will have an external table occurrence called “File B by someKey.” The number of table occurrences in the converted file equals the number of relationships in the old file. The converted solution retains settings from the relationship, such as cascading delete and the capability to add records through the relationship.
The Relationships Graph in a converted solution is always in a hub-and-spoke configuration. The hub is a table occurrence associated with the file’s base table; it has the same name as the table (and the file itself). All the other table occurrences connect to the hub as spokes connect to a wheel. All the layouts in the file are associated with the hub table occurrence, which means that it is always the context for all scripts, calculations, imports, and exports.
Remember that each file in a relational solution turns into a file in FileMaker 9 during conversion. Each has its own hub-and-spoke Relationships Graph.
If you plan to do any future development in your converted system, you’ll likely want to spend some time organizing the Relationships Graphs. This might simply mean repositioning and resizing table occurrences to make particular relationships easier to locate. You might also consider using color as a means of organizing the graphs, or using the new Notes feature in FileMaker 9 to add descriptive notes to the Graph. Finally, depending on what sort of conventions you used to name your relationships, you might want to change the names of the table occurrences to better reflect their purposes.
Down the road, consider making some more significant changes to the converted Relationships Graph. Many relationships from previous versions of FileMaker either could be implemented differently or are not required in FileMaker 9. For instance, many developers used relationships based on constants as a means for setting and retrieving global field values from other files. In FileMaker 9, fields with global storage can be accessed from any table occurrence, even ones disconnected from the current context. Likewise, relationships built with multiline and/or concatenated keys can be built in FileMaker 9 with join types other than equi-joins and/or multiple match criteria. These aren’t changes you must make prior to deployment, but they make the converted solution easier to maintain and extend in the long run.
Many script steps in FileMaker 9 have slightly different parameters or behavior than in previous versions and, consequently, you have to be vigilant in regard to a few potential post-conversion issues. In some cases, the conversion routine actually adds steps to your scripts as a way to compensate for functional changes. Some of the changes, and the issues that arise from them, include the following:
Because Exit Record/Request converts into Commit Record/Request, you can also fix many of these problems as pre-conversion tasks.
There are some subtle (and some not so subtle) differences regarding fields and formulas in FileMaker 9. As with scripts, you’ll find that the conversion routine does a good job at heading off many problems by modifying your code a bit. Still, a few things can go awry in a converted solution that you’ll have to deal with during post-conversion testing.
TextStyleAdd
and TextStyleRemove
functions; you would be warned in FileMaker 9 that these are illegal filenames. If you used any reserved words or illegal names in your old system, anytime they were used in calculation formulas they are enclosed, on conversion, with the symbols ${ } to avoid confusion with the reserved words. A field named Bold in your previous solution would appear as ${Bold} in formulas in FileMaker 9. The conversion log also lists this as a poor field name.Today
function is no longer supported. During conversion, references to Today
in scripts and validation checks are converted into Get (CurrentDate)
. If it’s used in stored calculation fields, a new date field called Today is added to your database; it is set to auto-enter the creation date. Additionally, a new script called Update Today Field is added to the file. This script is set as the file’s startup script, or, if it already has a startup script, that script is modified so that it calls the Update Today Field script as its first step.DatabaseNames
and Status(CurrentFileName)
included file extensions in previous versions of FileMaker Pro. Now, DatabaseNames
and Get (FileName)
do not return file extensions. You might have to edit scripts and fields that presume the presence of a file extension. For instance, you might have checked to see whether a file foo.fp5 was open by using the formula PatternCount (DatabaseNames, “foo.fp5”). Now this formula always returns 0. Be aware also that no existing data is affected during conversion. If you have a field that auto-enters the results of Status(CurrentFileName)
into the field (or even a stored calculation with the same formula), after conversion all your data will still contain a file extension, but any new data you create won’t. This sort of inconsistency should be avoided; it might have adverse consequences down the road.2
in FileMaker 9 but only 1 in versions 6 and earlier. Some text parsing routines might have to be changed to account for this."123"
used to find "123 "
as a related record, but it won’t in FileMaker 9 until the trailing space is removed.23 skidoo
, Length (myNum) returns 2. In FileMaker 9, text functions recognize text characters found in number fields, so this function would return 9. To correct for this, all number fields used as parameters in text functions are wrapped with a GetAsNumber function, which strips out any nonnumeric characters. Don’t be surprised if you see GetAsNumber sprinkled throughout your field definitions after conversion. It might not be needed, but it’s a case of “better safe than sorry.”If you think you might have issues with container fields, be sure that you test your alpha conversion files on both platforms. If it’s convenient, perform the final conversion on a PC with QuickTime to avoid this issue altogether.
Mod
function handles negative numbers differently than older versions did. For example, in older versions, Mod (–10, 3)
would return –1
, but it returns 2
in FileMaker 9.Significant changes in layouts for FileMaker 9 make it possible to remove code and improve usability in converted solutions.
I’ve converted a solution, but it won’t open properly.
Because of the changes that take place during conversion, there are many reasons your files might not open properly after conversion. The typical cause for this is a startup script that attempts to validate for conditions that no longer are true. For instance, a startup script might check that a certain plug-in is available. If you haven’t installed the plug-in in FileMaker 9, or if the interface to it has changed, your script might not be able to get by the validation check.
Another typical problem in startup scripts is checking to see that some set of related files is open. The DatabaseNames
function used to return file extensions of open files but doesn’t do so any more. Validating that foo.fp5 is open, for instance, might cause a startup script to deny entry into the system.
If you experience problems opening a converted solution, try disabling the startup scripts in the preconverted files and try again.
After conversion, I’ve attempted to consolidate tables from multiple files into a single file, but all the relationships, scripts, and portals get pointed to the wrong fields when I repoint the table occurrence references.
One of the more difficult post-conversion tasks you can attempt is to consolidate tables from multiple files into a single file. In FileMaker 7, you would typically have begun by manually creating a new table in one of your files. The new table would be defined with fields named the same as those in one of your other files, the intention being to consolidate the second file into the first. Among other tasks, you would have to repoint relationships to table occurrences based on the new, consolidated table. On the Relationships Graph, when you repoint table occurrences from the external table to the new internal table, the match fields involved in the relationship might change even if you’ve taken great care to keep all the field names the same.
This happens because the match fields don’t resolve by name, but rather by field ID. Therefore, if you create the fields in a different order, or have ever deleted fields, thereby leaving “holes” in your field IDs, the relationships won’t match up correctly. This also affects portals and scripts that reference fields through the changed table occurrences.
Beginning with FileMaker 8, this type of consolidation is a great deal easier. You can move tables between files in two ways: either by using the Import feature in the Define Database dialog, Tables tab or by copying and pasting tables between files (you’ll need FileMaker Pro 9 Advanced for this). Both of these methods preserve the field IDs from the original file, and all relationships and references continue to work as expected.
After consolidating tables into a single file, be aware that you still have to move all your layouts, scripts, value lists, privilege settings, and data into the new file. None of these is a trivial activity. If consolidation of tables into a single file is one of the goals you hope to achieve from migrating to FileMaker 9, you might be better off rewriting your system.
If your existing solutions are web-enabled, you have a few additional concerns when migrating to FileMaker 9. The web capabilities of FileMaker 8 are considerably different from previous versions; your migration plan depends mainly on the technology you used to web-enable your solution.
No Instant Web Publishing (IWP) configuration options are retained during conversion of a solution from FileMaker 6 or older to FileMaker Pro 7, 8, or 9. IWP is so greatly improved that the older configuration options are irrelevant and unnecessary. Where you were limited to a handful of layouts and themes before, IWP now has a status area that is very similar to that of FileMaker Pro itself, and it allows a user to potentially access any layout in a file. More than 70 script steps are IWP compatible (compared to about a dozen before), making IWP a very powerful and flexible web technology. Even though no IWP settings are preserved during conversion, if you used IWP in your previous solution, you’ll be up and running again within a matter of minutes.
Security in IWP is now handled just as it is for FileMaker users—via accounts and privilege sets—so you can easily create special accounts for web users and restrict them to web-friendly layouts.
See Chapter 25, “Instant Web Publishing,” p. 689, for more information on how to use IWP to web-enable a database.
CDML (Claris Dynamic Markup Language) is no longer supported. FileMaker has instead focused its CWP efforts on XML/XSLT (Extensible Markup Language/XSL Transformations) and PHP (Hypertext Preprocessor). FileMaker Server 8 Advanced had a CDML-to-XML/XSLT conversion application. Because CDML has not been supported since FileMaker Pro 6, and because PHP has joined XML/XSLT as a second Custom Web Publishing technology, the CDML converter is no longer supported.
3.148.144.100