I'll see if I can hit main points. (Keep in mind, I've done this, but am far from CF 
expert category. So, this is all just a method that has worked for me!)
1. If the application name is not dynamic, then each user would overwrite and you'd 
just have one site--not the many you want. If I understand correctly, you want one set 
of code to *make* several sites, each with unique info, look, etc. That's why the 
BusinessID (or whatever) is critical.
2. By making application name dynamic, (as in name="MyApp#request.BusinessID#") each 
set of these application variables will be *tied* to a certain site. If 
application-scoped data is already available (from a previous user) for SiteA; if I 
come and request SiteA, the existing app data will be used--fine because that's the 
site I wanted. If I come, however, requesting SiteB, it will either find app stuff for 
siteB or if it's not there, call the script to create it. Now we have two sets of app 
data available to users. Etc.
Note: With this set up, there is no application data that is tied to the generic 
site--unless you have that too as another set of data. (At least that's how I think it 
works.)
3. All the <CFSet Request.stBusinessInfo = Duplicate(Application.stBusinessInfo)> does 
is put the info into a scope you can call without locking worries (at least that's all 
I think this accomplishes). Note: The app info that's duplicated will be unique based 
on the site requested via the BusinessID.
4. Although the application info is not tied to something like the user having a 
session, the user will continue to get the application (converted to request) info for 
the chosen site because that ID number routine is always being set. If you needed to 
set a session for the current user, that session would be tied to the particular 
application name. (If person with a session variable on SiteA moved to SiteB, the 
person would not have that created session variable. If they go back to A--before a 
timeout--they'd be back in A's session.) Don't confuse, however, the unique 
application/request info with a session.
5. I lock app and session variables--appropriate for readonly or exclusive when using 
them. Even though now moving to MX, I continue to do it. (not sure I have to in all 
cases, but seems like good idea)
6. I create upfront a structure that holds just about all the variables I'll need for 
a site. That way it's always done and available anywhere on the site. Page color, 
stylesheet variables, names, addresses, etc. This structure includes about anything 
that won't be queried dynamically for a specific user request, such as seeing all the 
employees in human resources. Here, query directly or use cached queries with the 
BusinessID allowing you to select only persons in the SiteX company.

(If want more clarification, perhaps email off list)

Keith Dodd
www.wingserv.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Get the mailserver that powers this list at http://www.coolfusion.com

Reply via email to