In this post I want to provide a few tips that have helped us to generate output in some pretty flexible ways.
1) Getting Appropriately Styled Headers In A Word Doc
Document Factory is the tool which uses a very simple set of commands in a word doc to iterate through your requirements and output them into Microsoft Word. Over time you will grow to love or hate document factory, but the reality is that while it may be difficult to bend to your will, it will generally let you produce the kind of documents that you want to produce.
One of the biggest issues that we have had is how to get doc factory to work with autonumbering. When we modified our existing requirements document templates to work with Document Factory and output the hierarchical numbers from CaliberRM, all of our items were numbered twice.
Plus it was impossible to get CaliberRM to use multiple header level styles. We ended up finding a macro on the Web that solves this problem. First you use a document factory template that labels the headers with special characters. Then you run the macro which parses the “.” in the hierarchical number and applies whatever style you want. This is actually a very quick process and allows you to use whatever styles/formatting you want to format your requirements document
2) Getting The Images To Actually Be In Your Document Rather Than Be Referenced By Your Document
When we first started using document factory we discovered that images were not by default stored in the document produced by CaliberRM. What would happen is that we would send the document to someone and all the images would be broken.
It turns out that document factory uses a command called MERGEFORMAT /d which only uses links to images not the images themselves. Joe wrote a messageboard post on the subject here.
The short of it is that you need to reveal codes with Alt-F9. Then do a global search and replace “MERGEFORMAT/d” for “MERGEFORMAT”. Hit Alt-F9 again to hide codes and then Ctrl-a to select the whole document. Then hit F9 to update all field codes. Save the document. The way we are sure that it has been updated is that the size of the document should be substantially larger.
3) Outputting A Subset Of The Requirements
If you select a requirement in the tree, then run document factory, document factory will give you the option to only generate requirements for the selected requirement and all its children. This is quite handy and we use it all the time.
More commonly though we use the requirements grid to filter a subset of requirements in the way we want and run document factory on those requirements.
4) Getting Tables Into Your Output
It turns out this is somewhat obscure. In document factory instead of using the BEGIN_SECTION and END_SECTION, you use BEGIN_ROW and END_ROW. Here is an example from a template that we actually use:
Sprint | Hierarchy | ID | Vers | Name | Priority | Status | Effort |
$BEGIN_ROW
$SORT{hierarchy} <<Release>> |
<<hierarchy>> | <<id_number>> | <<version>> | <<name>> | <<User Group Rating>> | <<status>> | <<Expected Effort>>
$END_ROW |
You can either copy the table into a .dot Word template, or you can download a sample word template
These are the most common ways of outputting in Borland CaliberRM. There are more advanced techniques as well that involve using the CaliberRM API. But we have found that these steps are good for most cases.
What tips and tricks have you found with Borland CaliberRM? Post your ideas below or put them on the messageboard at www.seilevel.com/messageboard.