[Return to contents]
Last updated: 15 Nov 2003 by XpertSS.com
There are no plans by Lotus/IBM to increase the number of joins allowed in a single Approach application file, which is currently 50. But I have rarely found that to be a problem in my applications.
Here is my "approach" to a complex application with many potential databases being involved (per Sue Sloan):
1) I separate a complex application into multiple Approach files based on the "functions" of the application. For example, I might have a Customer.apr for customer record maintenance, an Invoices.apr for invoicing activities, a PO.apr for purchase orders and a Reports.apr for reporting. This functional split is logical in that most business processes can be divided up this way. And this keeps things simple for maintenance purposes because I can work on one .apr while the users continue to use the others, if necessary.
2) I try to stay under 15 unique databases joined per .apr so that I can still use "SaveAs" to save the application .apr file and databases to a new location. I do not worry so much about the total number of joins (that includes aliases), but I do try to avoid going over 30.
3) I provide navigation between the .apr files with a central menu.apr and macro buttons. I use the OPEN command in a macro to switch between them. If the .apr is already open, the user will be switched to the open file at the place they left it. The user can also switch between .apr files using the "Window" menu at the top of the Approach window.
4) I use local "control" databases (one per user on their workstation) to pass values between the .apr files when necessary. I limit these to one record each by having a field that is defaulted to 'X' and validated as unique and filled in.
5) To avoid having to log in separately to each .apr file, I either use my own login method or have them log in using Team Security to the menu.apr. I record who is logged in using the "control" database record so I can mark "last updated by" fields in the databases.
6) I consolidate databases that are solely for lookup purposes into fewer databases. In them I use a "type" field to filter them for building drop-down lists. I can set a variable-type field to use as the filter for each different type in the database. Or I can access them from LotusScript even if they are not joined in the .apr and build the lists that way.
This is not an exhaustive list of ways to make the 50-join limit irrelevant, but the ideas here may help others with similar projects.