|Publication number||US20050065936 A1|
|Application number||US 10/665,305|
|Publication date||Mar 24, 2005|
|Filing date||Sep 22, 2003|
|Priority date||Sep 22, 2003|
|Publication number||10665305, 665305, US 2005/0065936 A1, US 2005/065936 A1, US 20050065936 A1, US 20050065936A1, US 2005065936 A1, US 2005065936A1, US-A1-20050065936, US-A1-2005065936, US2005/0065936A1, US2005/065936A1, US20050065936 A1, US20050065936A1, US2005065936 A1, US2005065936A1|
|Original Assignee||Thomas Goering|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (9), Referenced by (31), Classifications (6), Legal Events (1)|
|External Links: USPTO, USPTO Assignment, Espacenet|
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
Electronic forms serve an integral role in organizing information flow for today's business applications. Such forms are widely used to manage and present business data for such enterprise business applications as Customer Relationship Management (CRM), Sales and Distribution (SD), Financial Accounting (FI) and Human Resources (HR). To reduce the amount of programming skills necessary for creating and maintaining these forms, development tools have been created to enable users to design the look-and-feel of business forms in a graphical environment without coding. One such tool is the Smart Forms Form Builder application provided by SAP AG, Walldorf, Germany.
The graphical user interface (GUI) of the currently available Smart Forms Form Builder tool is depicted in
The root nodes in navigation tree 100 are “Global Settings” and “Pages and windows”. “Global Settings” has three directly inferior nodes: “Form attributes”, “Form interface” and “Global definitions”. Upon selection of the “Form attributes” node, maintenance screen 110 enables the user to set attributes for the entire form, such as language attributes for the translation process, page format, style and default output settings. Upon selection of the “Form interface” node, maintenance screen 110 enables the user to define the parameter interface through which the form retrieves relevant application data from an application program. And upon selection of the “Global definitions” node, maintenance screen 110 enables the user to define variables and/or constants for use throughout the form.
“Pages and windows” has two directly inferior page nodes: “FIRST” and “NEXT”. Form painter 120 displays the directly inferior nodes of the “FIRST” page node, which include one graphic node (“MYSAPCOM”) and four window nodes (“MAIN”, “ADDRESS”, “INFO” and “FOOTER”). “MAIN” includes two text nodes (“INTRODUCTION” AND “GREETINGS”) and a table node (“TABLE”).
Once a form is created, it may be activated by clicking activation button 130, upon which the Smart Forms runtime system checks the form and automatically generates an ABAP function module (i.e., form output module) that can subsequently be called by an application program, for example, to create delivery notes in Sales and Distribution. The form output module processes the imported application-specific data and its form description data for presentation via spool (printer), fax, e-mail, web browser, etc. Since retrieval of application-specific data is performed by the application program and then passed to the form output module, a clean separation of the data retrieval processes is established from the form design processes so that only changes to the form layout or form logic are made in the form building application.
Currently, form building applications enable a limited type of reusability that allows a user to reuse simple text fields in forms. For example, suppose a user develops 100 different forms for company use, and each of the forms has an address node that includes a text field for the company's address. If the text field is reusable, then after all 100 forms have been activated, the user can change the company's address once at one location, and the change will automatically be incorporated into all 100 forms. This type of reusability is implemented by allowing text fields to be incorporated by reference into forms in such a way that the corresponding activated forms (i.e., form output modules) need only reference a text element from a central location during runtime.
Current form building applications do not, however, allow users to reuse form elements besides simple text fields. For example, suppose a user develops 100 different forms for company use, and each of the forms has the same subset of window nodes (e.g., nodes which establish a corporate identity). There is currently no way to change that subset of window nodes as a group without changing and reactivating each of the 100 forms. This is due to the fact that higher-level form elements cannot be merely incorporated by reference into form output modules, but rather must be generated into the output module.
Accordingly, there is a need in the art for a system and method for reusing higher-level form elements in a form building application.
Embodiments of the present invention provide for generating output modules in a form-based application runtime environment. According to one embodiment, a form manager receives an indication that a reusable form element has been changed, determines which output modules from a set of output modules are affected by the changed form element, and invalidates the affected output modules, and a runtime manager receives a request for an output module from the set of output modules and regenerates the requested output module if the requested output module has been invalidated.
Embodiments described below illustrate a form-based development and runtime environment within which the present invention may be implemented.
Input device 320 may include a keyboard, mouse, pen-operated touch screen, voice-recognition device, or any other device that accepts input. Output device 330 may include a monitor, printer, disk drive, speakers, or any other device that provides output.
Storage device 340 may include volatile and nonvolatile data storage, including one or more electrical, magnetic or optical memories such as a RAM, cache, hard drive, CD-ROM drive, tape drive or removable storage disk. Communication device 360 may include a modem, network interface card, or any other device capable of transmitting and receiving signals over a network. The components of client computing device 300 may be connected via an electrical bus or wirelessly.
Client software 350 may be stored in storage device 340 and executed by processor 310, and may include, for example, the client side of a client/server application such as a form building application like Smart Forms that embodies the functionality of the present invention.
Network link 415 may include telephone lines, DSL, cable networks, T1 or T3 lines, wireless network connections, or any other arrangement that implements the transmission and reception of network signals. Network 410 may include any type of interconnected communication system, and may implement any communications protocol, which may secured by any security protocol.
Server 420 includes a processor and memory for executing program instructions, as well as a network interface, and may include a collection of servers. In one particular embodiment, server 420 may include a combination of enterprise servers such as an application server and a database server. Database 440 may represent a relational or object database, and may be accessed via a database server.
Client computing device 300 and server 420 may implement any operating system, such as Windows or UNIX. Client software 350 and server software 430 may be written in any programming language, such as ABAP, C, C++, Java or Visual Basic. Server software 440 may be built on an enterprise application platform, such as SAP Web Application Server 6.2.
Within a form-based development and runtime environment as illustrated in
Form modeler 500 may include several components, such as form builder 515, form element builder 520 and form manager 525, that may implement particular functionality associated with the building and managing reusable form elements. Activation 505 may similarly include several components, such as name resolver 530 and generator 535, that may implement particular functionality associated with the identification and generation of reusable form elements for application programs. Application runtime 510 may include several components, such as application program 545, output module 550 and runtime manager 540, that may implement particular functionality associated with the calling of form output modules that include reusable form elements. Form modeler 500, activation 505 and application runtime 510 are all connected to some form of storage, such as database 440 or file system storage (local and/or remote).
According to this embodiment, form manager 525 tracks, for each form, the corresponding form output module and its validity. This tracking may be implemented through the use of a form record 600 data structure, as shown in
Form manager 525 also tracks, for each reusable form element, the existing forms that have incorporated that particular reusable form element through a type of form library membership. This tracking may be implemented through the use of a form element record 700 data structure, as shown in
Thus, as shown in
By doing this, runtime manager 540 can assure that application program 545 never calls an invalid output module, as shown in
Reusable Templates/Partial Forms
Reusable Form Interfaces
Several embodiments of the invention are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations of the 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.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US6651217 *||Sep 1, 1999||Nov 18, 2003||Microsoft Corporation||System and method for populating forms with previously used data values|
|US6968500 *||Apr 4, 2001||Nov 22, 2005||Dmitry Mikhailov||Automatic forms handling system|
|US20040205525 *||Apr 30, 2001||Oct 14, 2004||Murren Brian T.||Automatic identification of form contents|
|US20040205530 *||Jun 28, 2001||Oct 14, 2004||Borg Michael J.||System and method to automatically complete electronic forms|
|US20040268229 *||Jun 27, 2003||Dec 30, 2004||Microsoft Corporation||Markup language editing with an electronic form|
|US20050028084 *||Jul 27, 2004||Feb 3, 2005||Alan Dziejma||System and method for a form validation engine|
|US20050080756 *||Sep 29, 2003||Apr 14, 2005||Hitchcock Michael D.||Universal forms engine|
|US20050086587 *||May 14, 2003||Apr 21, 2005||Balz Christopher M.||System and method for presenting computerized interactive forms to respondents using a client-server-systems technology based on web standards|
|US20050183002 *||Feb 7, 2005||Aug 18, 2005||Frederic Chapus||Data and metadata linking form mechanism and method|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7530050||Mar 31, 2004||May 5, 2009||Fusionops||Method and system for developing software using nodes|
|US7584417 *||Nov 15, 2004||Sep 1, 2009||Microsoft Corporation||Role-dependent action for an electronic form|
|US7673227||Sep 16, 2004||Mar 2, 2010||Microsoft Corporation||User interface for integrated spreadsheets and word processing tables|
|US7676843||Jun 24, 2004||Mar 9, 2010||Microsoft Corporation||Executing applications at appropriate trust levels|
|US7689929||Feb 11, 2005||Mar 30, 2010||Microsoft Corporation||Methods and systems of providing information to computer users|
|US7692636||Sep 30, 2004||Apr 6, 2010||Microsoft Corporation||Systems and methods for handwriting to a screen|
|US7712022||Nov 15, 2004||May 4, 2010||Microsoft Corporation||Mutually exclusive options in electronic forms|
|US7712048||Jul 23, 2004||May 4, 2010||Microsoft Corporation||Task-sensitive methods and systems for displaying command sets|
|US7721190 *||Nov 16, 2004||May 18, 2010||Microsoft Corporation||Methods and systems for server side form processing|
|US7725834||Mar 4, 2005||May 25, 2010||Microsoft Corporation||Designer-created aspect for an electronic form template|
|US7743063||Jan 27, 2005||Jun 22, 2010||Microsoft Corporation||Methods and systems for delivering software via a network|
|US7774620||May 27, 2004||Aug 10, 2010||Microsoft Corporation||Executing applications at appropriate trust levels|
|US7779027||Sep 13, 2004||Aug 17, 2010||Microsoft Corporation||Methods, systems, architectures and data structures for delivering software via a network|
|US7818677||Aug 12, 2004||Oct 19, 2010||Microsoft Corporation||Single window navigation methods and systems|
|US7865477||Oct 15, 2007||Jan 4, 2011||Microsoft Corporation||System and method for real-time validation of structured data files|
|US7900134||Nov 8, 2006||Mar 1, 2011||Microsoft Corporation||Authoring arbitrary XML documents using DHTML and XSLT|
|US7904801||Dec 15, 2004||Mar 8, 2011||Microsoft Corporation||Recursive sections in electronic forms|
|US7913159||Mar 28, 2003||Mar 22, 2011||Microsoft Corporation||System and method for real-time validation of structured data files|
|US7925621||Jan 29, 2008||Apr 12, 2011||Microsoft Corporation||Installing a solution|
|US7937651||Jan 14, 2005||May 3, 2011||Microsoft Corporation||Structural editing operations for network forms|
|US8001459||Dec 5, 2005||Aug 16, 2011||Microsoft Corporation||Enabling electronic documents for limited-capability computing devices|
|US8271541 *||Sep 8, 2006||Sep 18, 2012||Fusionops Corporation||Method and apparatus for developing composite applications|
|US8296742 *||Oct 10, 2006||Oct 23, 2012||Microsoft Corporation||Automatic native generation|
|US20040193661 *||Mar 31, 2003||Sep 30, 2004||Prakash Sikchi||System and method for incrementally transforming and rendering hierarchical data files|
|US20040210822 *||May 4, 2004||Oct 21, 2004||Microsoft Corporation||User interface for integrated spreadsheets and word processing tables|
|US20040268229 *||Jun 27, 2003||Dec 30, 2004||Microsoft Corporation||Markup language editing with an electronic form|
|US20050005262 *||Mar 31, 2004||Jan 6, 2005||Mohan Ram P.||Method and apparatus for developing software|
|US20050044486 *||Sep 16, 2004||Feb 24, 2005||Microsoft Corporation||User interface for integrated spreadsheets and word processing tables|
|US20050055626 *||Oct 8, 2004||Mar 10, 2005||Microsoft Corporation||System and method for integrated spreadsheets and word processing tables|
|US20050183006 *||Feb 17, 2004||Aug 18, 2005||Microsoft Corporation||Systems and methods for editing XML documents|
|US20050187973 *||Feb 19, 2004||Aug 25, 2005||Microsoft Corporation||Managing XML documents containing hierarchical database information|
|U.S. Classification||1/1, 707/999.1|
|International Classification||G06F17/00, G06F17/24|
|Feb 12, 2004||AS||Assignment|
Owner name: SAP AKTIENGESELLSCHAFT, GERMANY
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GOERING, THOMAS;REEL/FRAME:014976/0941
Effective date: 20040119