
(Something to tell the grand kids someday.)
Plotting the course. Refining the internal navigation system.

A new project hit my desk a few weeks ago. The project involves the enhancement of an existing Notes workflow application, adding on processes to the start and finish of the workflow process. One of the requirements is to create a PDF for archival as the final step. In order to save some money and learn some new techniques, I chose to look into using the Apache FOP project.
I learned a few things while building a proof of concept and wanted to share what I learned. At a high level, this approach will require some knowledge of Java agents and a little knowledge of XSL-FO. So if you're not already up to speed on these two areas, you might want to spend a little time with the following:
My original approach was to import the Jar files into the agent or a script library, but I ran into a few problems with this approach: even if you get your base directory lined up correctly for your classes to access the META-INF path, the Jars are too big to include and will throw a out of memory error. Although not ideal, you will need to put all the Jar files in the jvm/lib/ext directory of your Domino directory (or Notes directory if you're testing locally).
The rest is pretty straightforward:
Regarding setup, for testing you can run it locally on your workstation. Download the FOP binaries at the Apache site and extract the jar files to your notes/jvm/lib/ext directory. Sign the database and give that ID manager access and double-check that ID can run unrestricted agents. Right-click the ApacheFOP agent and select Run. If everything goes well and you haven’t changed anything, there should be a file in your C:\Temp directory called myfile.pdf. Once you know its working, go ahead and start customizing things to suit your needs.
Note: The code uses the UNID of the Simple.fo document that is inside the nsf, so you can open that document up in your Notes client and modify the XSL to make it custom for you.
There's alot of different things you can do within the FO, different approaches with Notes to build the FO, and different ways to process the resulting PDF (attaching, emailing, etc.). Hopefully this open source solution gives you some new options when it comes to incorporating PDFs into your Notes applications.
I've always said that people will work for much less, provided they're happy and they feel like they're a productive, contributing member of the team.At the same time, if you hear a lot of griping about salaries, you shouldn't look just at your system for paying people. One thing I've learned from experience is that happy, motivated employees who are doing work they love and feel they are being treated as adults don't gripe about money unless their pay is egregiously unfair. If you hear a lot of complaints about salaries, I suspect that's probably a manifestation of a much bigger disease: Your employees aren't deriving enough personal satisfaction from their work, or they are miserable for other reasons.
It takes a lot of salary to make up for a cruel boss or a prisonlike workplace. And rather than adjusting pay, you might choose to focus on some nonmonetary ways to make employees happy. Happy employees make better products and provide better customer service and will make your company successful and profitable. And success allows you to pay workers better. It's a virtuous circle, and it has worked for Fog Creek.
'Assume I have already built the NotesDocumentCollection called docCol
'and I have dimensioned two NotesDocument objects, curDoc & tmpDoc
Set curDoc = docCol.GetFirstDocument
For i = 1 to docCol.Count
If curDoc.SomeFlag(0) = 1 Then
Set tmpDoc = curDoc
Call docCol.DeleteDocument(tmpDoc)
End If
Set curDoc = docCol.GetNextDocument(curDoc)
NextUsing the temporary document allows you to not lose your reference to the current document in your collection.

