US20070168933A1 - System and method for generating user interface code - Google Patents
System and method for generating user interface code Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 64
- 238000012986 modification Methods 0.000 claims description 60
- 230000004048 modification Effects 0.000 claims description 60
- 238000012360 testing method Methods 0.000 claims description 14
- 238000012423 maintenance Methods 0.000 description 55
- 230000006870 function Effects 0.000 description 44
- 239000000047 product Substances 0.000 description 24
- 238000012545 processing Methods 0.000 description 10
- 238000012790 confirmation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 6
- 238000013479 data entry Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000029305 taxis Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000004308 accommodation Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
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
Description
- This application is related to U.S. Pat. No. 09/689,067, entitled “System and Method for Enterprise Resource Management,” filed Oct. 12, 2000.
- 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. 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.
- 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.
-
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. - 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 asystem 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 includescode 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 includesprimary 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 userinterface class system 110 andhandler class system 112. Userinterface 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 userinterface class system 110 and the states provided byhandler 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. Userinterface 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. Userinterface 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 userinterface 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 userinterface 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 userinterface 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 throughhandler 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 andhandler 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 userinterface class system 114 andhandler class system 116, both of which interface with code generated byprimary 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 throughprimary code generator 104. Thus, a developer can usedeveloper code generator 106 to modify user interface selections using userinterface class system 114, and to modify states usinghandler 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 usedeveloper code generator 106 to modify the code generated byprimary code generator 104, such as by selecting additional user interface features through userinterface 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 userinterface class system 114, or by usinghandler 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 fromprimary 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 byprimary 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 byprimary 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 byprimary code generator 104.Developer code generator 106 then generates developer code that supplements, interacts with, modifies, or overrides the code generated byprimary 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 throughprimary code generator 104 will interface with the code previously generated bydeveloper code generator 106, regardless of any modifications made to existing user interfaces or states. In this manner, the code generated bydeveloper code generator 106 will be compatible with the code generated byprimary 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 thedeveloper 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 bydeveloper code generator 106 would replace the customer lookup function with the account number entry function previously generated, such that any modifications to code generated byprimary code generator 104 in the new release will be compatible with code previously generated bydeveloper 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 bydeveloper code generator 106. In this manner, site-specific code generator 108 receives the code generated byprimary code generator 104 anddeveloper 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 ofprimary code generator 104 anddeveloper code generator 106 will be compatible with code previously developed using site-specific code generator 108. Site-specific code generator 108 includes a userinterface class system 118 andhandler 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 byprimary code generator 104 anddeveloper code generator 106 will be compatible with a subsequent version of code generated byprimary code generator 104 anddeveloper 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 bysystem 100 is user interface code, butsystem 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, userinterface class systems handler class systems - 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 asystem 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 includescode editor system 202,option availability system 204, access andutilization 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 byoption 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 thatoption 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 andutilization 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 andutilization system 206 to be used to produce multiple frameworks for use in different applications. Access andutilization 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 theprimary 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 asystem 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 thedeveloper code generator 106 level or site-specific code generator 108 level ofsystem 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 ofsystem 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 asystem 400 for providing user interface states for corresponding user interface classes in accordance with an exemplary embodiment of the present invention.System 400 includeshandler 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 andhandler class system 402. Additional handlers can be added to userinterface class system 402, such that the new states will be backwards-compatible with any code generated at lower levels, such as at thedeveloper code generator 106 level or site-specific code generator 108 level ofsystem 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. Accountspayable 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, accountspayable 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 accountspayable 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 andhandler class system 402. Additional handlers can be added to userinterface class system 402, such that the new states will be backwards-compatible with any code generated at lower levels, such as at thedeveloper code generator 106 level or site-specific code generator 108 level ofsystem 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 bysystem 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 amethod 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 withmethod 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 amethod 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 amethod 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)
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)
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)
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 |
US7823077B2 (en) | 2003-03-24 | 2010-10-26 | Microsoft Corporation | System and method for user modification of metadata in a shell browser |
US7769794B2 (en) | 2003-03-24 | 2010-08-03 | Microsoft Corporation | User interface for a file system shell |
US7627552B2 (en) | 2003-03-27 | 2009-12-01 | Microsoft Corporation | System and method for filtering and organizing items based on common elements |
US7712034B2 (en) | 2003-03-24 | 2010-05-04 | Microsoft Corporation | System and method for shell browser |
US7240292B2 (en) | 2003-04-17 | 2007-07-03 | Microsoft Corporation | Virtual address bar user interface control |
US7421438B2 (en) | 2004-04-29 | 2008-09-02 | Microsoft Corporation | Metadata editing control |
US7650575B2 (en) | 2003-03-27 | 2010-01-19 | Microsoft Corporation | Rich drag drop user interface |
US7925682B2 (en) | 2003-03-27 | 2011-04-12 | Microsoft Corporation | System and method utilizing virtual folders |
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 |
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 |
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 |
US20100030673A1 (en) * | 2008-08-01 | 2010-02-04 | Hantz Group, Inc. | Multi-company business accounting system and method for same including account balance |
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 |
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 |
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 |
EP2795448A4 (en) * | 2011-12-23 | 2015-08-12 | 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 |
US9384443B2 (en) | 2013-06-14 | 2016-07-05 | Brain Corporation | Robotic training apparatus and methods |
US9792546B2 (en) | 2013-06-14 | 2017-10-17 | Brain Corporation | Hierarchical robotic controller 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 |
WO2016049215A2 (en) * | 2014-09-23 | 2016-03-31 | Quixey, Inc. | Dynamic entity inference for developer integration of entity-based external functionality |
US9766861B2 (en) | 2014-09-23 | 2017-09-19 | Quixey, Inc. | State-specific external functionality for software developers |
US9703534B2 (en) | 2014-09-23 | 2017-07-11 | Quixey, Inc. | Dynamic entity inference for developer integration of entity-based 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)
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)
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 |
-
2002
- 2002-01-16 US US10/046,389 patent/US7243334B1/en not_active Expired - Lifetime
-
2003
- 2003-01-14 AU AU2003205133A patent/AU2003205133A1/en not_active Abandoned
- 2003-01-14 WO PCT/US2003/001030 patent/WO2003062946A2/en not_active Application Discontinuation
-
2007
- 2007-07-09 US US11/825,703 patent/US20070261026A1/en not_active Abandoned
Patent Citations (29)
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)
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 |
---|---|
US20070261026A1 (en) | 2007-11-08 |
WO2003062946A2 (en) | 2003-07-31 |
WO2003062946A3 (en) | 2005-02-03 |
US7243334B1 (en) | 2007-07-10 |
AU2003205133A1 (en) | 2003-09-02 |
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 | |
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 | |
Waller | Appendixes |
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 |