Abstract:
Embodiments of the present invention address deficiencies of the art in respect to form value processing and provide a method, system and computer program product for smart completion of form values in a form. In a first embodiment of the invention, a data processing system for completing form data can include smart complete logic configured for coupling to a content server in a content distribution platform. The smart complete logic can include program code enabled to dispose a smart complete control element and a save control element in a form where the smart complete control element can include one or more selectable form value sets.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates to the field of form-based input and more particularly to the rapid completion of fields in a form.  
         [0003]     2. Description of the Related Art  
         [0004]     Form based input is the enabling technology which permits the widespread distribution of applications across generic client platforms such as the conventional content browser. In the modern context of Web based forms, a markup language defined interface can form the principal conduit through which end users can interact with backend application logic. Often configured in the form of a Web page, the interface can be provided to the content browser by a content server and can take the form either of a pre-defined static page, or a dynamically generated page. Form input fields can be positioned within the interface through which user input can be accepted and posted to the backend application logic for further processing.  
         [0005]     Completing a form can be of no consequence to the end user where only a few fields are to be completed. Even where the form is so complex as to include a multiplicity of fields across multiple pages like a tabbed notebook or wizard style form, completing the form can be of no consequence where the form is only to be completed occasionally. By comparison, where the fields of a form are to be completed repeatedly on many occasions, regardless of the number of fields in the form, the process can become tedious and inefficient.  
         [0006]     To account for these inefficiencies, technologies have been developed to persist common field entries for forms. In this regard, Web browsers often include an auto-completion feature in which a user is presented with the set of values previously entered for a given field that has focus, such as last name, first name, and address. Other technologies including the wholesale copying of existing form values into a duplicate set of form values from which modifications can be made to produce a new set of form values. Yet other technologies permit an end user to save the current state of a form so that the end user can complete the form at a later time. None, however, permit the reuse of field values when completing a new instance of a form.  
       BRIEF SUMMARY OF THE INVENTION  
       [0007]     Embodiments of the present invention address deficiencies of the art in respect to form value processing and provide a novel and non-obvious method, system and computer program product for smart completion of form values in a form. In a first embodiment of the invention, a data processing system for completing form data can include smart complete logic configured for coupling to a content server in a content distribution platform. The smart complete logic can include program code enabled to expose a smart complete control element and a save control element in a form where the smart complete control element can include one or more selectable form value sets.  
         [0008]     The smart complete control element further can include a configuration to invoke logic enabled to retrieve a selected one of the form value sets and to apply field values in the selected one of the form value sets to corresponding fields in the form. The smart complete control element further can include a configuration to invoke logic enabled to retrieve for use in a form instance for a first user, a selected one of the form value sets produced by a second user and to apply field values in the selected one of the form value sets to corresponding fields in the form. The save control element, by comparison, can include a configuration to invoke logic enabled to save a set of values for fields in the form to a form value set and to identify whether the value set should be available for any other users.  
         [0009]     In a second embodiment of the invention, a computer implemented method for completing form fields defined in a form can include presenting a list of form value sets for the form, selecting a form value set from amongst the form value sets in the list, and applying form field values in the selected form value set to corresponding fields in the form. The method further can include providing at least one value for a field in the form, and saving each value for each field in the form in a new form value set. The method yet further can include sharing the new form value set with another user. Finally, the method can include submitting the form over a data communications network.  
         [0010]     Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. 
     
    
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS  
       [0011]     The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:  
         [0012]      FIG. 1  is a pictorial illustration of a form configured for smart completion of form values;  
         [0013]      FIG. 2  is a schematic illustration of a content distribution system configured to distribute forms enabled for smart completion of form values in a form; and,  
         [0014]      FIG. 3  is a flow chart illustrating a process for smart completing form values in a form. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0015]     Embodiments of the present invention provide a method, system and computer program product for smart completion of form values in a form. In accordance with an embodiment of the present invention, form values for an instance of a form can be saved as a form set. Subsequently, the form values can be retrieved in a different instance of the form and applied to the fields of the different instance of the form. Once the values have been applied to the fields of the different instance of the form, the values can be modified or the values can be submitted without modification.  
         [0016]     In further illustration,  FIG. 1  is a pictorial illustration of a form configured for smart completion of form values. As shown in  FIG. 1 , a form  110  can be provided to include one or more fields  120  in which values can be specified. A submit control element  140  further can be provided such that the values for the fields  120  of the form  110  can be electronically transmitted in a message to a designated computing process. To that end, the form  110  can be a markup language specified construct as is well known in the art and can contain different types of fields such as a text field, a text area, one or more radio buttons, one or more check boxes, and the like.  
         [0017]     Notably, in the present invention, a smart complete control element  130  yet further can be included in the form  110  such that one or more previously saved sets of field values can be provided for selection. Specifically, a user can save the current fields and their values as a new form value set by selecting the new control element  150  from within the smart complete control  130 . The new control element  150 , when activated, can solicit from the user a name with which a user can distinguish the new form value set from other form value sets, and can trigger the execution of logic for capturing the values of the fields  120  and storing the values as a set of field values for the form  110 . Subsequently, when selected in the smart complete control  130 , a saved set of field values can be applied to the fields  120  of the form  110  without requiring the manual specification of a value for each of the fields  120  in the form  110 .  
         [0018]     In more particular illustration,  FIG. 2  is a schematic illustration of a content distribution system configured to distribute forms enabled for smart completion of form values in a form. The system can include a content distribution platform  210  communicatively coupled to one or more content consumption clients  220  over a data communications network  230 . The content distribution platform  210  can include a content server  250  configured to serve requested markup to requesting content browsers disposed within the content consumption clients  220 . In this regard, in an embodiment of the invention, the content server  250  can be a Web server configured for serving Web pages to requesting Web browsers. Alternatively, content distribution platform  210 , content consumption clients  220  and content server  250  can be contained within a single system in support of application user interface incorporating forms of this nature.  
         [0019]     Importantly, smart completion logic  300  can be coupled to the content server  250 . The smart completion logic  300  can include program code enabled to define a form  260  within markup. The form  260  can include a save control element configured to save form field values for a form  260  as a form value set  240 . The form  260  further can include a smart complete control element configured to present a listing of stored form value sets  240  which can be selectively applied to the fields of the form  260 . The presentation of the listing of stored form value sets  240  can include stored form value sets which have been defined by a user requesting the form  260 , or by other users.  
         [0020]     Referring now to  FIG. 3 , a flow chart is shown which illustrates a process for persisting form values in a form value set. Beginning block  310 , a user initiates an operation that results in a request for a form to be presented to them to input data. In decision block  320 , it can be determined whether or not a form has any form value sets already available. If so, in block  330 , a smart complete control can placed within the form which can provide the ability for a user to select an existing form value set by name. Finally, in block  340 , the resultant form can be rendered in a client browser through which an interacting user can provide values for the fields in the rendered form  
         [0021]     In block  350 , a user can initiate an action on the form to complete the form, or to save or retrieve a value set. In decision block  360 , if the user has requested that a value set be retrieved, in block  370  the name of the value set can be determined from the request and in block  380  the entire value set can be loaded and applied against the form. Subsequently, in block  390  the form can be rebuilt and displayed to the user. In decision block  400 , if the user has requested that a value set be saved, in block  410  the name of the value set can be determined from the request and in block  420 , the entire value set can be saved.  
         [0022]     Notably, in one aspect of the embodiment of the invention, the information persisted for a value set can include a name for the value set. Moreover, the information can include the name of the user if the form is presented from within a multi-user application. Yet further, a privacy flag can be included with the information which indicates whether the form value set is private to the originating user. Finally, for each field contained in the form value set, a field name and value can be persisted. In this way, when a form value set is retrieved, values can be applied against the form based on the name of the persisted fields. Subsequently, in block  390  the form can be rebuilt and displayed to the user in block  340 . Finally, if neither a save or get value set operation is determined, the form can be determined to have been completed and the form can be displayed to the user in block  340 .  
         [0023]     Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.  
         [0024]     For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W) and DVD.  
         [0025]     A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.