DocGen Custom Development - P90CA24


A Requirement was given to me to allow an E1 Users to tag RTF templates with tags that correspond to data from custom tables, upload the template into E1 and merge and generate an output PDF. (Basically a mail merge). This would be used to generate and print our Sales Contract document in the homebuilding industry.

While "main/primary" templates could be created ahead of time and available to the user, the users would need to create general addenda on the fly without any intervention from the developer, CNC, or analyst. The addenda would also have customer and contract specific information that would come from custom tables.

Last but not least, the user would have the ability to associate the template to a specific Area/Company/Branch or All locations so that only those templates that match the location they are transacting in would be available and used upon document generation.

Having developed in BI Publisher, I began to think about dynamic sub-templates being one possible solution, but I remembered the limitation with the "Import" command being a compile time command and limiting the ability to dynamically invoke sub-templates with XSL. This reality and the other challenges in light of the requirements made me realize BI Publisher was not the solution for this requirement.

An obscure row exit "Generate Proposal" exists in the Standard Sales Order functionality of E1 (P4210). The underlying function is DocGen. I researched it and couldn't find much information from a technical standpoint, so I embarked on my own mission to look at the code and research it myself. With some help from Oracle and our technical team members, I have customized DocGen (P90CA242 (Template Setup) and P90CA24 (Generation Wizard) to read our own custom tables and generate PDF output. The icing on the cake is that a media object is optionally created and associated with the Sales Order.

If anyone has interest in this functionality, I would agree to demo it. Based on the response I get from this post, I will determine if/when to demo.

If you have any general questions in the meantime, I'll do my best to answer them.