Customizing system templates
Everything in Notes can be customized by tweaking with the design. I highly recommend never to tweak design in a database itself, but use Domino's template capability. You can have multiple databases using the same layout. Even if you build a specialized custom application you will have at least 3 databases sharing the same design: development sample data, UAT sample data and production data. So use template, and NO hiding the design is not a nice thing to do and actually not a security feature (it's rather an obscurity feature).
In a lot of installations I came across system databases have been altered: the Domino directory, the log, the mail template etc. IBM's support always has a hard time helping in this environments. There is a rather strict policy to insist on original IBM templates. Following a few easy steps however you can eat your cake and have it too. The secret is to use the template system wisely. Following the steps has quite some advantages:
- Your customizations are protected from being overwritten since they are sitting in their own database
- Your customizations are visible since they are sitting in their own database
- Since the original templates are untouched future fixes are easily included in your actual database
- You can switch back and forth between the IBM template and your customized template using "replace design". This is extremely useful when troubleshooting issues: switch to the original IBM template, if the problem is gone you know where to look. If the problem persists you don't need to argue with support about customization having an impact
These are the steps:
- Create a new database based on the original IBM template with inheritance active. In the database properties give that database a template name (be sure to keep the master template name intact)
- Delete all design elements you want to customize from the database created in step 1
- Create a new empty database, give it a template name and copy all design elements you want to customize into this database. Say NO to the question of "inherit changes"
- Customize your design elements. Rule of thumb: try to be minimal invasive.
- Copy the altered (or additional) design elements to the database you created in step 1. Say YES to the question "inherit changes"
- Replace the design of the system database with your new template
Happy customize!
- 


Comments
Also, there may occasionally be a need to re-apply your customizations to an element newly updated by IBM, which may be hard to identify without doing a design comparison using a tool like Teamstudio Delta. If you've taken good notes about what your customizations were, it shouldn't be too hard to re-apply them, in which case knowing for sure that IBM has changed a given element is less important - just do it regardless.
I'd also want to emphasize that when giving your merged template a name (your Step 1), be absolutely sure that 1) the name is unique across your entire environment, and 2) if you ever take a "backup" of your merged template that you remember to erase the template name in the backup (which is the most common way of violating #1).
Posted by Kevin Pettitt At 01:07:25 On 09/27/2007 | - Website - |
- You never know if that "Prohibit Design Refresh" was intentionally or not, which is not a good situation for audits.
- You use replace design by accident or accidentally uncheck the "Prohibit Design Refresh" option and your changes are gone.
I've seen this happen over and over again, this is why I recommend to separate the elements. Relying on a checkbox to protect code you have written is rather fragile.
Posted by Stephan H. Wissel At 23:29:10 On 11/11/2007 | - Website - |
That way when you upgrade to the next version of Domino and a new pubnames.ntf comes along, you know which pieces you have modified and/or added. You can safely refresh design with the new template, and then make any customizations that you know you need to make.
Posted by David Killingsworth At 19:09:00 On 11/07/2007 | - Website - |