US20070168933A1 - System and method for generating user interface code - Google Patents

System and method for generating user interface code Download PDF

Info

Publication number
US20070168933A1
US20070168933A1 US10/046,389 US4638902A US2007168933A1 US 20070168933 A1 US20070168933 A1 US 20070168933A1 US 4638902 A US4638902 A US 4638902A US 2007168933 A1 US2007168933 A1 US 2007168933A1
Authority
US
United States
Prior art keywords
user interface
class
code
handler
developer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US10/046,389
Other versions
US7243334B1 (en
Inventor
Kenneth Berger
Larry Turner
Andrew Wilcox
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Epicor Software Corp
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US10/046,389 priority Critical patent/US7243334B1/en
Assigned to PRELUDE SYSTEMS, INC. reassignment PRELUDE SYSTEMS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TURNER, LARRY J., BERGER, KENNETH A., WILCOX, ANDREW E.
Priority to PCT/US2003/001030 priority patent/WO2003062946A2/en
Priority to AU2003205133A priority patent/AU2003205133A1/en
Priority to US11/825,703 priority patent/US20070261026A1/en
Application granted granted Critical
Publication of US7243334B1 publication Critical patent/US7243334B1/en
Publication of US20070168933A1 publication Critical patent/US20070168933A1/en
Assigned to ACTIVANT WHOLESALE DISTRIBUTION SOLUTIONS INC. reassignment ACTIVANT WHOLESALE DISTRIBUTION SOLUTIONS INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: PRELUDE SYSTEMS, INC.
Assigned to DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT reassignment DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT GRANT OF SECURITY INTEREST Assignors: ACTIVANT WHOLESALE DISTRIBUTION SOLUTIONS INC.
Assigned to ACTIVANT SOLUTIONS INC. reassignment ACTIVANT SOLUTIONS INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: ACTIVANT WHOLESALE DISTRIBUTION SOLUTIONS INC.
Assigned to ACTIVANT SOLUTIONS INC. (F/K/A PRELUDE SYSTEMS INC.), ACTIVANT SOLUTIONS INC. (F/K/A ACTIVANT WHOLESALE DISTRIBUTION SOLUTIONS INC.), ACTIVANT SOLUTIONS INC. reassignment ACTIVANT SOLUTIONS INC. (F/K/A PRELUDE SYSTEMS INC.) PATENT RELEASE Assignors: DEUTSCHE BANK TRUST COMPANY AMERICA, AS COLLATERAL AGENT
Assigned to ROYAL BANK OF CANADA, AS COLLATERAL AGENT reassignment ROYAL BANK OF CANADA, AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: ACTIVANT GROUP INC., ACTIVANT INTERNATIONAL HOLDINGS, INC., ACTIVANT SOLUTIONS INC., CRS RETAIL SYSTEMS, INC., EAGLE PARENT, INC., EGL HOLDCO, INC., EPICOR SOFTWARE CORPORATION, HM COOP, LLC, SPECTRUM HUMAN RESOURCES SYSTEMS CORPORATION
Assigned to EPICOR SOFTWARE CORPORATION reassignment EPICOR SOFTWARE CORPORATION MERGER (SEE DOCUMENT FOR DETAILS). Assignors: ACTIVANT SOLUTIONS INC.
Assigned to U.S. BANK NATIONAL ASSOCIATION reassignment U.S. BANK NATIONAL ASSOCIATION SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EPICOR SOFTWARE CORPORATION
Assigned to EPICOR SOFTWARE CORPORATION reassignment EPICOR SOFTWARE CORPORATION RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: ROYAL BANK OF CANADA
Assigned to JEFFERIES FINANCE LLC, AS COLLATERAL AGENT reassignment JEFFERIES FINANCE LLC, AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: EPICOR SOFTWARE CORPORATION
Assigned to KKR LOAN ADMINISTRATION SERVICES LLC reassignment KKR LOAN ADMINISTRATION SERVICES LLC SECOND LIEN SECURITY AGREEMENT Assignors: EPICOR SOFTWARE CORPORATION
Assigned to KKR LOAN ADMINISTRATION SERVICES LLC reassignment KKR LOAN ADMINISTRATION SERVICES LLC NOTICE OF SUCCESSION OF AGENCY Assignors: JEFFERIES FINANCE LLC
Assigned to U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT reassignment U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EPICOR SOFTWARE CORPORATION
Assigned to EPICOR SOFTWARE CORPORATION reassignment EPICOR SOFTWARE CORPORATION RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Assigned to EPICOR SOFTWARE CORPORATION reassignment EPICOR SOFTWARE CORPORATION TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (SECOND LIEN) Assignors: KKR LOAN ADMINISTRATION SERVICES LLC
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting

Definitions

  • the present invention pertains to the field of software code generation. More specifically, the invention relates to a system and method for generating software code that generates a user interface when executed that allows a user to readily select the features and states of the user interface.
  • Systems for generating computer code are known in the art. For example, it is known to use “components” in object oriented software programming for generating server-based software that generates graphic user interfaces, performs server-based functions for processing of data, or that performs other suitable functions.
  • object oriented software programming for generating server-based software that generates graphic user interfaces, performs server-based functions for processing of data, or that performs other suitable functions.
  • the impetus behind these systems has been to simplify the creation of computer code and to make such computer code easy to modify and update.
  • a system and method for generating software are provided that overcome known problems with systems and methods for generating software.
  • a system and method for generating software are provided that use client-based graphic user interfaces to reduce server processing requirements for generating user interfaces, and that use a layered approach to accommodate the use of modifications to prior releases of code with new releases of code.
  • a system for generating user interface code is provided.
  • the system generates a user interface class and a handler class.
  • the user interface class includes two or more user interface features that can be assembled into a user interface by an operator, such as field entry prompts and data display fields.
  • the handler class includes one or more states for each user interface feature of the user interface class, such as to navigate through the field entry prompts and data display fields.
  • the present invention provides many important technical advantages.
  • One important technical advantage of the present invention is a system and method for generating and executing code that provides user interface code which operates on a local client, such that user interfaces do not need to be generated or solely executed by a server. In this manner, server loading for generation and execution of user interfaces is minimized, which allows the distribution of code execution functions and permits the server to be used for other data processing functions.
  • the present invention provides for layered modification functionality, so that a code release can be modified in one or more layers and so that such layers will be compatible with new releases of the code.
  • FIG. 1 is a diagram of a system for generating user interface code in accordance with an exemplary embodiment of the present invention
  • FIG. 2 is a diagram of a system for providing code editing functionality in accordance with an exemplary embodiment of the present invention
  • FIG. 3 is a diagram of a system for providing user interface classes in accordance with an exemplary embodiment of the present invention.
  • FIG. 4 is a diagram of a system for providing user interface states for corresponding user interface classes in accordance with an exemplary embodiment of the present invention
  • FIG. 5 is a flowchart of a method for generating code in multiple layers in accordance with an exemplary embodiment of the present invention
  • FIG. 6 is a flowchart of a method for generating primary code in accordance with an exemplary embodiment of the present invention.
  • FIG. 7 is a flowchart of a method for adding a layer of code to previously generated code in accordance with an exemplary embodiment of the present invention.
  • FIG. 1 is a diagram of a system 100 for generating user interface code in accordance with an exemplary embodiment of the present invention.
  • System 100 allows primary software code packages for generating a user interface to be prepared by a user of the system, such as a program developer, by using predetermined user interface classes having predetermined states, and also provides a layered structure such that developers can modify code and can provide site-specific code modifications that will be compatible with future releases of primary code.
  • System 100 includes code generator system 102 , which can be implemented in hardware, software, or a suitable combination of hardware and software, and which can be one or more software systems operating on a general-purpose server platform.
  • a software system can include one or more objects, agents, lines of code, threads, subroutines, databases, application programming interfaces (APIs), web browser plug-ins, or other suitable data structures, source code (human readable), object code (machine readable), and can include two or more different lines of code or suitable data structures operating in two or more separate software applications, on two or more different processing platforms, or in other suitable architectures.
  • a software system can include one or more lines of code or other suitable software structures operating in a general purpose software application, such as an operating system, and one or more lines of code or other suitable software structures operating in a specific purpose software application.
  • a software system can be implemented as a distributed software system, on a different processing platform than that shown in the exemplary embodiments herein, or in other suitable manners.
  • Code generator system 102 includes primary code generator 104 , developer code generator 106 , and site-specific code generator 108 , each of which can be used in a centralized location or distributed as separate components to locations as needed.
  • Primary code generator 104 includes one or more primary code generation modules, such as code generation modules that create software code that generates a user interface.
  • primary code generator 104 includes user interface class system 110 and handler class system 112 .
  • User interface class system 110 generates user interface class code.
  • Handler class system 112 generates the handler class code.
  • the user interface class code can include one or more user interface classes, such as data input classes, report generation classes, order processing classes, or other suitable classes for processing data.
  • the classes of the user interface class code each have a corresponding set of available states in the handler class code. This corresponding set of states includes the progression states available for implementing the features of user interface class code.
  • the features provided by user interface class system 110 and the states provided by handler class system 112 allow a user to select features and define states for a user interface, and then generate software code that implements the user interface.
  • user interface class system 110 can generate a data entry class, such as a customer account data entry class.
  • the customer account data entry class can include one or more data entry features that may be required to define a customer account, such as a customer name, customer address, customer account number, shipping address, contact name and address, and other suitable data.
  • User interface class system 110 allows a user to select from available classes, such as the customer account entry class, and to view the available features, components and functions performed by the class.
  • User interface class system 110 allows a user to determine the available options, how to access and utilize the options, and otherwise allows the user to design user interface screens for use in receiving data from a user and presenting data to the user.
  • handler class system 112 allows the user to structure the states of the user interface screens in a suitable manner.
  • handler class system 112 is coupled to user interface class system 110 and can allow the user to select the state progression for a user interface.
  • the term “couple,” and its cognate terms such as “couples” and “coupled,” can include a physical connection (such as through a copper conductor), a virtual connection (such as through randomly assigned memory locations of a data memory device), a logical connection (such as through one or more logical devices of a semiconducting circuit), other suitable connections, or a suitable combination of such connections.
  • systems and components are coupled to other systems and components through intervening systems and components, such as through an operating system of a general purpose server platform
  • Handler class system 112 can receive selections of features, components, options or functions that have previously been selected using user interface class system 110 , and can prompt the user to indicate one or more states, and the corresponding features, components, options, or functions that should be activated at each state. For example, a user can first create an account setup screen using user interface class system 110 having an account name entry function, an account address entry function, and a contact name entry function. The user can then sequence the states of the account setup screen so that the account name entry function occurs in a first state, the account address entry function occurs in a second state, and the contact name entry function occurs in a third state. Likewise, associated function states, such as a lookup function for finding a state or business entity, can be provided through handler class system 112 . In this manner, a user can define a sequence of states for a user interface screen that includes the performance of various functions, prompting for data fields, display of data fields, or other suitable states.
  • user interface class system 110 and handler class system 112 can provide the components, options, and states required to interface with a server system, such as that disclosed in U.S. Pat. No. 09/689,067, entitled “System and Method for Enterprise Resource Management,” filed Oct. 12, 2000, which is hereby incorporated by reference for all purposes.
  • the interface system with the server will have predetermined data field and functions, such that the user interface code will have to provide an interface to these data fields and functions.
  • the present invention thus provides a programming environment that allows user interface software to be generated, for modifications to that user interface to be readily made, and for new releases of the user interface code to be compatible with such modifications. In this manner, the need to modify the server software to provide additional user interface functionality is minimized, and the corresponding use of server resources to generate or execute user interfaces is also minimized.
  • Developer code generator 106 also includes a user interface class system 114 and handler class system 116 , both of which interface with code generated by primary code generator 104 .
  • primary code generator 104 generates code that allows a developer to generate additional code for modifying the code generated through primary code generator 104 .
  • a developer can use developer code generator 106 to modify user interface selections using user interface class system 114 , and to modify states using handler class system 116 .
  • a developer can receive code for a software application that has been generated by primary code generator 104 , and can determine that additional user interface features or states are required for the developer's application. The developer can then use developer code generator 106 to modify the code generated by primary code generator 104 , such as by selecting additional user interface features through user interface class system 114 and by providing states for those new user interface features, by editing existing user interface features to modify the user interface features using user interface class system 114 , or by using handler class system 116 to modify the existing states of an existing user interface feature or of a new user interface feature. In this manner, the developer can take an existing release of code from primary code generator 104 , and can modify the code in a manner that allows user interface features and states to be customized for a business, a group of businesses, the developer's clientele, or other suitable purposes.
  • the code generated through developer code generator 106 is compatible with new code generated by primary code generator 104 .
  • primary code generator 104 can be used to generate an accounts receivable system, such as one having cash receipts chargeback invoice user interface screens, cash receipts inquiry batch details user interface screens, cash receipts inquiry customer payment details interface screens, and other suitable accounts receivable features.
  • Developer code generator 106 can receive the accounts receivable code generated by primary code generator 104 , and can modify the code to provide additional user interface features such as to select additional access and utilization options, provide additional data entry or display states, or to otherwise modify the functionality of the code generated by primary code generator 104 .
  • Developer code generator 106 then generates developer code that supplements, interacts with, modifies, or overrides the code generated by primary code generator 104 .
  • primary code generator 104 If additional user interface functionality, access utilization features, states, or other suitable modifications are made through primary code generator 104 , the code generated through primary code generator 104 will interface with the code previously generated by developer code generator 106 , regardless of any modifications made to existing user interfaces or states. In this manner, the code generated by developer code generator 106 will be compatible with the code generated by primary code generator 104 for new features or states.
  • primary code generator 104 may generate code that creates an accounts receivable user interface screen having a customer entry field as the first state, and the developer code generator 106 can generate code that modifies the first state to request an account number instead of or in addition to the customer entry field. Subsequently, primary code generator 104 can generate a new release of code that provides a customer lookup function instead of a customer entry function as the first state.
  • the code generated by developer code generator 106 would replace the customer lookup function with the account number entry function previously generated, such that any modifications to code generated by primary code generator 104 in the new release will be compatible with code previously generated by developer code generator 106 .
  • the new release of the primary code with the existing developer code would result in a first state that provides a customer lookup function, and a second state that requests an account number instead of or in addition to the customer entry field.
  • site-specific code generator 108 allows a programmer to perform site-specific modifications to code that has been modified by developer code generator 106 .
  • site-specific code generator 108 receives the code generated by primary code generator 104 and developer code generator 106 , and allows a user to provide additional user interface features and states or modifications to current user interface features and states.
  • Such site-specific code is backwards compatible with developer code and primary code in the manner previously described, such that any modifications to the code by a user of primary code generator 104 and developer code generator 106 will be compatible with code previously developed using site-specific code generator 108 .
  • Site-specific code generator 108 includes a user interface class system 118 and handler class system 120 , both of which are capable of displaying the primary code and developer code user interfaces and states, and other available user interfaces and states, such that a user can provide different user interface and state functionality. In this manner, site-specific code modifications created for use with a first version of code generated by primary code generator 104 and developer code generator 106 will be compatible with a subsequent version of code generated by primary code generator 104 and developer code generator 106 , without additional developer interaction.
  • system 100 allows users to develop code in a manner that allows new releases of code to be provided that are compatible with modifications made to earlier versions of code.
  • the code generated by system 100 is user interface code, but system 100 can also be used with code that operates on a server, such as database access code, communications code, or other suitable server-based code.
  • user interface class systems 110 , 114 , and 118 could be replaced with other suitable systems, such as database access systems, and handler class systems 112 , 116 , and 120 could be replaced with other state engines, such as state engines based on database access functions.
  • the user interface code can be generated on a client for use in a client-server environment where the server software does not have to generate user interfaces.
  • server interface functionality can be defined in advance, and modifications to user interfaces can be made that do not require modification of server functionality, thus reducing the need for revising server software and also reducing the server processor resources required for interfacing with users.
  • FIG. 2 is a diagram of a system 200 for providing code editing functionality in accordance with an exemplary embodiment of the present invention.
  • System 200 allows code to be edited at the primary code generator, developer code generator, site-specific code generator, or other suitable locations so as to provide backwards compatibility in a layered code generation architecture, such as for generation of user interface code.
  • System 200 includes code editor system 202 , option availability system 204 , access and utilization system 206 , and state engine selection system 208 , each of which can be implemented in hardware, software, or a suitable combination of hardware and software, and which can be one or more software systems operating on a general-purpose server platform.
  • Code editor system 202 allows a user to review available feature classes and associated handler classes, and to assemble the feature classes and handler classes into a user interface or other suitable software systems.
  • code editor system 202 can be implemented with a development environment for software, such that a user can generate code, perform code testing, and release the code for use in a single environment.
  • Option availability system 204 provides detailed information on components or options that are available for each feature class.
  • option availability system 204 can use a set of classes called shadow objects that define how the components or options can be used. Coding standards for available option or component selections can be defined within the shadow object, such that the code generated by option availability system 204 adheres to a strict set of standards.
  • an object-oriented application can be provided where the definition of the objects that will be created is provided in a framework component, such that option availability system 204 can be used to produce multiple frameworks for use in different applications.
  • option availability system 204 can display the configuration of an existing release of code having one or more layers, and can allow the user to make changes to the existing release of code that will be compatible with new releases of code, such as by mapping the modifications made at each previous layer and interfacing any modifications made by the user at the present layer to the appropriate prior layer.
  • Access and utilization system 206 provides information on the way that code will be generated for accessing and utilizing components and options of a feature class. In this manner, coding standards can be defined such that the code generated by access and utilization system 206 adheres to a strict set of standards.
  • an object-oriented application can be provided where the code for accessing and utilizing the objects that will be created is provided in a framework component, such that access and utilization system 206 to be used to produce multiple frameworks for use in different applications.
  • Access and utilization system 206 can also display the configuration of an existing release of code having one or more layers, and can allow the user to make changes to the existing release of code that will be compatible with new releases of code, such as by mapping the modifications made at each previous layer and interfacing any modifications added by the user at the present layer to the appropriate prior layer.
  • State engine selection system 208 allows a user to sequence states for feature classes.
  • the components or options that are available or that have been selected for a feature class can be displayed in a graphic user interface, and the components or options that are to be activated for a particular state can be selected by the user.
  • State selection engine 208 then generates the code that is needed to implement the state changes.
  • State engine selection system 208 can also display the state configuration of an existing release of code having one or more layers, and can allow the user to make changes to the states of the existing release of code that will be compatible with new releases of code, such as by mapping the modifications made at each previous layer and interfacing any modifications added by the user at the present layer to the appropriate prior layer.
  • system 200 allows an operator to generate code at the primary code generator 104 stage, such as to create a software package for performing predetermined functions, such as accounts payable, accounts receivable, general ledger, or other suitable functions.
  • System 200 can also be implemented at a developer stage, a site-specific stage, or in other suitable layers, such as when an enterprise is customizing the software code for use at the enterprise level, or when a consultant is configuring the code for use in its consulting practice, or in other suitable configurations.
  • system 200 allows components, options, and states of feature classes to be selected and modified so as to allow a user to configure software in a suitable manner, but does not prevent the user from further modifying the software to accommodate specific needs of sites or enterprises or other suitable entities.
  • system 200 allows backwards-compatible changes to be made, so that any lower layers of code modifications to a release of code will be compatible with subsequent releases of the code.
  • FIG. 3 is a diagram of a system 300 for providing user interface classes in accordance with an exemplary embodiment of the present invention.
  • System 300 includes user interface class system 302 and 14 exemplary classes that will be defined in greater detail herein.
  • User interface class system 302 provides predetermined user interface classes, where each class further comprises options and components that can be adjusted or selected by a user.
  • system 200 can be used to assemble a user interface for a program in conjunction with user interface class system 302 .
  • Additional classes can be added to user interface class system 302 , such that the new classes will be backwards-compatible with any code generated at lower levels, such as at the developer code generator 106 level or site-specific code generator 108 level of system 100 .
  • Accounts payable user interface class 304 includes one or more classes for generating accounts payable user interfaces.
  • the following accounts payable user interface classes can be provided with accounts payable user interface class 304 :
  • Accounts Payable Check Inquiry Accounts Payable Check Number Lookup Accounts Payable Check Run General Ledger Distribution Line Item Subpanel General Ledger Distribution Subpanel Invoice Number Lookup Manual Check Entry Manual Invoice Batch Subpanel Manual Invoice Subpanel Manual Vendor Invoice Entry Multiple Receiver Number Subpanel Payment Selection And Processing Single Receiver Number Subpanel Variance Recost Subpanel Vendor Invoice Reconciliation Maintenance Voided Check Entry
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • accounts payable user interface class 304 can allow a user to select an accounts payable check inquiry user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for an accounts payable check inquiry class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • sequence of code development events can be supported to allow code to be easily modified for uses at different layers and to allow such modifications to be backwards-compatible with new releases of code at higher layers:
  • a primary code package can be prepared from an accounts payable user interface class that has an accounts payable check inquiry user interface, an accounts payable check number lookup user interface, and an accounts payable check run user interface.
  • a developer for an enterprise may decide to add a general ledger distribution line item subpanel user interface and a general ledger distribution subpanel user interface, and to delete the accounts payable check run user interface.
  • a second developer for a site-specific application may decide to add an invoice number lookup user interface, to delete the item subpanel user interface added by the first developer, and to reinstate the accounts payable check run user interface that was deleted by the first developer.
  • the primary code package can be modified to include an additional user interface, such as manual check entry, to delete a user interface, or to provide additional functionality to an existing user interface.
  • the new primary code package can then be released, and will be compatible with the developer code package and site specific code package without subsequent modification.
  • classes of system 300 can be added, deleted, or modified as needed at each layer, and any subsequent modifications to code at higher layers will be compatible with the existing additions, deletions or modifications that were previously made at lower layers.
  • Accounts receivable user interface class 306 includes one or more classes for generating accounts receivable user interfaces.
  • the following classes can be provided with accounts receivable user interface class 306 : Cash Receipts Charge Back Invoices Cash Receipts Inquiry Batch Details Cash Receipts Inquiry Customer Payment Details Cash Receipts Inquiry Cash Receipts Invoice Detail Header Subpanel Cash Receipts Invoice Header Information Subpanel Cash Receipts Misc Amounts Cash Receipts Customer Lookup Multiple Search Criteria Manual Invoice Entry Print Order Invoices Order List Print Order Invoices
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • accounts receivable user interface class 306 can allow a user to select a cash receipts charge back invoices user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • General ledger user interface class 308 includes one or more classes for generating general ledger user interfaces. In one exemplary embodiment, the following classes can be provided with general ledger user interface class 308 : Analysis Code Maintenance Extra Analysis Code Maintenance Bank Code Lookup Bank Maintenance Close Period Close Year COA Maintenance COA Maintenance Panel Exchange Rate Maintenance Exchange Rate Type Maintenance Exchange Rate Type Mapping External Bank Account Maintenance Fiscal Calendar Beginning And Ending Date Subpanel Fiscal Calendar Fiscal Year Subpanel Fiscal Calendar Maintenance Line Item Subpanel Fiscal Calendar Maintenance Fiscal Calendar Radio Button Subpanel Fiscal Period Lookup Fiscal Period Maintenance Line Item Subpanel Fiscal Period Maintenance Fiscal Year Maintenance General Ledger History Inquiry GL Balance Inquiry GL Map Definitions Panel GL Mapping Maintenance GL Mapping Panel GL Posting Combination GL Table Maintenance Internal Bank Account Maintenance Internal Bank Account Maintenance GL Subpanel Journal Entry Line Items Subpanel Journal Entry Lookup Journal Entry Revalue Currency
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • general ledger user interface class 308 can allow a user to select an analysis code maintenance user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Global user interface class 310 includes one or more classes for generating user interface features having global applicability.
  • the following classes can be provided with global user interface class 310 : Business Partner Address Panel Business Partner Info Panel Business Partner Ledger Panel Calendar Maintenance Panel Client Policy Selection Code File Maintenance Code File Panel Comments Subpanel Company Maintenance Calendar Panel Company Maintenance Context Help Criteria Subpanel Currency Maintenance Customer Maintenance Customer Part Number Maintenance Customer Search Customer Ship To Maintenance Customer Specific Dialog Message Format Subpanel Freight Terms Fields Key Word Maintenance Locale Code Panel Menu Help Number Series Sub Policy Selection Product Search Rebuild Key Words Search Create Dialog Ship To General Panel Ship Via Fields User Maintenance Defaults User Maintenance Duties User Maintenance Security User Maintenance User Message Vendor Maintenance Vendor Search Vendor Ship From Maintenance Workflow Inquiry Workflow Unit Details
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • global user interface class 310 can allow a user to select a business partner address panel user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Inventory control user interface class 312 includes one or more classes for inventory control user interfaces. In one exemplary embodiment, the following classes can be provided with inventory control user interface class 312 : Backorder Allocation Inventory Adjustment Line Items Inventory Adjustment Inventory Adjustment History Inquiry Inventory Inquiry Location Controlled Warehouse Maintenance Location Entry Dialog Location Entry Line Panel Location Lookup Lot Entry Dialog Lot Entry Line Panel Lot Location Entry Dialog Lot Location Entry Line Panel Lot Location Entry Dialog Lot Location Entry Line Panel Lot Lookup New Product Dialog Physical Inventory Build List Physical Inventory Display List Physical Inventory Entry Physical Inventory Print List Physical Inventory Update Pick Confirmation Entry Buttons Pick Confirmation Entry Header Pick Confirmation Entry Line Buttons Pick Confirmation Entry Line List Pick Confirmation Entry Line Main Pick Confirmation Entry Line Pick Confirmation Entry Print Pick Tickets Maintenance Product Lot Number Inquiry Product Maintenance Cost Panel Product Maintenance Product References Accessories Subpanel Product References Alternates Subpanel Product References Keywords Subpanel Product References Substitutes Subpanel Product References UCC Subpanel Product Serial Number Inquiry Product Stock Location Inquiry Product Warehouse Availability Inquiry Putaway Document Quantity Receive
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • inventory control user interface class 312 can allow a user to select a backorder allocation user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Order common user interface class 314 includes one or more features for generating order common user interfaces.
  • the following classes can be provided with order common user interface class 314 : Freight Detail Entry Freight Detail Tracking Entry Freight Entry Dialog Freight Entry Standalone OC Entry Buttons OC Entry Header Control OC Entry Header Financial OC Entry Header Import OC Entry Header Miscellaneous OC Entry Header Miscellaneous Warehouse OC Entry Header Notes OC Entry Header Primary OC Entry Header Taxes OC Entry Header User OC Entry Line Buttons OC Entry Line Control OC Entry Line Costing OC Entry Line Info OC Entry Line Notes OC Entry Line Product OC Entry Line Purchasing OC Entry Line Quantity Break OC Entry Line User OC Entry Line Vendor OC Receive Options Panel OC Receive Options OC Tax Jurisdiction Entry Panel Order Log Inquiry Document Lookup Product Price Maintenance Product Price Pricing Panel Product Price Quantity Breaks Panel Product Price Shipping Warehouse Prompt Tax Jurisdiction Lookup Tax Jurisdiction Maintenance
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • order common user interface class 314 can allow a user to select a freight detail entry user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Purchase order user interface class 316 includes one or more features for generating purchase order user interfaces.
  • the following classes can be provided with purchase order user interface class 316 : Purchase Order Entry Header Detail Purchase Order Entry Header Main Purchase Order Entry Header Purchase Order Entry Line Header Purchase Order Entry Line List Purchase Order Entry Line Main Purchase Order Entry Line Quantity Purchase Order Entry Line Purchase Order Entry Purchase Order Inquiry Line Purchase Order Inquiry Lookup Purchase Order Inquiry Purchase Order Shipping Warehouse Prompt Purchase Order Log Inquiry Purchase Order Number Lookup Purchase Order Print
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • purchase order user interface class 316 can allow a user to select a purchase order entry header detail user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Report user interface class 318 includes one or more features for generating report user interfaces.
  • the following classes can be provided with report user interface class 318 : Object Oriented SQL Report Option Dialog Object Oriented SQL Report Schedule Subpanel
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • report user interface class 318 can allow a user to select an object oriented SQL database report option dialog user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Shipping order user interface class 320 includes one or more features for generating accounts payable user interfaces.
  • the following classes can be provided with shipping order user interface class 320 : Customer Price Availability Customer Pricing Subpanel Customer Price Availability Inquiry Customer Price Availability Product Pricing Subpanel Point Of Sale Customer Info Point Of Sale Entry Header Point Of Sale Entry Line Point Of Sale Entry Print Acknowledgements Quotation Entry Buttons Quotation Entry Header Detail Control Quotation Entry Header Detail Quotation Entry Header Quotation Entry Line Detail Notes Quotation Entry Line Header Quantity Quotation Entry Line Header Quotation Entry Line Main Quotation Entry Line Quotation Entry Middle Quotation Entry Quotation Inquiry Line Quotation Inquiry Lookup Quotation Inquiry Quotation Log Inquiry Sales Order Entry Lookup Sales Order Log Inquiry Shipping Order Entry Buttons Shipping Order Entry Completion Panel Shipping Order Entry Header Detail Address Shipping Order Entry Header Detail Control Shipping Order Entry Header Detail Financial Shipping Order Entry Header Detail Notes Shipping Order Entry Header Detail Primary Shipping Order Entry Header Detail
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • shipping order user interface class 320 can allow a user to select a customer price availability customer pricing subpanel user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Utility user interface class 322 includes one or more classes for generating accounts payable user interfaces.
  • the following classes can be provided with utility user interface class 322 : Add Cancel Delete Dual Subpanel BT Addresses Panel BT Address Panel BT Debug BT Language BT Results Dialog BT Search Table Calendar Lookup Menu Maintenance OK Cancel Subpanel Reference Language Maintenance Security Group Maintenance Extra Security Group Maintenance Submit Suspend Button Subpanel
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • utility user interface class 322 can allow a user to select a reference language maintenance user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Ledger common user interface class 324 includes one or more classes for generating ledger common user interfaces, such as for accounts receivable and accounts payable.
  • the following classes can be provided with ledger common user interface class 324 : Aging Detail Inquiry Business Partner Invoice Number Lookup Invoice Inquiry Ledger Type Maintenance Payment Method Maintenance Extra Payment Method Maintenance Payment Terms Days Sub Payment Terms Detail Middle Sub Payment Terms Detail Sub Payment Terms Fixed Day Of Month Sub Payment Terms Installment Sub Payment Terms Maintenance Payment Terms Specific Date Sub
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • ledger common user interface class 324 can allow a user to select a business partner invoice number lookup user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Test user interface class 326 includes one or more classes for generating test user interfaces. In one exemplary embodiment, the following classes can be provided with test user interface class 326 : Message Tester Time Sheet
  • test user interface class 326 can allow a user to select a message user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Template user interface class 328 includes one or more classes for generating template user interfaces. In one exemplary embodiment, the following classes can be provided with template user interface class 328 : Report Maintenance Field Subpanel Report Maintenance
  • test user interface class 328 can allow a user to select a report maintenance user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Sales analysis user interface class 330 includes one or more classes for generating sales analysis user interfaces. In one exemplary embodiment, the following classes can be provided with sales analysis user interface class 330 : Customer Product Inquiry Product Sales History Inquiry
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components.
  • sales analysis user interface class 330 can allow a user to select a customer product inquiry user interface class having predefined standards on how the options or components of the class can be used.
  • coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • system 300 allows a user interface to be configured using existing feature classes having predefined features and components.
  • Each class of system 300 is implemented in a layered approach, so as to allow code to be generated in layers with backwards compatibility, such that when new versions of classes or code are available, such new versions will be compatible with any modifications implemented at the second, third, or other software layers.
  • FIG. 4 is a diagram of a system 400 for providing user interface states for corresponding user interface classes in accordance with an exemplary embodiment of the present invention.
  • System 400 includes handler class system 402 and 14 exemplary handlers that provide user interface states as defined in greater detail herein.
  • Handler class system 402 provides predetermined user interface class states, where each state can be selected to provide the options and components of the user interface class in a user-selected order.
  • system 200 can be used to assemble a user interface for a program in conjunction with user interface class system 302 and handler class system 402 . Additional handlers can be added to user interface class system 402 , such that the new states will be backwards-compatible with any code generated at lower levels, such as at the developer code generator 106 level or site-specific code generator 108 level of system 100 .
  • Accounts payable handler class 404 provides one or more states for an accounts payable user interface.
  • each of the accounts payable user interface classes provided with accounts payable user interface class 304 can include two or more states where a user, such as a developer, developer code generator, other code generator or other suitable user, can select which options or components are to be activated for a particular state.
  • Accounts payable handler class 404 permits the navigation of the user interface through the selected states and can also indicate unallowed states or state progressions.
  • accounts payable handler class 404 allows a developer to select states for an accounts payable check inquiry user interface class, so as to permit a desired state progression based upon data entered or other actions taken by a user of the user interface generated by an accounts payable check inquiry user interface generated using accounts payable handler class 404 .
  • a primary code package can be prepared from an accounts payable user interface class that has an accounts payable check inquiry user interface progressing through 4 states.
  • a developer for an enterprise may decide to add a fifth state, and to delete a third state of the accounts payable user interface class.
  • a second developer for a site-specific application may decide to add a sixth state to the accounts payable user interface class, to delete the fifth state added by the first developer, and to reinstate the third state that was deleted by the first developer.
  • the primary code package can be modified to include a seventh state after the fourth state, to delete one of the four states, or to modify one of the four existing states.
  • the new primary code package can then be released, and will be compatible with the developer code package and site specific code package without subsequent modification
  • Accounts receivable handler class 406 allows a user, such as a developer, developer code generator, other code generator or other suitable user, to select two or more states and the relationship between the selected states for an accounts receivable user interface.
  • system 200 can be used to assemble a user interface for a program in conjunction with user interface class system 302 and handler class system 402 . Additional handlers can be added to user interface class system 402 , such that the new states will be backwards-compatible with any code generated at lower levels, such as at the developer code generator 106 level or site-specific code generator 108 level of system 100 .
  • general ledger handler class 408 allows a user to select two or more states for a general ledger user interface class 308 ;
  • global handler class 410 allows a user to select two or more states for a global user interface class 310 ;
  • inventory control handler class 412 allows a user to select two or more states for an inventory control user interface class 312 ;
  • order common handler class 414 allows a user to select two or more states for an order common user interface class 314 ;
  • purchase order handler class 416 allows a user to select two or more states for a purchase order user interface class 316 ;
  • report handler class 418 allows a user to select two or more states for a report user interface class 318 ;
  • shipping order handler class 420 allows a user to select two or more states for a shipping order user interface class 320 ;
  • utility handler class 422 allows a user to select two or more states for a utility user interface class 322 ;
  • ledger common handler class 424 allows a user
  • system 400 allows states to be provided for user interface features, so as to allow the user of the system (i.e., the developer) to migrate and modify code without requiring the user to provide the programming code that will generate the desired states or reintegrate that code.
  • Code generated by system 400 is implemented in a layered approach, so as to allow code to be generated in layers with backwards compatibility, such that when new releases of classes or code are available that provide new or modified states, such new versions will be compatible with any states implemented at the second, third, or other software layers.
  • FIG. 5 is a flowchart of a method 500 for generating code in multiple layers in accordance with an exemplary embodiment of the present invention.
  • Method 500 allows code to be generated in layers, such as for supporting enterprise and site-specific modifications, and further allows modifications to higher layers of code to be implemented that are backwards compatible with lower layers of code modifications.
  • Method 500 begins at 502 where primary code is generated.
  • primary code can be generated from a user interface component package that includes a plurality of user interface classes, options and components for each class, associated states, or other suitable features. The coordination of the options, components, states and other desired functionality can be provided, and code can be generated based on the predetermined components. The method then proceeds to 504 .
  • the generated primary code is distributed to developers.
  • the developers can receive a software application designed for a certain purpose, such as inventory control, accounts receivable, general ledger processing, a suite of software applications, or other suitable code, and can then modify the code to make accommodations for enterprise requirements, developer's preferences, or other suitable changes.
  • the method then proceeds to 506 .
  • a component toolkit can be used, such as a user interface component toolkit having user interface features and associated state engines for each feature.
  • the developer code can be generated by first displaying the primary code, such as using a primary code editor that identifies components, options, access and utilization, states, or other suitable data, and that further allows a user to modify the primary code, add new features, components, options, or states, modify existing features, components, options, or states, or otherwise change the functionality of the primary code.
  • the modified primary code module can then be tested in conjunction with the primary code, and the method proceeds to 510 .
  • the modified primary code is provided to sites in conjunction with the primary code. If it is determined at 512 that site-specific modifications are required, the method proceeds to 514 where the primary code and developer code modifications are displayed, and site-specific code modifications are performed, such as by adding new features, components, options, or states, modifying existing features, components, options, or states, or otherwise changing the functionality of the primary code. The method then proceeds to 518 where the code is released for use.
  • method 500 allows code to be generated for one or more components and distributed in layers such that modifications or additions to the code can be provided using an existing classification paradigm.
  • the code generated with method 500 can further be backwards compatible, such that changes to primary code can be implemented without requiring changes to previously developed modifications applied at one or more layers to earlier releases of the code.
  • FIG. 6 is a flowchart of a method 600 for generating primary code in accordance with an exemplary embodiment of the present invention.
  • Method 600 allows a user to generate primary code, such as user interface code, using predefined features and associated state engine functionality for the features.
  • Method 600 begins at 602 where user interface classes are displayed.
  • the user interface classes can include one or more predetermined sets of classes having user interface features and associated options and components, such as to facilitate the generation of code that creates user interfaces.
  • the user interface classes are displayed in a code generator system or other suitable code generator.
  • the method then proceeds to 604 .
  • a user selection is received.
  • the user can include a developer, a developer code generator, other code generator or other suitable user.
  • the user selection can be a selection of one of the user interface classes, user interface class options or components, or other suitable user selections.
  • the method proceeds to 606 .
  • the coding standards for code that will be generated to access and use the feature, option, component, or other user selection is displayed.
  • the coding standards can include the available functions for the selected feature, option, component or other user selection, associated access and use data such as pseudo code or other suitable data showing how code implementing the feature, option, component or other user selection will be generated, and other suitable data. The method then proceeds to 608 .
  • user selections of the options, access, and use data are received.
  • additional debugging other suitable processes can be performed, so that the user can verify that the selection provides the desired functionality. The method then proceeds to 610 .
  • state engine can include a set of components and user-selectable controls that allow the user to select components that are to be activated for each particular state. The method then proceeds to 612 .
  • the user sequence selection is received, such as one or more selections of components that are to be activated for a particular state. The method then proceeds to 614 .
  • additional features can be added by selecting from a menu, clicking and dragging the feature into a work area, or other suitable functions. If additional features are required, the method returns to 602 . Otherwise, the method proceeds to 616 where code is generated to generate the user interface designed or selected by the user. In one exemplary embodiment, the code generation can also include debugging and testing, so that the user can verify that the code generates the user interface having the features selected by the user. The method then proceeds to 618 where the code is released for use.
  • method 600 allows a user to select one or more user interface features from a component work set, and to configure the component features and the states associated with the component feature for use in a user interface.
  • Method 600 allows code to be generated that will generate the desired user interface having the desired features and states.
  • FIG. 7 is a flowchart of a method 700 for adding a layer of code to previously generated code in accordance with an exemplary embodiment of the present invention.
  • Method 700 allows a user to modify user interface code or other suitable code at a subsequent layer, and further allows the code added at the subsequent layers to be backwards compatible with any code revisions to the primary code or code from a higher layer.
  • Method 700 begins at 702 where primary code is received.
  • the primary code can be a first set of code generated by a user at the highest level of a code architecture.
  • the primary code can include one or more additional layers of code, such as those generated by a developer for an enterprise, a consultant, or other suitable intermediaries. The method then proceeds to 704 .
  • user interface classes are displayed independently or in conjunction with primary code user interface classes.
  • the user interface classes can be displayed as selected by a user, and any modifications required to superimpose the selected user interface classes on the primary code can be performed without subsequent operator interaction.
  • the primary code user interfaces can be generated and supplemental user interface classes can be displayed, such that the operator can add features, select features to be deleted or modified, or perform other suitable functions.
  • the user interface classes can be displayed with the current primary code classes, with indications of changes between the previous primary code and the new version of the primary code, or in other suitable manners. The method then proceeds to 706 .
  • a user selection is received, such as selection of a new feature to add to the user interface, selection of an existing primary feature to modify, or other suitable user selections.
  • the method then proceeds to 708 .
  • the options and information on accessing and using the features in the primary code data and/or the primary code data can be displayed.
  • primary code data features can be modified, and the user can select to have the options, access, and use data displayed for the primary code data.
  • additional features can be added, and the options, access, and use data can be provided so as to allow those features to interact with the existing primary code.
  • the existing layer of code options, access, and use data can be displayed with the new primary code data, with primary code data showing the difference between old primary code data and new primary code data, or other suitable data. The method then proceeds to 710 .
  • user selections are received.
  • the user selections can include options, access, and use data to be modified in primary code data, additional options, access, and use data to be implemented in conjunction with the primary code data, or other suitable user selections.
  • the method then proceeds to 712 .
  • the associated state engine and primary code states are displayed.
  • a user can elect to modify only the state engine aspects of the primary code.
  • state engine capability for user-selected additional features can be displayed at 712 . The method then proceeds to 714 .
  • a user sequence selection is received.
  • the user can select a sequence of states from the associated state engine.
  • the user can re-sequence the states provided for the primary code, or can perform other suitable functions. The method then proceeds to 716 .
  • code is generated.
  • the code can include supplemental code layers that are used in conjunction with a set of primary code, a new set of code that includes both the functionality provided by the primary code and new code functionality, or other suitable code.
  • the method then proceeds to 720 .
  • the newly generated code can be integrated with the primary code at 720 .
  • the method then proceeds to 722 .
  • the code is released for use.
  • additional testing and bug fixing can be performed prior to releasing the code for use.
  • method 700 allows layers of code to be generated such that when additional functionality or features are desired at the organizational or site level, these features can be added in a manner that allows modifications to be made to the primary code without requiring the features to be re-implemented at a later stage.

Abstract

A system for generating user interface code is provided. The system includes a user interface class system generating a user interface class that has two or more user interface features that can be assembled into a user interface by an operator, such as field entry prompts and data display fields. The system also includes a handler class system generating one or more states for each user interface feature of the user interface class, such as to navigate through the field entry prompts and data display fields. The user interface class system, in conjunction with the handler class system, generates the user interface code that causes the selected user interface features and associated states for the user interface features to be generated.

Description

    RELATED APPLICATIONS
  • This application is related to U.S. Pat. No. 09/689,067, entitled “System and Method for Enterprise Resource Management,” filed Oct. 12, 2000.
  • FIELD OF THE INVENTION
  • The present invention pertains to the field of software code generation. More specifically, the invention relates to a system and method for generating software code that generates a user interface when executed that allows a user to readily select the features and states of the user interface.
  • BACKGROUND OF THE INVENTION
  • Systems for generating computer code are known in the art. For example, it is known to use “components” in object oriented software programming for generating server-based software that generates graphic user interfaces, performs server-based functions for processing of data, or that performs other suitable functions. The impetus behind these systems has been to simplify the creation of computer code and to make such computer code easy to modify and update.
  • Nevertheless, many problems continue to be encountered with such computer code. One problem is that server-based generation of graphic user interfaces consumes a significant amount of server resources, which can result in slow processing of all server applications. Another problem is that an initial release of code must often be modified for user-specific applications, such as at the enterprise level, at site-specific locations, by developers for use with their clients, or in other manners. When such releases are then replaced by an updated version, any such modifications made must be implemented again, resulting in duplicated efforts or in the reluctance to use the new release because of the associated cost of making the modifications. Thus, systems for generating software have not resolved these and other problems.
  • SUMMARY OF THE INVENTION
  • In accordance with the present invention, a system and method for generating software are provided that overcome known problems with systems and methods for generating software.
  • In particular, a system and method for generating software are provided that use client-based graphic user interfaces to reduce server processing requirements for generating user interfaces, and that use a layered approach to accommodate the use of modifications to prior releases of code with new releases of code.
  • In accordance with an exemplary embodiment of the present invention, a system for generating user interface code is provided. The system generates a user interface class and a handler class. The user interface class includes two or more user interface features that can be assembled into a user interface by an operator, such as field entry prompts and data display fields. The handler class includes one or more states for each user interface feature of the user interface class, such as to navigate through the field entry prompts and data display fields.
  • The present invention provides many important technical advantages. One important technical advantage of the present invention is a system and method for generating and executing code that provides user interface code which operates on a local client, such that user interfaces do not need to be generated or solely executed by a server. In this manner, server loading for generation and execution of user interfaces is minimized, which allows the distribution of code execution functions and permits the server to be used for other data processing functions. In addition, the present invention provides for layered modification functionality, so that a code release can be modified in one or more layers and so that such layers will be compatible with new releases of the code.
  • Those skilled in the art will further appreciate the advantages and superior features of the invention together with other important aspects thereof on reading the detailed description that follows in conjunction with the drawings.
  • BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
  • FIG. 1 is a diagram of a system for generating user interface code in accordance with an exemplary embodiment of the present invention;
  • FIG. 2 is a diagram of a system for providing code editing functionality in accordance with an exemplary embodiment of the present invention;
  • FIG. 3 is a diagram of a system for providing user interface classes in accordance with an exemplary embodiment of the present invention;
  • FIG. 4 is a diagram of a system for providing user interface states for corresponding user interface classes in accordance with an exemplary embodiment of the present invention;
  • FIG. 5 is a flowchart of a method for generating code in multiple layers in accordance with an exemplary embodiment of the present invention;
  • FIG. 6 is a flowchart of a method for generating primary code in accordance with an exemplary embodiment of the present invention; and
  • FIG. 7 is a flowchart of a method for adding a layer of code to previously generated code in accordance with an exemplary embodiment of the present invention.
  • DETAILED DESCRIPTION OF THE INVENTION
  • In the description that follows, like parts are marked throughout the specification and drawings with the same reference numerals, respectively. The drawing figures might not be to scale, and certain components can be shown in generalized or schematic form and identified by commercial designations in the interest of clarity and conciseness.
  • FIG. 1 is a diagram of a system 100 for generating user interface code in accordance with an exemplary embodiment of the present invention. System 100 allows primary software code packages for generating a user interface to be prepared by a user of the system, such as a program developer, by using predetermined user interface classes having predetermined states, and also provides a layered structure such that developers can modify code and can provide site-specific code modifications that will be compatible with future releases of primary code.
  • System 100 includes code generator system 102, which can be implemented in hardware, software, or a suitable combination of hardware and software, and which can be one or more software systems operating on a general-purpose server platform. As used herein, a software system can include one or more objects, agents, lines of code, threads, subroutines, databases, application programming interfaces (APIs), web browser plug-ins, or other suitable data structures, source code (human readable), object code (machine readable), and can include two or more different lines of code or suitable data structures operating in two or more separate software applications, on two or more different processing platforms, or in other suitable architectures. In one exemplary embodiment, a software system can include one or more lines of code or other suitable software structures operating in a general purpose software application, such as an operating system, and one or more lines of code or other suitable software structures operating in a specific purpose software application. In another exemplary embodiment, a software system can be implemented as a distributed software system, on a different processing platform than that shown in the exemplary embodiments herein, or in other suitable manners.
  • Code generator system 102 includes primary code generator 104, developer code generator 106, and site-specific code generator 108, each of which can be used in a centralized location or distributed as separate components to locations as needed. Primary code generator 104 includes one or more primary code generation modules, such as code generation modules that create software code that generates a user interface. In this regard, primary code generator 104 includes user interface class system 110 and handler class system 112. User interface class system 110 generates user interface class code. Handler class system 112 generates the handler class code. The user interface class code can include one or more user interface classes, such as data input classes, report generation classes, order processing classes, or other suitable classes for processing data. The classes of the user interface class code each have a corresponding set of available states in the handler class code. This corresponding set of states includes the progression states available for implementing the features of user interface class code. The features provided by user interface class system 110 and the states provided by handler class system 112 allow a user to select features and define states for a user interface, and then generate software code that implements the user interface.
  • In one exemplary embodiment, user interface class system 110 can generate a data entry class, such as a customer account data entry class. The customer account data entry class can include one or more data entry features that may be required to define a customer account, such as a customer name, customer address, customer account number, shipping address, contact name and address, and other suitable data. User interface class system 110 allows a user to select from available classes, such as the customer account entry class, and to view the available features, components and functions performed by the class. User interface class system 110 allows a user to determine the available options, how to access and utilize the options, and otherwise allows the user to design user interface screens for use in receiving data from a user and presenting data to the user.
  • Likewise, handler class system 112 allows the user to structure the states of the user interface screens in a suitable manner. In one exemplary embodiment, handler class system 112 is coupled to user interface class system 110 and can allow the user to select the state progression for a user interface. As used herein, the term “couple,” and its cognate terms such as “couples” and “coupled,” can include a physical connection (such as through a copper conductor), a virtual connection (such as through randomly assigned memory locations of a data memory device), a logical connection (such as through one or more logical devices of a semiconducting circuit), other suitable connections, or a suitable combination of such connections. In one exemplary embodiment, systems and components are coupled to other systems and components through intervening systems and components, such as through an operating system of a general purpose server platform
  • Handler class system 112 can receive selections of features, components, options or functions that have previously been selected using user interface class system 110, and can prompt the user to indicate one or more states, and the corresponding features, components, options, or functions that should be activated at each state. For example, a user can first create an account setup screen using user interface class system 110 having an account name entry function, an account address entry function, and a contact name entry function. The user can then sequence the states of the account setup screen so that the account name entry function occurs in a first state, the account address entry function occurs in a second state, and the contact name entry function occurs in a third state. Likewise, associated function states, such as a lookup function for finding a state or business entity, can be provided through handler class system 112. In this manner, a user can define a sequence of states for a user interface screen that includes the performance of various functions, prompting for data fields, display of data fields, or other suitable states.
  • In another exemplary embodiment, user interface class system 110 and handler class system 112 can provide the components, options, and states required to interface with a server system, such as that disclosed in U.S. Pat. No. 09/689,067, entitled “System and Method for Enterprise Resource Management,” filed Oct. 12, 2000, which is hereby incorporated by reference for all purposes. In this exemplary embodiment, the interface system with the server will have predetermined data field and functions, such that the user interface code will have to provide an interface to these data fields and functions. The present invention thus provides a programming environment that allows user interface software to be generated, for modifications to that user interface to be readily made, and for new releases of the user interface code to be compatible with such modifications. In this manner, the need to modify the server software to provide additional user interface functionality is minimized, and the corresponding use of server resources to generate or execute user interfaces is also minimized.
  • Developer code generator 106 also includes a user interface class system 114 and handler class system 116, both of which interface with code generated by primary code generator 104. In one exemplary embodiment, primary code generator 104 generates code that allows a developer to generate additional code for modifying the code generated through primary code generator 104. Thus, a developer can use developer code generator 106 to modify user interface selections using user interface class system 114, and to modify states using handler class system 116.
  • In another exemplary embodiment, a developer can receive code for a software application that has been generated by primary code generator 104, and can determine that additional user interface features or states are required for the developer's application. The developer can then use developer code generator 106 to modify the code generated by primary code generator 104, such as by selecting additional user interface features through user interface class system 114 and by providing states for those new user interface features, by editing existing user interface features to modify the user interface features using user interface class system 114, or by using handler class system 116 to modify the existing states of an existing user interface feature or of a new user interface feature. In this manner, the developer can take an existing release of code from primary code generator 104, and can modify the code in a manner that allows user interface features and states to be customized for a business, a group of businesses, the developer's clientele, or other suitable purposes.
  • Furthermore, the code generated through developer code generator 106 is compatible with new code generated by primary code generator 104. In one exemplary embodiment, primary code generator 104 can be used to generate an accounts receivable system, such as one having cash receipts chargeback invoice user interface screens, cash receipts inquiry batch details user interface screens, cash receipts inquiry customer payment details interface screens, and other suitable accounts receivable features. Developer code generator 106 can receive the accounts receivable code generated by primary code generator 104, and can modify the code to provide additional user interface features such as to select additional access and utilization options, provide additional data entry or display states, or to otherwise modify the functionality of the code generated by primary code generator 104. Developer code generator 106 then generates developer code that supplements, interacts with, modifies, or overrides the code generated by primary code generator 104.
  • If additional user interface functionality, access utilization features, states, or other suitable modifications are made through primary code generator 104, the code generated through primary code generator 104 will interface with the code previously generated by developer code generator 106, regardless of any modifications made to existing user interfaces or states. In this manner, the code generated by developer code generator 106 will be compatible with the code generated by primary code generator 104 for new features or states.
  • For example, primary code generator 104 may generate code that creates an accounts receivable user interface screen having a customer entry field as the first state, and the developer code generator 106 can generate code that modifies the first state to request an account number instead of or in addition to the customer entry field. Subsequently, primary code generator 104 can generate a new release of code that provides a customer lookup function instead of a customer entry function as the first state. In this exemplary embodiment, the code generated by developer code generator 106 would replace the customer lookup function with the account number entry function previously generated, such that any modifications to code generated by primary code generator 104 in the new release will be compatible with code previously generated by developer code generator 106. Thus, in this exemplary embodiment, the new release of the primary code with the existing developer code would result in a first state that provides a customer lookup function, and a second state that requests an account number instead of or in addition to the customer entry field.
  • Likewise, site-specific code generator 108 allows a programmer to perform site-specific modifications to code that has been modified by developer code generator 106. In this manner, site-specific code generator 108 receives the code generated by primary code generator 104 and developer code generator 106, and allows a user to provide additional user interface features and states or modifications to current user interface features and states. Such site-specific code is backwards compatible with developer code and primary code in the manner previously described, such that any modifications to the code by a user of primary code generator 104 and developer code generator 106 will be compatible with code previously developed using site-specific code generator 108. Site-specific code generator 108 includes a user interface class system 118 and handler class system 120, both of which are capable of displaying the primary code and developer code user interfaces and states, and other available user interfaces and states, such that a user can provide different user interface and state functionality. In this manner, site-specific code modifications created for use with a first version of code generated by primary code generator 104 and developer code generator 106 will be compatible with a subsequent version of code generated by primary code generator 104 and developer code generator 106, without additional developer interaction.
  • In operation, system 100 allows users to develop code in a manner that allows new releases of code to be provided that are compatible with modifications made to earlier versions of code. The code generated by system 100 is user interface code, but system 100 can also be used with code that operates on a server, such as database access code, communications code, or other suitable server-based code. In this manner, user interface class systems 110, 114, and 118 could be replaced with other suitable systems, such as database access systems, and handler class systems 112, 116, and 120 could be replaced with other state engines, such as state engines based on database access functions.
  • Furthermore, the user interface code can be generated on a client for use in a client-server environment where the server software does not have to generate user interfaces. In this manner, server interface functionality can be defined in advance, and modifications to user interfaces can be made that do not require modification of server functionality, thus reducing the need for revising server software and also reducing the server processor resources required for interfacing with users.
  • FIG. 2 is a diagram of a system 200 for providing code editing functionality in accordance with an exemplary embodiment of the present invention. System 200 allows code to be edited at the primary code generator, developer code generator, site-specific code generator, or other suitable locations so as to provide backwards compatibility in a layered code generation architecture, such as for generation of user interface code.
  • System 200 includes code editor system 202, option availability system 204, access and utilization system 206, and state engine selection system 208, each of which can be implemented in hardware, software, or a suitable combination of hardware and software, and which can be one or more software systems operating on a general-purpose server platform. Code editor system 202 allows a user to review available feature classes and associated handler classes, and to assemble the feature classes and handler classes into a user interface or other suitable software systems. In one exemplary embodiment, code editor system 202 can be implemented with a development environment for software, such that a user can generate code, perform code testing, and release the code for use in a single environment.
  • Option availability system 204 provides detailed information on components or options that are available for each feature class. In one exemplary embodiment, option availability system 204 can use a set of classes called shadow objects that define how the components or options can be used. Coding standards for available option or component selections can be defined within the shadow object, such that the code generated by option availability system 204 adheres to a strict set of standards. In one exemplary embodiment, an object-oriented application can be provided where the definition of the objects that will be created is provided in a framework component, such that option availability system 204 can be used to produce multiple frameworks for use in different applications. Likewise, option availability system 204 can display the configuration of an existing release of code having one or more layers, and can allow the user to make changes to the existing release of code that will be compatible with new releases of code, such as by mapping the modifications made at each previous layer and interfacing any modifications made by the user at the present layer to the appropriate prior layer.
  • Access and utilization system 206 provides information on the way that code will be generated for accessing and utilizing components and options of a feature class. In this manner, coding standards can be defined such that the code generated by access and utilization system 206 adheres to a strict set of standards. In one exemplary embodiment, an object-oriented application can be provided where the code for accessing and utilizing the objects that will be created is provided in a framework component, such that access and utilization system 206 to be used to produce multiple frameworks for use in different applications. Access and utilization system 206 can also display the configuration of an existing release of code having one or more layers, and can allow the user to make changes to the existing release of code that will be compatible with new releases of code, such as by mapping the modifications made at each previous layer and interfacing any modifications added by the user at the present layer to the appropriate prior layer.
  • State engine selection system 208 allows a user to sequence states for feature classes. In one exemplary embodiment, the components or options that are available or that have been selected for a feature class can be displayed in a graphic user interface, and the components or options that are to be activated for a particular state can be selected by the user. State selection engine 208 then generates the code that is needed to implement the state changes. State engine selection system 208 can also display the state configuration of an existing release of code having one or more layers, and can allow the user to make changes to the states of the existing release of code that will be compatible with new releases of code, such as by mapping the modifications made at each previous layer and interfacing any modifications added by the user at the present layer to the appropriate prior layer.
  • In operation, system 200 allows an operator to generate code at the primary code generator 104 stage, such as to create a software package for performing predetermined functions, such as accounts payable, accounts receivable, general ledger, or other suitable functions. System 200 can also be implemented at a developer stage, a site-specific stage, or in other suitable layers, such as when an enterprise is customizing the software code for use at the enterprise level, or when a consultant is configuring the code for use in its consulting practice, or in other suitable configurations. In this manner, system 200 allows components, options, and states of feature classes to be selected and modified so as to allow a user to configure software in a suitable manner, but does not prevent the user from further modifying the software to accommodate specific needs of sites or enterprises or other suitable entities. Likewise, system 200 allows backwards-compatible changes to be made, so that any lower layers of code modifications to a release of code will be compatible with subsequent releases of the code.
  • FIG. 3 is a diagram of a system 300 for providing user interface classes in accordance with an exemplary embodiment of the present invention. System 300 includes user interface class system 302 and 14 exemplary classes that will be defined in greater detail herein.
  • User interface class system 302 provides predetermined user interface classes, where each class further comprises options and components that can be adjusted or selected by a user. In one exemplary embodiment, system 200 can be used to assemble a user interface for a program in conjunction with user interface class system 302. Additional classes can be added to user interface class system 302, such that the new classes will be backwards-compatible with any code generated at lower levels, such as at the developer code generator 106 level or site-specific code generator 108 level of system 100.
  • Accounts payable user interface class 304 includes one or more classes for generating accounts payable user interfaces. In one exemplary embodiment, the following accounts payable user interface classes can be provided with accounts payable user interface class 304:
    Accounts Payable Check Inquiry
    Accounts Payable Check Number Lookup
    Accounts Payable Check Run
    General Ledger Distribution Line Item Subpanel
    General Ledger Distribution Subpanel
    Invoice Number Lookup
    Manual Check Entry
    Manual Invoice Batch Subpanel
    Manual Invoice Subpanel
    Manual Vendor Invoice Entry
    Multiple Receiver Number Subpanel
    Payment Selection And Processing
    Single Receiver Number Subpanel
    Variance Recost Subpanel
    Vendor Invoice Reconciliation Maintenance
    Voided Check Entry
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, accounts payable user interface class 304 can allow a user to select an accounts payable check inquiry user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for an accounts payable check inquiry class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • In one exemplary embodiment, the following sequence of code development events can be supported to allow code to be easily modified for uses at different layers and to allow such modifications to be backwards-compatible with new releases of code at higher layers:
  • A primary code package can be prepared from an accounts payable user interface class that has an accounts payable check inquiry user interface, an accounts payable check number lookup user interface, and an accounts payable check run user interface.
  • After the code is generated and released as the primary code package, a developer for an enterprise may decide to add a general ledger distribution line item subpanel user interface and a general ledger distribution subpanel user interface, and to delete the accounts payable check run user interface.
  • After the code is generated and released as the developer code package, a second developer for a site-specific application may decide to add an invoice number lookup user interface, to delete the item subpanel user interface added by the first developer, and to reinstate the accounts payable check run user interface that was deleted by the first developer.
  • After the code is generated and released as the site specific code package, the primary code package can be modified to include an additional user interface, such as manual check entry, to delete a user interface, or to provide additional functionality to an existing user interface. The new primary code package can then be released, and will be compatible with the developer code package and site specific code package without subsequent modification.
  • As can be seen from this exemplary embodiment, the classes of system 300 can be added, deleted, or modified as needed at each layer, and any subsequent modifications to code at higher layers will be compatible with the existing additions, deletions or modifications that were previously made at lower layers.
  • Accounts receivable user interface class 306 includes one or more classes for generating accounts receivable user interfaces. In one exemplary embodiment, the following classes can be provided with accounts receivable user interface class 306:
    Cash Receipts Charge Back Invoices
    Cash Receipts Inquiry Batch Details
    Cash Receipts Inquiry Customer Payment Details
    Cash Receipts Inquiry
    Cash Receipts Invoice Detail Header Subpanel
    Cash Receipts Invoice Header Information Subpanel
    Cash Receipts Misc Amounts
    Cash Receipts
    Customer Lookup Multiple Search Criteria
    Manual Invoice Entry
    Print Order Invoices Order List
    Print Order Invoices
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, accounts receivable user interface class 306 can allow a user to select a cash receipts charge back invoices user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • General ledger user interface class 308 includes one or more classes for generating general ledger user interfaces. In one exemplary embodiment, the following classes can be provided with general ledger user interface class 308:
    Analysis Code Maintenance Extra
    Analysis Code Maintenance
    Bank Code Lookup
    Bank Maintenance
    Close Period
    Close Year
    COA Maintenance
    COA Maintenance Panel
    Exchange Rate Maintenance
    Exchange Rate Type Maintenance
    Exchange Rate Type Mapping
    External Bank Account Maintenance
    Fiscal Calendar Beginning And Ending Date Subpanel
    Fiscal Calendar Fiscal Year Subpanel
    Fiscal Calendar Maintenance Line Item Subpanel
    Fiscal Calendar Maintenance
    Fiscal Calendar Radio Button Subpanel
    Fiscal Period Lookup
    Fiscal Period Maintenance Line Item Subpanel
    Fiscal Period Maintenance
    Fiscal Year Maintenance
    General Ledger History Inquiry
    GL Balance Inquiry
    GL Map Definitions Panel
    GL Mapping Maintenance
    GL Mapping Panel
    GL Posting Combination
    GL Table Maintenance
    Internal Bank Account Maintenance
    Internal Bank Account Maintenance GL Subpanel
    Journal Entry Line Items Subpanel
    Journal Entry Lookup
    Journal Entry
    Revalue Currency
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, general ledger user interface class 308 can allow a user to select an analysis code maintenance user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Global user interface class 310 includes one or more classes for generating user interface features having global applicability. In one exemplary embodiment, the following classes can be provided with global user interface class 310:
    Business Partner Address Panel
    Business Partner Info Panel
    Business Partner Ledger Panel
    Calendar Maintenance Panel
    Client Policy Selection
    Code File Maintenance
    Code File Panel
    Comments Subpanel
    Company Maintenance Calendar Panel
    Company Maintenance
    Context Help
    Criteria Subpanel
    Currency Maintenance
    Customer Maintenance
    Customer Part Number Maintenance
    Customer Search
    Customer Ship To Maintenance
    Customer Specific
    Dialog Message
    Format Subpanel
    Freight Terms Fields
    Key Word Maintenance
    Locale Code Panel
    Menu Help
    Number Series Sub
    Policy Selection
    Product Search
    Rebuild Key Words
    Search Create Dialog
    Ship To General Panel
    Ship Via Fields
    User Maintenance Defaults
    User Maintenance Duties
    User Maintenance Security
    User Maintenance
    User Message
    Vendor Maintenance
    Vendor Search
    Vendor Ship From Maintenance
    Workflow Inquiry
    Workflow Unit Details
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, global user interface class 310 can allow a user to select a business partner address panel user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Inventory control user interface class 312 includes one or more classes for inventory control user interfaces. In one exemplary embodiment, the following classes can be provided with inventory control user interface class 312:
    Backorder Allocation
    Inventory Adjustment Line Items
    Inventory Adjustment
    Inventory Adjustment History Inquiry
    Inventory Inquiry
    Location Controlled Warehouse Maintenance
    Location Entry Dialog
    Location Entry Line Panel
    Location Lookup
    Lot Entry Dialog
    Lot Entry Line Panel
    Lot Location Entry Dialog
    Lot Location Entry Line Panel
    Lot Lookup
    New Product Dialog
    Physical Inventory Build List
    Physical Inventory Display List
    Physical Inventory Entry
    Physical Inventory Print List
    Physical Inventory Update
    Pick Confirmation Entry Buttons
    Pick Confirmation Entry Header
    Pick Confirmation Entry Line Buttons
    Pick Confirmation Entry Line List
    Pick Confirmation Entry Line Main
    Pick Confirmation Entry Line
    Pick Confirmation Entry
    Print Pick Tickets Maintenance
    Product Lot Number Inquiry
    Product Maintenance Cost Panel
    Product Maintenance
    Product References Accessories Subpanel
    Product References Alternates Subpanel
    Product References Keywords Subpanel
    Product References Substitutes Subpanel
    Product References UCC Subpanel
    Product Serial Number Inquiry
    Product Stock Location Inquiry
    Product Warehouse Availability Inquiry
    Putaway Document
    Quantity Received Options
    Receiver Number
    Receiving Report
    Reprint Pick Ticket WWU Selection
    Serial Number Entry Dialog
    Serial Number Entry Line Panel
    Serial Number Location Entry Dialog
    Serial Number Location Entry Line Panel
    Serial Number Lookup
    Ship Confirmation Entry Line
    Ship Confirmation Entry
    SR Entry Header
    SR Entry
    SR PO Entry Header Detail
    SR PO Entry Header Main
    SR PO Entry Header
    SR PO Entry Line Header
    SR PO Entry Line List
    SR PO Entry Line Main
    SR PO Entry Line Quantity
    SR PO Entry Line
    Stock Location Lookup
    Stock Location Maintenance
    Stock Location Movement Detail Sub
    Stock Location Movement
    Stock Location Product Inquiry
    Stock Zone Maintenance
    Transaction Audit Inquiry
    Unit Category Associated UOM
    Unit Category Maintenance
    UOM Panel
    Warehouse Panel
    Warehouse Work Unit Lookup List
    Warehouse Work Unit Lookup
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, inventory control user interface class 312 can allow a user to select a backorder allocation user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Order common user interface class 314 includes one or more features for generating order common user interfaces. In one exemplary embodiment, the following classes can be provided with order common user interface class 314:
    Freight Detail Entry
    Freight Detail Tracking Entry
    Freight Entry Dialog
    Freight Entry Standalone
    OC Entry Buttons
    OC Entry Header Control
    OC Entry Header Financial
    OC Entry Header Import
    OC Entry Header Miscellaneous
    OC Entry Header Miscellaneous Warehouse
    OC Entry Header Notes
    OC Entry Header Primary
    OC Entry Header Taxes
    OC Entry Header User
    OC Entry Line Buttons
    OC Entry Line Control
    OC Entry Line Costing
    OC Entry Line Info
    OC Entry Line Notes
    OC Entry Line Product
    OC Entry Line Purchasing
    OC Entry Line Quantity Break
    OC Entry Line User
    OC Entry Line Vendor
    OC Receive Options Panel
    OC Receive Options
    OC Tax Jurisdiction Entry Panel
    Order Log Inquiry Document Lookup
    Product Price Maintenance
    Product Price Pricing Panel
    Product Price Quantity Breaks Panel
    Product Price
    Shipping Warehouse Prompt
    Tax Jurisdiction Lookup
    Tax Jurisdiction Maintenance
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, order common user interface class 314 can allow a user to select a freight detail entry user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Purchase order user interface class 316 includes one or more features for generating purchase order user interfaces. In one exemplary embodiment, the following classes can be provided with purchase order user interface class 316:
    Purchase Order Entry Header Detail
    Purchase Order Entry Header Main
    Purchase Order Entry Header
    Purchase Order Entry Line Header
    Purchase Order Entry Line List
    Purchase Order Entry Line Main
    Purchase Order Entry Line Quantity
    Purchase Order Entry Line
    Purchase Order Entry
    Purchase Order Inquiry Line
    Purchase Order Inquiry Lookup
    Purchase Order Inquiry
    Purchase Order Shipping Warehouse Prompt
    Purchase Order Log Inquiry
    Purchase Order Number Lookup
    Purchase Order Print
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, purchase order user interface class 316 can allow a user to select a purchase order entry header detail user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Report user interface class 318 includes one or more features for generating report user interfaces. In one exemplary embodiment, the following classes can be provided with report user interface class 318:
    Object Oriented SQL Report Option Dialog
    Object Oriented SQL Report
    Schedule Subpanel
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, report user interface class 318 can allow a user to select an object oriented SQL database report option dialog user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Shipping order user interface class 320 includes one or more features for generating accounts payable user interfaces. In one exemplary embodiment, the following classes can be provided with shipping order user interface class 320:
    Customer Price Availability Customer Pricing Subpanel
    Customer Price Availability Inquiry
    Customer Price Availability Product Pricing Subpanel
    Point Of Sale Customer Info
    Point Of Sale Entry Header
    Point Of Sale Entry Line
    Point Of Sale Entry
    Print Acknowledgements
    Quotation Entry Buttons
    Quotation Entry Header Detail Control
    Quotation Entry Header Detail
    Quotation Entry Header
    Quotation Entry Line Detail Notes
    Quotation Entry Line Header Quantity
    Quotation Entry Line Header
    Quotation Entry Line Main
    Quotation Entry Line
    Quotation Entry Middle
    Quotation Entry
    Quotation Inquiry Line
    Quotation Inquiry Lookup
    Quotation Inquiry
    Quotation Log Inquiry
    Sales Order Entry Lookup
    Sales Order Log Inquiry
    Shipping Order Entry Buttons
    Shipping Order Entry Completion Panel
    Shipping Order Entry Header Detail Address
    Shipping Order Entry Header Detail Control
    Shipping Order Entry Header Detail Financial
    Shipping Order Entry Header Detail Notes
    Shipping Order Entry Header Detail Primary
    Shipping Order Entry Header Detail
    Shipping Order Entry Header Detail User
    Shipping Order Entry Header Main
    Shipping Order Entry Header
    Shipping Order Entry Line Accessories
    Shipping Order Entry Line Buttons
    Shipping Order Entry Line Detail Availability
    Shipping Order Entry Line Detail Control
    Shipping Order Entry Line Detail Customer
    Shipping Order Entry Line Detail Financial
    Shipping Order Entry Line Detail Notes
    Shipping Order Entry Line Detail Taxes
    Shipping Order Entry Line Detail User
    Shipping Order Entry Line Header Pricing
    Shipping Order Entry Line Header Product
    Shipping Order Entry Line Header Quantity
    Shipping Order Entry Line Header
    Shipping Order Entry Line List
    Shipping Order Entry Line Main
    Shipping Order Entry Line Substitutes
    Shipping Order Entry Line
    Shipping Order Entry Middle
    Shipping Order Entry Quick Lines
    Shipping Order Entry
    Shipping Order Inquiry Line List
    Shipping Order Inquiry Line
    Shipping Order Inquiry Lookup
    Shipping Order Inquiry
    Shipping Order Warehouse Prompt
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, shipping order user interface class 320 can allow a user to select a customer price availability customer pricing subpanel user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Utility user interface class 322 includes one or more classes for generating accounts payable user interfaces. In one exemplary embodiment, the following classes can be provided with utility user interface class 322:
    Add Cancel Delete Dual Subpanel
    BT Addresses Panel
    BT Address Panel
    BT Debug
    BT Language
    BT Results Dialog
    BT Search Table
    Calendar Lookup
    Menu Maintenance
    OK Cancel Subpanel
    Reference Language Maintenance
    Security Group Maintenance Extra
    Security Group Maintenance
    Submit Suspend Button Subpanel
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, utility user interface class 322 can allow a user to select a reference language maintenance user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Ledger common user interface class 324 includes one or more classes for generating ledger common user interfaces, such as for accounts receivable and accounts payable. In one exemplary embodiment, the following classes can be provided with ledger common user interface class 324:
    Aging Detail Inquiry
    Business Partner Invoice Number Lookup
    Invoice Inquiry
    Ledger Type Maintenance
    Payment Method Maintenance Extra
    Payment Method Maintenance
    Payment Terms Days Sub
    Payment Terms Detail Middle Sub
    Payment Terms Detail Sub
    Payment Terms Fixed Day Of Month Sub
    Payment Terms Installment Sub
    Payment Terms Maintenance
    Payment Terms Specific Date Sub
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, ledger common user interface class 324 can allow a user to select a business partner invoice number lookup user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Test user interface class 326 includes one or more classes for generating test user interfaces. In one exemplary embodiment, the following classes can be provided with test user interface class 326:
    Message Tester
    Time Sheet
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, test user interface class 326 can allow a user to select a message user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Template user interface class 328 includes one or more classes for generating template user interfaces. In one exemplary embodiment, the following classes can be provided with template user interface class 328:
    Report Maintenance Field Subpanel
    Report Maintenance
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, test user interface class 328 can allow a user to select a report maintenance user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • Sales analysis user interface class 330 includes one or more classes for generating sales analysis user interfaces. In one exemplary embodiment, the following classes can be provided with sales analysis user interface class 330:
    Customer Product Inquiry
    Product Sales History Inquiry
  • Each of these classes includes one or more additional options or components, where each option or component includes detailed information on functions that are available, as well as the way code will be generated for accessing and utilizing these options or components. For example, sales analysis user interface class 330 can allow a user to select a customer product inquiry user interface class having predefined standards on how the options or components of the class can be used. Thus, coding standards can be defined for that class that produce code that generates a user interface and that adheres to a strict set of standards, so as to provide a framework that allows developer and site-specific layers of code to be provided that modify or add user interface functionality, and that further allows modifications or updates to the code to be compatible with such developer and site-specific layers.
  • In operation, system 300 allows a user interface to be configured using existing feature classes having predefined features and components. Each class of system 300 is implemented in a layered approach, so as to allow code to be generated in layers with backwards compatibility, such that when new versions of classes or code are available, such new versions will be compatible with any modifications implemented at the second, third, or other software layers.
  • FIG. 4 is a diagram of a system 400 for providing user interface states for corresponding user interface classes in accordance with an exemplary embodiment of the present invention. System 400 includes handler class system 402 and 14 exemplary handlers that provide user interface states as defined in greater detail herein.
  • Handler class system 402 provides predetermined user interface class states, where each state can be selected to provide the options and components of the user interface class in a user-selected order. In one exemplary embodiment, system 200 can be used to assemble a user interface for a program in conjunction with user interface class system 302 and handler class system 402. Additional handlers can be added to user interface class system 402, such that the new states will be backwards-compatible with any code generated at lower levels, such as at the developer code generator 106 level or site-specific code generator 108 level of system 100.
  • Accounts payable handler class 404 provides one or more states for an accounts payable user interface. In one exemplary embodiment, each of the accounts payable user interface classes provided with accounts payable user interface class 304 can include two or more states where a user, such as a developer, developer code generator, other code generator or other suitable user, can select which options or components are to be activated for a particular state. Accounts payable handler class 404 permits the navigation of the user interface through the selected states and can also indicate unallowed states or state progressions. For example, accounts payable handler class 404 allows a developer to select states for an accounts payable check inquiry user interface class, so as to permit a desired state progression based upon data entered or other actions taken by a user of the user interface generated by an accounts payable check inquiry user interface generated using accounts payable handler class 404.
  • In this exemplary embodiment, a primary code package can be prepared from an accounts payable user interface class that has an accounts payable check inquiry user interface progressing through 4 states. After the code is generated and released as the primary code package, a developer for an enterprise may decide to add a fifth state, and to delete a third state of the accounts payable user interface class. After the code is generated and released as the developer code package, a second developer for a site-specific application may decide to add a sixth state to the accounts payable user interface class, to delete the fifth state added by the first developer, and to reinstate the third state that was deleted by the first developer. After the code is generated and released as the site specific code package, the primary code package can be modified to include a seventh state after the fourth state, to delete one of the four states, or to modify one of the four existing states. The new primary code package can then be released, and will be compatible with the developer code package and site specific code package without subsequent modification
  • Accounts receivable handler class 406 allows a user, such as a developer, developer code generator, other code generator or other suitable user, to select two or more states and the relationship between the selected states for an accounts receivable user interface. In one exemplary embodiment, system 200 can be used to assemble a user interface for a program in conjunction with user interface class system 302 and handler class system 402. Additional handlers can be added to user interface class system 402, such that the new states will be backwards-compatible with any code generated at lower levels, such as at the developer code generator 106 level or site-specific code generator 108 level of system 100.
  • In a similar manner, if a state change is appropriate, general ledger handler class 408 allows a user to select two or more states for a general ledger user interface class 308; global handler class 410 allows a user to select two or more states for a global user interface class 310; inventory control handler class 412 allows a user to select two or more states for an inventory control user interface class 312; order common handler class 414 allows a user to select two or more states for an order common user interface class 314; purchase order handler class 416 allows a user to select two or more states for a purchase order user interface class 316; report handler class 418 allows a user to select two or more states for a report user interface class 318; shipping order handler class 420 allows a user to select two or more states for a shipping order user interface class 320; utility handler class 422 allows a user to select two or more states for a utility user interface class 322; ledger common handler class 424 allows a user to select two or more states for a ledger common user interface class 324; test handler class 426 allows a user to select two or more states for a test user interface class 326; template handler class 428 allows a user to select two or more states for a template user interface class 328; and sales analysis handler class 430 allows a user to select two or more states for a sales analysis user interface class 330.
  • In operation, system 400 allows states to be provided for user interface features, so as to allow the user of the system (i.e., the developer) to migrate and modify code without requiring the user to provide the programming code that will generate the desired states or reintegrate that code. Code generated by system 400 is implemented in a layered approach, so as to allow code to be generated in layers with backwards compatibility, such that when new releases of classes or code are available that provide new or modified states, such new versions will be compatible with any states implemented at the second, third, or other software layers.
  • FIG. 5 is a flowchart of a method 500 for generating code in multiple layers in accordance with an exemplary embodiment of the present invention. Method 500 allows code to be generated in layers, such as for supporting enterprise and site-specific modifications, and further allows modifications to higher layers of code to be implemented that are backwards compatible with lower layers of code modifications.
  • Method 500 begins at 502 where primary code is generated. In one exemplary embodiment, primary code can be generated from a user interface component package that includes a plurality of user interface classes, options and components for each class, associated states, or other suitable features. The coordination of the options, components, states and other desired functionality can be provided, and code can be generated based on the predetermined components. The method then proceeds to 504.
  • At 504, the generated primary code is distributed to developers. In one exemplary embodiment, the developers can receive a software application designed for a certain purpose, such as inventory control, accounts receivable, general ledger processing, a suite of software applications, or other suitable code, and can then modify the code to make accommodations for enterprise requirements, developer's preferences, or other suitable changes. The method then proceeds to 506.
  • At 506, it is determined whether developer modification is required, such as to provide additional features or modification of features that may be required in a predetermined application. If it is determined at 506 that no developer modifications are required, the method proceeds to 512. Otherwise, the method proceeds to 508 where developer code is generated. In one exemplary embodiment, a component toolkit can be used, such as a user interface component toolkit having user interface features and associated state engines for each feature. Likewise, the developer code can be generated by first displaying the primary code, such as using a primary code editor that identifies components, options, access and utilization, states, or other suitable data, and that further allows a user to modify the primary code, add new features, components, options, or states, modify existing features, components, options, or states, or otherwise change the functionality of the primary code. The modified primary code module can then be tested in conjunction with the primary code, and the method proceeds to 510.
  • At 510, the modified primary code is provided to sites in conjunction with the primary code. If it is determined at 512 that site-specific modifications are required, the method proceeds to 514 where the primary code and developer code modifications are displayed, and site-specific code modifications are performed, such as by adding new features, components, options, or states, modifying existing features, components, options, or states, or otherwise changing the functionality of the primary code. The method then proceeds to 518 where the code is released for use.
  • In operation, method 500 allows code to be generated for one or more components and distributed in layers such that modifications or additions to the code can be provided using an existing classification paradigm. The code generated with method 500 can further be backwards compatible, such that changes to primary code can be implemented without requiring changes to previously developed modifications applied at one or more layers to earlier releases of the code.
  • FIG. 6 is a flowchart of a method 600 for generating primary code in accordance with an exemplary embodiment of the present invention. Method 600 allows a user to generate primary code, such as user interface code, using predefined features and associated state engine functionality for the features.
  • Method 600 begins at 602 where user interface classes are displayed. The user interface classes can include one or more predetermined sets of classes having user interface features and associated options and components, such as to facilitate the generation of code that creates user interfaces. In one exemplary embodiment, the user interface classes are displayed in a code generator system or other suitable code generator. The method then proceeds to 604. At 604, a user selection is received. The user can include a developer, a developer code generator, other code generator or other suitable user. The user selection can be a selection of one of the user interface classes, user interface class options or components, or other suitable user selections. The method proceeds to 606.
  • At 606, the coding standards for code that will be generated to access and use the feature, option, component, or other user selection is displayed. In one exemplary embodiment, the coding standards can include the available functions for the selected feature, option, component or other user selection, associated access and use data such as pseudo code or other suitable data showing how code implementing the feature, option, component or other user selection will be generated, and other suitable data. The method then proceeds to 608.
  • At 608, user selections of the options, access, and use data are received. In one exemplary embodiment, additional debugging other suitable processes can be performed, so that the user can verify that the selection provides the desired functionality. The method then proceeds to 610.
  • At 610, an associated state engine for the feature is displayed. In one exemplary embodiment, state engine can include a set of components and user-selectable controls that allow the user to select components that are to be activated for each particular state. The method then proceeds to 612.
  • At 612, the user sequence selection is received, such as one or more selections of components that are to be activated for a particular state. The method then proceeds to 614.
  • At 614, it is determined whether additional features are desired. In one exemplary embodiment, additional features can be added by selecting from a menu, clicking and dragging the feature into a work area, or other suitable functions. If additional features are required, the method returns to 602. Otherwise, the method proceeds to 616 where code is generated to generate the user interface designed or selected by the user. In one exemplary embodiment, the code generation can also include debugging and testing, so that the user can verify that the code generates the user interface having the features selected by the user. The method then proceeds to 618 where the code is released for use.
  • In operation, method 600 allows a user to select one or more user interface features from a component work set, and to configure the component features and the states associated with the component feature for use in a user interface. Method 600 allows code to be generated that will generate the desired user interface having the desired features and states.
  • FIG. 7 is a flowchart of a method 700 for adding a layer of code to previously generated code in accordance with an exemplary embodiment of the present invention. Method 700 allows a user to modify user interface code or other suitable code at a subsequent layer, and further allows the code added at the subsequent layers to be backwards compatible with any code revisions to the primary code or code from a higher layer.
  • Method 700 begins at 702 where primary code is received. In one exemplary embodiment, the primary code can be a first set of code generated by a user at the highest level of a code architecture. Likewise, the primary code can include one or more additional layers of code, such as those generated by a developer for an enterprise, a consultant, or other suitable intermediaries. The method then proceeds to 704.
  • At 704, user interface classes are displayed independently or in conjunction with primary code user interface classes. In one exemplary embodiment, the user interface classes can be displayed as selected by a user, and any modifications required to superimpose the selected user interface classes on the primary code can be performed without subsequent operator interaction. Likewise, the primary code user interfaces can be generated and supplemental user interface classes can be displayed, such that the operator can add features, select features to be deleted or modified, or perform other suitable functions.
  • In another exemplary embodiment, when a primary code change has been implemented, the user interface classes can be displayed with the current primary code classes, with indications of changes between the previous primary code and the new version of the primary code, or in other suitable manners. The method then proceeds to 706.
  • At 706, a user selection is received, such as selection of a new feature to add to the user interface, selection of an existing primary feature to modify, or other suitable user selections. The method then proceeds to 708.
  • At 708, the options and information on accessing and using the features in the primary code data and/or the primary code data can be displayed. In one exemplary embodiment, primary code data features can be modified, and the user can select to have the options, access, and use data displayed for the primary code data. Likewise, additional features can be added, and the options, access, and use data can be provided so as to allow those features to interact with the existing primary code. Likewise, when primary code versions have been modified, the existing layer of code options, access, and use data can be displayed with the new primary code data, with primary code data showing the difference between old primary code data and new primary code data, or other suitable data. The method then proceeds to 710.
  • At 710, user selections are received. The user selections can include options, access, and use data to be modified in primary code data, additional options, access, and use data to be implemented in conjunction with the primary code data, or other suitable user selections. The method then proceeds to 712.
  • At 712, the associated state engine and primary code states are displayed. In one exemplary embodiment, a user can elect to modify only the state engine aspects of the primary code. Likewise, state engine capability for user-selected additional features can be displayed at 712. The method then proceeds to 714.
  • At 714, a user sequence selection is received. In one exemplary embodiment, the user can select a sequence of states from the associated state engine. Likewise, the user can re-sequence the states provided for the primary code, or can perform other suitable functions. The method then proceeds to 716.
  • At 716, it is determined whether additional features are desired. If additional features are desired, the method returns to 702. Otherwise, the method proceeds to 718.
  • At 718, code is generated. The code can include supplemental code layers that are used in conjunction with a set of primary code, a new set of code that includes both the functionality provided by the primary code and new code functionality, or other suitable code. The method then proceeds to 720.
  • If the code generated at 718 includes only additional code functionality at the second or subsequent layers, then the newly generated code can be integrated with the primary code at 720. The method then proceeds to 722.
  • At 722, the code is released for use. In one exemplary embodiment, additional testing and bug fixing can be performed prior to releasing the code for use.
  • In operation, method 700 allows layers of code to be generated such that when additional functionality or features are desired at the organizational or site level, these features can be added in a manner that allows modifications to be made to the primary code without requiring the features to be re-implemented at a later stage.
  • Although exemplary embodiments of a system and method for performing the present invention have been described in detail herein, those skilled in the art will also recognize that various substitutions and modifications can be made to the systems and methods without departing from the scope and spirit of the appended claims.

Claims (20)

1. A system for generating user interface code comprising:
a user interface class system generating user interface class code, wherein the user interface class code includes two or more user interface features that can be selected and assembled into a user interface by a user; and
a handler class system generating handler class code, wherein the handler class code includes one or more states for each user interface feature of the user interface class;
wherein the user interface class and the handler class cause the selected user interface features and associated states for the user interface features to be automatically generated when the user interface code is executed.
2. The system of claim 2 wherein the user interface class system further comprises a developer user interface class system automatically generating a developer user interface class that operates in conjunction with the user interface code to provide modified user interface features.
3. The system of claim 1 further comprising a developer handler class system generating a developer handler class that operates in conjunction with the user interface code to automatically provide modified user interface states.
4. The system of claim 2 wherein the user interface class system further comprises a site-specific user interface class system generating a site-specific user interface class that operates in conjunction with the user interface code and the developer user interface class to provide site-specific user interface features.
5. The system of claim 3 wherein the developer handler class system further comprises a site-specific handler class system generating a site-specific handler class that operates in conjunction with the user interface code and the developer handler class to provide site-specific user interface states.
6. The system of claim 1 wherein the user interface class includes an accounts payable user interface class, an accounts receivable user interface class, a general ledger user interface class, a global user interface class, an inventory control user interface class, an order common user interface class, a purchase order user interface class, a report user interface class, a shipping order user interface class, a utility use interface class, a report user interface class, a test user interface class, and a template user interface class.
7. The system of claim 1 wherein the handler class includes an accounts payable handler class, an accounts receivable handler class, a general ledger handler class, a global handler class, an inventory control handler class, an order common handler class, a purchase order handler class, a report handler class, a shipping order handler class, a utility handler class, a report handler class, a test handler class, and a template handler class.
8. A method for generating user interface code comprising:
receiving a selection of a user interface feature for a user interface class;
automatically retrieving a handler associated with the user interface feature that includes one or more states; and
automatically generating one or more code elements that cause a user display to be generated when executed that includes the user interface feature having the one or more states.
9. The method of claim 8 further comprising;
receiving a selection of a developer user interface feature from a developer user interface class; and
automatically generating one or more code elements that cause the user display to be generated that includes the developer user interface feature.
10. The method of claim 8 further comprising:
receiving a selection of a developer user interface state from a developer handler class; and
automatically generating one or more code elements that cause the user display to be generated that includes the developer user interface state.
11. The method of claim 9 further comprising;
receiving a selection of a site-specific user interface feature from a site-specific user interface class; and
automatically generating one or more code elements that cause the user display to be generated that includes the site-specific user interface feature.
12. The method of claim 8 further comprising:
receiving a selection of a site-specific user interface state from a site-specific handler class; and
automatically generating one or more code elements that cause the user display to be generated that includes the site-specific user interface state.
13. The method of claim 8 wherein receiving a selection of the user interface feature from the user interface class includes receiving a selection from an accounts payable user interface class, an accounts receivable user interface class, a general ledger user interface class, a global user interface class, an inventory control user interface class, an order common user interface class, a purchase order user interface class, a report user interface class, a shipping order user interface class, a utility user interface class, a report user interface class, a test user interface class, and a template user interface class.
14. The method of claim 8 wherein retrieving the handler associated with the user interface feature that includes one or more states includes retrieving an accounts payable handler class, an accounts receivable handler class, a general ledger handler class, a global handler class, an inventory control handler class, an order common handler class, a purchase order handler class, a report handler class, a shipping order handler class, a utility handler class, a report handler class, a test handler class, and a template handler class.
15. A system for generating software code comprising:
a primary code generator receiving one or more user selections for one or more classes and generating primary software code;
a developer code generator receiving the primary software code and one or more user selections from one or more developer classes and automatically generating developer software code;
a primary code editor automatically modifying one or more of the classes; and
wherein the modifications made to the one or more of the classes by the primary code editor result in the generation of code that is backwards and forwards compatible with other tiers in a multi-tier architecture of the developer software code.
16. The system of claim 15 comprising a site-specific code generator receiving the primary software code, the developer software code, and one or more selections from one or more site-specific classes and generating site-specific software code, wherein the modifications made to the one or more of the classes by the primary code editor result in the generation of code that is compatible with the site-specific software code.
17. The system of claim 15 wherein the primary code generator further comprises a feature class including two or more features and a corresponding state class including one or more states for each feature.
18. The system of claim 15 wherein the developer code generator further comprises a developer feature class including two or more developer features and a corresponding developer state class including one or more developer states for each developer feature.
19. The system of claim 16 wherein the site-specific code generator further comprises a site-specific feature class including two or more site-specific features and a corresponding site-specific state class including one or more site-specific states for each site-specific feature.
20. The system of claim 15 wherein the primary code generator further comprises a user interface class including two or more user interface features and a corresponding state class including one or more states for each user interface feature.
US10/046,389 2002-01-16 2002-01-16 System and method for generating user interface code Expired - Lifetime US7243334B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US10/046,389 US7243334B1 (en) 2002-01-16 2002-01-16 System and method for generating user interface code
PCT/US2003/001030 WO2003062946A2 (en) 2002-01-16 2003-01-14 System and method for generating user interface code
AU2003205133A AU2003205133A1 (en) 2002-01-16 2003-01-14 System and method for generating user interface code
US11/825,703 US20070261026A1 (en) 2002-01-16 2007-07-09 System and method for generating user interface code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/046,389 US7243334B1 (en) 2002-01-16 2002-01-16 System and method for generating user interface code

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/825,703 Continuation US20070261026A1 (en) 2002-01-16 2007-07-09 System and method for generating user interface code

Publications (2)

Publication Number Publication Date
US7243334B1 US7243334B1 (en) 2007-07-10
US20070168933A1 true US20070168933A1 (en) 2007-07-19

Family

ID=27609049

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/046,389 Expired - Lifetime US7243334B1 (en) 2002-01-16 2002-01-16 System and method for generating user interface code
US11/825,703 Abandoned US20070261026A1 (en) 2002-01-16 2007-07-09 System and method for generating user interface code

Family Applications After (1)

Application Number Title Priority Date Filing Date
US11/825,703 Abandoned US20070261026A1 (en) 2002-01-16 2007-07-09 System and method for generating user interface code

Country Status (3)

Country Link
US (2) US7243334B1 (en)
AU (1) AU2003205133A1 (en)
WO (1) WO2003062946A2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070250330A1 (en) * 2006-03-31 2007-10-25 Sap Ag Sourcing controller
US20100058198A1 (en) * 2008-04-16 2010-03-04 Modria, Inc. Collaborative realtime planning using a model driven architecture and iterative planning tools
US20120216240A1 (en) * 2011-02-17 2012-08-23 Microsoft Corporation Providing data security through declarative modeling of queries
US20120291011A1 (en) * 2011-05-12 2012-11-15 Google Inc. User Interfaces to Assist in Creating Application Scripts
US8671387B2 (en) 2011-05-12 2014-03-11 Google Inc. Compilation and injection of scripts in a rapid application development
US8788955B2 (en) 2011-05-12 2014-07-22 Google Inc. Creation and configuration of compound widgets
US8806348B2 (en) 2011-05-12 2014-08-12 Google Inc. Data model generation based on user interface specification
US9141346B2 (en) 2011-05-12 2015-09-22 Google Inc. Layout management in a rapid application development tool
US11544452B2 (en) * 2016-08-10 2023-01-03 Airbnb, Inc. Generating templates for automated user interface components and validation rules based on context

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516441B2 (en) * 2001-06-04 2009-04-07 Microsoft Corporation Method and system for program editing and debugging in a common language runtime environment
US7243334B1 (en) * 2002-01-16 2007-07-10 Prelude Systems, Inc. System and method for generating user interface code
US7627552B2 (en) 2003-03-27 2009-12-01 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7769794B2 (en) 2003-03-24 2010-08-03 Microsoft Corporation User interface for a file system shell
US7712034B2 (en) 2003-03-24 2010-05-04 Microsoft Corporation System and method for shell browser
US7421438B2 (en) 2004-04-29 2008-09-02 Microsoft Corporation Metadata editing control
US7823077B2 (en) 2003-03-24 2010-10-26 Microsoft Corporation System and method for user modification of metadata in a shell browser
US7240292B2 (en) 2003-04-17 2007-07-03 Microsoft Corporation Virtual address bar user interface control
US7925682B2 (en) 2003-03-27 2011-04-12 Microsoft Corporation System and method utilizing virtual folders
US7650575B2 (en) 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
US8024335B2 (en) 2004-05-03 2011-09-20 Microsoft Corporation System and method for dynamically generating a selectable search extension
US8225221B2 (en) * 2004-04-12 2012-07-17 Microsoft Corporation Method and apparatus for constructing representations of objects and entities
US7694236B2 (en) 2004-04-23 2010-04-06 Microsoft Corporation Stack icons representing multiple objects
US7657846B2 (en) 2004-04-23 2010-02-02 Microsoft Corporation System and method for displaying stack icons
US10216372B1 (en) * 2004-12-06 2019-02-26 The Mathworks, Inc. Automatic import to a graphical model
US8195646B2 (en) 2005-04-22 2012-06-05 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US8365086B2 (en) * 2005-05-03 2013-01-29 The Mathworks, Inc. System and method for building graphical instrument panels
US7665028B2 (en) 2005-07-13 2010-02-16 Microsoft Corporation Rich drag drop user interface
US20080307312A1 (en) * 2007-06-08 2008-12-11 Infosys Technologies Ltd. User interface development tools
US7698181B2 (en) * 2008-01-09 2010-04-13 Penske Truck Leasing Co., Lp Method and apparatus for custom cost accounting invoicing
US8677310B2 (en) * 2008-06-30 2014-03-18 Rockwell Automation Technologies, Inc. Industry template abstracting and creation for use in industrial automation and information solutions
US8255869B2 (en) * 2008-06-30 2012-08-28 Rockwell Automation Technologies, Inc. Industry template customization and transclusion for use in industrial automation and information solutions
US8762233B2 (en) * 2008-08-01 2014-06-24 Hantz Software, Llc Single or multi-company business accounting system and method for same including account number maintenance
US8204803B2 (en) * 2008-08-01 2012-06-19 Hantz Group, Inc. Multi-company business accounting system and method for same including financial reporting
US20100306089A1 (en) * 2008-08-01 2010-12-02 Hantz Group, Inc. Single or multi-company business accounting system and method for same including vendor account maintenance
US8832579B2 (en) * 2008-08-12 2014-09-09 Rockwell Automation Technologies, Inc. System for creation and management of industrial automation and information solutions and services
US7966523B2 (en) * 2008-08-21 2011-06-21 Rockwell Automation Technologies, Inc. Industrial automation and information solutions having industry specific modalities
US8656346B2 (en) * 2009-02-18 2014-02-18 Microsoft Corporation Converting command units into workflow activities
US8913771B2 (en) * 2009-03-04 2014-12-16 Apple Inc. Portable electronic device having a water exposure indicator label
US8515831B2 (en) * 2010-01-04 2013-08-20 Bala R. Vatti People's task management framework
US9244697B2 (en) * 2010-07-30 2016-01-26 Sap Se Stable anchors in user interface to support life cycle extensions
KR101155207B1 (en) * 2010-11-18 2012-06-13 포항공과대학교 산학협력단 Method of developing software and apparatus for the same
US8886646B2 (en) 2010-12-30 2014-11-11 Sap Se Field extensibility for analytical reports
US9566710B2 (en) 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
AU2012355474B2 (en) * 2011-12-23 2018-01-04 Airstrip Ip Holdings, Llc Systems and methods for developing multi-platform applications for computing devices
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
US9242372B2 (en) * 2013-05-31 2016-01-26 Brain Corporation Adaptive robotic interface apparatus and methods
US9792546B2 (en) 2013-06-14 2017-10-17 Brain Corporation Hierarchical robotic controller apparatus and methods
US9384443B2 (en) 2013-06-14 2016-07-05 Brain Corporation Robotic training apparatus and methods
US9314924B1 (en) 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
US9579789B2 (en) 2013-09-27 2017-02-28 Brain Corporation Apparatus and methods for training of robotic control arbitration
US9597797B2 (en) 2013-11-01 2017-03-21 Brain Corporation Apparatus and methods for haptic training of robots
US9358685B2 (en) 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
US9703534B2 (en) 2014-09-23 2017-07-11 Quixey, Inc. Dynamic entity inference for developer integration of entity-based external functionality
WO2016049215A2 (en) * 2014-09-23 2016-03-31 Quixey, Inc. Dynamic entity inference for developer integration of entity-based external functionality
US9645797B2 (en) 2014-09-23 2017-05-09 Quixey, Inc. Development system and method for providing external functionality
US9613095B2 (en) 2014-09-23 2017-04-04 Quixey, Inc. Entity-based external functionality for software developers
US9630318B2 (en) 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US9717387B1 (en) 2015-02-26 2017-08-01 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
US9864580B2 (en) 2015-10-26 2018-01-09 Samsung Electronics Co., Ltd. Dynamic availability-based integration of external functionality
US10241514B2 (en) 2016-05-11 2019-03-26 Brain Corporation Systems and methods for initializing a robot to autonomously travel a trained route
US9987752B2 (en) 2016-06-10 2018-06-05 Brain Corporation Systems and methods for automatic detection of spills
US10282849B2 (en) 2016-06-17 2019-05-07 Brain Corporation Systems and methods for predictive/reconstructive visual object tracker
US10016896B2 (en) 2016-06-30 2018-07-10 Brain Corporation Systems and methods for robotic behavior around moving bodies
US10274325B2 (en) 2016-11-01 2019-04-30 Brain Corporation Systems and methods for robotic mapping
US10001780B2 (en) 2016-11-02 2018-06-19 Brain Corporation Systems and methods for dynamic route planning in autonomous navigation
US11816459B2 (en) * 2016-11-16 2023-11-14 Native Ui, Inc. Graphical user interface programming system
US10723018B2 (en) 2016-11-28 2020-07-28 Brain Corporation Systems and methods for remote operating and/or monitoring of a robot
US10377040B2 (en) 2017-02-02 2019-08-13 Brain Corporation Systems and methods for assisting a robotic apparatus
US10852730B2 (en) 2017-02-08 2020-12-01 Brain Corporation Systems and methods for robotic mobile platforms
US10293485B2 (en) 2017-03-30 2019-05-21 Brain Corporation Systems and methods for robotic path planning

Citations (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237691A (en) * 1990-08-01 1993-08-17 At&T Bell Laboratories Method and apparatus for automatically generating parallel programs from user-specified block diagrams
US5301270A (en) * 1989-12-18 1994-04-05 Anderson Consulting Computer-assisted software engineering system for cooperative processing environments
US5428791A (en) * 1992-07-18 1995-06-27 International Computers Limited Configuration mechanism for a computer system having generic user interface and component-specific builder modules
US5448740A (en) * 1992-12-15 1995-09-05 International Business Machines Corporation Generation of a user interface code from a corresponding declarative language program
US5450545A (en) * 1991-07-29 1995-09-12 International Business Machines Corporation Generation of rules-based computer programs using data entry screens
US5551040A (en) * 1993-06-02 1996-08-27 Lucent Technologies Inc. Methods and apparatus for specifying the contexts of names in callback-style programming
US5594642A (en) * 1993-12-22 1997-01-14 Object Technology Licensing Corp. Input methods framework
US5754858A (en) * 1996-05-01 1998-05-19 Microsoft Corporation Customizable application project generation process and system
US5786815A (en) * 1996-05-31 1998-07-28 Sun Microsystems, Inc. Configurable runtime graphical user interface widget management
US5911070A (en) * 1995-08-07 1999-06-08 Inprise Corporation Development system with methods for bi-directional application program code generation
US5950001A (en) * 1997-06-03 1999-09-07 Sun Microsystems, Inc. Method and apparatus for customizing a software component
US5966532A (en) * 1997-07-10 1999-10-12 National Instruments Corporation Graphical code generation wizard for automatically creating graphical programs
US5978581A (en) * 1997-12-02 1999-11-02 Electronic Data Systems Corporation Object-oriented code generation system and method
US6025836A (en) * 1997-07-23 2000-02-15 Novell, Inc. Method and apparatus for generating object oriented user interfaces
US6044217A (en) * 1997-03-27 2000-03-28 International Business Machines Corporation Hierarchical metadata store for an integrated development environment
US6066181A (en) * 1997-12-08 2000-05-23 Analysis & Technology, Inc. Java native interface code generator
US6115690A (en) * 1997-12-22 2000-09-05 Wong; Charles Integrated business-to-business Web commerce and business automation system
US6113649A (en) * 1996-03-27 2000-09-05 International Business Machines Corporation Object representation of program and script components
US6118939A (en) * 1998-01-22 2000-09-12 International Business Machines Corporation Method and system for a replaceable application interface at the user task level
US6131183A (en) * 1993-05-24 2000-10-10 Raytheon Company Computer and method for enabling graphic user interface (GUI) control and command line (TTY) control of a computer program
US6182274B1 (en) * 1997-05-01 2001-01-30 International Business Machines Corporation Reusing code in object-oriented program development
US6230117B1 (en) * 1997-03-27 2001-05-08 International Business Machines Corporation System for automated interface generation for computer programs operating in different environments
US20010037490A1 (en) * 2000-03-17 2001-11-01 Hiang-Swee Chiang Web application generator
US20020083413A1 (en) * 2000-12-20 2002-06-27 National Instruments Corporation System and method for programmatically generating a graphical program in response to a state diagram
US6654947B1 (en) * 1998-12-23 2003-11-25 At&T Corp. Method and system for creating dynamic interfaces using a general control container
US6760902B1 (en) * 1999-08-31 2004-07-06 James Alan Ott Method and apparatus for implicitly generating and supporting a user interface
US6763515B1 (en) * 2000-06-05 2004-07-13 National Instruments Corporation System and method for automatically generating a graphical program to perform an image processing algorithm
US6792595B1 (en) * 1998-12-23 2004-09-14 International Business Machines Corporation Source editing in a graphical hierarchical environment
US20040205706A1 (en) * 2001-05-31 2004-10-14 Portwood Michael T. Method for the automatic generation of computer programs which interact with existing objects

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5936860A (en) * 1997-03-28 1999-08-10 International Business Machines Corporation Object oriented technology framework for warehouse control
US6249905B1 (en) * 1998-01-16 2001-06-19 Kabushiki Kaisha Toshiba Computerized accounting system implemented in an object-oriented programming environment
US7243334B1 (en) * 2002-01-16 2007-07-10 Prelude Systems, Inc. System and method for generating user interface code

Patent Citations (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301270A (en) * 1989-12-18 1994-04-05 Anderson Consulting Computer-assisted software engineering system for cooperative processing environments
US5237691A (en) * 1990-08-01 1993-08-17 At&T Bell Laboratories Method and apparatus for automatically generating parallel programs from user-specified block diagrams
US5450545A (en) * 1991-07-29 1995-09-12 International Business Machines Corporation Generation of rules-based computer programs using data entry screens
US5428791A (en) * 1992-07-18 1995-06-27 International Computers Limited Configuration mechanism for a computer system having generic user interface and component-specific builder modules
US5448740A (en) * 1992-12-15 1995-09-05 International Business Machines Corporation Generation of a user interface code from a corresponding declarative language program
US6131183A (en) * 1993-05-24 2000-10-10 Raytheon Company Computer and method for enabling graphic user interface (GUI) control and command line (TTY) control of a computer program
US5551040A (en) * 1993-06-02 1996-08-27 Lucent Technologies Inc. Methods and apparatus for specifying the contexts of names in callback-style programming
US5594642A (en) * 1993-12-22 1997-01-14 Object Technology Licensing Corp. Input methods framework
US5911070A (en) * 1995-08-07 1999-06-08 Inprise Corporation Development system with methods for bi-directional application program code generation
US6113649A (en) * 1996-03-27 2000-09-05 International Business Machines Corporation Object representation of program and script components
US5754858A (en) * 1996-05-01 1998-05-19 Microsoft Corporation Customizable application project generation process and system
US5786815A (en) * 1996-05-31 1998-07-28 Sun Microsystems, Inc. Configurable runtime graphical user interface widget management
US6044217A (en) * 1997-03-27 2000-03-28 International Business Machines Corporation Hierarchical metadata store for an integrated development environment
US6230117B1 (en) * 1997-03-27 2001-05-08 International Business Machines Corporation System for automated interface generation for computer programs operating in different environments
US6182274B1 (en) * 1997-05-01 2001-01-30 International Business Machines Corporation Reusing code in object-oriented program development
US5950001A (en) * 1997-06-03 1999-09-07 Sun Microsystems, Inc. Method and apparatus for customizing a software component
US5966532A (en) * 1997-07-10 1999-10-12 National Instruments Corporation Graphical code generation wizard for automatically creating graphical programs
US6025836A (en) * 1997-07-23 2000-02-15 Novell, Inc. Method and apparatus for generating object oriented user interfaces
US5978581A (en) * 1997-12-02 1999-11-02 Electronic Data Systems Corporation Object-oriented code generation system and method
US6066181A (en) * 1997-12-08 2000-05-23 Analysis & Technology, Inc. Java native interface code generator
US6115690A (en) * 1997-12-22 2000-09-05 Wong; Charles Integrated business-to-business Web commerce and business automation system
US6118939A (en) * 1998-01-22 2000-09-12 International Business Machines Corporation Method and system for a replaceable application interface at the user task level
US6654947B1 (en) * 1998-12-23 2003-11-25 At&T Corp. Method and system for creating dynamic interfaces using a general control container
US6792595B1 (en) * 1998-12-23 2004-09-14 International Business Machines Corporation Source editing in a graphical hierarchical environment
US6760902B1 (en) * 1999-08-31 2004-07-06 James Alan Ott Method and apparatus for implicitly generating and supporting a user interface
US20010037490A1 (en) * 2000-03-17 2001-11-01 Hiang-Swee Chiang Web application generator
US6763515B1 (en) * 2000-06-05 2004-07-13 National Instruments Corporation System and method for automatically generating a graphical program to perform an image processing algorithm
US20020083413A1 (en) * 2000-12-20 2002-06-27 National Instruments Corporation System and method for programmatically generating a graphical program in response to a state diagram
US20040205706A1 (en) * 2001-05-31 2004-10-14 Portwood Michael T. Method for the automatic generation of computer programs which interact with existing objects

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070250330A1 (en) * 2006-03-31 2007-10-25 Sap Ag Sourcing controller
US8135713B2 (en) * 2006-03-31 2012-03-13 Sap Ag Sourcing controller
US20100058198A1 (en) * 2008-04-16 2010-03-04 Modria, Inc. Collaborative realtime planning using a model driven architecture and iterative planning tools
US20120278787A1 (en) * 2008-04-16 2012-11-01 Modria, Inc. Collaborative realtime planning using a model driven architecture and iterative planning tools
US20120216240A1 (en) * 2011-02-17 2012-08-23 Microsoft Corporation Providing data security through declarative modeling of queries
US8671387B2 (en) 2011-05-12 2014-03-11 Google Inc. Compilation and injection of scripts in a rapid application development
US20120291011A1 (en) * 2011-05-12 2012-11-15 Google Inc. User Interfaces to Assist in Creating Application Scripts
US8788955B2 (en) 2011-05-12 2014-07-22 Google Inc. Creation and configuration of compound widgets
US8806348B2 (en) 2011-05-12 2014-08-12 Google Inc. Data model generation based on user interface specification
US9141346B2 (en) 2011-05-12 2015-09-22 Google Inc. Layout management in a rapid application development tool
US9465822B2 (en) 2011-05-12 2016-10-11 Google Inc. Data model generation based on user interface specification
US9952839B2 (en) 2011-05-12 2018-04-24 Google Llc Layout management in a rapid application development tool
US10740072B2 (en) 2011-05-12 2020-08-11 Google Llc Layout management in a rapid application development tool
US11544452B2 (en) * 2016-08-10 2023-01-03 Airbnb, Inc. Generating templates for automated user interface components and validation rules based on context

Also Published As

Publication number Publication date
WO2003062946A3 (en) 2005-02-03
US20070261026A1 (en) 2007-11-08
AU2003205133A1 (en) 2003-09-02
WO2003062946A2 (en) 2003-07-31
US7243334B1 (en) 2007-07-10

Similar Documents

Publication Publication Date Title
US7243334B1 (en) System and method for generating user interface code
US11487529B2 (en) User interface that integrates plural client portals in plural user interface portions through sharing of one or more log records
US8321832B2 (en) Composite application modeling
US9063823B2 (en) Software development and distribution workflow employing meta-object time stamping
US8312416B2 (en) Software model business process variant types
RU2308084C2 (en) Method and system for controlling business process of an enterprise
US7496535B2 (en) Computerized interface for constructing and executing computerized transaction processes and programs
US8359580B2 (en) System and method for tracking testing of software modification projects
US8781924B2 (en) Remote program development mediation system and method for mediating a program development contract and development of program using virtual development environment of client
US7814030B2 (en) Systems and methods for managing enterprise IT support planning
CN101164062A (en) Framework for group systems software configuration and release management
WO2002033636A1 (en) Apparatus, methods and articles of manufacture for constructing and executing computerized transaction processes and programs
US20210103862A1 (en) Methods and apparatus for exposing workflow process definitions as business objects
US20080288918A1 (en) Web service tool based on business object layer
Herzog A comparison of open source ERP system
US20100153977A1 (en) Creating Step Descriptions for Application Program Interfaces
Pinckaers et al. Open ERP, a modern approach to integrated business management
AU2005289750A1 (en) Business process management system and method
Liepold et al. SAP ERP HCM: Technical Principles and Programming
Tasnim Purchase Approval System
Khinchi Module Pool Programming with System Application Product (SAP)
JPH1091706A (en) Business processing system
Shrimpton Pro Visual Studio 2005 Team System Application Development
McCormick et al. Content integration with SAP NetWeaver portal
Yang Oracle iSetup User Guide, Release 12 Part No. B31430-01 Copyright© 2002, 2006, Oracle. All rights reserved. Primary Author: Harish Babu Contributing Author: Srikrishan Bandi, Anne Carlson, Sameer Chhabra, Anish Malhotra, Ultan O'Broin

Legal Events

Date Code Title Description
AS Assignment

Owner name: PRELUDE SYSTEMS, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BERGER, KENNETH A.;TURNER, LARRY J.;WILCOX, ANDREW E.;REEL/FRAME:012823/0856;SIGNING DATES FROM 20020320 TO 20020321

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: ACTIVANT WHOLESALE DISTRIBUTION SOLUTIONS INC., CA

Free format text: MERGER;ASSIGNOR:PRELUDE SYSTEMS, INC.;REEL/FRAME:021794/0260

Effective date: 20080922

AS Assignment

Owner name: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERA

Free format text: GRANT OF SECURITY INTEREST;ASSIGNOR:ACTIVANT WHOLESALE DISTRIBUTION SOLUTIONS INC.;REEL/FRAME:021901/0576

Effective date: 20081114

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPP Fee payment procedure

Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

REFU Refund

Free format text: REFUND - SURCHARGE, PETITION TO ACCEPT PYMT AFTER EXP, UNINTENTIONAL (ORIGINAL EVENT CODE: R2551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: ACTIVANT SOLUTIONS INC., CALIFORNIA

Free format text: MERGER;ASSIGNOR:ACTIVANT WHOLESALE DISTRIBUTION SOLUTIONS INC.;REEL/FRAME:025789/0227

Effective date: 20101223

AS Assignment

Owner name: ACTIVANT SOLUTIONS INC., CALIFORNIA

Free format text: PATENT RELEASE;ASSIGNOR:DEUTSCHE BANK TRUST COMPANY AMERICA, AS COLLATERAL AGENT;REEL/FRAME:026288/0568

Effective date: 20110516

Owner name: ACTIVANT SOLUTIONS INC. (F/K/A ACTIVANT WHOLESALE

Free format text: PATENT RELEASE;ASSIGNOR:DEUTSCHE BANK TRUST COMPANY AMERICA, AS COLLATERAL AGENT;REEL/FRAME:026288/0568

Effective date: 20110516

Owner name: ACTIVANT SOLUTIONS INC. (F/K/A PRELUDE SYSTEMS INC

Free format text: PATENT RELEASE;ASSIGNOR:DEUTSCHE BANK TRUST COMPANY AMERICA, AS COLLATERAL AGENT;REEL/FRAME:026288/0568

Effective date: 20110516

AS Assignment

Owner name: ROYAL BANK OF CANADA, AS COLLATERAL AGENT, CANADA

Free format text: SECURITY AGREEMENT;ASSIGNORS:ACTIVANT SOLUTIONS INC.;EAGLE PARENT, INC.;EGL HOLDCO, INC.;AND OTHERS;REEL/FRAME:026308/0368

Effective date: 20110516

AS Assignment

Owner name: EPICOR SOFTWARE CORPORATION, COLORADO

Free format text: MERGER;ASSIGNOR:ACTIVANT SOLUTIONS INC.;REEL/FRAME:027642/0914

Effective date: 20111227

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: U.S. BANK NATIONAL ASSOCIATION, MINNESOTA

Free format text: SECURITY INTEREST;ASSIGNOR:EPICOR SOFTWARE CORPORATION;REEL/FRAME:035758/0083

Effective date: 20150601

AS Assignment

Owner name: EPICOR SOFTWARE CORPORATION, TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:ROYAL BANK OF CANADA;REEL/FRAME:035762/0533

Effective date: 20150601

AS Assignment

Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YO

Free format text: SECURITY AGREEMENT;ASSIGNOR:EPICOR SOFTWARE CORPORATION;REEL/FRAME:035815/0447

Effective date: 20150601

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12

AS Assignment

Owner name: KKR LOAN ADMINISTRATION SERVICES LLC, NEW YORK

Free format text: SECOND LIEN SECURITY AGREEMENT;ASSIGNOR:EPICOR SOFTWARE CORPORATION;REEL/FRAME:053371/0194

Effective date: 20200731

AS Assignment

Owner name: KKR LOAN ADMINISTRATION SERVICES LLC, NEW YORK

Free format text: NOTICE OF SUCCESSION OF AGENCY;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:053387/0515

Effective date: 20200731

Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, MINNESOTA

Free format text: SECURITY INTEREST;ASSIGNOR:EPICOR SOFTWARE CORPORATION;REEL/FRAME:053388/0025

Effective date: 20200731

AS Assignment

Owner name: EPICOR SOFTWARE CORPORATION, TEXAS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT;REEL/FRAME:053401/0454

Effective date: 20200731

AS Assignment

Owner name: EPICOR SOFTWARE CORPORATION, TEXAS

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (SECOND LIEN);ASSIGNOR:KKR LOAN ADMINISTRATION SERVICES LLC;REEL/FRAME:065367/0442

Effective date: 20231025