The present invention relates to a tool that dynamically builds form documents from templates provided to it from requesting applications. Specifically, the tool dynamically assembles form templates, which define form structure, from multiple other template files and also populates form templates with data items provided by the requesting applications.
Modern businesses commonly exchange various form documents as part of their ordinary operations. Forms include documents such as purchase orders, invoices, shipping statements and the like where the documents include a specific kinds of data (e.g., date, purchase order number, line items) are provided in predetermined spatial areas of a document. Not all forms are so regimented. Other documents that might be considered a “form” include firm letterhead documents in which header and footer areas may have a predetermined layout, including a firm logo or address information, but other areas of the document do not have specific structural constructs. Firm letters, press releases and contracts are examples of such forms.
The process of defining firm forms can be a time-consuming task. There are a variety of software tools available on the market which permit an author to define form styles and spatial arrangements that suit the author's needs. Common examples include Microsoft's Word or InfoPath application or the Adobe Form Designer application. Unfortunately, these tools require a form author to become trained on the form design techniques designed for each application. Further, the applications permit an author to define only one form at a time. Thus, work done to prepare a first form is not reusable during preparation of a second form. Further, such forms are not amenable for use with automated software applications, where the applications can define form structure and provide content for the forms in real time.
Accordingly, there is a need for a tool that defines form structures dynamically, during a run time environment of a calling application. Further, there is a need for such a tool that both builds form structure and populates the forms during run time. Finally, there is a need in the art for a tool that can render a populated form in any of a number of file formats and even can re-render a form in an alternate file format if a first file format ultimately proves to be inappropriate for a recipient's use.
Embodiments of the present invention provide an automated form generation service within a computer system that dynamically creates form templates from a plurality of template documents. The form generation service further may populate the form with dynamic content. The form generation service is a runtime service that may be called by another requesting application. Accordingly, efforts to design forms manually during application configuration time or runtime can be avoided.
According to an embodiment of the present invention, the form generator may generate a completed form template 140 from a merger of the master form template 110 and the dynamic form template 120. Root nodes from the dynamic form template 120 are compared to nodes from the master form template. If a match occurs, the corresponding node structure may be integrated with the master template node structure at the point where a match occurs. In the example illustrated in
Although the dynamic form template illustrates only a single node structure, the principles of the present invention may be extended to dynamic form templates in which multiple node structures are present. In such a case, there may be several root nodes defined therein. A comparison of each root node in the dynamic form template 120 may be made against nodes defined in the master form template 110 and, when matches occur, the corresponding node structures may be integrated as described above. Optionally, if no match occurs, the node structure(s) of the dynamic form template may be appended to the root node of master template.
Having assembled the rendered form structure 140, the form generation process may construct a rendered form 150 by populating form elements with dynamic content data 130. The dynamic content data 130 may include field labels, which correspond to some or all of the data elements defined in the node hierarchy of the form structure 140, and corresponding data to be used with those field labels.
According to an embodiment, the rendered form 150 may be rendered in a format as specified by a calling requestor. Typically, an adapter will be available for each of a predetermined number of formats, such as PDF forms, InfoPath forms, HTML forms and the like. To render the rendered form 150 in a desired format, it is sufficient simply to call an appropriate adapter. The rendered form 150 may be output from the form generator system to storage or to a communication system (not shown) for delivery to its ultimate recipient.
As the foregoing description demonstrates, the form generator process can dynamically assemble form structure and form content during a run time operation in a computer system. These embodiments of the present invention, therefore, can omit manual form definition steps which characterize prior form definition systems.
The form generator 200 may interface with various other software modules within a computer system. For example, in the context of enterprise management software systems, the form generator 200 may be provided in communication with contract management systems, billing system, marketing campaign systems, support and feedback systems, customer interaction systems and the like (represented as a “requester” in
The outbound adapter 230 may include multiple translation services to render the form in a specified file format. The file format to be output from the form generator 200 is specified in the service call. For example, it may be set expressly in the call request itself or, if the system operates according to a default file format, it may be set expressly only when it is desired to overrule the default settings. Upon receipt of a completed form structure from the merger unit 220, the outbound adapter invokes one of the format generators (e.g., 230.1) to render the form in the specified format. Thereafter, the electronic form may be output from the form generator 200.
Optionally, in another embodiment, the form generator 200 may include dedicated storage 250 for master and dynamic template objects 250.1, for dynamic content objects 250.2 and for rendered forms 250.3. By providing persistent storage for such items, such items need not be imported from a requesting agent anew for each service call where they are referenced. For example, when posting mass-produced invoices during a billing cycle, master form templates and dynamic form templates might be identical across several hundred batches of invoices. In such as case, it could be inefficient for the form generator 200 to import these data objects from the requestor's data store for every batch. These data items may be stored in the form generator's storage 250 for ready use.
Additionally, by storing completed form templates and dynamic content data in storage 250, the form generator may respond to requests from recipients of rendered forms for copies of the form in alternative format. Hypothetically, assume that a given form was rendered in PDF format according to an initial service request but ultimately that format was inappropriate for use by its recipient. In such a case, the form generator 200 may re-render the form in the alternate format by retrieving the completed templates and dynamic content data from its own storage 250 without requiring access to the requestor's data store.
As indicated, the operations of the foregoing embodiments may be extended to dynamic templates that include multiple root nodes. The present invention also extends to applications where there may be multiple template documents. One such example is illustrated in the flow diagram of
In this option, a completed template 440 may be generated from the master template 410, the intermediate template 420 and the base template 430. For example, the form generator may review root nodes of the base template 430 and compare them against node structures of the master and intermediate templates 410, 420, merging node structures where appropriate. In one embodiment, a node structure from the master template may be overwritten (or supplemented) by a node structure from a base template 430 where a matching node in the master template has subordinate node structure.
Operation of the method is recursive, root nodes of the intermediate template may be compared to nodes of the master template and node structures may be merged or added to the completed form template where appropriate. At the end of the recursive process, the completed template 440 may be generated as shown in
The processes of the foregoing embodiments may be performed by any number of processor based systems, such as computers, servers and mobile devices.
Several embodiments of the present invention are specifically illustrated and described herein. However, it will be appreciated that modifications and variations of the present invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention.
This application claims the benefit of priority afforded by provisional application Ser. No. 60/637,762, filed Dec. 22, 2004.
Number | Date | Country | |
---|---|---|---|
60637762 | Dec 2004 | US |