US20090031230A1 - Automated Generation of Dynamic Data Entry User Interface for Relational Database Management Systems - Google Patents

Automated Generation of Dynamic Data Entry User Interface for Relational Database Management Systems Download PDF

Info

Publication number
US20090031230A1
US20090031230A1 US12/172,614 US17261408A US2009031230A1 US 20090031230 A1 US20090031230 A1 US 20090031230A1 US 17261408 A US17261408 A US 17261408A US 2009031230 A1 US2009031230 A1 US 2009031230A1
Authority
US
United States
Prior art keywords
entity
customer
field
order
data entry
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.)
Abandoned
Application number
US12/172,614
Inventor
John N. Kesler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INNOVATION MANAGEMENT SCIENCES
Advanced Dynamic Interfaces LLC
Original Assignee
INNOVATION MANAGEMENT SCIENCES
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=36576625&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=US20090031230(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by INNOVATION MANAGEMENT SCIENCES filed Critical INNOVATION MANAGEMENT SCIENCES
Priority to US12/172,614 priority Critical patent/US20090031230A1/en
Publication of US20090031230A1 publication Critical patent/US20090031230A1/en
Assigned to UNIFI SCIENTIFIC ADVANCES, INC. reassignment UNIFI SCIENTIFIC ADVANCES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MIND CONCEPTS TECHNOLOGY, LLC
Assigned to ADVANCED DYNAMIC INTERFACES, LLC reassignment ADVANCED DYNAMIC INTERFACES, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: UNIFI SCIENTIFIC ADVANCES, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/954Relational
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Definitions

  • the present invention relates to computer database systems and more particularly to a data entry user interface used to populate a relational database with information.
  • Relational database management systems are well known in the prior art.
  • a key characteristic of such systems is that data is organized and stored in tables in such a manner that various tables may be related to one another for the purpose of representing real world problems in the form of an organized data structure.
  • Relational databases are widely accepted in the modern business environment as a valuable tool to store information relating to an organization's business activities. But while relational database management systems provide an attractive way to organize and store data, they do not provide a convenient method to accept input from an end user for the purpose of populating the database with information.
  • Most data entry user interfaces are form-based in which a graphical representation of a form is presented on a video display.
  • the form which relates to the data being entered, contains a series of data entry controls that are used to collect data from the end user. These data entry controls typically attempt to provide the user with an intuitive data entry experience. For example, as illustrated in FIG. 1 , when entering a Customer Order into the database, an edit box with a corresponding button might represent the Order Date. The user can enter a date into the edit box by: (1) using the keyboard or (2) clicking the button to obtain a calendar from which a date can then be selected.
  • a new data element i.e., field
  • the user interface should also provide a mechanism by which users can conveniently navigate through the database for the purposes of entering and maintaining data.
  • the user interface should be extensible so that a system administrator can modify the interface to provide users with a better data entry experience and to insure the integrity of data stored in the underlying database.
  • the present invention is of computer software for, computer apparatus for, and a method of automatically generating a user interface for a relational database comprising: extracting schema information from the relational database and automatically generating corresponding schema and user interface metadata; storing the metadata in a repository; and automatically developing from the metadata a user interface appropriate to the relational database.
  • the schema and user interface metadata comprise entities, entity fields, entity relationships, and entity search paths.
  • the entity relationships comprising one-to-many, many-to-one, and many-to-many relationships
  • the automatically developed user interface comprises context menus specific to type of entity relationship.
  • the schema and user interface metadata preferably additionally comprises platform attributes for abstracting syntactic differences between database implementations.
  • the invention preferably additionally provides for addition of non-automatically-generated functionality to the developed user interface, such as scripts, external components, business rules, and/or triggers.
  • the metadata in the repository is refreshable after schema changes are made to the relational database.
  • Boolean A value that must be either TRUE (non 0) or FALSE (0).
  • Some databases systems store Boolean values as a single bit.
  • Business Rule The logical rules that are used to run a business. Business rules can be enforced through the user interface or in a database using triggers, stored procedures, and constraints.
  • Data Entry Control Objects that are contained within data entry forms and are designed to display data and accept input from users.
  • Data Integrity A state in which all the data values stored in the database are correct. If incorrect data values have been stored in a database, the database is said to have lost data integrity.
  • Datatype An attribute that specifies what type (i.e. Boolean, text, number, date, etc) of information can be stored in a field.
  • Extensible Markup Language is a meta-markup language that (XML) provides a format for describing structured data. This facilitates more precise declarations of content and more meaningful search results across multiple platforms.
  • XML is enabling a new generation of Web-based data viewing and manipulation applications.
  • Field In a database table, the area in each row that stores the data value for some attribute of the object modeled by the table.
  • Foreign Key The field or combination of fields whose values match the primary key (PK) or unique key in the same or another table.
  • Intersection Table A table used to form a relationship between two or more indirectly related tables.
  • Metadata Information about the properties of data such as the type of data in a field (numeric, text, and so on) or the length of a field. It can also be information about the structure of data or information that specifies the design of objects such as tables and relationships.
  • NULL An entry that has no explicitly assigned value. NULL is not equivalent to zero or blank. A value of NULL is not considered to be greater than, less than, or equivalent to any other value, including another value of NULL.
  • Primary Key A field or set of fields that uniquely identify all the rows in a table. Primary keys do not allow null values. No two rows can have the same primary key value; therefore, a primary key value always uniquely identifies a single row. Record A group of related fields of information treated as a unit in a table.
  • Relational Database A collection of information organized in related tables where each table consists of records and fields.
  • Relational Database A software system that supports relational databases. Well known Management System examples are Microsoft Access, Microsoft SQL Server and Oracle. Relationship A link between tables that references the primary key in one table to a foreign key in another table. Run-Time Any time the user is actually running and interacting with the application/user interface.
  • Schema A collection of database objects including tables, views, indexes, and foreign keys.
  • Stored Procedure A precompiled collection of SQL statements stored under a name and processed as a unit.
  • Structured Query Language A language used to insert, retrieve, modify, and delete data in a (SQL) relational database.
  • Table A two-dimensional object, consisting of records and fields, used to store data in a relational database.
  • Table Join As a verb, to combine the contents of two or more tables and produce a result set that incorporates rows and fields from each table. Tables are typically joined using data that they have in common. As a noun, the process or result of joining tables.
  • Unique Key Constraint Constraints that enforce table integrity on a non-primary key. Unique constraints ensure that no duplicate values are entered in the fields, which compose the key.
  • View A database object that can be referenced the same way as a table in SQL statements. Views are defined using a SELECT statement and are analogous to an object that contains the result set of this statement.
  • FIG. 1 depicts a data entry control
  • FIG. 2 depicts the high-level architecture implemented by the invention.
  • FIG. 3 summarizes the first 4 Forms of Normalization.
  • FIG. 4 depicts the Entity Relationship Diagram for the example database.
  • FIG. 5 depicts the parent-child paradigm implemented by the user interface.
  • FIG. 6 depicts selecting a child entity.
  • FIG. 7 depicts the View Menu in the user interface.
  • FIG. 8 depicts the Parent context menu.
  • FIG. 9 depicts the Reference context menu.
  • FIG. 10 depicts access to Reference Tables through the View Menu.
  • FIG. 11 depicts the One-To-Many context menu.
  • FIG. 12 depicts the Many-To-One context menu.
  • FIG. 13 depicts the Many-To-Many context menu.
  • FIG. 14 depicts selection of New Line Item One-To-Many menu option.
  • FIG. 15 depicts entering data on the Line Item data entry form.
  • FIG. 16 depicts the newly added Line Item record.
  • FIG. 17 depicts selection of the New Customer Many-To-One menu option.
  • FIG. 18 depicts entering data on the Customer data entry form.
  • FIG. 19 depicts the newly added Customer record.
  • FIG. 20 depicts selection of the New Spoken Language Many-To-Many menu option.
  • FIG. 21 depicts entering data on the Spoken Language data entry form.
  • FIG. 22 depicts the newly added Spoken Language record.
  • FIG. 23 depicts selecting the Promote Customer menu option.
  • FIG. 24 depicts the newly promoted Customer entity.
  • FIG. 25 depicts the results of a Quick-Text search on “Suyama”.
  • FIG. 26 depicts the results of Quick-Text search with two search columns defined for Customer Order.
  • FIG. 27 depicts the results of a Quick-Text search against the Line Item child entity.
  • FIG. 28 depicts an Advanced Search screen for the Customer Order entity.
  • FIG. 29 depicts saving an Advanced Search into an XML file.
  • FIG. 30 depicts deletion of a Line Item record.
  • FIG. 31 depicts the Customer Order data entry form.
  • FIG. 32 depicts a flowchart of decision points used in assigned data entry controls to entity fields.
  • FIG. 33 depicts a ComboBoxControl data entry control.
  • FIG. 34 depicts a SmartComboControl data entry control.
  • FIG. 35 illustrates a customized caption for the Employee child entity.
  • FIG. 36 depicts a Quick-Text search for a Many-To-Many relationship.
  • FIG. 37 depicts a list of searchable entities on the Advanced Search screen.
  • FIG. 38 depicts the Filter definition screen.
  • FIG. 39 depicts a new Line Item record for which SQL will be generated.
  • FIG. 40 depicts the Data Entry Grid for the Line Item entity.
  • FIG. 41 depicts the Unit Price and Extended Price calculated data entry controls.
  • FIG. 42 depicts the CheckBox data entry control.
  • FIG. 43 depicts the process of adding a new Shipper while using a ComboBoxControl.
  • FIG. 44 depicts the Shipper data entry form that was loaded by a ComboBoxControl.
  • FIG. 45 depicts the newly added Shipper in the ComboBoxControl.
  • FIG. 46 depicts the process of using the FileDialogControl data entry control.
  • FIG. 47 depicts the process of using the FileDialogControl data entry control.
  • FIG. 48 depicts the process of using the FileDialogControl data entry control.
  • FIG. 49 depicts the process of using the ImageBLOB data entry control.
  • FIG. 50 depicts the process of using the ImageBLOB data entry control including viewing an image.
  • FIG. 51 depicts the MaskEditBox data entry control.
  • FIG. 52 depicts the NotesControl data entry control.
  • FIG. 53 depicts the NumericFormatBox data entry control.
  • FIG. 54 depicts the TextBoxControl with the Email Address attribute set to TRUE.
  • FIG. 55 depicts the Business Rule input screen from the Utility Tool.
  • FIG. 56 depicts the Trigger input screen from the Utility Tool.
  • FIG. 57 depicts the Utility Tool interface.
  • FIG. 58 illustrates the creation of a new configuration repository.
  • FIG. 59 illustrates definition of a new Datasource.
  • FIG. 60 illustrates the selection of Reference Tables.
  • FIG. 61 depicts the fully populated Entities tree.
  • FIG. 62 illustrates modification of the control type for the Customer field in the Customer Order entity.
  • FIG. 63 illustrates modification of the control type for the Ship Address field in the Customer Order entity.
  • FIG. 64 depicts the definition of entity attributes for the Customer Order entity.
  • FIG. 65 depicts the definition of a search column for the Customer Order entity.
  • FIG. 66 depicts the definition of a sort column for the Customer Order entity.
  • FIG. 67 illustrates setting the order of relationships for the Customer Order entity.
  • FIG. 68 illustrates changing the Caption attribute of the Employee relationship to Sales Person.
  • FIG. 69 illustrates granting permissions to the Sales Reps group for the Customer Order entity.
  • FIG. 70 illustrates setting the Display On Tab entity attribute to TRUE.
  • FIG. 71 illustrates the definition of a new unbound CalculatedControl.
  • FIG. 72 illustrates the definition of a bound CalculatedControl
  • FIG. 73 illustrates the definition of system attributes such as Application Caption and Startup Entity.
  • FIG. 74 illustrates the definition of a new Tool called “Import Wizard”.
  • FIG. 75 illustrates the modification of the user interface configuration file.
  • FIG. 76 illustrates the System Login screen of the user interface.
  • FIG. 77 depicts the Import Wizard tool menu option.
  • FIG. 78 depicts the Advanced search screen.
  • FIG. 79 depicts a custom filter screen.
  • FIG. 80 illustrates setting the Ship Address foreign key on the Customer Order data entry form.
  • FIG. 81 illustrates adding a new Line Item record to the new Customer Order record.
  • FIG. 82 illustrates promoting the Sales Person (Employee) child entity.
  • FIG. 83 illustrates adding a new Customer Order when Employee is the parent entity.
  • FIG. 84 depicts the addition of a new field to the CUSTOMER_ORDER table in the database.
  • FIG. 85 illustrates the Refresh of the Customer Order entity in the Utility Tool.
  • FIG. 86 depicts the newly added Requested Date field on the Customer Order data entry screen.
  • the present invention proposes the high level architecture depicted in FIG. 2 .
  • a utility program (the “Utility Tool”) interprets database schema information from the relational database. Information gleaned from the schema is used to populate a configuration repository with metadata. This metadata is then utilized by the user interface (the “UI”) to: (1) generate data entry forms, (2) provide a method of navigation through the database, including menus and sophisticated searching functionality and (3) provide a mechanism for the validation, insertion, update and deletion of data.
  • a key principal behind the present invention is that the structure, or schema, of a relational database provides a significant amount of useful information with respect to the data entry user interface. While it is theoretically possible to generate a user interface directly from the database schema without the use of a configuration repository, the layer of abstraction offered by the repository has numerous advantages. These advantages will be explored in depth in the remainder of this document.
  • the present invention utilizes personal computer-based client/server architecture for the purpose of providing data entry access to a relational database.
  • a single personal computer PC
  • all user interaction is possible using either a keyboard or a mouse.
  • the “server” might be any set of computers on the Internet that look like a single database to the client.
  • the “client” might be any computer on the Internet running one of several commercially available browsers.
  • the relational database should meet the following requirements:
  • relational database be in at least 3 rd Normal Form. Normalization is widely accepted as a systematic methodology by which redundancy can be removed from relational database structures. For the reader's convenience, the first 4 Forms of Normalization are summarized in FIG. 3 .
  • An Entity Relationship Diagram for the example is presented in FIG. 4 .
  • the arrows point from the foreign key table to the primary key table.
  • the CUSTOMER_ORDER table relates to the CUSTOMER table on the CUSTOMER_ID field.
  • CUSTOMER_ORDER is the foreign key table.
  • CUSTOMER is primary key table.
  • the example is a simple order entry database for a fictional company, ACME Grocery Supply, in which:
  • the example database has been designed to help illustrate the fundamental principles of the present invention. With one exception, the database is in 4 th Normal Form. The lone exception has to do with the implementation of the ADDRESS table. The ADDRESS table violates normalization rules in that it contains redundancy. However, in order to simplify and limit the size and complexity of the example, Addresses have not been normalized.
  • a configuration repository is used to present a layer of abstraction between the database and the user interface.
  • the configuration repository consists of highly structured metadata.
  • the metadata is organized in the following manner:
  • Physical database tables are represented by “entities”.
  • a single table may be represented by more than one entity through a technique called “aliasing”. For example, separate entities might be defined to distinguish between domestic and international Customers even though a single table, CUSTOMER, is used to store all Customer data.
  • Reference entities A special type of entity, called a “reference entity”, exists for entities that are mostly incidental to the overall business purpose behind the relational database. Reference entities help to categorize or describe data in other entities. For example, Categories help to logically organize and describe groups of related Products. But it is unlikely that most end users will ever need to interact directly the underlying CATEGORY table. Therefore, reference entities are treated differently in the UI. These differences will be made apparent in the remaining sections of this document.
  • Database views provide users with easy-to-read column names and formatted data.
  • the view assigned to the Employee entity might concatenate the LAST_NAME and FIRST_NAME fields from the EMPLOYEE table into a single column, EmployeeName, as in the following example depicted in Table 2 and Table 3:
  • Searching is performed against view columns rather than table fields. Similarly, search results are presented in the form of data lists, which consist of a collection of view columns.
  • Entity fields represent fields within database tables. Each entity field is assigned a single data entry control. The metadata relating to each entity field defines the behavior of its corresponding data entry control. Data entry forms consist of an ordered collection of data entry controls defined by the entity field metadata.
  • Logical entity fields may be defined to derive values that are not actually stored in table fields. For example, it might be desirable to display a Product's Unit Price on the Line Item data entry form even though a corresponding field does not exist in the LINE_ITEM table.
  • a special data entry control called a Calculated Control, may be defined to retrieve and display the Unit Price for the currently selected Product. This example will be illustrated under the USER INTERFACE GENERATION section.
  • Relationships between database tables, implemented through foreign keys in the database, are represented by “entity relationships”.
  • entity relationships In the configuration repository, two entity relationships are generated for each foreign key defined in the database schema.
  • PRODUCT_ID foreign key in the LINE_ITEM table would generate one relationship from the perspective of the foreign key table, LINE_ITEM, and one from the perspective of the related table (or primary key table), PRODUCT as shown in Table 4:
  • the first relationship in the table above is of relationship type Many-To-One, as are all relationships from the perspective of the foreign key table.
  • the second relationship in the table is of type One-To-Many, as are all relationships from the perspective of the related table.
  • Entity relationships provide metadata to support two key pieces of functionality in the UI: (1) navigation and (2) dynamically generated SQL.
  • the “search path” defines the collection of directly and indirectly related entities that may be searched with respect to the entity.
  • the entity search path is a subset of all entity relationships in the configuration repository. For example, to obtain a list of Customers who bought one or more Products from a specific Sales Person, the list of entity relationships in Table 5 must be defined on the search path of the Customer entity:
  • the entity search path also resolves circular loops that might otherwise exist between two entities. For example, two paths exist from the Customer entity to the Address entity. One path, which corresponds to the billing address, flows directly from the Customer entity to the Address entity via the BILL_ADDRESS_ID foreign key. A second path, corresponding to the shipping address, flows indirectly from the Customer entity to the Address entity through the Customer Order entity via the SHIP_ADDRESS_ID foreign key. Consequently, a circular loop exists between the Customer and Address entities:
  • the aliased Address entity, Shipping Address which corresponds to the logical table ADDRESS_1 in the third relationship above, resolves the circular loop by creating the illusion of two distinct instances of the physical ADDRESS table in the underlying database.
  • Another way to resolve this circular loop is to simply include Address information in the database views for both the Customer and Customer Order entities. Searching for shipping address information can then be performed against the Customer Order entity directly.
  • menus Data entry and navigation functionality in the UI are provided through “pop-up” menus. These menus are generated dynamically from metadata stored in the configuration repository.
  • the metadata associated with menus is “predefined” in the sense that it is not derived from the database schema but instead built into the UI architecture.
  • the type of menu shown to a user at any given point is determined by the “menu context”.
  • the menu context simply describes the point from within the UI where the end user requests a menu.
  • menu contexts are tightly coupled to entities and entity relationships.
  • permissions that provide access to menu options are granted at the entity and entity relationship level.
  • the configuration repository contains a set of predefined metadata that provides a layer of abstraction between the UI and specific database systems (referred to as “platforms” within the metadata structure).
  • platforms One example of a syntactic difference between platforms would be the date delimiter used in SQL expressions.
  • SQL Server uses the single-quote symbol to delimit dates whereas Microsoft Access uses the # symbol.
  • SQL can be generated generically by the UI as the following modified version of the above SQL statement shows:
  • Utility Tool and UI may be used to access new database systems by simply adding metadata to the platform and platform attribute structure.
  • the UI architecture is tightly coupled with the structure of the metadata relating to entities, entity fields, entity relationships, and entity search paths.
  • the architecture takes advantage of the inherent parent-child paradigm offered by the entity-entity relationship structure.
  • FIG. 5 illustrates this paradigm quite clearly by presenting the main screen of the UI. On the top portion of the screen, we see that the focus of the interface is with respect to the Customer Order entity. On the bottom left side of the screen, we see a list of related entities (exclusive of reference entities, a detail that will be discussed momentarily). Under the current context of the interface, Customer Order is the “parent” entity. The list of related entities are called “children”. This list is derived from the entity relationships that are defined for the Customer Order entity. The currently selected child is Line Item. In FIG. 6 , the selected child has been switched to Customer.
  • the parent entity may be changed by selecting a different entity through the View menu depicted in FIG. 7 .
  • data display is list-driven. As mentioned earlier, all data lists are based on database views.
  • a list of Customer Orders is shown on the top half of the screen. This list is the result of a “quick-text search” which will be discussed shortly.
  • a list of Line Items for the currently selected Customer Order is displayed on the bottom half of the screen.
  • the architecture attempts to maximize the amount of information displayed with the effective use of data lists in conjunction with the parent-child entity paradigm. Switching the selected child entity results in a filtered list of information relating to the newly selected child. Regardless, of the type of relationship between parent and child entities (i.e. One-To-Many, Many-To-One, or Many-To-Many), child data lists are filtered according to the currently selected record for the parent entity. This is accomplished through dynamic SQL generation.
  • Menus are generated from data lists by right-mouse clicking on the list or using the CTRL-M key combination on the keyboard.
  • the list of options available on a menu depends upon the context from which the end user accesses the menu within the UI. There are five menu contexts:
  • FIG. 14-16 illustrate the process of adding a new Line Item to a Customer Order.
  • Customer Order as the parent entity, the dynamically generated data entry form for the Line Item entity is able to automatically populate the Customer Order field, which maps to the CUSTOMER_ORDER_ID foreign key in the LINE_ITEM table. This is possible because the primary key value, from the selected Customer Order record in the parent data list, is known.
  • the context of the New menu option takes on yet another meaning.
  • the parent entity is Employee and the child is Spoken Language.
  • Adding a New Spoken Language has the effect of inserting a new record into the SPOKEN_LANGUAGE table and inserting a new record into the EMPLOYEE_SPOKEN_LANGUAGE table.
  • Many-To-Many relationship type applies to a special case of intersection tables, which consist of, aside from the primary key, two, and only two, foreign key fields. This special case is quite common in practice.
  • the Many-To-Many relationship type offers convenient functionality to end users. This functionality will be discussed in more detail later.
  • Menus for child entities contain a particularly powerful navigation menu option referred to as “promotion”. Promoting a child entity generates a new screen in which the child entity becomes the parent. Within this screen, the context of all searching is with respect to the newly promoted parent entity.
  • FIG. 23 and FIG. 24 illustrate the promotion of the Customer entity. This functionality allows end users to drill through their database easily changing entity focus as the need arises.
  • Security is implemented at the menu option level. Upon the initial population of the configuration repository, permissions are granted to the Administrators user group for the most commonly used menu options.
  • the system provides one built-in user, Admin, who belongs to the lone built-in group, Administrators.
  • the system administrator manages security through the Utility Tool interface. All security information is stored as metadata in the configuration repository.
  • One model provides for the integration of security in the UI with the underlying database by passing user login information from the UI to the database for verification.
  • the other model uses a common database login for all users of the UI software. Under either case, permissions must be granted to the user's group before they can use menu options.
  • Two types of searching are provided to filter data with respect to the current parent entity: (1) quick-text searching and (2) advanced searching.
  • the quick-text search is designed to provide a simple method by which the parent entity may be searched to retrieve a set of records that meet a particular criterion.
  • the criterion is entered into an edit box as depicted in FIG. 25 .
  • the parent entity is searched for instances where values in one or more searchable columns match the criterion.
  • all columns in the parent entity are searchable.
  • a record matches if the value in at least one of the columns begins with the same character string as the criterion.
  • the collection of searchable columns is configurable such that one or more columns may be specified to limit the scope of the search to only these selected columns. Such is the case in FIG. 26 where only the CustomerName and EmployeeName columns are searchable as denoted by the use of the eyeglass icon next to each column header.
  • the type of search performed against each column may be customized as well using one of the following search types in Table 7:
  • the EmployeeName column is then searched using the INCLUDES method for each component. Only those records for which INCLUDES evaluates to true for each component are returned.
  • the SQL syntax for the current example would be: “(EmployeeName LIKE ‘%Michael%’) AND (EmployeeName LIKE ‘%Suy%’)”.
  • FIG. 27 illustrates a configuration in which the CustomerName and SalesPerson columns from the Customer Order entity are searched using the NAME_SEARCH search type and the ProductName column from the Line Item child entity is also searched using the INCLUDES search type. If a Product Name is entered as the criterion, all Customer Orders on which a Line Item for the specified Product exists will be returned.
  • Advanced searching provides users with an opportunity to search against all entities defined on the search path of a parent entity, with respect, of course, to the parent entity.
  • a list is traversed to select columns on which filters may be defined.
  • the right side of the screen displays a list filters that have been defined.
  • these filters will be translated into SQL. Note that indentation is used to logically group filters thus implementing order of precedence into the aggregate filter expression. By default, filters are conjoined using the logical AND operator, but this default behavior may be overridden to use the OR operator as shown in the example. Once the filter has been completed, it is “applied” to generate a set of matching records for the parent entity.
  • Filters may be saved for later reuse using Extensible Markup Language (XML) as illustrated in FIG. 29 .
  • XML Extensible Markup Language
  • the Delete menu option simply constructs and executes a DELETE SQL statement for selected records as shown in FIG. 30 .
  • the Link and Unlink menu options are a bit more complex, but ultimately generate and execute INSERT, DELETE, and UPDATE SQL statements depending on the menu context of the entity in question.
  • data entry forms are constructed from the metadata relating to the collection of entity fields for the relevant entity.
  • the Edit menu option was selected for a particular Customer Order.
  • Data entry controls are graphically constructed in a list-like fashion using the metadata defined for each entity field. The ordering of the fields with respect to one another is determined by the Field Order entity field attribute. The type of data entry control assigned to each field depends upon several factors including the datatype of the field and whether or not the field is a primary or foreign key. For example, the SHIPPER_ID foreign key is represented by a dropdown list (referred to as a ComboBoxControl within the context of the present invention).
  • red checkmarks are used to denote required fields.
  • Required is a Boolean attribute of entity fields.
  • Other features such as entity and entity field “scripting”, entity “business rules”, and entity “triggers” are available to promote data integrity and extend the basic functionality provided by dynamically generated data entry forms. These features will be discussed under the USER INTERFACE GENERATION section.
  • the user can cancel the changes by clicking the Cancel button or choose to save the changes to the underlying table by clicking the OK button.
  • the system first verifies that all required fields have been populated. It then applies any business rules that have been defined to validate user input. If any required data is missing or any business rules fail, the user is prompted to remedy the problem. Otherwise, dynamic SQL is generated to update the underlying database table.
  • the Utility Tool is responsible for analyzing the database schema and generating the metadata stored in the configuration repository. While custom computer code may be written to analyze database schemas for various popular relational database systems, such as Microsoft SQL Server and Oracle, several commercial middleware products are available to abstract differences between database systems into a common programming interface. In this way, foreign keys, for instance, are detected using identical, or very similar, code from within the Utility Tool regardless of database system.
  • the present invention uses Microsoft's Data Access Components (MDAC) to provide this layer of abstraction.
  • MDAC Microsoft's Data Access Components
  • the database schema provides sufficient information to populate the metadata relating to entities, entity fields, entity relationships, and entity search paths.
  • Other default settings such as entity and entity relationship permissions for the Administrators group, are configured to ease and speed the development process. However, these default metadata configuration settings do not make direct use of the database schema.
  • each table's corresponding view must be determined through a simple naming convention for the view whereby a prefix or suffix is appended to the table name to derive the name of the view. Using a suffix of “_V” would therefore yield a view name of CUSTOMER_ORDER_V for the CUSTOMER_ORDER table.
  • the primary purpose of analyzing database schema information relating to table fields is to determine and assign an appropriate data entry control to each field. By default, one entity field is created for each field in the underlying table. A summary of the available data entry controls is presented in the USER INTERFACE GENERATION section.
  • the strategy used to determine the data entry control for each field is illustrated via the flowchart in FIG. 32 . It should be noted that all default attributes discussed below can be modified within the Utility Tool at any time.
  • the Utility Tool uses the following strategy during the initial population of the configuration repository and on demand by the system administrator as modifications are made to the database structure over time:
  • a NumericFormatBox is assigned. Since primary key values are system generated, the NumericFormatBox will be placed in read-only mode, meaning end users cannot make changes to the value.
  • a ComboBoxControl is assigned depending on whether the related table is a reference entity. If the related entity is a reference entity, a ComboBoxControl is assigned.
  • the graphical representation of a ComboBoxControl is a simple dropdown list, an example of which is depicted in FIG. 33 .
  • Shipper is a reference entity.
  • the ComboBoxControl presents a list of Shippers to the end user but actually stores the SHIPPER_ID primary key value in the CUSTOMER_ORDER table.
  • SmartComboControl is assigned.
  • the purpose of the SmartComboControl is identical to that of the ComboBoxControl: that is, to populate a foreign key field in the underlying table.
  • its functionality is a bit more complex.
  • the SmartComboControl makes two significant assumptions: (1) The number of potential records in the related table could become very large. It is, therefore, inadvisable to load a large number records into a dropdown list. (2) Several fields may be necessary to uniquely differentiate each record in the related table.
  • the CUSTOMER_ORDER_ID foreign key in the LINE_ITEM table requires the display of several fields from the related CUSTOMER_ORDER table to provide the end user with sufficient information to distinguish one Customer Order from another. In this case, it might be wise to display the CustomerName, OrderDate, and SalesPerson and, perhaps, the Customer Order ID, assuming it is used as the order number in addition to serving as the primary key (see FIG. 34 ).
  • the SHIPPER_ID foreign key in the CUSTOMER_ORDER table can be quite reasonably represented by a dropdown list, displaying only a single column that derives from the SHIPPER_NAME field in the SHIPPER table.
  • attributes are used to control the run-time behavior of each control type.
  • ComboBoxControl and SmartComboControl control types two important attributes are worthy of mention here: Expression and Expression Type. These two attributes are used to determine how data is displayed to the end user and, in the case of the ComboBoxControl, the source of data for the dropdown list.
  • the Expression Type attribute must be one of three values: EXPRESSION, SQL, or STORED_PROCEDURE.
  • the specific meaning of each Expression Type differs slightly for each control type as shown in Table 8 and Table 9:
  • the Utility Tool uses the underlying view for the related entity to construct the SQL statement as in the following example: SELECT SHIPPER_ID, ShipperName FROM SHIPPER_V ORDER BY ShipperName
  • the columns defined in the SELECT clause are derived by selecting the first two columns returned by the underlying view. It is assumed the system administrator follows a simple convention in the creation of views for all reference entities: The first column should be the primary key field of the related entity and the second should be a descriptive column that will represent the list of values in the dropdown list.
  • Parameters may be passed to the SQL statement from the data entry form by using curly brackets, ⁇ ⁇ , as delimiters as in the following example for the MANAGER_ID foreign key in the EMPLOYEE table (which is designed to prevent an Employee from managing herself): SELECT EMPLOYEE_ID, EmployeeName FROM EMPLOYEE_V WHERE EMPLOYEE_ID ⁇ > ⁇ EMPLOYEE_ID ⁇ ORDER BY EmployeeName STORED_PROCEDURE
  • Some databases such as Microsoft SQL Server and Oracle, support the use of stored procedures. The stored procedure should return a list of records, as was the case with the SQL Expression Type. The list should include the primary key in the first column and descriptive text in the second column.
  • One or more parameters may be passed to the stored procedure as in the following example: stpGetManagerList ⁇ EMPLOYEE_ID ⁇
  • EXPRESSION This is the default Expression Type selected by the Utility Tool for the SmartComboControl control type.
  • the default Expression attribute is set to the name of the primary key field of the related entity.
  • SmartComboControl provides for the display of a multiple fields from a single record.
  • SQL An SQL statement may also be used provided it returns only a single record with at least one column, the primary key.
  • STORED_PROCEDURE A stored procedure may also be used provided it returns only a single record with at least one column, the primary key.
  • the datatype is used to determine the data entry control type.
  • the remaining decision points in the flowchart ( FIG. 32 ) taken in conjunction with the Data Entry Control subsection of the USER INTERFACE GENERATION section are self-explanatory.
  • the Required entity field attribute is determined by checking the “nullable” property of table fields in the database schema. A field that is nullable can accept the NULL value. A field that does not accept NULL values is assumed to be required.
  • the data entry controls for required entity fields are denoted with a red checkmark on data entry forms.
  • the Visible attribute determines whether entity fields are visible on the data entry form. By default, all entity fields are visible.
  • the Utility Tool sets the default search path for each entity during the initial population of the configuration repository.
  • the system administrator can modify this search path at any time.
  • the default search path for an entity is simply the set of all direct relationships with other entities regardless of relationship type. For the Customer Order entity, this would include the following relationships. Please note that reference entities, such as Address and Shipper, are not included in this list of relationships as shown in Table 10:
  • the Show On View Menu entity attribute determines whether an entity appears on the View Menu.
  • the order of entities with respect to one another is determined by the Relative Order entity attribute.
  • the Reference Tables menu option appears if at least one reference entity exists. An entity may be hidden entirely from end users by setting its Visible attribute to FALSE.
  • An entity may become a parent by: (1) selecting the entity from the View Menu or (2) promoting a child entity.
  • the list of child entities with respect to the parent entity is derived from the set of entity relationships defined in the metadata for the parent. Excluded from this list are entity relationships where: (1) the Visible entity relationship attribute is set to FALSE or (2) the related entity is a reference entity.
  • the name of a child entity is initially set to the name of the related entity.
  • Entity names are defined by the Caption entity attribute.
  • the Caption entity relationship attribute may be customized, as is the case for the child entity, Sales Person, in FIG. 35 .
  • the related entity is Employee. However, since the role Employee plays relative to a Customer Order is to act as a Sales Person, the Caption attribute has been changed accordingly.
  • Quick-Text Search The example of a quick-text search presented in the USER INTERFACE ARCHITECTURE section provided for a flexible search against both parent and child entities.
  • the collection of searchable columns is defined by the metadata associated with entities and entity relationships.
  • the existence of one or more “entity search columns” in the metadata limits the scope of the search to include only those predefined columns. If no entity search columns are defined for the parent, all columns are searchable using the BEGINS search type.
  • Child entities are only searchable if one or more “entity relationship search columns” is defined in the metadata.
  • a child entity in order to be searchable, a child entity must be on the search path of the parent entity.
  • the ProductName column for the Line Item entity is the only search column defined for any of the child entities.
  • Line Item is the only searchable child entity.
  • the strategy employed by the quick-text search is to first generate SQL against the parent entity and then join it to SQL generated against searchable child entities using the UNION SQL keyword. Search columns defined for both parent and child entities are used to build WHERE clauses for each individual SQL statement.
  • the first portion of the SQL statement, before the UNION keyword, is straightforward.
  • the entity search columns are used to build the WHERE clause.
  • entity relationship metadata which defines the physical relationship between the Customer Order and Line Item entities:
  • CUSTOMER_ORDER.CUSTOMER_ORDER_ID LINE_ITEM.CUSTOMER_ORDER_ID
  • Entity sort columns are a collection of columns from the associated entity view where a default sort order has been defined (i.e. ascending or descending):
  • the second portion of the SQL statement makes use of additional metadata defined for Many-To-Many entity relationships in order to insert the EMPLOYEE_SPOKEN_LANGUAGE intersection table into the tables joins.
  • the relationship between the Employee and Employee Spoken Language entities, stored as metadata, is defined in such a way that the UI software knows to “map” the Employee Spoken Language entity to the Spoken Language entity. Mapping entities in this manner notifies the UI to insert one additional relationship into the table joins, in this case, the relationship between the Employee Spoken Language and Spoken Language entities.
  • Advanced Searching is accessed through the “Find @E (Advanced)” menu option (where @E is a placeholder for the name of the entity as in “Find Customer Order (Advanced)”) for the parent entity menu context.
  • the list of searchable entities on the left side of the screen is generated by interpreting the search path defined for the parent entity in the following way:
  • Each table join is parsed to determine the “table aliases” on each side of the join.
  • the table alias is the same name as the physical table for entities that have not been aliased. Otherwise, it is the name of the physical table with an appended number to indicate the instance of the alias. This insures all table aliases are unique. For example, aliasing the Customer entity to distinguish between international and domestic Customers would generate the table alias CUSTOMER_1 for the new International Customer entity.
  • the table alias is then used to index into the entity metadata to determine the entity names to use in the generation of the list of searchable entities on the left side of the screen. In this way, indirectly related entities will be included in the list of searchable entities as in the example in FIG. 37 , which has been derived from the following search path in Table 11 for the Customer Order entity:
  • the user may begin creating filters for columns within searchable entities.
  • a list of filters is presented on the right side of the screen.
  • Indentation indicates order of precedence to insure parentheses are inserted into the translated SQL according to the wishes of the end user. Notice the affect of indentation on the translated SQL for the set of filters defined in the example:
  • the translated SQL should ultimately produce a list of Customer Orders where the bill was sent to either the city of London or the country of Germany for all orders entered during 1998 where the sales person was managed by someone with a last name of Fuller and where one or more products on the order belong to the Produce or Seafood product categories.
  • FIG. 38 illustrates the method by which end users define filters.
  • a Filter screen is presented for the column on which the user has decided to filter.
  • the ProductCatgory from the Customer Order entity has been selected.
  • the caption of this screen indicates the type of filter appropriate for the selected column.
  • the type of filter for the ProductCatgory column is Text. Number and Date filters are also available.
  • the list of Operators available depends on the filter type. Most operators, such as the “Contains” Text operator, accept a single operand that is entered into the Value 1 field. Other operators, such as “Between”, require two operands, which are entered into the Value 1 and Value 2 fields. Still other operators, such as Is In List, require the selection of one or more discreet values from the underlying view.
  • the ProductCategory makes use of the Is In List operator.
  • the table and table alias are used in the FROM clause and the table alias is used in the WHERE clause.
  • the FROM and WHERE clauses would be as follows:
  • CUSTOMER_ORDER.CUSTOMER_ORDER_ID LINE_ITEM.CUSTOMER_ORDER_ID
  • PRODUCT.PRODUCT_ID LINE_ITEM.PRODUCT_ID
  • This list may produce redundancy where the same table joins are generated for more than one entity with respect to the Customer Order parent entity.
  • This general format insures that a list of Customer Orders is returned as the result set regardless of the entities selected in the list of filters.
  • the ORDER BY clause is derived from the entity sort column metadata for the parent entity.
  • data lists may be generated for child entities.
  • M_V The view associated with the “maps-to-entity”.
  • the child entity corresponds to the Employee Spoken Language entity and the maps-to-entity is Spoken Language.
  • a special menu option exists to allow filtering of the child data list.
  • This menu option is called “Filter @E Records”, where @E is a placeholder for the name of the child entity. Since the purpose of the present invention is to provide a generic interface to any relational database, one never knows how many records might exist for a particular instance of a data list participating in a One-To-Many relationship.
  • the “Filter @E Records” menu option uses the same screen illustrated during the discussion on advanced searching only for a slightly different purpose; that is, to filter a data list.
  • the “Promote @E” menu option available for all child menu contexts, provides access to the promotion functionality discussed in the USER INTERFACE ARCHITECTURE.
  • Permissions are granted at the menu option level. Permissions might be revoked for security reasons. For example, it may be desirable to define a user group that has limited access to data entry features, but is allowed to search and view data. Another reason for revoking permissions is to provide a more intuitive data entry experience for end users. Since the UI architecture is designed to work with any relational database, given the overall business purpose behind the database, end users may not find certain menu options particularly intuitive or useful. To avoid confusion, these menu items can simply be disabled.
  • New @E Record Adds a new record using a data entry form.
  • Duplicate @E Record Creates a new record by copying forward data from the selected record into a data entry form.
  • Edit @E Record Loads the selected record into a data entry form for editing.
  • Delete @E Record(s) Deletes the selected records from the database, subject of course to referential integrity rules.
  • View @E Record Loads the selected record into a data entry form for viewing. The data entry form is placed in read-only mode.
  • Export @E Record(s) Exports the entire data list to one of several file formats using an export wizard. Print Preview Loads the data list into a print preview screen from where it can then be printed.
  • Print Report Generates a custom report, such as a nicely formatted invoice, by passing the primary key of the selected record to a report writer using COM. For more information, see the APPLICATION EXTENSIBILITY section. Find @E (Advanced) Loads the advanced searching screen. Find @P Uses a COM interface to load an external component that will provide a custom search screen. For more information, see the APPLICATION EXTENSIBILITY section. Display Data Entry Grid Loads the data list into a data entry grid for editing. For more information on data entry grids, see the Data Entry Forms subsection under the USER INTERFACE GENERATION section.
  • New @E Record Adds a new record using a data entry form.
  • Duplicate @E Record Creates a new record by copying forward data from the selected record into a data entry form.
  • Edit @E Record Loads the selected record into a data entry form for editing.
  • Delete @E Record(s) Deletes the selected records from the database, subject of course to referential integrity rules.
  • View @E Record Loads the selected record into a data entry form for viewing. The data entry form is placed in read-only mode.
  • Export @E Record(s) Exports the entire data list to one of several file formats using an export wizard.
  • Print Preview Load s the data list into a print preview screen from where it can then be printed.
  • Display Data Entry Grid Loads the data list into a data entry grid for editing. For more information on data entry grids, see the Data Entry Forms subsection under the USER INTERFACE GENERATION section.
  • New @E Record Adds a new record using a data entry form.
  • the foreign key field which relates the entity to its parent, is automatically populated with the primary key value from the currently selected parent record.
  • Duplicate @E Record Creates a new record by copying forward data from the selected record into a data entry form.
  • Edit @E Record Loads the selected record into a data entry form for editing.
  • Delete @E Record(s) Deletes the selected records from the database, subject of course to referential integrity rules.
  • Link Selected @E Load s a simple search screen to allow the end user to select a different Record(s) with a Different parent record in which to link the currently selected child.
  • the foreign key @P Record field in the child will be updated.
  • Unlink the Selected @E Sets the foreign key field of the child entity to NULL, subject of course to Record(s) from the @P referential integrity rules.
  • Record View @E Record Loads the selected record into a data entry form for viewing. The data entry form is placed in read-only mode.
  • Export Record(s) Exports the entire data list to one of several file formats using an export wizard.
  • Print Preview Loads the data list into a print preview screen from where it can then be printed.
  • Filter @E Records Loads the same screen used for advanced searching. However, the filters defined are simply applied to the data list to limit the number of visible records.
  • Promote @E Promotes the selected child entity, including the data list, into a new screen where the child becomes the parent entity.
  • Display Data Entry Grid Load loads the data list into a data entry grid for editing. For more information on data entry grids, see the Data Entry Forms subsection under the USER INTERFACE GENERATION section.
  • New @E Record Adds a new record using a data entry form. If successfully saved, the new primary key value will be used to update the foreign key field of the currently selected parent record.
  • Duplicate @E Record Creates a new record by copying forward data from the selected record into a data entry form. If successfully saved, the new primary key value will be used to update the foreign key field of the currently selected parent record.
  • Edit @E Record Loads the selected record into a data entry form for editing.
  • Delete @E Record(s) Deletes the selected records from the database, subject of course to referential integrity. The delete will fail unless the database is configured to cascade deletes since deleting the child in this context necessitates deletion of the parent record.
  • Promote @E Promotes the selected child entity, including the data list, into a new screen where the child becomes the parent entity.
  • Display Data Entry Grid Loads data list into a data entry grid for editing. For more information on data entry grids, see the Data Entry Forms subsection under the USER INTERFACE GENERATION section.
  • New @E Record Loads a data entry form for the “maps-to-entity”.
  • the maps-to-entity is the entity to which the parent is indirectly related (e.g. Employee to Spoken Language).
  • the placeholder, “@E”, corresponds to the maps-to-entity. If successfully saved, an additional record will be inserted into the intersection table which links the parent and maps-to-entities (e.g. EMPLOYEE_SPOKEN_LANGUAGE).
  • Duplicate @E Record Creates a new record by copying forward data for the maps-to-entity from the selected record into a data entry form. If successfully saved, an additional record will be inserted into the intersection table which links the parent and maps-to-entities.
  • Edit @E Record Loads the selected record for the maps-to-entity into a data entry form for editing.
  • Delete @E Record(s) Deletes the selected records for the maps-to-entity from the database, subject of course to referential integrity rules. Before deleting the maps-to- entity records, the related records from the intersection table are deleted. Link the Selected @P Loads the simple search screen for the maps-to-entity. For each record Record with a @E selected from the maps-to-entity, a corresponding record is inserted into the Record(s) intersection table thus linking the parent and maps-to-entities. Unlink the @P Record Deletes the selected records from the intersection table which links the from the Selected @E parent and maps-to-entities.
  • Record(s) View @E Record Loads the selected record (for the maps-to-entity) into a data entry form for viewing.
  • the data entry form is placed in read-only mode.
  • Export Record(s) Exports entire data list to one of several file formats using an export wizard.
  • Print Preview Loads the data list into a print preview screen from where it can then be printed.
  • Promote @E Promotes the selected child entity, including the data list, into a new screen where the child becomes the parent entity.
  • Data entry forms consist of an ordered collection of data entry controls derived from metadata relating to entity fields.
  • the general strategy is to validate as much data as possible while the end user enters data into each of the data entry controls.
  • the DateTimeControl control type which presents a graphical image of a calendar to the end user, will not permit an invalid date to be entered.
  • the ComboBoxControl implemented graphically as a drop-down list, will only accept valid foreign key values from the list.
  • the Required entity field attribute is used to insure all required data has been entered.
  • Business rules discussed below, may be defined to provide further data validation.
  • Entity and entity field scripting using language such as VBScript and JavaScript, are also available to implement data validation or other desired functionality.
  • Form-level events such as FormLoad, BeforeSave, and AfterSave, are triggered at run-time. Scripting may be attached to these events to provide custom functionality. Some events provide a mechanism for canceling further processing. For instance, before saving a new Line Item to the database, suppose the system administrator wants to insure there is sufficient inventory on hand to fill the order. The following VBScript might be entered in the BeforeSave event. Notice that if sufficient inventory is not on hand, setting the Cancel argument to TRUE prevents further processing:
  • Set rs CreateObject(“ADODB.Recordset”) ‘Get a connection to the database.
  • Script may also be attached to entity field events such as OnChange.
  • OnChange event is triggered when the value in a data entry control changes.
  • the present embodiment provides access to a limited programmable interface, or object model as it is frequently referred to, to perform various tasks such as enabling and disabling, or showing and hiding, data entry controls at run-time.
  • Future embodiments should provide a more robust object model.
  • a reasonable balance must be maintained between the use of metadata attributes to modify run-time behavior and the integration of scripting to achieve the same affect.
  • scripting is stored as metadata in the configuration repository, and does not require recompilation and redeployment of the UI software when changes are made, it is nonetheless computer code.
  • the underlying premise of the present invention is that computer code is extremely expensive to develop and maintain.
  • SQL is generated to update the underlying database table using entity and entity field metadata in conjunction with the values stored in each data entry control. Saving the new Line Item record depicted in FIG. 39 would generate the following SQL statement:
  • INSERT INTO LINE_ITEM (LINE_ITEM_ID, CUSTOMER_ORDER_ID, PRODUCT_ID, QUANTITY, DISCOUNT, EXTENDED_PRICE) VALUES( 2186, 10355, 3, 10, 0.1, 90.00)
  • FIG. 40 illustrates such a data entry grid for the Line Item entity.
  • the functionality is nearly identical to that of the normal data entry form with the primary exception being that a record is saved when the focus shifts from one record to another as opposed to clicking a button.
  • the CalculatedControl is a read-only data entry control designed to derive a value from the underlying database and display the value on the data entry form.
  • a CalculatedControl is “bound” if it maps to a field in the physical table associated with the entity and “unbound” if the derived value is not stored in the underlying table.
  • three Expression Types are available to derive the calculated value: EXPRESSION, SQL, and STORED_PROCEDURE. Regardless of Expression Type, the execution of the corresponding Expression attribute at run-time should return a single value.
  • the Unit Price simply displays the Unit Price for the currently selected Product. Notice that a UNIT_PRICE field does not exist in the LINE_ITEM table. The unbound UNIT_PRICE field has been added to the Line Item entity metadata.
  • the SQL Expression Type has been defined and the following Expression is evaluated at run-time to derive the value displayed in the control:
  • PRODUCT_ID ⁇ PRODUCT_ID ⁇
  • the parameter passed within the curly brackets simply tells the UI software to insert the value of the PRODUCT_ID foreign key field (i.e. the currently selected Product on the Line Item record) into the SQL statement.
  • the value returned from this SQL statement is then inserted into the Unit Price data entry control.
  • the second CalculatedControl control on the Line Item form is used to calculate the Extended Price.
  • the Extended Price is bound to the EXTENDED_PRICE field in the LINE_ITEM table.
  • the STORED_PROCEDURE Expression Type is used and the following Expression is evaluated at run-time:
  • the CheckBox depicted in FIG. 42 , is designed to represent Boolean fields.
  • a graphical image of check box is presented to the end user. Clicking the box toggles the value from TRUE, when the box is checked, to FALSE, when the box is not checked.
  • FIGS. 43-45 illustrate the process of adding a new Shipper while entering a Customer Order record.
  • Limit To List By default, this attribute is set to TRUE and the user must select an item from the dropdown list, as should be the case when using the ComboBoxControl to populate a foreign key field. However, by setting this attribute to FALSE, the user can either select a value from the list or type a new value directly into the edit box portion of the control. NOTE: Limit To List should never be set to FALSE for foreign key fields.
  • the DateTimeControl uses a single attribute to determine whether to accept date or time input from the end user.
  • the Date Time Control Type attribute is set to DATE_CONTROL
  • the control will present a calendar to the end user from which a date may be selected (see FIG. 1 ).
  • the user can simply enter a date into the edit box.
  • the attribute is set to one of four available time formats, such as TIME_CONTROL (01:15 PM)
  • TIME_CONTROL 01:15 PM
  • the FileDialogControl is designed to allow users to navigate through their directory structures to select a particular file. The entire path is returned to the control. Setting the File Association attribute to TRUE will create a hyper-link between the path displayed in the control and the computer software associated with the file. For example, if the path to a Microsoft Word document is displayed in the control, clicking the hyper-linked path will load the document into an instance of Word. Operation of the FileDialogControl is illustrated in FIG. 46-48 .
  • the ImageBLOB is very similar to the FileDialogControl. Users can select image files from their directory structures. However, instead of storing the path to the image in the database, a binary copy of the image itself is stored. Obviously, this control type is only appropriate for database fields capable of storing binary large objects (BLOB). Once the image has been stored, a hyper-link may be clicked to load the image as illustrated with the Photo field in the Employee entity (see FIG. 49-50 ).
  • the MaskEditBox is designed to provide an input mask for text fields that store formatted data such as social security numbers.
  • the Mask Type attribute defines the type of mask to be used. A few predefined masks are available such as PHONE_MASK and SSN_MASK.
  • the GENERAL_MASK Mask Type is used in combination with the Format entity field attribute to define custom input masks using a set of special characters. For example, setting the Format attribute to “A###” generates an input mask that ensures the first character must be alphanumeric and the last three characters must be digits.
  • the SSN field in the Employee entity uses the SSN_MASK Mask Type as illustrated in FIG. 51 .
  • the NotesControl eases the entry of large amounts of text by providing multiple lines in the edit box and exposing a button which, when clicked, loads the text into a larger scrollable edit box in a “zoom” screen (see FIG. 52 ).
  • the NumericFormatBox illustrated in FIG. 53 , is a simple edit box that enforces entry of numeric data.
  • the Format entity field attribute may be used to format the data display, such as presenting monetary data using currency symbols.
  • the TextBoxControl allows open-ended text data entry, such as with a street address.
  • a few entity field attributes provide additional functionality as summarized in Table 19:
  • this attribute provides a hyper-link to the user's default email Address program as illustrated in FIG. 54.
  • Web Address When set to TRUE, this attribute provides a hyper-link to the user's web browser. Lines Provides ability to expand the number of lines available in the edit box.
  • Filters may be defined on the views associated with entities. These filters are part of the metadata relating to entities. Filters are defined at the group level so that different filters may be applied to various groups of users. For example, suppose sales people were divided into two user groups: International Sales and Domestic Sales. The list of Customers with which each group is permitted to work might be filtered on the BillCountry column in the CUSTOMER_V view as the following SQL snippets demonstrate in Table 20:
  • Entity business rules are used to provide edit checks prior to inserts, updates, and deletes to an underlying table. More than one rule may be defined for each entity. The rules are defined using either an SQL statement or a stored procedure. The business rule input screen from the Utility Tool is illustrated in FIG. 55 . With the “SQL” Rule Type, a rule is violated if one or more records are returned from the SQL statement when the rule is applied. For the “Stored Procedure” Rule Type, a rule is violated if the output parameter of the stored procedure returns a value of 0.
  • Rule Type “Terminator” is used in conjunction with Action Types “Go To Rule” and “Stop” to organize several rules into a control structure similar the “If . . . Then . . . Else . . . ” programming construct.
  • Entity triggers are SQL statements or Stored Procedures that are executed in conjunction with insert, update, and delete operations against the underlying database. For inserts and updates, the trigger is executed immediately after the operation. For deletes, the trigger is executed prior to the deletion operation. A single trigger may apply to an insert, update, or delete operation, or any combination thereof. Several triggers may be defined for a single entity. The Trigger Number determines the order of execution of each trigger.
  • the trigger input screen from the Utility Tool is illustrated in FIG. 56 .
  • This trigger is designed to update inventory after a new Line Item has been saved to the database.
  • custom functionality can be broadly characterized as any functionality that falls outside of that provided by the run-time UI executable in combination with the metadata.
  • considerable functionality and flexibility are provided through the careful integration of the UI with metadata stored in the configuration repository. Still, there are occasions where it is desirable to integrate external components with the UI.
  • COM Component Object Model
  • One embodiment of the present invention defines a specification for a COM interface that provides for communication between the UI and external software components. Future embodiments might look toward other promising specifications and protocols, such as the Simple Object Access Protocol (SOAP), to provide inter-component communication.
  • SOAP Simple Object Access Protocol
  • Table 21 summarizes four of the most significant areas where external components can be integrated using a predefined COM interface:
  • Custom Data Entry Form Setting the Custom Data Entry entity attribute to TRUE will call an external component to load a custom data entry form.
  • the dynamically generated data entry form provided by the UI is replaced with the custom form.
  • Custom Search Screen Setting the Custom Filter entity attribute to TRUE will call an external component to load a custom search screen.
  • the custom search screen must return an SQL statement back to the UI.
  • the SQL statement should be structured such that it ultimately returns records from the view associated with the parent entity. This feature is accessible through the “Find @E” menu option for the parent menu context. An example will be illustrated in the UTILITY TOOL OPERATION and USER INTERFACE OPERATION sections. Reports
  • the parent entity menu context provides for the integration of custom reports into the UI.
  • COM interfaces for popular report writers such as BusinessObjects ®, Crystal Reports, and Microsoft Access, are used to generate high quality reports within the UI.
  • a custom invoice might be designed such that, by passing the CUSTOMER_ORDER_ID primary key value to the report, a nicely formatted invoice would be generated.
  • the report could then be linked to the Customer Order entity using the Report Name, Report Path and Report Type entity attributes.
  • Tools Menu The main menu of the UI contains a Tools menu to which external components may be attached. Examples of tools that one might wish to integrate into the UI are limitless.
  • a common example might be an import tool to allow the import of data into the database. An example will be illustrated in the UTILITY TOOL OPERATION and USER INTERFACE OPERATION sections.
  • FIG. 57 the Utility Tool interface is shown.
  • FIG. 58 a new configuration repository is created.
  • FIG. 59 illustrate the process of defining a Datasource.
  • a Datasource simply defines a connection to a relational database; in this case, a Microsoft SQL Server database called CustomerOrders.
  • the Datasource is Refreshed, in FIG. 60 , to initiate the process of populating the configuration repository with metadata.
  • the user is prompted to define the reference tables (entities) from the list of tables found in the database schema.
  • the default data entry control assigned to the Customer field in the Customer Order entity is changed from a SmartComboControl to a ComboBoxControl.
  • the default control assigned to the Address field which maps to the ADDRESS_ID foreign key field, is changed from a ComboBoxControl to a SmartComboControl.
  • FIG. 64 illustrates the assignment of an icon to the Customer Order entity.
  • Customer Order is the parent entity on the main screen of the UI
  • the icon will provide users with a graphical image of the entity.
  • a custom filter is implemented using the COM interface exposed by the UI.
  • a form caption expression is defined to place a meaningful caption on data entry forms.
  • search columns and sort columns are defined for the Customer Order entity.
  • Permissions for the Customer Order entity are assigned to the Sales Reps user group in FIG. 69 .
  • the Line Item relationship will appear as a tab on the Customer Order data entry form by setting the Display On Tab attribute to TRUE as illustrated in FIG. 70 .
  • an unbound CalculatedControl is added to the Line Item entity in order to display the Unit Price on the data entry form.
  • the Extended Price field is modified in FIG. 72 to implement a bound CalculatedControl.
  • a business rule has been defined to check inventory levels before adding a Line Item to a Customer Order (see FIG. 55 ).
  • a trigger has also been defined to update inventory on hand immediately after a Line Item is added to a Customer Order (see FIG. 56 ).
  • an Application Caption and Startup Entity are defined in the System Attributes screen.
  • the Startup Entity is the first parent entity to appear when end users log into the UI.
  • a tool “Import Wizard”, is defined in FIG. 74 in order to integrate an external COM component into the UI.
  • an entry is added to a configuration file to notify the UI of the presence of a new configuration repository.
  • the UI software may now use the new configuration repository to generate a user interface.
  • FIG. 76 a user logs into the UI. Notice that more than one configuration repository exists. Since the UI behavior is controlled by metadata, any number of configuration repositories can be used by a single installation of the UI software.
  • the Tools menu now displays an “Import Wizard” menu option. Selecting the menu option launches an external COM component (not shown here).
  • FIG. 78 An advanced search screen for the Customer Order entity is illustrated in FIG. 78 .
  • the default search path configured by the Utility Tool during the Refresh process is used to construct the list of searchable entities.
  • FIG. 79 A simple custom filter (search) is illustrated in FIG. 79 .
  • the custom filter screen is provided by an external COM component. Changes made to the internal workings of the COM component have no impact on the UI software.
  • FIG. 80 a new Customer Order is entered. Notice the Line Item tab on the Customer Order data entry form. Also, notice the use of a SmartComboControl to populate the Address field (remember, addresses are stored in a single table and shared by four entities to ensure the same physical address is entered once and only once).
  • Sales Person entity Promotion of the Sales Person entity is illustrated in FIG. 82 .
  • Customer Orders may be entered using the child menu as shown in FIG. 83 . Notice that the Sales Person field is automatically populated when the Customer Order data entry screen is first instantiated.
  • the CustomerOrders database is modified to add the REQUESTED_DATE field to the CUSTOMER_ORDER table.
  • the configuration repository is Refreshed, in FIG. 85 , to generate metadata for the database modification.
  • the new Customer Order data entry form is illustrated in FIG. 86 . Notice the Requested Date field now appears and is represented by a DateTimeControl.

Abstract

Computer software for, computer apparatus for, and a method of automatically generating a user interface for a relational database comprising extracting schema information from the relational database and automatically generating corresponding schema and user interface metadata, storing the metadata in a repository, and automatically developing from the metadata a user interface appropriate to the relational database.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation application of U.S. patent application Ser. No. 11/204,799 (U.S. Pat. No. 7,401,094), filed on Aug. 16, 2005, which is a continuation of U.S. patent application Ser. No. 10/040,851 (U.S. Pat. No. 7,062,502) filed on Dec. 28, 2001, and the specifications thereof are incorporated herein by reference.
  • STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
  • Not applicable.
  • COPYRIGHTED MATERIAL
  • A portion of the disclosure of this patent document contains material that is subject to copyright protection. The owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyrights whatsoever.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention (Technical Field)
  • The present invention relates to computer database systems and more particularly to a data entry user interface used to populate a relational database with information.
  • 2. Background Art
  • A glossary is presented in the GLOSSARY OF TERMS section below to facilitate a better understanding of the terms relevant to the present invention. Such terms are denoted by the use of italics.
  • Relational database management systems are well known in the prior art. A key characteristic of such systems is that data is organized and stored in tables in such a manner that various tables may be related to one another for the purpose of representing real world problems in the form of an organized data structure.
  • Relational databases are widely accepted in the modern business environment as a valuable tool to store information relating to an organization's business activities. But while relational database management systems provide an attractive way to organize and store data, they do not provide a convenient method to accept input from an end user for the purpose of populating the database with information.
  • A variety of commercial computer systems are available to provide user interfaces to relational databases. Such systems are typically developed to provide solutions to common business problems such as accounting systems for small businesses and inventory management systems for manufacturers.
  • However, a myriad of business problems cannot be solved with existing commercial computer systems. Many business problems are specific to a particular organization requiring a custom database structure to properly model each problem. It follows then that these custom database structures require custom user interfaces in order to populate the database with information.
  • Creating custom user interfaces for relational databases is a time consuming and costly process. At a high level, the process generally includes the following stages:
    • 1. Analyze the business problem to define a set of requirements.
    • 2. Design a data structure and a set of business rules to provide for the collection and storage of information relevant to the set of requirements defined in the previous stage.
    • 3. Design a user interface within which users may navigate through the relational database to store and retrieve information subject to the set of business rules defined in the previous stage.
    • 4. Create the user interface by writing computer code.
    • 5. Test the user interface. Correct programming and design errors.
    • 6. Implement and deploy the database and user interface.
    • 7. Repeat stages 1 through 6 as new requirements evolve over time.
  • For small scale databases with approximately 25 or fewer tables, this process often requires a couple hundred hours of programming effort in addition to numerous resources necessary to gather requirements, test and deploy the system. For larger databases, the cost increases nearly in direct proportion with the size of the database. Needless to say, the cost of developing custom user interfaces is extremely expensive often prohibiting the development of such systems for many organizations.
  • Most data entry user interfaces are form-based in which a graphical representation of a form is presented on a video display. The form, which relates to the data being entered, contains a series of data entry controls that are used to collect data from the end user. These data entry controls typically attempt to provide the user with an intuitive data entry experience. For example, as illustrated in FIG. 1, when entering a Customer Order into the database, an edit box with a corresponding button might represent the Order Date. The user can enter a date into the edit box by: (1) using the keyboard or (2) clicking the button to obtain a calendar from which a date can then be selected.
  • A key problem arises with the form-based user interface depicted above in that if a new data element (i.e., field) is added to a table in the database, a new data entry control must be added to the table's corresponding form in the user interface. This modification requires further programming effort, additional testing, and a recompilation and redeployment of the user interface. So not only is the user interface extremely expensive to develop in the first place, it is also very costly to maintain over the lifetime of the database.
  • In order to dramatically reduce the cost and turnaround time of developing and maintaining data entry user interfaces for relational databases, it is desirable to generate the user interface, and more particularly the data entry forms, dynamically at run-time without the necessity of writing computer code. The user interface should also provide a mechanism by which users can conveniently navigate through the database for the purposes of entering and maintaining data. Finally, the user interface should be extensible so that a system administrator can modify the interface to provide users with a better data entry experience and to insure the integrity of data stored in the underlying database.
  • SUMMARY OF THE INVENTION
  • The present invention is of computer software for, computer apparatus for, and a method of automatically generating a user interface for a relational database comprising: extracting schema information from the relational database and automatically generating corresponding schema and user interface metadata; storing the metadata in a repository; and automatically developing from the metadata a user interface appropriate to the relational database. In the preferred embodiment, the schema and user interface metadata comprise entities, entity fields, entity relationships, and entity search paths. The entity relationships comprising one-to-many, many-to-one, and many-to-many relationships, and the automatically developed user interface comprises context menus specific to type of entity relationship. The schema and user interface metadata preferably additionally comprises platform attributes for abstracting syntactic differences between database implementations. The invention preferably additionally provides for addition of non-automatically-generated functionality to the developed user interface, such as scripts, external components, business rules, and/or triggers. The metadata in the repository is refreshable after schema changes are made to the relational database.
  • It is the primary object of the present invention to provide a method and system by which data entry forms for relational databases may be generated dynamically at run-time without the necessity of writing computer code to accomplish this task.
  • It is a further object of the present invention to provide a method and system by which end users may conveniently navigate through a relational database for the purposes of entering and maintaining data.
  • It is still a further object of the present invention to provide a method and system for the validation, insertion, update, and deletion of data.
  • Other objects of the present invention, including methods to provide application extensibility, will become apparent from the detailed description that follows.
  • GLOSSARY OF TERMS
  • For purposes of the specification and claims, the following terms in Table 1 are defined to have the following meanings:
  • TABLE 1
    TERM DEFINITION
    Boolean A value that must be either TRUE (non 0) or FALSE (0). Some
    databases systems store Boolean values as a single bit.
    Business Rule The logical rules that are used to run a business. Business rules can
    be enforced through the user interface or in a database using
    triggers, stored procedures, and constraints.
    Data Entry Control Objects that are contained within data entry forms and are designed
    to display data and accept input from users.
    Data Integrity A state in which all the data values stored in the database are
    correct. If incorrect data values have been stored in a database, the
    database is said to have lost data integrity.
    Datatype An attribute that specifies what type (i.e. Boolean, text, number,
    date, etc) of information can be stored in a field.
    Design Time Anytime a computer programmer is building an application/user
    interface.
    Extensible Markup Language Extensible Markup Language (XML) is a meta-markup language that
    (XML) provides a format for describing structured data. This facilitates more
    precise declarations of content and more meaningful search results
    across multiple platforms. In addition, XML is enabling a new
    generation of Web-based data viewing and manipulation
    applications.
    Field In a database table, the area in each row that stores the data value
    for some attribute of the object modeled by the table.
    Foreign Key The field or combination of fields whose values match the primary
    key (PK) or unique key in the same or another table.
    Intersection Table A table used to form a relationship between two or more indirectly
    related tables.
    Metadata Information about the properties of data, such as the type of data in
    a field (numeric, text, and so on) or the length of a field. It can also
    be information about the structure of data or information that
    specifies the design of objects such as tables and relationships.
    NULL An entry that has no explicitly assigned value. NULL is not
    equivalent to zero or blank. A value of NULL is not considered to be
    greater than, less than, or equivalent to any other value, including
    another value of NULL.
    Primary Key A field or set of fields that uniquely identify all the rows in a table.
    Primary keys do not allow null values. No two rows can have the
    same primary key value; therefore, a primary key value always
    uniquely identifies a single row.
    Record A group of related fields of information treated as a unit in a table.
    Relational Database A collection of information organized in related tables where each
    table consists of records and fields.
    Relational Database A software system that supports relational databases. Well known
    Management System examples are Microsoft Access, Microsoft SQL Server and Oracle.
    Relationship A link between tables that references the primary key in one table to
    a foreign key in another table.
    Run-Time Any time the user is actually running and interacting with the
    application/user interface.
    Schema A collection of database objects including tables, views, indexes,
    and foreign keys.
    Stored Procedure A precompiled collection of SQL statements stored under a name
    and processed as a unit.
    Structured Query Language A language used to insert, retrieve, modify, and delete data in a
    (SQL) relational database.
    System Administrator A generic term used throughout this document which refers to any
    person or persons who might perform business requirement
    analysis, database design and implementation duties, or make
    configuration changes to the metadata used by the present
    invention.
    Table A two-dimensional object, consisting of records and fields, used to
    store data in a relational database.
    Table Join As a verb, to combine the contents of two or more tables and
    produce a result set that incorporates rows and fields from each
    table. Tables are typically joined using data that they have in
    common. As a noun, the process or result of joining tables.
    Unique Key Constraint Constraints that enforce table integrity on a non-primary key.
    Unique constraints ensure that no duplicate values are entered in
    the fields, which compose the key.
    View A database object that can be referenced the same way as a table in
    SQL statements. Views are defined using a SELECT statement and
    are analogous to an object that contains the result set of this
    statement.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The accompanying drawings, which are incorporated into and form a part of the specification, illustrate one or more embodiments of the present invention and, together with the description, serve to explain the principles of the invention. The drawings are only for the purpose of illustrating one or more preferred embodiments of the invention and are not to be construed as limiting the invention. In the drawings:
  • FIG. 1 depicts a data entry control.
  • FIG. 2 depicts the high-level architecture implemented by the invention.
  • FIG. 3 summarizes the first 4 Forms of Normalization.
  • FIG. 4 depicts the Entity Relationship Diagram for the example database.
  • FIG. 5 depicts the parent-child paradigm implemented by the user interface.
  • FIG. 6 depicts selecting a child entity.
  • FIG. 7 depicts the View Menu in the user interface.
  • FIG. 8 depicts the Parent context menu.
  • FIG. 9 depicts the Reference context menu.
  • FIG. 10 depicts access to Reference Tables through the View Menu.
  • FIG. 11 depicts the One-To-Many context menu.
  • FIG. 12 depicts the Many-To-One context menu.
  • FIG. 13 depicts the Many-To-Many context menu.
  • FIG. 14 depicts selection of New Line Item One-To-Many menu option.
  • FIG. 15 depicts entering data on the Line Item data entry form.
  • FIG. 16 depicts the newly added Line Item record.
  • FIG. 17 depicts selection of the New Customer Many-To-One menu option.
  • FIG. 18 depicts entering data on the Customer data entry form.
  • FIG. 19 depicts the newly added Customer record.
  • FIG. 20 depicts selection of the New Spoken Language Many-To-Many menu option.
  • FIG. 21 depicts entering data on the Spoken Language data entry form.
  • FIG. 22 depicts the newly added Spoken Language record.
  • FIG. 23 depicts selecting the Promote Customer menu option.
  • FIG. 24 depicts the newly promoted Customer entity.
  • FIG. 25 depicts the results of a Quick-Text search on “Suyama”.
  • FIG. 26 depicts the results of Quick-Text search with two search columns defined for Customer Order.
  • FIG. 27 depicts the results of a Quick-Text search against the Line Item child entity.
  • FIG. 28 depicts an Advanced Search screen for the Customer Order entity.
  • FIG. 29 depicts saving an Advanced Search into an XML file.
  • FIG. 30 depicts deletion of a Line Item record.
  • FIG. 31 depicts the Customer Order data entry form.
  • FIG. 32 depicts a flowchart of decision points used in assigned data entry controls to entity fields.
  • FIG. 33 depicts a ComboBoxControl data entry control.
  • FIG. 34 depicts a SmartComboControl data entry control.
  • FIG. 35 illustrates a customized caption for the Employee child entity.
  • FIG. 36 depicts a Quick-Text search for a Many-To-Many relationship.
  • FIG. 37 depicts a list of searchable entities on the Advanced Search screen.
  • FIG. 38 depicts the Filter definition screen.
  • FIG. 39 depicts a new Line Item record for which SQL will be generated.
  • FIG. 40 depicts the Data Entry Grid for the Line Item entity.
  • FIG. 41 depicts the Unit Price and Extended Price calculated data entry controls.
  • FIG. 42 depicts the CheckBox data entry control.
  • FIG. 43 depicts the process of adding a new Shipper while using a ComboBoxControl.
  • FIG. 44 depicts the Shipper data entry form that was loaded by a ComboBoxControl.
  • FIG. 45 depicts the newly added Shipper in the ComboBoxControl.
  • FIG. 46 depicts the process of using the FileDialogControl data entry control.
  • FIG. 47 depicts the process of using the FileDialogControl data entry control.
  • FIG. 48 depicts the process of using the FileDialogControl data entry control.
  • FIG. 49 depicts the process of using the ImageBLOB data entry control.
  • FIG. 50 depicts the process of using the ImageBLOB data entry control including viewing an image.
  • FIG. 51 depicts the MaskEditBox data entry control.
  • FIG. 52 depicts the NotesControl data entry control.
  • FIG. 53 depicts the NumericFormatBox data entry control.
  • FIG. 54 depicts the TextBoxControl with the Email Address attribute set to TRUE.
  • FIG. 55 depicts the Business Rule input screen from the Utility Tool.
  • FIG. 56 depicts the Trigger input screen from the Utility Tool.
  • FIG. 57 depicts the Utility Tool interface.
  • FIG. 58 illustrates the creation of a new configuration repository.
  • FIG. 59 illustrates definition of a new Datasource.
  • FIG. 60 illustrates the selection of Reference Tables.
  • FIG. 61 depicts the fully populated Entities tree.
  • FIG. 62 illustrates modification of the control type for the Customer field in the Customer Order entity.
  • FIG. 63 illustrates modification of the control type for the Ship Address field in the Customer Order entity.
  • FIG. 64 depicts the definition of entity attributes for the Customer Order entity.
  • FIG. 65 depicts the definition of a search column for the Customer Order entity.
  • FIG. 66 depicts the definition of a sort column for the Customer Order entity.
  • FIG. 67 illustrates setting the order of relationships for the Customer Order entity.
  • FIG. 68 illustrates changing the Caption attribute of the Employee relationship to Sales Person.
  • FIG. 69 illustrates granting permissions to the Sales Reps group for the Customer Order entity.
  • FIG. 70 illustrates setting the Display On Tab entity attribute to TRUE.
  • FIG. 71 illustrates the definition of a new unbound CalculatedControl.
  • FIG. 72 illustrates the definition of a bound CalculatedControl
  • FIG. 73 illustrates the definition of system attributes such as Application Caption and Startup Entity.
  • FIG. 74 illustrates the definition of a new Tool called “Import Wizard”.
  • FIG. 75 illustrates the modification of the user interface configuration file.
  • FIG. 76 illustrates the System Login screen of the user interface.
  • FIG. 77 depicts the Import Wizard tool menu option.
  • FIG. 78 depicts the Advanced search screen.
  • FIG. 79 depicts a custom filter screen.
  • FIG. 80 illustrates setting the Ship Address foreign key on the Customer Order data entry form.
  • FIG. 81 illustrates adding a new Line Item record to the new Customer Order record.
  • FIG. 82 illustrates promoting the Sales Person (Employee) child entity.
  • FIG. 83 illustrates adding a new Customer Order when Employee is the parent entity.
  • FIG. 84 depicts the addition of a new field to the CUSTOMER_ORDER table in the database.
  • FIG. 85 illustrates the Refresh of the Customer Order entity in the Utility Tool.
  • FIG. 86 depicts the newly added Requested Date field on the Customer Order data entry screen.
  • DETAILED DESCRIPTION OF THE INVENTION
  • As alluded to above, the high cost of developing and maintaining data entry user interfaces in the prior art is largely attributed to the tight coupling of data entry forms with the structure of the underlying relational database. This problem is further aggravated by the common practice of hard coding navigation, business rules and Structured Query Language (SQL) into the source code of the user interface, thus requiring a recompilation and redeployment of the user interface software when modifications to the database structure and/or changes to business logic are made.
  • To overcome this problem, the present invention proposes the high level architecture depicted in FIG. 2. Under this architecture, a utility program (the “Utility Tool”) interprets database schema information from the relational database. Information gleaned from the schema is used to populate a configuration repository with metadata. This metadata is then utilized by the user interface (the “UI”) to: (1) generate data entry forms, (2) provide a method of navigation through the database, including menus and sophisticated searching functionality and (3) provide a mechanism for the validation, insertion, update and deletion of data.
  • A key principal behind the present invention is that the structure, or schema, of a relational database provides a significant amount of useful information with respect to the data entry user interface. While it is theoretically possible to generate a user interface directly from the database schema without the use of a configuration repository, the layer of abstraction offered by the repository has numerous advantages. These advantages will be explored in depth in the remainder of this document.
  • In one embodiment, the present invention utilizes personal computer-based client/server architecture for the purpose of providing data entry access to a relational database. Insofar as a single personal computer (PC) can act as both client and server, it is perfectly acceptable to deploy the data entry interface and the relational database on a standalone PC. In addition, all user interaction is possible using either a keyboard or a mouse.
  • As web interface technology matures, other embodiments of the present invention, using very similar if not identical architecture, might well be implemented over the Internet. Under such embodiments, the “server” might be any set of computers on the Internet that look like a single database to the client. The “client” might be any computer on the Internet running one of several commercially available browsers.
  • The relational database should meet the following requirements:
    • 1. Each table should have a single integer field which serves as its primary key. This requirement, a common practice in the database development community, does not preclude the use of unique key constraints on fields that compose the logical primary key, such as the social security number for a table of employees. Among other advantages, this requirement simplifies table joins by insuring that the primary key of the first table in the join is composed of a single field of the same datatype as the foreign key in the second or related table.
    • 2. Relationships between tables should be established using foreign keys.
    • 3. A view should be created for each table in the database. The view represents the physical table throughout the UI for the purposes of searching and displaying data. The view should include the primary key of the underlying table. The main objective of this requirement is to present users with formatted data using intuitive column names as opposed to unformatted data using cryptic database field names.
  • While not a requirement, it is highly recommended that the relational database be in at least 3rd Normal Form. Normalization is widely accepted as a systematic methodology by which redundancy can be removed from relational database structures. For the reader's convenience, the first 4 Forms of Normalization are summarized in FIG. 3.
  • Relational Database Example
  • In order to help the reader better understand the present invention, an example will used throughout the remainder of the detailed description. An Entity Relationship Diagram (ERD) for the example is presented in FIG. 4. The arrows point from the foreign key table to the primary key table. For example, the CUSTOMER_ORDER table relates to the CUSTOMER table on the CUSTOMER_ID field. CUSTOMER_ORDER is the foreign key table. CUSTOMER is primary key table.
  • The example is a simple order entry database for a fictional company, ACME Grocery Supply, in which:
    • Each Customer is assumed to have one Billing Address.
    • Each Customer Order is taken by an Employee (i.e. Sales Person).
    • Each Customer Order consists of one or more Line Items.
    • Each Customer Order is assumed to have a single Shipping Address regardless of the number of Line Items.
    • Each Line Item is for a single Product. The Unit Price of a Product may be discounted on the Line Item by entering a Discount percentage.
    • Products are supplied by Suppliers and grouped into Categories.
    • The fictional company is assumed to do business on an international basis. Consequently, each Employee may speak one or more Spoken Languages.
    • Employees may have a Manager who is also an Employee. However, Employees cannot manage themselves.
  • The example database has been designed to help illustrate the fundamental principles of the present invention. With one exception, the database is in 4th Normal Form. The lone exception has to do with the implementation of the ADDRESS table. The ADDRESS table violates normalization rules in that it contains redundancy. However, in order to simplify and limit the size and complexity of the example, Addresses have not been normalized.
  • Other liberties have been taken to limit the size and complexity of the example. For example, a more realistic implementation of the PRODUCT table would track price changes over time. However, the example is not intended to accurately model the real world problem of designing order entry systems. Instead, its purpose is to illustrate common database principles with respect to the present invention.
  • The Configuration Repository
  • Instead of tightly coupling the user interface with the relational database, a configuration repository is used to present a layer of abstraction between the database and the user interface. The configuration repository consists of highly structured metadata. The metadata is organized in the following manner:
  • Entities
  • Physical database tables are represented by “entities”. A single table may be represented by more than one entity through a technique called “aliasing”. For example, separate entities might be defined to distinguish between domestic and international Customers even though a single table, CUSTOMER, is used to store all Customer data.
  • A special type of entity, called a “reference entity”, exists for entities that are mostly incidental to the overall business purpose behind the relational database. Reference entities help to categorize or describe data in other entities. For example, Categories help to logically organize and describe groups of related Products. But it is unlikely that most end users will ever need to interact directly the underlying CATEGORY table. Therefore, reference entities are treated differently in the UI. These differences will be made apparent in the remaining sections of this document.
  • Throughout the UI, with the exception of data entry forms, data relating to entities is supplied through database views. Database views provide users with easy-to-read column names and formatted data. For example, the view assigned to the Employee entity might concatenate the LAST_NAME and FIRST_NAME fields from the EMPLOYEE table into a single column, EmployeeName, as in the following example depicted in Table 2 and Table 3:
  • TABLE 2
    FIRST_NAME LAST_NAME
    Jane Doe
  • Becomes:
  • TABLE 3
    EmployeeName
    Doe, Jane
  • Searching is performed against view columns rather than table fields. Similarly, search results are presented in the form of data lists, which consist of a collection of view columns.
  • Entity Fields
  • “Entity fields” represent fields within database tables. Each entity field is assigned a single data entry control. The metadata relating to each entity field defines the behavior of its corresponding data entry control. Data entry forms consist of an ordered collection of data entry controls defined by the entity field metadata.
  • Logical entity fields may be defined to derive values that are not actually stored in table fields. For example, it might be desirable to display a Product's Unit Price on the Line Item data entry form even though a corresponding field does not exist in the LINE_ITEM table. A special data entry control, called a Calculated Control, may be defined to retrieve and display the Unit Price for the currently selected Product. This example will be illustrated under the USER INTERFACE GENERATION section.
  • Entity Relationships
  • Relationships between database tables, implemented through foreign keys in the database, are represented by “entity relationships”. In the configuration repository, two entity relationships are generated for each foreign key defined in the database schema. For example, the PRODUCT_ID foreign key in the LINE_ITEM table would generate one relationship from the perspective of the foreign key table, LINE_ITEM, and one from the perspective of the related table (or primary key table), PRODUCT as shown in Table 4:
  • TABLE 4
    Relationship Relationship Type
    LINE_ITEM.PRODUCT_ID = Many-To-One
    PRODUCT.PRODUCT_ID
    PRODUCT.PRODUCT_ID = One-To-Many
    LINE_ITEM.PRODUCT_ID
  • There are three types of entity relationships: One-To-Many, Many-To-One, and Many-To-Many. The first relationship in the table above is of relationship type Many-To-One, as are all relationships from the perspective of the foreign key table. The second relationship in the table is of type One-To-Many, as are all relationships from the perspective of the related table.
  • Many-To-Many relationships are reserved for a special case in which it is desirable to form a direct logical relationship between two indirectly related entities, such as Employee and Spoken Language. This type of relationship will be explored in more detail later.
  • Entity relationships provide metadata to support two key pieces of functionality in the UI: (1) navigation and (2) dynamically generated SQL.
  • Entity Search Path
  • From the perspective of a particular entity, the “search path” defines the collection of directly and indirectly related entities that may be searched with respect to the entity. The entity search path is a subset of all entity relationships in the configuration repository. For example, to obtain a list of Customers who bought one or more Products from a specific Sales Person, the list of entity relationships in Table 5 must be defined on the search path of the Customer entity:
  • TABLE 5
    Relationship
    Relationship Type
    CUSTOMER.CUSTOMER_ID = One-To-
    CUSTOMER_ORDER.CUSTOMER_ID Many
    CUSTOMER_ORDER.CUSTOMER_ORDER_ID = One-To-
    LINE_ITEM.CUSTOMER_ORDER_ID Many
    CUSTOMER_ORDER.SALES_PERSON_ID = Many-To-
    EMPLOYEE.EMPLOYEE_ID One
    PRODUCT.PRODUCT_ID = One-To-
    LINE_ITEM.PRODUCT_ID Many
  • The entity search path also resolves circular loops that might otherwise exist between two entities. For example, two paths exist from the Customer entity to the Address entity. One path, which corresponds to the billing address, flows directly from the Customer entity to the Address entity via the BILL_ADDRESS_ID foreign key. A second path, corresponding to the shipping address, flows indirectly from the Customer entity to the Address entity through the Customer Order entity via the SHIP_ADDRESS_ID foreign key. Consequently, a circular loop exists between the Customer and Address entities:
  • Figure US20090031230A1-20090129-C00001
  • In order to allow searching of both billing and shipping addresses with respect to the Customer entity, this loop must be resolved. This can be accomplished by aliasing the Address entity into a new entity called Shipping Address. This results in the search path in Table 6 for the Customer entity:
  • TABLE 6
    Relationship Relationship Type
    CUSTOMER.CUSTOMER_ID = One-To-Many
    CUSTOMER_ORDER.CUSTOMER_ID
    CUSTOMER.BILL_ADDRESS_ID = One-To-Many
    ADDRESS.ADDRESS_ID
    CUSTOMER_ORDER.SHIP_ADDRESS_ID = One-To-Many
    ADDRESS_1.ADDRESS_ID
  • The aliased Address entity, Shipping Address, which corresponds to the logical table ADDRESS_1 in the third relationship above, resolves the circular loop by creating the illusion of two distinct instances of the physical ADDRESS table in the underlying database.
  • Another way to resolve this circular loop is to simply include Address information in the database views for both the Customer and Customer Order entities. Searching for shipping address information can then be performed against the Customer Order entity directly.
  • Entity and Entity Relationship Permissions
  • Data entry and navigation functionality in the UI are provided through “pop-up” menus. These menus are generated dynamically from metadata stored in the configuration repository. The metadata associated with menus is “predefined” in the sense that it is not derived from the database schema but instead built into the UI architecture. As will be demonstrated throughout the remainder of this document, the type of menu shown to a user at any given point is determined by the “menu context”. The menu context simply describes the point from within the UI where the end user requests a menu.
  • As will be shown, menu contexts are tightly coupled to entities and entity relationships. Thus, permissions that provide access to menu options (stored as metadata) are granted at the entity and entity relationship level.
  • Platforms and Platform Attributes
  • Syntactic differences between various database systems such as Oracle and Microsoft SQL Server must be accounted for. The configuration repository contains a set of predefined metadata that provides a layer of abstraction between the UI and specific database systems (referred to as “platforms” within the metadata structure). One example of a syntactic difference between platforms would be the date delimiter used in SQL expressions. Consider the following SQL statement, which works fine against SQL Server but would fail against Microsoft Access:
  • SELECT*FROM CUSTOMER_ORDER WHERE ORDER_DATE BETWEEN ‘1-1-1998’ AND ‘12-31-1998’
  • SQL Server uses the single-quote symbol to delimit dates whereas Microsoft Access uses the # symbol.
  • To account for such differences between database platforms, a set of attributes are defined which specify the various symbols and formats used by each platform. In this way, SQL can be generated generically by the UI as the following modified version of the above SQL statement shows:
  • SELECT * FROM CUSTOMER_ORDER
    WHERE ORDER_DATE BETWEEN [DATE_DELIMITER]1-1-
     1998[DATE_DELIMITER] AND
     [DATE_DELIMITER]12-31-1998[DATE_DELIMITER]
  • The “[DATE_DELIMITER]” placeholder is replaced by the appropriate symbol before the SQL statement is executed.
  • Another advantage of abstracting syntactic differences between database systems is that the Utility Tool and UI may be used to access new database systems by simply adding metadata to the platform and platform attribute structure.
  • User Interface Architecture
  • The UI architecture is tightly coupled with the structure of the metadata relating to entities, entity fields, entity relationships, and entity search paths. In particular, the architecture takes advantage of the inherent parent-child paradigm offered by the entity-entity relationship structure. FIG. 5 illustrates this paradigm quite clearly by presenting the main screen of the UI. On the top portion of the screen, we see that the focus of the interface is with respect to the Customer Order entity. On the bottom left side of the screen, we see a list of related entities (exclusive of reference entities, a detail that will be discussed momentarily). Under the current context of the interface, Customer Order is the “parent” entity. The list of related entities are called “children”. This list is derived from the entity relationships that are defined for the Customer Order entity. The currently selected child is Line Item. In FIG. 6, the selected child has been switched to Customer.
  • The parent entity may be changed by selecting a different entity through the View menu depicted in FIG. 7.
  • Note that data display is list-driven. As mentioned earlier, all data lists are based on database views. In FIG. 5, a list of Customer Orders is shown on the top half of the screen. This list is the result of a “quick-text search” which will be discussed shortly. A list of Line Items for the currently selected Customer Order is displayed on the bottom half of the screen. The architecture attempts to maximize the amount of information displayed with the effective use of data lists in conjunction with the parent-child entity paradigm. Switching the selected child entity results in a filtered list of information relating to the newly selected child. Regardless, of the type of relationship between parent and child entities (i.e. One-To-Many, Many-To-One, or Many-To-Many), child data lists are filtered according to the currently selected record for the parent entity. This is accomplished through dynamic SQL generation.
  • It is not necessary to display reference entities as children of a parent entity since it is assumed that fields of interest from these reference entities are included in the database view for the corresponding parent entity. For example, notice that the Customer Order view in FIG. 5 includes the ShipperName in the data list but does not include Shipper as a child entity. Shipper has been defined as a reference entity.
  • Data entry and navigation functionality are accessed through dynamically constructed menus. Menus are generated from data lists by right-mouse clicking on the list or using the CTRL-M key combination on the keyboard. The list of options available on a menu depends upon the context from which the end user accesses the menu within the UI. There are five menu contexts:
    • 1. Parent: FIG. 8 depicts a Parent context menu for the Customer Order parent entity. Several options deal with data entry (e.g. New, Edit, Duplicate, Delete, and View) while others deal with searching functionality (Find and Find (Advanced)). Still others deal with extracting information in the form of an export, print preview of the data list, or a predefined report using a report writer such as Crystal Reports or BusinessObjects®.
    • 2. Reference: The Reference context menu applies to the data list depicted in FIG. 9. This data list is located in the Reference Tables area, which is accessed through the View menu (see FIG. 10). With the exception of the Export and Print Preview options, all options on this menu have to do with data entry.
    • 3. One-To-Many: The One-To-Many context menu applies to child entities only. The context name, One-To-Many, corresponds to the type of relationship that exists between parent and child entities.
    • 4. Many-To-One: The Many-To-One context menu applies to child entities only. The context name, Many-To-One, corresponds to the type of relationship that exists between parent and child entities.
    • 5. Many-To-Many: The Many-To-Many context menu applies to child entities only. The context name, Many-To-Many, corresponds to the type of relationship that exists between parent and child entities.
  • Menu options for the last three menu contexts are depicted in FIG. 11-13. While the individual menu options are nearly identical for each of these three contexts, the functionality behind the options differs significantly. For example, FIG. 14-16 illustrate the process of adding a new Line Item to a Customer Order. With Customer Order as the parent entity, the dynamically generated data entry form for the Line Item entity is able to automatically populate the Customer Order field, which maps to the CUSTOMER_ORDER_ID foreign key in the LINE_ITEM table. This is possible because the primary key value, from the selected Customer Order record in the parent data list, is known.
  • On the other hand, when the child entity is Customer, as illustrated in FIG. 17-19, the context of adding a new Customer record is quite different. In this case, the relationship between parent and child entities is Many-To-One. Adding a new Customer has the impact of inserting a new record into the CUSTOMER table and modifying the CUSTOMER_ID foreign key value in the CUSTOMER_ORDER table to the value of the newly generated primary key value of the new Customer record.
  • When the relationship between parent and child entities is Many-To-Many, the context of the New menu option takes on yet another meaning. In FIG. 20-22, the parent entity is Employee and the child is Spoken Language. Adding a New Spoken Language has the effect of inserting a new record into the SPOKEN_LANGUAGE table and inserting a new record into the EMPLOYEE_SPOKEN_LANGUAGE table. These two operations must execute in the proper order so that, after adding the new Spoken Language record, the newly generated primary key value is used to populate the foreign key field, SPOKEN_LANGUAGE_ID, when inserting a new record into the EMPLOYEE_SPOKEN_LANGUAGE intersection table. It should be noted that the Many-To-Many relationship type applies to a special case of intersection tables, which consist of, aside from the primary key, two, and only two, foreign key fields. This special case is quite common in practice. The Many-To-Many relationship type offers convenient functionality to end users. This functionality will be discussed in more detail later.
  • Menus for child entities contain a particularly powerful navigation menu option referred to as “promotion”. Promoting a child entity generates a new screen in which the child entity becomes the parent. Within this screen, the context of all searching is with respect to the newly promoted parent entity. FIG. 23 and FIG. 24 illustrate the promotion of the Customer entity. This functionality allows end users to drill through their database easily changing entity focus as the need arises.
  • Security is implemented at the menu option level. Upon the initial population of the configuration repository, permissions are granted to the Administrators user group for the most commonly used menu options. The system provides one built-in user, Admin, who belongs to the lone built-in group, Administrators. The system administrator manages security through the Utility Tool interface. All security information is stored as metadata in the configuration repository.
  • Two security models exist. One model provides for the integration of security in the UI with the underlying database by passing user login information from the UI to the database for verification. The other model uses a common database login for all users of the UI software. Under either case, permissions must be granted to the user's group before they can use menu options.
  • Configuration of permissions will be demonstrated in the UTILITY TOOL OPERATION section.
  • Two types of searching are provided to filter data with respect to the current parent entity: (1) quick-text searching and (2) advanced searching.
  • The quick-text search is designed to provide a simple method by which the parent entity may be searched to retrieve a set of records that meet a particular criterion. The criterion is entered into an edit box as depicted in FIG. 25. After entering the criterion and pressing the Enter (or Return) key on the keyboard, the parent entity is searched for instances where values in one or more searchable columns match the criterion. By default, all columns in the parent entity are searchable. A record matches if the value in at least one of the columns begins with the same character string as the criterion.
  • The collection of searchable columns is configurable such that one or more columns may be specified to limit the scope of the search to only these selected columns. Such is the case in FIG. 26 where only the CustomerName and EmployeeName columns are searchable as denoted by the use of the eyeglass icon next to each column header. The type of search performed against each column may be customized as well using one of the following search types in Table 7:
  • TABLE 7
    Search Type Description
    BEGINS Equivalent to the following SQL syntax:
    “EmployeeName LIKE ‘Suy%’”
    Where “%” is a wildcard symbol signifying 0 or more characters.
    EQUALS Equivalent to the following SQL syntax:
    “EmployeeName = ‘Suyama, Michael’”.
    INCLUDES Equivalent to the following SQL syntax:
    “EmployeeName LIKE ‘%Suy%’”
    Where “%” is a wildcard symbol signifying 0 or more characters.
    NAME_SEARCH Specially designed to allow flexible searching against names. Text is parsed into
    separate components. For example, the search text “Michael Suy” is broken into two
    distinct components, “Michael” and “Suy”. The EmployeeName column is then
    searched using the INCLUDES method for each component. Only those records for
    which INCLUDES evaluates to true for each component are returned. Thus, the SQL
    syntax for the current example would be:
    “(EmployeeName LIKE ‘%Michael%’) AND (EmployeeName LIKE ‘%Suy%’)”.
  • In addition, child entities may also be searched with respect to the parent entity. For example, FIG. 27 illustrates a configuration in which the CustomerName and SalesPerson columns from the Customer Order entity are searched using the NAME_SEARCH search type and the ProductName column from the Line Item child entity is also searched using the INCLUDES search type. If a Product Name is entered as the criterion, all Customer Orders on which a Line Item for the specified Product exists will be returned.
  • While the quick-text search is extremely flexible, in some cases it may be preferable to have access to more directed searching functionality. In the previous example, suppose a CustomerName includes the ‘Chai’ search criterion. Customer Orders where the CustomerName includes the character string ‘Chai’ will also be returned. This affect may be undesirable. To overcome this problem, advanced searching provides end users with targeted, precise searching functionality.
  • Advanced searching, depicted in FIG. 28, provides users with an opportunity to search against all entities defined on the search path of a parent entity, with respect, of course, to the parent entity. On the left side of the screen, a list is traversed to select columns on which filters may be defined. The right side of the screen displays a list filters that have been defined. Ultimately, these filters will be translated into SQL. Note that indentation is used to logically group filters thus implementing order of precedence into the aggregate filter expression. By default, filters are conjoined using the logical AND operator, but this default behavior may be overridden to use the OR operator as shown in the example. Once the filter has been completed, it is “applied” to generate a set of matching records for the parent entity.
  • A final note on advanced searching: Filters may be saved for later reuse using Extensible Markup Language (XML) as illustrated in FIG. 29.
  • With regard to menus and data entry functionality, not all data entry-related menu options require the use of data entry forms. The Delete menu option, for instance, simply constructs and executes a DELETE SQL statement for selected records as shown in FIG. 30. The Link and Unlink menu options are a bit more complex, but ultimately generate and execute INSERT, DELETE, and UPDATE SQL statements depending on the menu context of the entity in question.
  • Regardless of the menu context, the New, Duplicate, Edit, and View menu options all require the dynamic generation of data entry forms. As mentioned earlier, data entry forms are constructed from the metadata relating to the collection of entity fields for the relevant entity.
  • In FIG. 31, the Edit menu option was selected for a particular Customer Order. Data entry controls are graphically constructed in a list-like fashion using the metadata defined for each entity field. The ordering of the fields with respect to one another is determined by the Field Order entity field attribute. The type of data entry control assigned to each field depends upon several factors including the datatype of the field and whether or not the field is a primary or foreign key. For example, the SHIPPER_ID foreign key is represented by a dropdown list (referred to as a ComboBoxControl within the context of the present invention).
  • The decision-making process for the assignment of data entry controls will be discussed in depth in the METADATA GENERATION section below.
  • Note that red checkmarks are used to denote required fields. Required is a Boolean attribute of entity fields. Other features such as entity and entity field “scripting”, entity “business rules”, and entity “triggers” are available to promote data integrity and extend the basic functionality provided by dynamically generated data entry forms. These features will be discussed under the USER INTERFACE GENERATION section.
  • After editing a record, the user can cancel the changes by clicking the Cancel button or choose to save the changes to the underlying table by clicking the OK button. In the event the user elects to save the changes, the system first verifies that all required fields have been populated. It then applies any business rules that have been defined to validate user input. If any required data is missing or any business rules fail, the user is prompted to remedy the problem. Otherwise, dynamic SQL is generated to update the underlying database table.
  • NOTE: Of all the functionality provided by the present invention, the cost savings made possible through the dynamic generation of data entry forms cannot be overstated. Using conventional user interface development methods, each data entry form must be painstakingly programmed to provide similar functionality.
  • What happens if the underlying physical table is modified to add or remove a field? The metadata relating to an entity's collection of fields is simply modified within the Utility Tool to reflect the change. The data entry form will automatically adjust to changes in metadata without the necessity of writing any computer code.
  • Metadata Generation
  • The Utility Tool is responsible for analyzing the database schema and generating the metadata stored in the configuration repository. While custom computer code may be written to analyze database schemas for various popular relational database systems, such as Microsoft SQL Server and Oracle, several commercial middleware products are available to abstract differences between database systems into a common programming interface. In this way, foreign keys, for instance, are detected using identical, or very similar, code from within the Utility Tool regardless of database system. The present invention uses Microsoft's Data Access Components (MDAC) to provide this layer of abstraction.
  • The database schema provides sufficient information to populate the metadata relating to entities, entity fields, entity relationships, and entity search paths. Other default settings, such as entity and entity relationship permissions for the Administrators group, are configured to ease and speed the development process. However, these default metadata configuration settings do not make direct use of the database schema.
  • Entities
  • One entity is created for every table in the database. While the schema provides the primary key of each table, each table's corresponding view must be determined through a simple naming convention for the view whereby a prefix or suffix is appended to the table name to derive the name of the view. Using a suffix of “_V” would therefore yield a view name of CUSTOMER_ORDER_V for the CUSTOMER_ORDER table.
  • Reference entities cannot be detected from the schema. This attribute must be defined by a system administrator based on their overall understanding behind the business purpose of the relational database. Consequently, the Utility Tool prompts the system administrator with a list of tables from which reference tables may be defined. This will be illustrated in the UTILITY TOOL OPERATION section.
  • Entity Fields
  • The primary purpose of analyzing database schema information relating to table fields is to determine and assign an appropriate data entry control to each field. By default, one entity field is created for each field in the underlying table. A summary of the available data entry controls is presented in the USER INTERFACE GENERATION section.
  • The strategy used to determine the data entry control for each field is illustrated via the flowchart in FIG. 32. It should be noted that all default attributes discussed below can be modified within the Utility Tool at any time. The Utility Tool uses the following strategy during the initial population of the configuration repository and on demand by the system administrator as modifications are made to the database structure over time:
  • If the field is a primary key, a NumericFormatBox is assigned. Since primary key values are system generated, the NumericFormatBox will be placed in read-only mode, meaning end users cannot make changes to the value.
  • If the field is a foreign key, then one of two data entry controls will be assigned depending on whether the related table is a reference entity. If the related entity is a reference entity, a ComboBoxControl is assigned. The graphical representation of a ComboBoxControl is a simple dropdown list, an example of which is depicted in FIG. 33. Shipper is a reference entity. The ComboBoxControl presents a list of Shippers to the end user but actually stores the SHIPPER_ID primary key value in the CUSTOMER_ORDER table.
  • If the related entity is not a reference entity, a SmartComboControl is assigned. The purpose of the SmartComboControl is identical to that of the ComboBoxControl: that is, to populate a foreign key field in the underlying table. However, its functionality is a bit more complex. Unlike the ComboBoxControl, the SmartComboControl makes two significant assumptions: (1) The number of potential records in the related table could become very large. It is, therefore, inadvisable to load a large number records into a dropdown list. (2) Several fields may be necessary to uniquely differentiate each record in the related table.
  • For example, the CUSTOMER_ORDER_ID foreign key in the LINE_ITEM table requires the display of several fields from the related CUSTOMER_ORDER table to provide the end user with sufficient information to distinguish one Customer Order from another. In this case, it might be wise to display the CustomerName, OrderDate, and SalesPerson and, perhaps, the Customer Order ID, assuming it is used as the order number in addition to serving as the primary key (see FIG. 34). By contrast, the SHIPPER_ID foreign key in the CUSTOMER_ORDER table can be quite reasonably represented by a dropdown list, displaying only a single column that derives from the SHIPPER_NAME field in the SHIPPER table.
  • Keep in mind, these default settings can be easily overridden in the event that the Utility Tool's assumptions produce an undesirable result, such as assigning a SmartComboControl when a ComboBoxControl would suffice.
  • As with all other data entry control types, attributes are used to control the run-time behavior of each control type. With respect to the ComboBoxControl and SmartComboControl control types, two important attributes are worthy of mention here: Expression and Expression Type. These two attributes are used to determine how data is displayed to the end user and, in the case of the ComboBoxControl, the source of data for the dropdown list.
  • The Expression Type attribute must be one of three values: EXPRESSION, SQL, or STORED_PROCEDURE. The specific meaning of each Expression Type differs slightly for each control type as shown in Table 8 and Table 9:
  • TABLE 8
    Expression Type Description
    EXPRESSION A list of two fields from the related entity's corresponding view that are used
    to populate the dropdown list. For the SUPPLIER_ID foreign key in the
    CUSTOMER_ORDER table, a valid Expression attribute might be:
    SHIPPER_ID, ShipperName
    At run-time, this would be translated to the following complete SQL
    statement:
    SELECT SHIPPER_ID, ShipperName FROM SHIPPER_V
    The SQL statement above would then be executed to generate a list of
    Shippers for the dropdown list.
    SQL (Default) This is the default Expression Type selected by the Utility Tool for the
    ComboBoxControl control type. The SQL statement is executed at run-time
    to generate the dropdown list. By default, the Utility Tool uses the underlying
    view for the related entity to construct the SQL statement as in the following
    example:
    SELECT SHIPPER_ID, ShipperName FROM SHIPPER_V ORDER BY
    ShipperName
    The columns defined in the SELECT clause are derived by selecting the first
    two columns returned by the underlying view. It is assumed the system
    administrator follows a simple convention in the creation of views for all
    reference entities: The first column should be the primary key field of the
    related entity and the second should be a descriptive column that will
    represent the list of values in the dropdown list.
    Parameters may be passed to the SQL statement from the data entry form
    by using curly brackets, { }, as delimiters as in the following example for the
    MANAGER_ID foreign key in the EMPLOYEE table (which is designed to
    prevent an Employee from managing herself):
    SELECT EMPLOYEE_ID, EmployeeName
    FROM EMPLOYEE_V
    WHERE EMPLOYEE_ID <> {EMPLOYEE_ID}
    ORDER BY EmployeeName
    STORED_PROCEDURE Some databases, such as Microsoft SQL Server and Oracle, support the use
    of stored procedures. The stored procedure should return a list of records,
    as was the case with the SQL Expression Type. The list should include the
    primary key in the first column and descriptive text in the second column.
    One or more parameters may be passed to the stored procedure as in the
    following example:
    stpGetManagerList {EMPLOYEE_ID}
  • TABLE 9
    Expression Type Description
    EXPRESSION (Default) This is the default Expression Type selected by the Utility Tool for the
    SmartComboControl control type. The default Expression attribute is set to
    the name of the primary key field of the related entity. The Expression
    attribute is evaluated against the view associated with the related entity as in
    the following example for the CUSTOMER_ORDER_ID foreign key in the
    LINE_ITEM table:
    SELECT CUSTOMER_ORDER_ID, CustomerName, SalesPerson,
    OrderDate, CUSTOMER_ORDER_ID As OrderNumber
    FROM CUSTOMER_ORDER_V
    WHERE CUSTOMER_ORDER_ID = {CUSTOMER_ORDER_ID}
    Two points are worth noting in this example: First, the list of columns from
    the database view have been expanded from the default setting, which
    included only the primary key, CUSTOMER_ORDER_ID, to the following list:
    CUSTOMER_ORDER_ID, CustomerName, SalesPerson, OrderDate,
    CUSTOMER_ORDER_ID As OrderNumber
    Second, a WHERE clause has been inserted which limits the return list to a
    single record using a parameter as denoted by the curly brackets. The
    functionality of the SmartComboControl provides for the display of a multiple
    fields from a single record.
    SQL An SQL statement may also be used provided it returns only a single record
    with at least one column, the primary key.
    STORED_PROCEDURE A stored procedure may also be used provided it returns only a single record
    with at least one column, the primary key.
  • If the field is not a primary or foreign key, then the datatype is used to determine the data entry control type. The remaining decision points in the flowchart (FIG. 32) taken in conjunction with the Data Entry Control subsection of the USER INTERFACE GENERATION section are self-explanatory.
  • The Required entity field attribute is determined by checking the “nullable” property of table fields in the database schema. A field that is nullable can accept the NULL value. A field that does not accept NULL values is assumed to be required. The data entry controls for required entity fields are denoted with a red checkmark on data entry forms.
  • The order of entity fields on data entry forms is determined by the “ordinal position” property of table fields in the database schema. Ordinal position simply refers to the physical order of fields within the table. Creating table definitions whereby fields are added in the order in which they should appear on the data entry form will result in properly ordered data entry controls.
  • The Visible attribute determines whether entity fields are visible on the data entry form. By default, all entity fields are visible.
  • Entity Relationships
  • It was noted in the CONFIGURATION REPOSITORY section that two entity relationships are created for every foreign key found in the schema, one from the perspective of the foreign key table and one from the perspective of the related table. An example was presented for the PRODUCT_ID foreign key in the LINE_ITEM table. The entity relationship generated from the perspective of the Line Item entity is used to define the parent-child relationship between Line Item and Product in the UI, a Many-To-One relationship. Conversely, the entity relationship generated from the perspective of the Product entity is used to define the parent-child relationship, a One-To-Many relationship, between Product, as the parent entity, and Line Item, as the child entity.
  • Once the Utility Tool has interrogated the schema to determine all foreign keys for every table in the database, all parent-child relationships for all entities have been defined in terms of the metadata.
  • Entity Search Paths
  • The Utility Tool sets the default search path for each entity during the initial population of the configuration repository. The system administrator can modify this search path at any time. The default search path for an entity is simply the set of all direct relationships with other entities regardless of relationship type. For the Customer Order entity, this would include the following relationships. Please note that reference entities, such as Address and Shipper, are not included in this list of relationships as shown in Table 10:
  • TABLE 10
    Relationship
    CUSTOMER.CUSTOMER_ID=CUSTOMER_ORDER.-
    CUSTOMER_ID
    EMPLOYEE.EMPLOYEE_ID=
    CUSTOMER_ORDER.SALES_PERSON_ID
    CUSTOMER_ORDER.CUSTOMER_ORDER_ID=
    LINE_ITEM.CUSTOMER_ORDER_ID
  • USER INTERFACE GENERATION
  • Key components of the UI, as outlined in the USER INTERFACE ARCHITECTURE section, will now be discussed with respect to the method by which they are dynamically generated from metadata at run-time. Several attributes of entities and entity relationships will be presented during this discussion. Attributes are used to customize and modify the behavior of the UI without the necessity of writing computer code. Other attributes exist for entities and entity relationships. Many of these will be discussed in the APPLICATION EXTENSIBILITY, UTILITY TOOL OPERATION and the USER INTERFACE OPERATION sections.
  • View Menu
  • The Show On View Menu entity attribute determines whether an entity appears on the View Menu. The order of entities with respect to one another is determined by the Relative Order entity attribute. The Reference Tables menu option appears if at least one reference entity exists. An entity may be hidden entirely from end users by setting its Visible attribute to FALSE.
  • Parent Entities
  • An entity may become a parent by: (1) selecting the entity from the View Menu or (2) promoting a child entity. The list of child entities with respect to the parent entity is derived from the set of entity relationships defined in the metadata for the parent. Excluded from this list are entity relationships where: (1) the Visible entity relationship attribute is set to FALSE or (2) the related entity is a reference entity.
  • The name of a child entity, defined by the Caption entity relationship attribute, is initially set to the name of the related entity. Entity names are defined by the Caption entity attribute. The Caption entity relationship attribute may be customized, as is the case for the child entity, Sales Person, in FIG. 35. The related entity is Employee. However, since the role Employee plays relative to a Customer Order is to act as a Sales Person, the Caption attribute has been changed accordingly.
  • As illustrated in the USER INTERFACE ARCHITECTURE section, two methods are provided to search for instances (i.e. records) of the parent entity. The implementation of each method follows:
  • 1. Quick-Text Search: The example of a quick-text search presented in the USER INTERFACE ARCHITECTURE section provided for a flexible search against both parent and child entities. The collection of searchable columns is defined by the metadata associated with entities and entity relationships.
  • For the parent entity, the existence of one or more “entity search columns” in the metadata limits the scope of the search to include only those predefined columns. If no entity search columns are defined for the parent, all columns are searchable using the BEGINS search type.
  • On the other hand, child entities are only searchable if one or more “entity relationship search columns” is defined in the metadata. In addition, in order to be searchable, a child entity must be on the search path of the parent entity. In the example presented in FIG. 27, the ProductName column for the Line Item entity is the only search column defined for any of the child entities. Thus, Line Item is the only searchable child entity.
  • The strategy employed by the quick-text search is to first generate SQL against the parent entity and then join it to SQL generated against searchable child entities using the UNION SQL keyword. Search columns defined for both parent and child entities are used to build WHERE clauses for each individual SQL statement. Consider the following SQL generated for the example in FIG. 27:
  • SELECT CUSTOMER_ORDER_V.*
    FROM CUSTOMER_ORDER_V
    WHERE ((CUSTOMER_ORDER_V.CustomerName Like ‘%chai%’)
      OR (CUSTOMER_ORDER_V.SalesPerson Like ‘%chai%’))
    UNION
    SELECT CUSTOMER_ORDER_V.*
    FROM CUSTOMER_ORDER_V,CUSTOMER_ORDER,LINE_ITEM,
    LINE_ITEM_V
    WHERE (CUSTOMER_ORDER_V.CUSTOMER_ORDER_ID=
      CUSTOMER_ORDER.CUSTOMER_ORDER_ID
     AND CUSTOMER_ORDER.CUSTOMER_ORDER_ID=
     LINE_ITEM.CUSTOMER_ORDER_ID
     AND LINE_ITEM_V.LINE_ITEM_ID=LINE_ITEM.-
     LINE_ITEM_ID) AND (LINE_ITEM_V.ProductName
      Like ‘%chai%’)
    ORDER BY CUSTOMER_ORDER_V.CustomerName ASC,
     CUSTOMER_ORDER_V.OrderDate DESC
  • The first portion of the SQL statement, before the UNION keyword, is straightforward. The entity search columns are used to build the WHERE clause.
  • The second portion of the SQL statement, which follows the UNION keyword, is a bit more complex. Notice that the SELECT clause must match that of the first portion of the SQL statement:
  • SELECT CUSTOMER_ORDER_V.*
  • However, since we need to search against the columns of the view associated with the child entity, we must join the parent entity view, CUSTOMER_ORDER_V, with the child entity view, LINE_ITEM_V. These joins make up the first portion of the WHERE clause. To generate these joins, we must first join the views with their associated tables:
  • CUSTOMER_ORDER_V.CUSTOMER_ORDER_ID=
    CUSTOMER_ORDER.CUSTOMER_ORDER_ID
    LINE_ITEM_V.LINE_ITEM_ID=LINE_ITEM.LINE_ITEM_ID
  • The tables themselves are then linked using entity relationship metadata, which defines the physical relationship between the Customer Order and Line Item entities:
  • CUSTOMER_ORDER.CUSTOMER_ORDER_ID=LINE_ITEM.CUSTOMER_ORDER_ID
  • The remainder of the WHERE clause is generated using the entity relationship search column metadata associated with the Line Item entity:
  • LINE_ITEM_V.ProductName Like ‘%chai%’
  • Finally, the ORDER BY clause is generated by interpreting the metadata stored for “entity sort columns”. Entity sort columns are a collection of columns from the associated entity view where a default sort order has been defined (i.e. ascending or descending):
  • ORDER BY CUSTOMER_ORDER_V.CustomerName ASC,
     CUSTOMER_ORDER_V.OrderDate DESC
  • The preceding strategy works fine for parent and child entities that are directly linked, as is the case for One-To-Many and Many-To-One relationships. The strategy for Many-To-Many relationships must consider the fact that a level of indirection exists between parent and child entities, as is the case for the example in FIG. 36, which illustrates a search for Employees who speak German. The SQL statement for this search follows:
  • SELECT EMPLOYEE_V.*
    FROM EMPLOYEE_V
    WHERE (EMPLOYEE_V.EmployeeName Like ‘%German%’)
    UNION
    SELECT EMPLOYEE_V.*
    FROM EMPLOYEE_V, EMPLOYEE,-
    EMPLOYEE_SPOKEN_LANGUAGE,SPOKEN_LANGUAGE
      SPOKEN_LANGUAGE_1, SPOKEN_LANGUAGE_V
    WHERE (EMPLOYEE_V.EMPLOYEE_ID=
    EMPLOYEE.EMPLOYEE_ID
     AND EMPLOYEE.EMPLOYEE_ID=
     EMPLOYEE_SPOKEN_LANGUAGE.EMPLOYEE_ID
     AND SPOKEN_LANGUAGE_1.SPOKEN_LANGUAGE_ID=
       EMPLOYEE_SPOKEN_LANGUAGE.-
       SPOKEN_LANGUAGE_ID
     AND SPOKEN_LANGUAGE_V.SPOKEN_LANGUAGE_ID=
       SPOKEN_LANGUAGE_1.SPOKEN_LANGUAGE_ID)
     AND (SPOKEN_LANGUAGE_V.SpokenLanguage
     Like ‘%German%’)
    ORDER BY EMPLOYEE_V.EmployeeName ASC
  • The first portion of the SQL statement, before the UNION keyword, follows the same format presented in the previous example. The second portion of the SQL statement makes use of additional metadata defined for Many-To-Many entity relationships in order to insert the EMPLOYEE_SPOKEN_LANGUAGE intersection table into the tables joins. The relationship between the Employee and Employee Spoken Language entities, stored as metadata, is defined in such a way that the UI software knows to “map” the Employee Spoken Language entity to the Spoken Language entity. Mapping entities in this manner notifies the UI to insert one additional relationship into the table joins, in this case, the relationship between the Employee Spoken Language and Spoken Language entities.
  • 2. Advanced Searching: Advanced searching is accessed through the “Find @E (Advanced)” menu option (where @E is a placeholder for the name of the entity as in “Find Customer Order (Advanced)”) for the parent entity menu context. The list of searchable entities on the left side of the screen is generated by interpreting the search path defined for the parent entity in the following way:
  • Each table join is parsed to determine the “table aliases” on each side of the join. The table alias is the same name as the physical table for entities that have not been aliased. Otherwise, it is the name of the physical table with an appended number to indicate the instance of the alias. This insures all table aliases are unique. For example, aliasing the Customer entity to distinguish between international and domestic Customers would generate the table alias CUSTOMER_1 for the new International Customer entity. The table alias is then used to index into the entity metadata to determine the entity names to use in the generation of the list of searchable entities on the left side of the screen. In this way, indirectly related entities will be included in the list of searchable entities as in the example in FIG. 37, which has been derived from the following search path in Table 11 for the Customer Order entity:
  • TABLE 11
    Search Path Table Joins
    CUSTOMER.CUSTOMER_ID=CUSTOMER_ORDER.-
    CUSTOMER_ID
    CUSTOMER_ORDER.CUSTOMER_ORDER_ID=
    LINE_ITEM.CUSTOMER_ORDER_ID
    CUSTOMER_ORDER.SALES_PERSON_ID=
    EMPLOYEE.EMPLOYEE_ID
    PRODUCT.PRODUCT_ID=LINE_ITEM.PRODUCT_ID
  • Once the list of searchable entities has been generated, the user may begin creating filters for columns within searchable entities. In the example, a list of filters is presented on the right side of the screen.
  • Several points are worth noting with regard to this list of filters. First, there are five individual filters defined each of which is conjoined to its predecessor by use of a logical AND or OR operator. Each filter references a column from an entity using the following format: Entity.Column. Thus, Customer Order.OrderDate refers to the OrderDate column from the Customer Order entity.
  • Indentation indicates order of precedence to insure parentheses are inserted into the translated SQL according to the wishes of the end user. Notice the affect of indentation on the translated SQL for the set of filters defined in the example:
  • (
    ((CUSTOMER_V.BillCountry = ‘Germany’) OR
    (CUSTOMER_V.BillCity = ‘London’))
    AND (PRODUCT_V.ProductCategory IN (‘Produce’,‘Seafood’))
    AND (EMPLOYEE_V.Manager LIKE ‘Fuller%’)
    AND (CUSTOMER_ORDER_V.OrderDate
    BETWEEN ‘1-1-1998’ AND ‘12-31-1998’))
    )
  • The translated SQL should ultimately produce a list of Customer Orders where the bill was sent to either the city of London or the country of Germany for all orders entered during 1998 where the sales person was managed by someone with a last name of Fuller and where one or more products on the order belong to the Produce or Seafood product categories.
  • Before looking at the strategy used to generate the complete SQL statement, please refer to FIG. 38, which illustrates the method by which end users define filters. A Filter screen is presented for the column on which the user has decided to filter. Here, the ProductCatgory from the Customer Order entity has been selected. The caption of this screen indicates the type of filter appropriate for the selected column. In this case, the type of filter for the ProductCatgory column is Text. Number and Date filters are also available. The list of Operators available depends on the filter type. Most operators, such as the “Contains” Text operator, accept a single operand that is entered into the Value 1 field. Other operators, such as “Between”, require two operands, which are entered into the Value 1 and Value 2 fields. Still other operators, such as Is In List, require the selection of one or more discreet values from the underlying view. The ProductCategory makes use of the Is In List operator.
  • The strategy used to build the entire SQL statement follows:
  • 1. Add the view and table associated with the parent entity to the FROM clause. Add the join between the table and view to the WHERE clause.
  • 2. For each entity that is not the focus of the search (i.e. is not the parent entity), but has been referenced in one or more filters, add the entity's associated table and view to both the FROM and WHERE clauses as in the previous step.
  • If an entity has been aliased, then the table and table alias are used in the FROM clause and the table alias is used in the WHERE clause. For example, to join the International Customer entity (described earlier) with the Customer Order entity, the FROM and WHERE clauses would be as follows:
  • FROM: CUSTOMER CUSTOMER_1, CUSTOMER_ORDER
    WHERE: CUSTOMER_1.CUSTOMER_ID=CUSTOMER_ORDER.-
    CUSTOMER_ID
  • 3. For each entity that is not the focus of the search but has been referenced in one or more filters, join the entity's associated table with the table associated with the parent entity. For the Product entity, this would produce the following table joins with respect to the Customer Order parent entity:
  • CUSTOMER_ORDER.CUSTOMER_ORDER_ID=
    LINE_ITEM.CUSTOMER_ORDER_ID
    PRODUCT.PRODUCT_ID=LINE_ITEM.PRODUCT_ID
  • This list may produce redundancy where the same table joins are generated for more than one entity with respect to the Customer Order parent entity.
  • 4. Remove redundancy from the previous step and append the resulting list of joins to the WHERE clause.
  • 5. Append the translated SQL for the list of filters to the WHERE clause.
  • 6. Define the SELECT clause by selecting the primary key column from the view associated with the parent entity:
  • SELECT CUSTOMER_ORDER_V.CUSTOMER_ORDER_ID
  • 7. Nest the entire SQL statement (generated by appending the SELECT, FROM, and WHERE clauses) inside of an outer SQL statement which follows the following format relative to the example:
  • SELECT CUSTOMER_ORDER_V.*
    FROM CUSTOMER_ORDER_V
    WHERE CUSTOMER_ORDER_V.CUSTOMER_ORDER_ID IN
    (SQL statement from first 7 steps)
    ORDER BY CUSTOMER_ORDER_V.CustomerName ASC,
     CUSTOMER_ORDER_V.OrderDate DESC
  • This general format insures that a list of Customer Orders is returned as the result set regardless of the entities selected in the list of filters. The ORDER BY clause is derived from the entity sort column metadata for the parent entity.
  • 8. The final SQL generated by the advanced search is as follows:
  • SELECT CUSTOMER_ORDER_V.*
    FROM CUSTOMER_ORDER_V
    WHERE CUSTOMER_ORDER_V.CUSTOMER_ORDER_ID IN
    (
    SELECT CUSTOMER_ORDER_V.CUSTOMER_ORDER_ID
    FROM CUSTOMER_ORDER_V, CUSTOMER_ORDER, CUSTOMER, CUSTOMER_V, LINE_ITEM,
      PRODUCT, PRODUCT_V, EMPLOYEE, EMPLOYEE_V
    WHERE CUSTOMER_ORDER_V.CUSTOMER_ORDER_ID=
      CUSTOMER_ORDER.CUSTOMER_ORDER_ID AND
      CUSTOMER.CUSTOMER_ID=CUSTOMER_ORDER.CUSTOMER_ID
     AND CUSTOMER_V.CUSTOMER_ID=CUSTOMER.CUSTOMER_ID
     AND CUSTOMER_ORDER.CUSTOMER_ORDER_ID=LINE_ITEM.CUSTOMER_ORDER_ID
     AND PRODUCT.PRODUCT_ID=LINE_ITEM.PRODUCT_ID
     AND PRODUCT_V.PRODUCT_ID=PRODUCT.PRODUCT_ID
     AND EMPLOYEE.EMPLOYEE_ID=CUSTOMER_ORDER.SALES_PERSON_ID
     AND EMPLOYEE_V.EMPLOYEE_ID=EMPLOYEE.EMPLOYEE_ID
     AND (((CUSTOMER_V.BillCountry = ‘Germany’) OR (CUSTOMER_V.BillCity = ‘London’))
     AND (PRODUCT_V.ProductCategory IN (‘Produce’,‘Seafood’))
     AND (EMPLOYEE_V.Manager LIKE ‘Fuller%’)
     AND (CUSTOMER_ORDER_V.OrderDate BETWEEN ‘1-1-1998’ AND ‘12-31-1998’))
    )
    ORDER BY CUSTOMER_ORDER_V.CustomerName ASC,
      CUSTOMER_ORDER_V.OrderDate DESC
  • Child Entities
  • Once a set of parent entity records has been retrieved using one of the search methods described above, data lists may be generated for child entities. Each time the end user selects a child entity a data list is created by applying a filter to the view associated with the child. The filter is based on the currently selected record for the parent entity. The filter strategy depends on the relationship between the parent and child entities:
  • One-To-Many
  • The general form for dynamic filtering of data lists for One-To-Many relationships follows:
      • SELECT C_V.*
      • FROM C_V, C
      • WHERE C_V.PK=C.PK AND C.FK={P.PK}
      • Where: C_V =View associated with the child entity
        • C=Table associated with the child entity
        • P=Table associated with the parent entity
        • PK=Primary key
        • FK=Foreign key
        • {P.PK}=Primary key value for the currently selected parent record
  • For the Customer Order—Line Item parent-child relationship, the following SQL is generated:
  • SELECT LINE_ITEM_V.*
    FROM LINE_ITEM_V, LINE_ITEM
    WHERE LINE_ITEM_V.LINE_ITEM_ID =
    LINE_ITEM.LINE_ITEM_ID
     AND LINE_ITEM.CUSTOMER_ORDER_ID = 10507
    ORDER BY LINE_ITEM_V.CustomerName ASC,
    LINE_ITEM_V.OrderNumber ASC
  • Many-To-One
  • The general form for dynamic filtering of data lists for Many-To-One relationships follows:
  • SELECT C_V.*
  • FROM C_V, P
  • WHERE C_V.PK=P.FK AND P.PK={P.PK}
  • For the Customer Order—Customer parent-child relationship, the following SQL is generated:
  • SELECT CUSTOMER_V.*
    FROM CUSTOMER_V, CUSTOMER_ORDER
    WHERE CUSTOMER_V.CUSTOMER_ID=
    CUSTOMER_ORDER.CUSTOMER_ID
     AND CUSTOMER_ORDER.CUSTOMER_ORDER_ID = 10507
    ORDER BY CUSTOMER_V.CustomerName ASC
  • Many-To-Many
  • The general form for dynamic filtering of data lists for Many-To-Many relationships follows:
  • SELECT C.PK, M_V.*
  • FROM M_V, C
  • WHERE M_V.PK=C.FK1 AND C.FK2={P.PK}
  • Where: M_V=The view associated with the “maps-to-entity”. In the context of the Many-To-Many relationship between the Employee and Spoken Language entities, the child entity corresponds to the Employee Spoken Language entity and the maps-to-entity is Spoken Language.
  • For the Employee—Spoken Language parent-child relationship, the following SQL is generated:
  • SELECT EMPLOYEE_SPOKEN_LANGUAGE.-
      EMPLOYEE_SPOKEN_LANGUAGE_ID,
      SPOKEN_LANGUAGE_V.*
    FROM EMPLOYEE_SPOKEN_LANGUAGE ,
    SPOKEN_LANGUAGE_V
    WHERE EMPLOYEE_SPOKEN_LANGUAGE.-
    SPOKEN_LANGUAGE_ID =
      SPOKEN_LANGUAGE_V.SPOKEN_LANGUAGE_ID
     AND EMPLOYEE_SPOKEN_LANGUAGE.EMPLOYEE_ID = 7
    ORDER BY SPOKEN_LANGUAGE_V.SpokenLanguage ASC
  • For One-To-Many child entities, a special menu option exists to allow filtering of the child data list. This menu option is called “Filter @E Records”, where @E is a placeholder for the name of the child entity. Since the purpose of the present invention is to provide a generic interface to any relational database, one never knows how many records might exist for a particular instance of a data list participating in a One-To-Many relationship. The “Filter @E Records” menu option uses the same screen illustrated during the discussion on advanced searching only for a slightly different purpose; that is, to filter a data list.
  • The “Promote @E” menu option, available for all child menu contexts, provides access to the promotion functionality discussed in the USER INTERFACE ARCHITECTURE.
  • Menus and Menu Contexts
  • The use of dynamically generated menus to invoke navigation and data entry functionality was discussed in the USER INTERFACE ARCHITECTURE section. This provides a method by which the UI software can dynamically adapt menu options according to where an entity exists within the UI architecture at any given point in time.
  • As mentioned under the USER INTERFACE ARCHITECTURE section, permissions are granted at the menu option level. Permissions might be revoked for security reasons. For example, it may be desirable to define a user group that has limited access to data entry features, but is allowed to search and view data. Another reason for revoking permissions is to provide a more intuitive data entry experience for end users. Since the UI architecture is designed to work with any relational database, given the overall business purpose behind the database, end users may not find certain menu options particularly intuitive or useful. To avoid confusion, these menu items can simply be disabled.
  • Following are a series of tables, grouped by menu context, which summarize the menu options available for each menu context. The “@E” symbol serves as a placeholder for the name of the entity. For child menu contexts, the “@P” symbol serves a placeholder for the name of the parent entity. Several of the menu options listed below in Table 12 through Table 16 will be illustrated under the USER INTERFACE OPERATION section:
  • Parent Context
  • TABLE 12
    Menu Option Description
    New @E Record Adds a new record using a data entry form.
    Duplicate @E Record Creates a new record by copying forward data from the selected record into
    a data entry form.
    Edit @E Record Loads the selected record into a data entry form for editing.
    Delete @E Record(s) Deletes the selected records from the database, subject of course to
    referential integrity rules.
    View @E Record Loads the selected record into a data entry form for viewing. The data entry
    form is placed in read-only mode.
    Export @E Record(s) Exports the entire data list to one of several file formats using an export
    wizard.
    Print Preview Loads the data list into a print preview screen from where it can then be
    printed.
    Print Report Generates a custom report, such as a nicely formatted invoice, by passing
    the primary key of the selected record to a report writer using COM. For
    more information, see the APPLICATION EXTENSIBILITY section.
    Find @E (Advanced) Loads the advanced searching screen.
    Find @P Uses a COM interface to load an external component that will provide a
    custom search screen. For more information, see the APPLICATION
    EXTENSIBILITY section.
    Display Data Entry Grid Loads the data list into a data entry grid for editing. For more information on
    data entry grids, see the Data Entry Forms subsection under the USER
    INTERFACE GENERATION section.
  • Reference Context
  • TABLE 13
    Menu Option Description
    New @E Record Adds a new record using a data entry form.
    Duplicate @E Record Creates a new record by copying forward data from the selected record into
    a data entry form.
    Edit @E Record Loads the selected record into a data entry form for editing.
    Delete @E Record(s) Deletes the selected records from the database, subject of course to
    referential integrity rules.
    View @E Record Loads the selected record into a data entry form for viewing. The data entry
    form is placed in read-only mode.
    Export @E Record(s) Exports the entire data list to one of several file formats using an export
    wizard.
    Print Preview Loads the data list into a print preview screen from where it can then be
    printed.
    Display Data Entry Grid Loads the data list into a data entry grid for editing. For more information on
    data entry grids, see the Data Entry Forms subsection under the USER
    INTERFACE GENERATION section.
  • One-to-Many Context
  • TABLE 14
    Menu Option Description
    New @E Record Adds a new record using a data entry form. The foreign key field, which
    relates the entity to its parent, is automatically populated with the primary
    key value from the currently selected parent record.
    Duplicate @E Record Creates a new record by copying forward data from the selected record into
    a data entry form.
    Edit @E Record Loads the selected record into a data entry form for editing.
    Delete @E Record(s) Deletes the selected records from the database, subject of course to
    referential integrity rules.
    Link Selected @E Loads a simple search screen to allow the end user to select a different
    Record(s) with a Different parent record in which to link the currently selected child. The foreign key
    @P Record field in the child will be updated.
    Unlink the Selected @E Sets the foreign key field of the child entity to NULL, subject of course to
    Record(s) from the @P referential integrity rules.
    Record
    View @E Record Loads the selected record into a data entry form for viewing. The data entry
    form is placed in read-only mode.
    Export Record(s) Exports the entire data list to one of several file formats using an export
    wizard.
    Print Preview Loads the data list into a print preview screen from where it can then be
    printed.
    Filter @E Records Loads the same screen used for advanced searching. However, the filters
    defined are simply applied to the data list to limit the number of visible
    records.
    Promote @E Promotes the selected child entity, including the data list, into a new screen
    where the child becomes the parent entity.
    Display Data Entry Grid Loads the data list into a data entry grid for editing. For more information on
    data entry grids, see the Data Entry Forms subsection under the USER
    INTERFACE GENERATION section.
  • Many-to-One Context
  • TABLE 15
    Menu Option Description
    New @E Record Adds a new record using a data entry form. If successfully saved, the new
    primary key value will be used to update the foreign key field of the currently
    selected parent record.
    Duplicate @E Record Creates a new record by copying forward data from the selected record into
    a data entry form. If successfully saved, the new primary key value will be
    used to update the foreign key field of the currently selected parent record.
    Edit @E Record Loads the selected record into a data entry form for editing.
    Delete @E Record(s) Deletes the selected records from the database, subject of course to
    referential integrity. The delete will fail unless the database is configured to
    cascade deletes since deleting the child in this context necessitates deletion
    of the parent record.
    Link the @P Record with Loads a simple search screen to allow the end user to select a different child
    a Different @E Record record in which to link the currently selected parent record. In this context,
    the foreign key field of the parent entity will be updated.
    Unlink the @P Record Sets the foreign key field of the parent entity to NULL, subject of course to
    from the Selected @E referential integrity rules.
    Record
    View @E Record Loads the selected record into a data entry form for viewing. The data entry
    form is placed in read-only mode.
    Export Record(s) Exports the entire data list to one of several file formats using an export
    wizard.
    Print Preview Loads the data list into a print preview screen from where it can then be
    printed.
    Promote @E Promotes the selected child entity, including the data list, into a new screen
    where the child becomes the parent entity.
    Display Data Entry Grid Loads data list into a data entry grid for editing. For more information on
    data entry grids, see the Data Entry Forms subsection under the USER
    INTERFACE GENERATION section.
  • Many-to-Many
  • TABLE 16
    Menu Option Description
    New @E Record Loads a data entry form for the “maps-to-entity”. The maps-to-entity is the
    entity to which the parent is indirectly related (e.g. Employee to Spoken
    Language). The placeholder, “@E”, corresponds to the maps-to-entity. If
    successfully saved, an additional record will be inserted into the intersection
    table which links the parent and maps-to-entities (e.g.
    EMPLOYEE_SPOKEN_LANGUAGE).
    Duplicate @E Record Creates a new record by copying forward data for the maps-to-entity from
    the selected record into a data entry form. If successfully saved, an
    additional record will be inserted into the intersection table which links the
    parent and maps-to-entities.
    Edit @E Record Loads the selected record for the maps-to-entity into a data entry form for
    editing.
    Delete @E Record(s) Deletes the selected records for the maps-to-entity from the database,
    subject of course to referential integrity rules. Before deleting the maps-to-
    entity records, the related records from the intersection table are deleted.
    Link the Selected @P Loads the simple search screen for the maps-to-entity. For each record
    Record with a @E selected from the maps-to-entity, a corresponding record is inserted into the
    Record(s) intersection table thus linking the parent and maps-to-entities.
    Unlink the @P Record Deletes the selected records from the intersection table which links the
    from the Selected @E parent and maps-to-entities.
    Record(s)
    View @E Record Loads the selected record (for the maps-to-entity) into a data entry form for
    viewing. The data entry form is placed in read-only mode.
    Export Record(s) Exports entire data list to one of several file formats using an export wizard.
    Print Preview Loads the data list into a print preview screen from where it can then be
    printed.
    Promote @E Promotes the selected child entity, including the data list, into a new screen
    where the child becomes the parent entity.
    Display Data Entry Grid Loads data list into a data entry grid for editing. For more information on
    data entry grids, see the Data Entry Forms subsection under the USER
    INTERFACE GENERATION section.
  • Data Entry Forms
  • Data entry forms consist of an ordered collection of data entry controls derived from metadata relating to entity fields. The general strategy is to validate as much data as possible while the end user enters data into each of the data entry controls. For example, the DateTimeControl control type, which presents a graphical image of a calendar to the end user, will not permit an invalid date to be entered. Similarly, the ComboBoxControl, implemented graphically as a drop-down list, will only accept valid foreign key values from the list.
  • When the user decides to save a record to the database, the Required entity field attribute is used to insure all required data has been entered. Business rules, discussed below, may be defined to provide further data validation.
  • Entity and entity field scripting, using language such as VBScript and JavaScript, are also available to implement data validation or other desired functionality. Form-level events, such as FormLoad, BeforeSave, and AfterSave, are triggered at run-time. Scripting may be attached to these events to provide custom functionality. Some events provide a mechanism for canceling further processing. For instance, before saving a new Line Item to the database, suppose the system administrator wants to insure there is sufficient inventory on hand to fill the order. The following VBScript might be entered in the BeforeSave event. Notice that if sufficient inventory is not on hand, setting the Cancel argument to TRUE prevents further processing:
  • Public Sub LINE_ITEM_BeforeSave(Cancel)
     Dim SQL
     Dim rs
     Dim Message
     ‘If entering a new Line Item, check the affect on inventory by building an SQL statement
     ‘using the Quantity and Product fields from the data entry form.
     If Application.NewRecord Then
      SQL = “SELECT * FROM PRODUCT WHERE (UNITS_IN_STOCK - ”
      SQL = SQL & Application.Fields(“QUANTITY”).Value & ”) <= 0 “
      SQL = SQL & “AND PRODUCT_ID = “& Application.Fields(“PRODUCT_ID”).Value
      ‘Create a recordset object using ADO to store the query results.
      Set rs = CreateObject(“ADODB.Recordset”)
      ‘Get a connection to the database.
      Set rs.Activeconnection = Application.DBConnection
      rs.Open SQL
      ‘If a record is returned in the result set, it means the inventory is too low.
      If Not (rs.BOF And rs.EOF) Then
       Message = “There is insufficient inventory on hand. ”
       Message = Message & “This line item cannot be added to the order.”
       ‘Present a message to the user.
       MsgBox Message, vbOkOnly + vbInformation, “Insufficient Inventory”
       ‘Cancel further processing of events.
       Cancel = TRUE
      End If
      rs.Close
      Set rs = Nothing
     End If
    End Sub
  • Script may also be attached to entity field events such as OnChange. The OnChange event is triggered when the value in a data entry control changes.
  • In addition to data validation, the present embodiment provides access to a limited programmable interface, or object model as it is frequently referred to, to perform various tasks such as enabling and disabling, or showing and hiding, data entry controls at run-time. Future embodiments should provide a more robust object model. However, a reasonable balance must be maintained between the use of metadata attributes to modify run-time behavior and the integration of scripting to achieve the same affect. Even though scripting is stored as metadata in the configuration repository, and does not require recompilation and redeployment of the UI software when changes are made, it is nonetheless computer code. Remember, the underlying premise of the present invention is that computer code is extremely expensive to develop and maintain.
  • Once the data entry form has been validated, SQL is generated to update the underlying database table using entity and entity field metadata in conjunction with the values stored in each data entry control. Saving the new Line Item record depicted in FIG. 39 would generate the following SQL statement:
  • INSERT INTO LINE_ITEM (LINE_ITEM_ID,
     CUSTOMER_ORDER_ID, PRODUCT_ID, QUANTITY,
     DISCOUNT, EXTENDED_PRICE) VALUES( 2186,
     10355, 3, 10, 0.1, 90.00)
  • Occasionally, it may be preferable to have end users enter data into a grid-like data entry form where multiple records can be edited on a single screen. A special menu option, “Display Data Entry Grid”, provides access to this type of functionality. FIG. 40 illustrates such a data entry grid for the Line Item entity. The functionality is nearly identical to that of the normal data entry form with the primary exception being that a record is saved when the focus shifts from one record to another as opposed to clicking a button.
  • Data Entry Controls
  • Several data entry controls are available to collect input from end users. Each of these controls is designed to provide an intuitive data entry experience using many of the same graphical constructs to which users have grown accustomed. Where possible, the data entry controls validate input to protect the integrity of the underlying database. An overview of each control type will now be presented to provide the reader with a better understanding of how data is collected from end users. Please note that future embodiments of the present invention should expand upon the following selection of control types to provide a wider variety of preprogrammed controls, thus eliminating the need for custom data entry forms. (Integrating custom data entry forms into the UI is discussed in the APPLICATION EXTENSIBILTY section):
  • CalculatedControl
  • The CalculatedControl is a read-only data entry control designed to derive a value from the underlying database and display the value on the data entry form. A CalculatedControl is “bound” if it maps to a field in the physical table associated with the entity and “unbound” if the derived value is not stored in the underlying table. As with the ComboBoxControl and SmartComboControl controls, three Expression Types are available to derive the calculated value: EXPRESSION, SQL, and STORED_PROCEDURE. Regardless of Expression Type, the execution of the corresponding Expression attribute at run-time should return a single value.
  • Two CalculatedControls are present on the Line Item data entry form in FIG. 41. The Unit Price simply displays the Unit Price for the currently selected Product. Notice that a UNIT_PRICE field does not exist in the LINE_ITEM table. The unbound UNIT_PRICE field has been added to the Line Item entity metadata. The SQL Expression Type has been defined and the following Expression is evaluated at run-time to derive the value displayed in the control:
  • SELECT UNIT_PRICE FROM PRODUCT WHERE PRODUCT_ID={PRODUCT_ID}
  • The parameter passed within the curly brackets simply tells the UI software to insert the value of the PRODUCT_ID foreign key field (i.e. the currently selected Product on the Line Item record) into the SQL statement. The value returned from this SQL statement is then inserted into the Unit Price data entry control.
  • The second CalculatedControl control on the Line Item form is used to calculate the Extended Price. The Extended Price is bound to the EXTENDED_PRICE field in the LINE_ITEM table. Here, the STORED_PROCEDURE Expression Type is used and the following Expression is evaluated at run-time:
  • stpExtendedPrice {PRODUCT_ID}, {QUANTITY}, {DISCOUNT}
  • The values from Product, Quantity, and Discount fields on the Line Item are passed from the data entry form to the stored procedure, “stpExtendedPrice”. An output parameter is then used by the stored procedure to return a value back to the UI software.
  • CheckBox
  • The CheckBox, depicted in FIG. 42, is designed to represent Boolean fields. A graphical image of check box is presented to the end user. Clicking the box toggles the value from TRUE, when the box is checked, to FALSE, when the box is not checked.
  • ComboBoxControl
  • The ComboBoxControl was discussed in the METADATA GENERATION section. A couple additional features add to the control's versatility. These features are implemented through the entity field attributes shown in Table 17:
  • TABLE 17
    Attribute Description
    Allow Edit Set the Allow Edit attribute to TRUE to allow entry of new values into the dropdown list
    by adding a new record to the related entity. FIGS. 43-45 illustrate the process of
    adding a new Shipper while entering a Customer Order record.
    Limit To List By default, this attribute is set to TRUE and the user must select an item from the
    dropdown list, as should be the case when using the ComboBoxControl to populate a
    foreign key field. However, by setting this attribute to FALSE, the user can either
    select a value from the list or type a new value directly into the edit box portion of the
    control.
    NOTE: Limit To List should never be set to FALSE for foreign key fields.
    Consider the following scenario: Suppose it is desirable to present a list of countries in
    the Country field of the Address entity. Country is not a foreign key field. Converting
    the Country field from a TextBoxControl to a ComboBoxControl and using the following
    SQL Expression will generate a list of countries:
    SELECT DISTINCT COUNTRY
    FROM ADDRESS
    ORDER BY COUNTRY
  • DateTimeControl
  • The DateTimeControl uses a single attribute to determine whether to accept date or time input from the end user. When the Date Time Control Type attribute is set to DATE_CONTROL, the control will present a calendar to the end user from which a date may be selected (see FIG. 1). Alternatively, the user can simply enter a date into the edit box. However, if the attribute is set to one of four available time formats, such as TIME_CONTROL (01:15 PM), then the user simply enters a time into the edit box. The value entered is validated against the selected format.
  • FileDialogControl
  • Frequently, users need to store the path to a document or image file in a database field. The FileDialogControl is designed to allow users to navigate through their directory structures to select a particular file. The entire path is returned to the control. Setting the File Association attribute to TRUE will create a hyper-link between the path displayed in the control and the computer software associated with the file. For example, if the path to a Microsoft Word document is displayed in the control, clicking the hyper-linked path will load the document into an instance of Word. Operation of the FileDialogControl is illustrated in FIG. 46-48.
  • ImageBLOB
  • The ImageBLOB is very similar to the FileDialogControl. Users can select image files from their directory structures. However, instead of storing the path to the image in the database, a binary copy of the image itself is stored. Obviously, this control type is only appropriate for database fields capable of storing binary large objects (BLOB). Once the image has been stored, a hyper-link may be clicked to load the image as illustrated with the Photo field in the Employee entity (see FIG. 49-50).
  • MaskEditBox
  • The MaskEditBox is designed to provide an input mask for text fields that store formatted data such as social security numbers. The Mask Type attribute defines the type of mask to be used. A few predefined masks are available such as PHONE_MASK and SSN_MASK. The GENERAL_MASK Mask Type is used in combination with the Format entity field attribute to define custom input masks using a set of special characters. For example, setting the Format attribute to “A###” generates an input mask that ensures the first character must be alphanumeric and the last three characters must be digits.
  • The SSN field in the Employee entity uses the SSN_MASK Mask Type as illustrated in FIG. 51.
  • NotesControl
  • The NotesControl eases the entry of large amounts of text by providing multiple lines in the edit box and exposing a button which, when clicked, loads the text into a larger scrollable edit box in a “zoom” screen (see FIG. 52).
  • NumericFormatBox
  • The NumericFormatBox, illustrated in FIG. 53, is a simple edit box that enforces entry of numeric data. The Format entity field attribute may be used to format the data display, such as presenting monetary data using currency symbols.
  • SmartComboControl
  • The SmartComboControl was discussed in some detail under the METADATA GENERATION section. From the end user's perspective, this control type provides two key pieces of functionality summarized in Table 18:
  • TABLE 18
    Feature Description
    Hyper-linking Once the foreign key field has been populated,
    the edit box is hyper-linked to the record from the related
    entity. Clicking the hyper-link loads a data entry
    form for the related entity.
    Modifying the Clicking the button on the right side of the control loads
    foreign key a simple text search screen for the related entity.
    value Selecting a record from the list modifies the foreign key
    value in the underlying data entry form. An example will
    be presented in the USER INTERFACE OPERATION
    section
  • TextBoxControl
  • The TextBoxControl allows open-ended text data entry, such as with a street address. A few entity field attributes provide additional functionality as summarized in Table 19:
  • TABLE 19
    Feature Description
    Email When set to TRUE, this attribute provides a hyper-link
    to the user's default email
    Address program as illustrated in FIG. 54.
    Web Address When set to TRUE, this attribute provides a hyper-link
    to the user's web browser.
    Lines Provides ability to expand the number of lines available
    in the edit box.
  • Auditing
  • Setting the Audit On entity attribute to TRUE invokes auditing against the current entity. Inserts, updates, and deletes to the underlying table are logged to a system-defined table to document when the action occurred and the user responsible for the change.
  • Entity Filters
  • Filters may be defined on the views associated with entities. These filters are part of the metadata relating to entities. Filters are defined at the group level so that different filters may be applied to various groups of users. For example, suppose sales people were divided into two user groups: International Sales and Domestic Sales. The list of Customers with which each group is permitted to work might be filtered on the BillCountry column in the CUSTOMER_V view as the following SQL snippets demonstrate in Table 20:
  • TABLE 20
    Group Filter
    International Sales Group CUSTOMER_V.BillCountry < > ‘United
    States’
    Domestic Sales Group CUSTOMER_V.BillCountry = ‘United States’
  • Entity Business Rules
  • Entity business rules are used to provide edit checks prior to inserts, updates, and deletes to an underlying table. More than one rule may be defined for each entity. The rules are defined using either an SQL statement or a stored procedure. The business rule input screen from the Utility Tool is illustrated in FIG. 55. With the “SQL” Rule Type, a rule is violated if one or more records are returned from the SQL statement when the rule is applied. For the “Stored Procedure” Rule Type, a rule is violated if the output parameter of the stored procedure returns a value of 0.
  • When a business rule is violated, a message is presented to the end user informing them of the violation. Setting the Action Type to “Fatal” means that further processing cannot occur until the violation has been remedied. Setting the Action Type to “Warning” means that the user will have an opportunity to continue processing if they so desire.
  • The Rule Type “Terminator” is used in conjunction with Action Types “Go To Rule” and “Stop” to organize several rules into a control structure similar the “If . . . Then . . . Else . . . ” programming construct.
  • Entity Triggers
  • Entity triggers are SQL statements or Stored Procedures that are executed in conjunction with insert, update, and delete operations against the underlying database. For inserts and updates, the trigger is executed immediately after the operation. For deletes, the trigger is executed prior to the deletion operation. A single trigger may apply to an insert, update, or delete operation, or any combination thereof. Several triggers may be defined for a single entity. The Trigger Number determines the order of execution of each trigger.
  • The trigger input screen from the Utility Tool is illustrated in FIG. 56. This trigger is designed to update inventory after a new Line Item has been saved to the database.
  • Application Extensibility
  • The present invention recognizes the occasional need to integrate custom functionality into the UI. Within the context of the present invention, custom functionality can be broadly characterized as any functionality that falls outside of that provided by the run-time UI executable in combination with the metadata. As demonstrated throughout this document, considerable functionality and flexibility are provided through the careful integration of the UI with metadata stored in the configuration repository. Still, there are occasions where it is desirable to integrate external components with the UI.
  • Over the last several years, various industry-wide specifications have been defined to provide for interaction between different software components. One of the most widely accepted specifications is the Component Object Model (COM). The general idea behind COM is to design various programming interfaces such that Component A can communicate with Component B, and vice versa, without either component understanding the details of the other's internal implementation.
  • One embodiment of the present invention defines a specification for a COM interface that provides for communication between the UI and external software components. Future embodiments might look toward other promising specifications and protocols, such as the Simple Object Access Protocol (SOAP), to provide inter-component communication.
  • The present invention offers several opportunities to integrate external components into the UI. Table 21 summarizes four of the most significant areas where external components can be integrated using a predefined COM interface:
  • TABLE 21
    Area Description
    Custom Data Entry Form Setting the Custom Data Entry entity attribute to TRUE will call an external
    component to load a custom data entry form. In this case, the dynamically
    generated data entry form provided by the UI is replaced with the custom form.
    Custom Search Screen Setting the Custom Filter entity attribute to TRUE will call an external
    component to load a custom search screen. The custom search screen must
    return an SQL statement back to the UI. The SQL statement should be
    structured such that it ultimately returns records from the view associated with
    the parent entity.
    This feature is accessible through the “Find @E” menu option for the parent
    menu context. An example will be illustrated in the UTILITY TOOL
    OPERATION and USER INTERFACE OPERATION sections.
    Reports The parent entity menu context provides for the integration of custom reports
    into the UI. COM interfaces for popular report writers, such as
    BusinessObjects ®, Crystal Reports, and Microsoft Access, are used to
    generate high quality reports within the UI.
    With reference to the example used throughout this document, a custom
    invoice might be designed such that, by passing the CUSTOMER_ORDER_ID
    primary key value to the report, a nicely formatted invoice would be generated.
    The report could then be linked to the Customer Order entity using the Report
    Name, Report Path and Report Type entity attributes.
    Tools Menu The main menu of the UI contains a Tools menu to which external components
    may be attached. Examples of tools that one might wish to integrate into the
    UI are limitless. A common example might be an import tool to allow the
    import of data into the database. An example will be illustrated in the UTILITY
    TOOL OPERATION and USER INTERFACE OPERATION sections.
  • Utility Tool Operation
  • A brief series of illustrated examples of operation of the Utility Tool will now be presented. In FIG. 57, the Utility Tool interface is shown. In FIG. 58, a new configuration repository is created.
  • The screen images presented in FIG. 59 illustrate the process of defining a Datasource. A Datasource simply defines a connection to a relational database; in this case, a Microsoft SQL Server database called CustomerOrders.
  • The Datasource is Refreshed, in FIG. 60, to initiate the process of populating the configuration repository with metadata. The user is prompted to define the reference tables (entities) from the list of tables found in the database schema.
  • In FIG. 61, the Refresh process has completed and the Customer Order entity metadata is shown.
  • In FIG. 62, the default data entry control assigned to the Customer field in the Customer Order entity is changed from a SmartComboControl to a ComboBoxControl. In FIG. 63, the default control assigned to the Address field, which maps to the ADDRESS_ID foreign key field, is changed from a ComboBoxControl to a SmartComboControl.
  • FIG. 64 illustrates the assignment of an icon to the Customer Order entity. When Customer Order is the parent entity on the main screen of the UI, the icon will provide users with a graphical image of the entity. On the Attributes tab, a custom filter is implemented using the COM interface exposed by the UI. Also, a form caption expression is defined to place a meaningful caption on data entry forms.
  • In FIG. 65 and FIG. 66, search columns and sort columns are defined for the Customer Order entity.
  • In FIG. 67, the order of Customer Order relationships is modified to place Line Item at the top of the child list.
  • In FIG. 68, the caption of the Employee relationship is changed to Sales Person.
  • Permissions for the Customer Order entity are assigned to the Sales Reps user group in FIG. 69.
  • The Line Item relationship will appear as a tab on the Customer Order data entry form by setting the Display On Tab attribute to TRUE as illustrated in FIG. 70.
  • In FIG. 71, an unbound CalculatedControl is added to the Line Item entity in order to display the Unit Price on the data entry form. The Extended Price field is modified in FIG. 72 to implement a bound CalculatedControl.
  • A business rule has been defined to check inventory levels before adding a Line Item to a Customer Order (see FIG. 55). A trigger has also been defined to update inventory on hand immediately after a Line Item is added to a Customer Order (see FIG. 56).
  • In FIG. 73, an Application Caption and Startup Entity are defined in the System Attributes screen. The Startup Entity is the first parent entity to appear when end users log into the UI.
  • A tool, “Import Wizard”, is defined in FIG. 74 in order to integrate an external COM component into the UI.
  • Finally, in FIG. 75, an entry is added to a configuration file to notify the UI of the presence of a new configuration repository. The UI software may now use the new configuration repository to generate a user interface.
  • User Interface Operation
  • Many features of the UI have been presented in prior sections of this document. However, continuing with the example in the UTILITY TOOL OPERATION section, the operation of the UI will now be briefly illustrated using the newly created configuration repository from the previous section.
  • In FIG. 76, a user logs into the UI. Notice that more than one configuration repository exists. Since the UI behavior is controlled by metadata, any number of configuration repositories can be used by a single installation of the UI software.
  • In FIG. 77, the Tools menu now displays an “Import Wizard” menu option. Selecting the menu option launches an external COM component (not shown here).
  • An advanced search screen for the Customer Order entity is illustrated in FIG. 78. The default search path configured by the Utility Tool during the Refresh process is used to construct the list of searchable entities.
  • A simple custom filter (search) is illustrated in FIG. 79. The custom filter screen is provided by an external COM component. Changes made to the internal workings of the COM component have no impact on the UI software.
  • In FIG. 80, a new Customer Order is entered. Notice the Line Item tab on the Customer Order data entry form. Also, notice the use of a SmartComboControl to populate the Address field (remember, addresses are stored in a single table and shared by four entities to ensure the same physical address is entered once and only once).
  • A Line Item is added to the new Customer Order in FIG. 81. Notice the presence of the unbound Unit Price CalculatedControl.
  • Promotion of the Sales Person entity is illustrated in FIG. 82. With Employee as the parent, Customer Orders may be entered using the child menu as shown in FIG. 83. Notice that the Sales Person field is automatically populated when the Customer Order data entry screen is first instantiated.
  • In FIG. 84, the CustomerOrders database is modified to add the REQUESTED_DATE field to the CUSTOMER_ORDER table. The configuration repository is Refreshed, in FIG. 85, to generate metadata for the database modification.
  • The new Customer Order data entry form is illustrated in FIG. 86. Notice the Requested Date field now appears and is represented by a DateTimeControl.
  • Although the invention has been described in detail with particular reference to these preferred embodiments, other embodiments can achieve the same results. Variations and modifications of the present invention will be obvious to those skilled in the art and it is intended to cover in the appended claims all such modifications and equivalents. The entire disclosures of all references, applications, patents, and publications cited above are hereby incorporated by reference.

Claims (21)

1. Computer software for automatically generating a graphical user interface for a relational database, said software embodied in a computer readable medium having a set of computer instructions encoded thereon and comprising:
utility software extracting schema information from the relational database and automatically generating corresponding schema and graphical user interface metadata comprising entity fields stored in a repository; and
user interface software at runtime automatically, and without compilation of code before runtime, developing from the metadata a graphical user interface for the relational database.
2. The computer software of claim 1 wherein said utility software assigns to each entity field a type attribute based on attributes of a corresponding table field in the relational database.
3. The computer software of claim 2 wherein said utility software assigns to an entity field a numeric format type if the corresponding table field is a primary key.
4. The computer software of claim 3 wherein said utility software assigns to an entity field a numeric format type if the corresponding table field is a primary key and marks that entity field as read-only so that it is not alterable by an end user.
5. The computer software of claim 2 wherein said utility software assigns to an entity field a dropdown list type if the corresponding table field is a foreign key.
6. The computer software of claim 5 wherein said utility software assigns to an entity field a dropdown list type permitting display of values from more than one field if the corresponding table field is a foreign key.
7. The computer software of claim 2 wherein said utility software assigns to an entity field one of a predetermined set of types if the corresponding table field is neither a primary nor a foreign key.
8. Computer apparatus for automatically generating a graphical user interface for a relational database, said apparatus comprising:
means embodied in a computer readable medium having a set of computer instructions encoded thereon for extracting schema information from the relational database and automatically generating corresponding schema and graphical user interface metadata comprising entity fields;
repository means for containing said metadata; and
means embodied in a computer readable medium having a set of computer instructions encoded thereon for at runtime automatically, and without compilation of code before runtime, developing from the metadata a graphical user interface for the relational database.
9. The computer apparatus of claim 8 wherein each entity field in said repository has a type attribute based on attributes of a corresponding table field in the relational database.
10. The computer apparatus of claim 9 wherein an entity field in said repository has a numeric format type if the corresponding table field is a primary key.
11. The computer apparatus of claim 10 wherein an entity field in said repository has a numeric format type if the corresponding table field is a primary key and is marked as read-only so that it is not alterable by an end user.
12. The computer apparatus of claim 9 wherein an entity field in said repository has a dropdown list type if the corresponding table field is a foreign key.
13. The computer apparatus of claim 12 wherein an entity field in said repository has a dropdown list type permitting display of values from more than one field if the corresponding table field is a foreign key.
14. The computer apparatus of claim 9 wherein an entity field in said repository has one of a predetermined set of types if the corresponding table field is neither a primary nor a foreign key.
15. A method of automatically generating a graphical user interface for a relational database, the method comprising the steps of:
extracting schema information from the relational database and automatically generating corresponding schema and graphical user interface metadata comprising entity fields;
storing the metadata in a repository; and
at runtime automatically, and without compilation of code before runtime, developing from the metadata a graphical user interface for the relational database.
16. The method of claim 15 wherein each entity field in said repository has a type attribute based on attributes of a corresponding table field in the relational database.
17. The method of claim 16 wherein an entity field in said repository has a numeric format type if the corresponding table field is a primary key.
18. The method of claim 17 wherein an entity field in said repository has a numeric format type if the corresponding table field is a primary key and is marked as read-only so that it is not alterable by an end user.
19. The method of claim 16 wherein an entity field in said repository has a dropdown list type if the corresponding table field is a foreign key.
20. The method of claim 19 wherein an entity field in said repository has a dropdown list type permitting display of values from more than one field if the corresponding table field is a foreign key.
21. The method of claim 16 wherein an entity field in said repository has one of a predetermined set of types if the corresponding table field is neither a primary nor a foreign key.
US12/172,614 2001-12-28 2008-07-14 Automated Generation of Dynamic Data Entry User Interface for Relational Database Management Systems Abandoned US20090031230A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/172,614 US20090031230A1 (en) 2001-12-28 2008-07-14 Automated Generation of Dynamic Data Entry User Interface for Relational Database Management Systems

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/040,851 US7062502B1 (en) 2001-12-28 2001-12-28 Automated generation of dynamic data entry user interface for relational database management systems
US11/204,799 US7401094B1 (en) 2001-12-28 2005-08-16 Automated generation of dynamic data entry user interface for relational database management systems
US12/172,614 US20090031230A1 (en) 2001-12-28 2008-07-14 Automated Generation of Dynamic Data Entry User Interface for Relational Database Management Systems

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/204,799 Continuation US7401094B1 (en) 2001-12-28 2005-08-16 Automated generation of dynamic data entry user interface for relational database management systems

Publications (1)

Publication Number Publication Date
US20090031230A1 true US20090031230A1 (en) 2009-01-29

Family

ID=36576625

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/040,851 Expired - Fee Related US7062502B1 (en) 2001-12-28 2001-12-28 Automated generation of dynamic data entry user interface for relational database management systems
US11/204,799 Expired - Fee Related US7401094B1 (en) 2001-12-28 2005-08-16 Automated generation of dynamic data entry user interface for relational database management systems
US12/172,614 Abandoned US20090031230A1 (en) 2001-12-28 2008-07-14 Automated Generation of Dynamic Data Entry User Interface for Relational Database Management Systems

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/040,851 Expired - Fee Related US7062502B1 (en) 2001-12-28 2001-12-28 Automated generation of dynamic data entry user interface for relational database management systems
US11/204,799 Expired - Fee Related US7401094B1 (en) 2001-12-28 2005-08-16 Automated generation of dynamic data entry user interface for relational database management systems

Country Status (1)

Country Link
US (3) US7062502B1 (en)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030159136A1 (en) * 2001-09-28 2003-08-21 Huang Xiao Fei Method and system for server synchronization with a computing device
US20070067710A1 (en) * 2005-09-22 2007-03-22 Clark David K Navigating table data with mouse actions
US20070143398A1 (en) * 2005-12-16 2007-06-21 Jean Graham Central work-product management system for coordinated collaboration with remote users
US20080162553A1 (en) * 2006-12-27 2008-07-03 Rakshit Daga Method and system for generating string-based addresses
US20080162532A1 (en) * 2006-12-27 2008-07-03 Rakshit Daga Method and system for generating relational spreadsheets
US20090248710A1 (en) * 2008-03-27 2009-10-01 Microsoft Corporation Database Part Table Junctioning
US20090327212A1 (en) * 2006-01-09 2009-12-31 Trevor Bell Efficient SQL access to point data and relational data
US20110107243A1 (en) * 2009-11-05 2011-05-05 International Business Machines Corporation Searching Existing User Interfaces to Enable Design, Development and Provisioning of User Interfaces
US20120137359A1 (en) * 2010-11-29 2012-05-31 Groupe Cgi Inc. Method For Storing (Hiding) A Key In A Table And Corresponding Method For Retrieving The Key From The Table
US20120151382A1 (en) * 2010-12-14 2012-06-14 Microsoft Corporation Generating and managing electronic documentation
US20130179807A1 (en) * 2012-01-10 2013-07-11 General Motors Llc Method and system for database browsing
US20140012883A1 (en) * 2007-10-26 2014-01-09 Microsoft Corporation Metadata driven reporting and editing of databases
US20140047377A1 (en) * 2012-08-09 2014-02-13 Sap Ag Retrieving data from an external data source
US8719124B2 (en) 2007-04-30 2014-05-06 Textura Corporation Construction payment management systems and methods with specified billing features
US20140149470A1 (en) * 2012-11-27 2014-05-29 Sandeep Rawal Systems and methods for storing and populating forms
US20140310262A1 (en) * 2013-03-15 2014-10-16 Cerinet Usa Inc. Multiple schema repository and modular database procedures
US9141650B1 (en) * 2011-12-06 2015-09-22 The Boeing Company Methods and systems for filtering tree node data to determine part and assembly relationships
US20150286720A1 (en) * 2012-12-11 2015-10-08 Tmm Data, Llc Methods and systems for collecting, managing, and sharing data
US20160117416A1 (en) * 2014-10-27 2016-04-28 Joseph Wong Automatic detection of queries missing order-by via unit test
WO2016179536A1 (en) * 2015-05-07 2016-11-10 51 Maps, Inc. Secure container platform for resource access and placement on unmanaged and unsecured devices
US20170083526A1 (en) * 2015-09-22 2017-03-23 Microsoft Technology Licensing, Llc Intelligent tabular big data presentation in search environment based on prior human input configuration
US20180181555A1 (en) * 2016-12-27 2018-06-28 Ohio State Innovation Foundation Rewriting forms for constrained interaction
WO2018175944A1 (en) * 2017-03-24 2018-09-27 Galen Data, Inc. Systems and methods to automate transfer, storage, and analysis of medical device data
US20190258731A1 (en) * 2018-02-22 2019-08-22 Flowfinity Wireless, Inc. Dynamic data editor for data analysis system
RU2704873C1 (en) * 2018-12-27 2019-10-31 Общество с ограниченной ответственностью "ПЛЮСКОМ" System and method of managing databases (dbms)
US20200301909A1 (en) * 2019-03-20 2020-09-24 Parametric Systems Pty Ltd Techniques for Controlling Interaction with an Application Database
WO2020264053A1 (en) * 2019-06-27 2020-12-30 Kleeen Software, Inc. System and method for employing constraint based authoring
US11036692B2 (en) 2016-09-17 2021-06-15 Oracle International Corporation Governance pools in hierarchical systems
US11645250B2 (en) * 2017-12-08 2023-05-09 Palantir Technologies Inc. Detection and enrichment of missing data or metadata for large data sets

Families Citing this family (1118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7130879B1 (en) 1999-08-10 2006-10-31 Alexandre Dayon System for publishing, organizing, accessing and distributing information in a computer network
US8161081B2 (en) 2001-03-16 2012-04-17 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US7689711B2 (en) 2001-03-26 2010-03-30 Salesforce.Com, Inc. System and method for routing messages between applications
US7788399B2 (en) 2001-03-26 2010-08-31 Salesforce.Com, Inc. System and method for mapping of services
US9948644B2 (en) 2001-03-26 2018-04-17 Salesforce.Com, Inc. Routing messages between applications
US7062502B1 (en) * 2001-12-28 2006-06-13 Kesler John N Automated generation of dynamic data entry user interface for relational database management systems
US20030204547A1 (en) * 2002-04-29 2003-10-30 Kevin Davis Technique for scheduling computer processes
US9171049B2 (en) 2002-06-13 2015-10-27 Salesforce.Com, Inc. Offline simulation of online session between client and server
EP1403764A1 (en) * 2002-09-26 2004-03-31 Sap Ag Method and computer system for dynamic data type enrichment
AU2002951909A0 (en) * 2002-10-04 2002-10-24 Tenix Industries Pty Limited A method of adaptively interfacing with data repository
US20050044531A1 (en) * 2003-06-09 2005-02-24 Erc-Ip, Llc Methods and systems for deploying computer source code
US8589311B2 (en) * 2003-06-13 2013-11-19 Sap Aktiengesellschaft Designing business content for reporting
US20040255239A1 (en) * 2003-06-13 2004-12-16 Ankur Bhatt Generating electronic reports of data displayed in a computer user interface list view
US7949953B2 (en) * 2003-06-13 2011-05-24 Sap Aktiengesellschaft Designing and generating charts to graphically represent data in a data source
US7434170B2 (en) * 2003-07-09 2008-10-07 Microsoft Corporation Drag and drop metadata editing
US7890540B2 (en) * 2003-07-22 2011-02-15 Sap Ag Browsing meta data for an enterprise service framework
US20050021538A1 (en) * 2003-07-25 2005-01-27 Activeviews, Inc. Method and system for displaying a relational abstraction of a data store
US7814093B2 (en) * 2003-07-25 2010-10-12 Microsoft Corporation Method and system for building a report for execution against a data store
US8543566B2 (en) 2003-09-23 2013-09-24 Salesforce.Com, Inc. System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data
US7779039B2 (en) 2004-04-02 2010-08-17 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system
US8453196B2 (en) 2003-10-14 2013-05-28 Salesforce.Com, Inc. Policy management in an interoperability network
US20050172261A1 (en) * 2004-01-30 2005-08-04 Yuknewicz Paul J. Architecture for creating a user interface using a data schema
US7546286B2 (en) * 2004-02-19 2009-06-09 Microsoft Corporation Offline multi-table data editing and storage
US7716168B2 (en) 2005-06-29 2010-05-11 Microsoft Corporation Modifying table definitions within a database application
US8135755B2 (en) * 2005-06-29 2012-03-13 Microsoft Corporation Templates in a schema editor
US7546291B2 (en) * 2004-02-19 2009-06-09 Microsoft Corporation Data source task pane
US7802007B2 (en) 2004-05-19 2010-09-21 Salesforce.Com, Inc. Techniques for providing connections to services in a network environment
WO2005119435A2 (en) * 2004-06-02 2005-12-15 Open Text Corporation Systems and methods for dynamic menus
US7251653B2 (en) * 2004-06-30 2007-07-31 Microsoft Corporation Method and system for mapping between logical data and physical data
US20060155750A1 (en) * 2004-08-12 2006-07-13 Fowler James F System to generate unpublished corporate data
US20060069679A1 (en) * 2004-09-10 2006-03-30 Percey Michael F System for creating associative records
US9645712B2 (en) 2004-10-01 2017-05-09 Grand Central Communications, Inc. Multiple stakeholders for a single business process
US7721328B2 (en) 2004-10-01 2010-05-18 Salesforce.Com Inc. Application identity design
US8060817B2 (en) 2004-11-09 2011-11-15 Oracle International Corporation Data viewer
US8402361B2 (en) * 2004-11-09 2013-03-19 Oracle International Corporation Methods and systems for implementing a dynamic hierarchical data viewer
US7562091B2 (en) * 2004-12-16 2009-07-14 Apple Inc. Cascade feature for creating records in a database
US20060195427A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation System and method for improving query response time in a relational database (RDB) system by managing the number of unique table aliases defined within an RDB-specific search expression
US7685561B2 (en) * 2005-02-28 2010-03-23 Microsoft Corporation Storage API for a common data platform
US7853961B2 (en) * 2005-02-28 2010-12-14 Microsoft Corporation Platform for data services across disparate application frameworks
US20060195460A1 (en) * 2005-02-28 2006-08-31 Microsoft Corporation Data model for object-relational data
US7774366B2 (en) 2005-03-08 2010-08-10 Salesforce.Com, Inc. Systems and methods for implementing multi-application tabs and tab sets
US7676493B2 (en) * 2005-09-07 2010-03-09 Microsoft Corporation Incremental approach to an object-relational solution
US7827478B2 (en) * 2005-09-08 2010-11-02 William Farr Dynamic generation of form pages for accessing a database
JP5395434B2 (en) 2005-09-09 2014-01-22 セールスフォース ドット コム インコーポレイティッド System and method for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US20070255631A1 (en) 2005-11-28 2007-11-01 Douglas Schmidt Product catalog management system and method
US8069153B2 (en) 2005-12-02 2011-11-29 Salesforce.Com, Inc. Systems and methods for securing customer data in a multi-tenant environment
US8645376B2 (en) 2008-05-02 2014-02-04 Salesforce.Com, Inc. Method and system for managing recent data in a mobile device linked to an on-demand service
US9201939B2 (en) 2006-06-02 2015-12-01 Salesforce.Com, Inc. Method and system for pushing data to a plurality of devices in an on-demand service environment
US9135304B2 (en) 2005-12-02 2015-09-15 Salesforce.Com, Inc. Methods and systems for optimizing text searches over structured data in a multi-tenant environment
US8095565B2 (en) * 2005-12-05 2012-01-10 Microsoft Corporation Metadata driven user interface
US7743026B2 (en) * 2006-01-31 2010-06-22 Microsoft Corporation Redirection to local copies of server-based files
US7725461B2 (en) * 2006-03-14 2010-05-25 International Business Machines Corporation Management of statistical views in a database system
US7526501B2 (en) * 2006-05-09 2009-04-28 Microsoft Corporation State transition logic for a persistent object graph
US20070266041A1 (en) * 2006-05-11 2007-11-15 Microsoft Corporation Concept of relationshipsets in entity data model (edm)
US20080082517A1 (en) * 2006-08-29 2008-04-03 Sap Ag Change assistant
US7823124B2 (en) * 2006-08-29 2010-10-26 Sap Ag Transformation layer
US7912800B2 (en) * 2006-08-29 2011-03-22 Sap Ag Deduction engine to determine what configuration management scoping questions to ask a user based on responses to one or more previous questions
US8131644B2 (en) * 2006-08-29 2012-03-06 Sap Ag Formular update
US7908589B2 (en) * 2006-08-29 2011-03-15 Sap Ag Deployment
US8065661B2 (en) * 2006-08-29 2011-11-22 Sap Ag Test engine
US8244694B2 (en) * 2006-09-12 2012-08-14 International Business Machines Corporation Dynamic schema assembly to accommodate application-specific metadata
US8370849B2 (en) 2006-10-02 2013-02-05 Salesforce.Com, Inc. API method and system for providing access to an external service via an application services platform
US8572057B2 (en) 2006-10-02 2013-10-29 Salesforce.Com, Inc. Method and system for applying a group of instructions to metadata
US8775315B2 (en) 2006-10-02 2014-07-08 Salesforce.Com, Inc. Method and system for integrating a PBX-equipped client and an on-demand database service
US8255374B2 (en) 2006-10-02 2012-08-28 Salesforce.Com, Inc. Method and system for selecting amongst a plurality of processes to send a message
US8370848B2 (en) 2006-10-02 2013-02-05 Salesforce.Com, Inc. Method and system for providing a client access to an external service via an application services platform
US7827138B2 (en) 2006-10-02 2010-11-02 Salesforce.Com, Inc. Method and system for synchronizing a server and an on-demand database service
US8095531B2 (en) 2006-10-03 2012-01-10 Salesforce.Com, Inc. Methods and systems for controlling access to custom objects in a database
US9230068B2 (en) 2006-10-03 2016-01-05 Salesforce.Com, Inc. Method and system for managing license objects to applications in an application platform
US8332435B2 (en) 2006-10-03 2012-12-11 Salesforce.Com, Inc. Method and system for customizing a user interface to an on-demand database service
US8601467B2 (en) 2006-10-03 2013-12-03 Salesforce.Com, Inc. Methods and systems for upgrading and installing application packages to an application platform
US7730478B2 (en) 2006-10-04 2010-06-01 Salesforce.Com, Inc. Method and system for allowing access to developed applications via a multi-tenant on-demand database service
US8131580B2 (en) 2006-10-04 2012-03-06 Salesforce.Com, Inc. Method and system for load balancing a sales forecast system by selecting a synchronous or asynchronous process based on a type of an event affecting the sales forecast
GB0623059D0 (en) * 2006-11-18 2006-12-27 Etgar Ran Database system and method
US7970796B1 (en) * 2006-12-01 2011-06-28 Intuit Inc. Method and system for importing data to a repository
US8595635B2 (en) 2007-01-25 2013-11-26 Salesforce.Com, Inc. System, method and apparatus for selecting content from web sources and posting content to web logs
US8381113B2 (en) * 2007-04-06 2013-02-19 Microsoft Corporation Metadata-driven automatic UI code generation
US8706696B2 (en) 2007-05-04 2014-04-22 Salesforce.Com, Inc. Method and system for on-demand communities
US20080319958A1 (en) * 2007-06-22 2008-12-25 Sutirtha Bhattacharya Dynamic Metadata based Query Formulation for Multiple Heterogeneous Database Systems
US20090019022A1 (en) * 2007-07-15 2009-01-15 Dawning Technologies, Inc. Rules-based data mining
US20090031239A1 (en) * 2007-07-17 2009-01-29 Gridiron Software Inc. Asset browser for computing environment
US8359647B1 (en) 2007-07-19 2013-01-22 Salesforce.Com, Inc. System, method and computer program product for rendering data of an on-demand database service safe
US8781988B1 (en) 2007-07-19 2014-07-15 Salesforce.Com, Inc. System, method and computer program product for messaging in an on-demand database service
US8549417B2 (en) * 2007-07-19 2013-10-01 Salesforce.Com, Inc. System, method and computer program product for editing an on-demand database service graphical user interface
US8140576B1 (en) 2007-07-19 2012-03-20 Salesforce.Com, Inc. On-demand database service system, method and computer program product for conditionally allowing an application of an entity access to data of another entity
US7991790B2 (en) 2007-07-20 2011-08-02 Salesforce.Com, Inc. System and method for storing documents accessed by multiple users in an on-demand service
US8209675B2 (en) * 2007-07-25 2012-06-26 Sap Ag Method and system for customizing a software application
US8799298B2 (en) 2007-08-17 2014-08-05 Salesforce.Com, Inc. On-demand database service system, method, and computer program product for enforcing the inclusion of tests in a developed application
US9798784B1 (en) 2008-08-22 2017-10-24 Salesforce.Com, Inc. System, method and computer program product for defining custom junction objects in an on-demand database service
ITMI20071825A1 (en) 2007-09-20 2009-03-21 Mario Ballerini DYNAMIC SYSTEM FOR THE CREATION AND MANAGEMENT OF A DATABASE
US8875259B2 (en) 2007-11-15 2014-10-28 Salesforce.Com, Inc. On-demand service security system and method for managing a risk of access as a condition of permitting access to the on-demand service
US8584212B1 (en) 2007-11-15 2013-11-12 Salesforce.Com, Inc. On-demand service security system and method for managing a risk of access as a condition of permitting access to the on-demand service
CN101201816B (en) * 2007-12-20 2010-10-13 北大方正集团有限公司 Adapter and method for outputting data in data stream to XML document
US9501453B2 (en) 2007-12-23 2016-11-22 Salesforce.Com Inc. Method and system for a flexible-data column user interface
JP5229871B2 (en) * 2008-01-10 2013-07-03 インターナショナル・ビジネス・マシーンズ・コーポレーション Technology that supports user input of data
US8468117B1 (en) 2008-01-22 2013-06-18 Salesforce.Com, Inc. System, method and computer program product for creating a visual component for tenants of an on-demand database service
US8239501B1 (en) 2008-01-22 2012-08-07 Salesforce.Com, Inc. System, method and computer program product for creating mobile custom views with filtering for tenants of an on-demand database service
US8677470B1 (en) 2008-01-22 2014-03-18 Salesforce.Com, Inc. System, method, and computer program product for security verification of communications to tenants of an on-demand database service
US8478782B1 (en) 2008-05-08 2013-07-02 Salesforce.Com, Inc. System, method and computer program product for sharing tenant information utilizing a multi-tenant on-demand database service
US9791993B2 (en) 2008-05-08 2017-10-17 Salesforce.Com, Inc System, method and computer program product for creating a re-usable component utilizing a multi-tenant on-demand database service
US7890538B2 (en) * 2008-05-09 2011-02-15 International Business Machines Corporation System and method for converting and storing data values
US9251239B1 (en) 2008-05-15 2016-02-02 Salesforce.Com, Inc. System, method and computer program product for applying a public tag to information
US7958094B2 (en) * 2008-06-25 2011-06-07 International Business Machines Corporation Management of deletion requests for related documents in a content management system
US8209355B2 (en) * 2008-07-28 2012-06-26 Microsoft Corporation Automatic user interface generation for entity interaction
US9535967B2 (en) * 2008-09-10 2017-01-03 Salesforce.Com, Inc. Method and system for providing efficient and complex database functionality to a mobile device
US8726179B2 (en) 2008-09-12 2014-05-13 Salesforce.Com, Inc. Method and system for providing in-line scheduling in an on-demand service
US9047479B1 (en) 2008-09-12 2015-06-02 Salesforce.Com, Inc. System, method and computer program product for providing a team object in association with an object
US8423524B1 (en) 2008-09-12 2013-04-16 Salesforce.Com, Inc. System, method and computer program product for storing reports for use by tenants of a multi-tenant on-demand database service
US8538942B2 (en) 2008-09-12 2013-09-17 Salesforce.Com, Inc. Method and system for sharing documents between on-demand services
US8417723B1 (en) 2008-09-12 2013-04-09 Salesforce.Com, Inc. System, method and computer program product for enabling access to a resource of a multi-tenant on-demand database service utilizing a token
US8135659B2 (en) * 2008-10-01 2012-03-13 Sap Ag System configuration comparison to identify process variation
US8661056B1 (en) 2008-11-03 2014-02-25 Salesforce.Com, Inc. System, method and computer program product for publicly providing web content of a tenant using a multi-tenant on-demand database service
US8396893B2 (en) 2008-12-11 2013-03-12 Sap Ag Unified configuration of multiple applications
US8255429B2 (en) * 2008-12-17 2012-08-28 Sap Ag Configuration change without disruption of incomplete processes
US9286364B2 (en) 2009-01-23 2016-03-15 Salesforce.Com Inc. Methods and systems for sharing information in a supply chain
US8065323B2 (en) * 2009-02-23 2011-11-22 Oracle International Corporation Offline validation of data in a database system for foreign key constraints
US8150832B2 (en) * 2009-03-06 2012-04-03 Oracle International Corporation Methods and systems for automatically determining a default hierarchy from data
US8751826B2 (en) 2009-04-01 2014-06-10 Salesforce.Com, Inc. Enhanced system security
US8812533B1 (en) 2009-05-21 2014-08-19 Salesforce.Com, Inc. System, method and computer program product for automatically presenting selectable options in a lookup field
US10552710B2 (en) * 2009-09-28 2020-02-04 Oracle International Corporation Hierarchical sequential clustering
US10013641B2 (en) * 2009-09-28 2018-07-03 Oracle International Corporation Interactive dendrogram controls
US20110106808A1 (en) * 2009-10-30 2011-05-05 Salesforce.Com, Inc. Multi-dimensional content organization and delivery
US8621015B2 (en) 2009-10-30 2013-12-31 Salesforce.Com, Inc. Integrating and managing social networking information in an on-demand database system
US8560575B2 (en) * 2009-11-12 2013-10-15 Salesforce.Com, Inc. Methods and apparatus for selecting updates to associated records to publish on an information feed in an on-demand database service environment
WO2011060306A2 (en) 2009-11-12 2011-05-19 Salesforce.Com, Inc. Enterprise level business information networking for changes in a database
US20110208759A1 (en) * 2010-02-23 2011-08-25 Paul Zellweger Method, Apparatus, and Interface For Creating A Chain of Binary Attribute Relations
US8898287B2 (en) 2010-02-24 2014-11-25 Salesforce.Com, Inc. System, method and computer program product for monitoring data activity utilizing a shared data store
US8732663B2 (en) 2010-02-24 2014-05-20 Salesforce.Com, Inc. System, method and computer program product for providing automated testing by utilizing a preconfigured point of entry in a test or by converting a test to a predefined format
US9600512B2 (en) 2010-02-25 2017-03-21 Salesforce.Com, Inc. Systems and methods for implementing customized drop-down menus
US9715555B2 (en) 2010-02-26 2017-07-25 Salesforce.Com, Inc. System, method and computer program product for user registration with a multi-tenant on-demand database system
US9251164B2 (en) 2010-02-26 2016-02-02 Salesforce.Com, Inc. System, method and computer program product for using a database to access content stored outside of the database
US9471648B2 (en) 2010-03-01 2016-10-18 Salesforce.Com, Inc. System, method and computer program product for displaying one or more data sets to a user
US8713043B2 (en) 2010-03-01 2014-04-29 Salesforce.Com, Inc. System, method and computer program product for sharing a single instance of a database stored using a tenant of a multi-tenant on-demand database system
US9405426B2 (en) * 2010-03-01 2016-08-02 Salesforce.Com, Inc. Method and system for providing an adaptive input user interface for data entry applications
US8583587B2 (en) 2010-03-08 2013-11-12 Salesforce.Com, Inc. System, method and computer program product for performing one or more actions utilizing a uniform resource locator
US9477369B2 (en) 2010-03-08 2016-10-25 Salesforce.Com, Inc. System, method and computer program product for displaying a record as part of a selected grouping of data
US8898582B2 (en) * 2010-03-10 2014-11-25 Salesforce.Com, Inc. Configurable highlights panel for display of database records
US8739030B2 (en) 2010-03-10 2014-05-27 Salesforce.Com, Inc. Providing a quote template in a multi-tenant database system environment
US9268955B2 (en) 2010-03-12 2016-02-23 Salesforce.Com, Inc. System, method and computer program product for conditionally sharing an object with one or more entities
US9117003B2 (en) 2010-03-12 2015-08-25 Salesforce.Com, Inc. System, method and computer program product for navigating content on a single page
US8745272B2 (en) * 2010-03-12 2014-06-03 Salesforce.Com, Inc. Service cloud console
US9031996B2 (en) 2010-03-15 2015-05-12 Salesforce.Com System, method and computer program product for creating a plurality of CNAMES for a website
US8996610B1 (en) 2010-03-15 2015-03-31 Salesforce.Com, Inc. Proxy system, method and computer program product for utilizing an identifier of a request to route the request to a networked device
US8688802B2 (en) 2010-03-15 2014-04-01 Salesforce.Com, Inc. System, method and computer program product for serving an application from a custom subdomain
US8793291B2 (en) 2010-03-15 2014-07-29 Salesforce.Com, Inc. System, method and computer program product for deploying an update between environments of a multi-tenant on-demand database system
US9246707B2 (en) 2010-03-16 2016-01-26 Salesforce.Com, Inc. Cost-based SMTP email routing
US9009709B2 (en) 2010-03-16 2015-04-14 Salesforce.Com, Inc. Asynchronous rollup numbers forecasting methods and systems
US9111006B2 (en) 2010-03-16 2015-08-18 Salesforce.Com, Inc. System, method and computer program product for communicating data between a database and a cache
US20110231457A1 (en) * 2010-03-16 2011-09-22 Salesforce.Com, Inc. Monitoring and managing job resources for database tasks
US9098365B2 (en) 2010-03-16 2015-08-04 Salesforce.Com, Inc. System, method and computer program product for conditionally enabling an installation aspect
RU2016122623A (en) * 2010-03-18 2018-11-29 НУОДиБи ИНК. DATABASE MANAGEMENT SYSTEM
US8370809B2 (en) 2010-03-18 2013-02-05 Salesforce.Com, Inc. System, method and computer program product for automated test case generation and scheduling
US8930933B2 (en) 2010-03-19 2015-01-06 Salesforce.Com, Inc. System, method and computer program product for associating a plurality of stored elements with a creation of a patch
US9037546B2 (en) 2010-03-25 2015-05-19 Salesforce.Com, Inc. System, method and computer program product for automatic code generation for database object deletion
US9275033B2 (en) 2010-03-25 2016-03-01 Salesforce.Com, Inc. System, method and computer program product for creating an object within a system, utilizing a template
US9361350B2 (en) 2010-03-26 2016-06-07 Salesforce.Com, Inc. Data transfer between first and second databases
US8977675B2 (en) * 2010-03-26 2015-03-10 Salesforce.Com, Inc. Methods and systems for providing time and date specific software user interfaces
US8539234B2 (en) 2010-03-30 2013-09-17 Salesforce.Com, Inc. Secure client-side communication between multiple domains
US9619652B2 (en) 2010-03-31 2017-04-11 Salesforce.Com, Inc. System, method and computer program product for determining a risk score for an entity
US8646048B2 (en) 2010-03-31 2014-02-04 saleforce.com, inc System, method and computer program product for authenticating and authorizing an external entity
US9767136B2 (en) 2010-03-31 2017-09-19 Salesforce.Com, Inc. System, method and computer program product for maintaining data stored in a data structure
US9239722B1 (en) 2010-03-31 2016-01-19 Salesforce.Com, Inc. System, method and computer program product for interacting with a process diagram
US20110246524A1 (en) 2010-04-01 2011-10-06 Salesforce.Com, Inc. System, method and computer program product for portal user data access in a multi-tenant on-demand database system
US8799327B2 (en) 2010-04-01 2014-08-05 Salesforce.Com, Inc. System, method and computer program product for deriving commonalities among data entries
US9195681B2 (en) 2010-04-01 2015-11-24 Salesforce.Com, Inc. System, method and computer program product for transmitting a group of data elements
US8925041B2 (en) 2010-04-01 2014-12-30 Salesforce.Com, Inc. System, method and computer program product for performing one or more actions based on a determined access permissions for a plurality of users
US8818938B2 (en) 2010-04-01 2014-08-26 Salesforce.Com, Inc. System, method and computer program product for synchronizing entities within a system
US8818985B2 (en) 2010-04-06 2014-08-26 Salesforce.Com, Inc. Rule-based prioritization of social data
US8793691B2 (en) 2010-04-15 2014-07-29 Salesforce.Com, Inc. Managing and forwarding tasks to handler for processing using a message queue
US8584124B2 (en) 2010-04-20 2013-11-12 Salesforce.Com, Inc. Methods and systems for batch processing in an on-demand service environment
US8875152B2 (en) 2010-04-22 2014-10-28 Salesforce.Com, Inc. System, method and computer program product for dynamically increasing resources utilized for processing tasks
US9229793B2 (en) 2010-04-22 2016-01-05 Salesforce.Com, Inc. System, method and computer program product for routing messages to a server
US8543932B2 (en) 2010-04-23 2013-09-24 Datacert, Inc. Generation and testing of graphical user interface for matter management workflow with collaboration
US8751939B2 (en) 2010-04-26 2014-06-10 Salesforce.Com, Inc. Side tab navigation and page views personalization systems and methods
US9355270B2 (en) 2010-04-28 2016-05-31 Salesforce.Com, Inc. Security configuration systems and methods for portal users in a multi-tenant database environment
US8972431B2 (en) 2010-05-06 2015-03-03 Salesforce.Com, Inc. Synonym supported searches
US9009669B2 (en) 2010-05-07 2015-04-14 Salesforce.Com, Inc. Visual user interface validator
US8566792B2 (en) 2010-05-07 2013-10-22 Salesforce, Inc. Validating visual components
US8521780B2 (en) 2010-05-07 2013-08-27 Salesforce.Com, Inc. Methods and systems for sharing email in a multi-tenant database system
US8718241B2 (en) 2010-05-07 2014-05-06 Salesforce.Com, Inc. Methods and apparatus for interfacing with a phone system in an on-demand service environment
US9037722B2 (en) 2010-05-07 2015-05-19 Salesforce.Com, Inc. Resolving information in a multitenant database environment
US8850219B2 (en) 2010-05-13 2014-09-30 Salesforce.Com, Inc. Secure communications
US8713530B2 (en) 2010-05-13 2014-04-29 Salesforce.Com, Inc. Test framework of visual components in a multitenant database environment
US20110289401A1 (en) 2010-05-20 2011-11-24 Salesforce.Com, Inc. Multiple graphical annotations of documents using overlays
US8738603B2 (en) 2010-05-20 2014-05-27 Salesforce.Com, Inc. Metrics-based accessing of social threads
US8914438B2 (en) 2010-05-20 2014-12-16 Salesforce.Com, Inc. Methods and systems for providing a user interface in a multi-tenant database environment
US9275160B2 (en) 2010-05-20 2016-03-01 Salesforce.Com, Inc. Performing an upgrade in a multi-tenant database system environment
US9311664B2 (en) 2010-05-25 2016-04-12 Salesforce.Com, Inc. Systems and methods for automatically collection of performance data in a multi-tenant database system environment
US8386471B2 (en) 2010-05-27 2013-02-26 Salesforce.Com, Inc. Optimizing queries in a multi-tenant database system environment
US9262137B2 (en) 2010-05-27 2016-02-16 Salesforce.Com, Inc. Adding directives for versions of javascript files directly into source code in a multi-tenant database environment
US10599454B2 (en) 2010-05-27 2020-03-24 Salesforce.Com, Inc. Database systems and related methods for validation workflows
US8862632B2 (en) 2010-05-28 2014-10-14 Salesforce.Com, Inc. Customizing standard formula fields in a multi-tenant database system environment
US8572080B2 (en) 2010-06-04 2013-10-29 Salesforce.Com, Inc. Methods and systems for analyzing a network feed in a multi-tenant database system environment
US8452726B2 (en) 2010-06-04 2013-05-28 Salesforce.Com, Inc. Sharing information between tenants of a multi-tenant database
US8539068B2 (en) 2010-06-07 2013-09-17 Salesforce.Com, Inc. Methods and systems for providing customized domain messages
US9246699B2 (en) 2010-06-07 2016-01-26 Salesforce.Com, Inc. Method and system for testing multiple components of a multi-tenant, multi-domain, multi-tiered website
US8595382B2 (en) 2010-06-07 2013-11-26 Salesforce.Com, Inc. System, method and computer program product for performing a synchronization of data
US9223852B2 (en) 2010-06-11 2015-12-29 Salesforce.Com, Inc. Methods and systems for analyzing search terms in a multi-tenant database system environment
US8595207B2 (en) 2010-06-14 2013-11-26 Salesforce.Com Methods and systems for dynamically suggesting answers to questions submitted to a portal of an online service
US8230062B2 (en) 2010-06-21 2012-07-24 Salesforce.Com, Inc. Referred internet traffic analysis system and method
US9177070B2 (en) 2010-06-21 2015-11-03 Salesforce.Com, Inc. System, method and computer program product for performing actions associated with a portal
US9495282B2 (en) 2010-06-21 2016-11-15 Salesforce.Com, Inc. Method and systems for a dashboard testing framework in an online demand service environment
US8620305B2 (en) 2010-06-23 2013-12-31 Salesforce.Com, Inc. Methods and systems for a mobile device testing framework
US9280596B2 (en) 2010-07-01 2016-03-08 Salesforce.Com, Inc. Method and system for scoring articles in an on-demand services environment
US9817637B2 (en) 2010-07-01 2017-11-14 Salesforce.Com, Inc. Methods and systems for providing enhancements to a business networking feed
US8832061B2 (en) 2010-07-02 2014-09-09 Salesforce.Com, Inc. Optimizing data synchronization between mobile clients and database systems
US9529698B2 (en) 2010-07-13 2016-12-27 Salesforce.Com, Inc. Method and system for multi-mode testing through operation interface and scenario abstraction in a multi-tenant database environment
US8738970B2 (en) 2010-07-23 2014-05-27 Salesforce.Com, Inc. Generating performance alerts
US9507940B2 (en) 2010-08-10 2016-11-29 Salesforce.Com, Inc. Adapting a security tool for performing security analysis on a software application
US8812977B2 (en) 2010-08-12 2014-08-19 Salesforce.Com, Inc. Accessing multi-page data using a page index in a scrollbar
US20120041989A1 (en) * 2010-08-16 2012-02-16 Tata Consultancy Services Limited Generating assessment data
US8904541B2 (en) 2010-08-26 2014-12-02 Salesforce.Com, Inc. Performing security assessments in an online services system
US9262393B2 (en) 2010-08-31 2016-02-16 Salesforce.Com, Inc. Method and system for providing simplified form filling in an on-demand service
US9619534B2 (en) 2010-09-10 2017-04-11 Salesforce.Com, Inc. Probabilistic tree-structured learning system for extracting contact data from quotes
US8769704B2 (en) 2010-09-10 2014-07-01 Salesforce.Com, Inc. Method and system for managing and monitoring of a multi-tenant system
US8560554B2 (en) 2010-09-23 2013-10-15 Salesforce.Com, Inc. Methods and apparatus for selecting updates to associated records to publish on an information feed using importance weights in an on-demand database service environment
US8732150B2 (en) 2010-09-23 2014-05-20 Salesforce.Com, Inc. Methods and apparatus for suppressing network feed activities using an information feed in an on-demand database service environment
US9106761B2 (en) 2010-09-23 2015-08-11 Salesforce.Com, Inc. Methods and apparatus for inviting users to follow records in an on-demand database service environment
US8661076B2 (en) 2010-09-23 2014-02-25 Salesforce.Com, Inc. Business networking information feed alerts
US9031957B2 (en) 2010-10-08 2015-05-12 Salesforce.Com, Inc. Structured data in a business networking feed
US8898186B2 (en) 2010-10-08 2014-11-25 Salesforce.Com, Inc. Methods and systems for latency-free contacts search
US20120086544A1 (en) 2010-10-08 2012-04-12 Salesforce.Com, Inc. Following Data Records in an Information Feed
US8949939B2 (en) 2010-10-13 2015-02-03 Salesforce.Com, Inc. Methods and systems for provisioning access to customer organization data in a multi-tenant system
US8903770B2 (en) 2010-10-15 2014-12-02 Salesforce.Com, Inc. Methods and apparatus for discontinuing the following of records in an on-demand database service environment
US9304614B2 (en) 2010-10-20 2016-04-05 Salesforce.Com, Inc. Framework for custom actions on an information feed
US9411855B2 (en) 2010-10-25 2016-08-09 Salesforce.Com, Inc. Triggering actions in an information feed system
US9858535B2 (en) * 2010-10-25 2018-01-02 Innovatia Inc. System and method for dynamic generation of procedures
US8732606B2 (en) 2010-10-25 2014-05-20 Salesforce.Com, Inc. Computer implemented methods and apparatus for dynamic windowing in user interfaces
US8886766B2 (en) 2010-10-25 2014-11-11 Salesforce.Com, Inc. Systems and methods for tracking responses on an online social network
US8782238B2 (en) 2010-11-05 2014-07-15 Verizon Patent And Licensing Inc. Server clustering in a computing-on-demand system
US9128733B2 (en) 2010-11-12 2015-09-08 Microsoft Technology Licensing, Llc Display and resolution of incompatible layout constraints
US8682918B2 (en) 2010-11-22 2014-03-25 Salesforce.Com, Inc. Method and system for making content-based recommendations
US9690808B2 (en) * 2010-12-01 2017-06-27 Salesforce.Com, Inc. Methods and systems for loose coupling between triggers and entities
US9069448B2 (en) 2010-12-03 2015-06-30 Salesforce.Com, Inc. Filtering objects in a multi-tenant environment
US9465885B2 (en) 2010-12-03 2016-10-11 Salesforce.Com, Inc. Method and system for providing information to a mobile handheld device from a database system
US8498994B2 (en) 2010-12-03 2013-07-30 Salesforce.Com, Inc. Social files
US20120150801A1 (en) * 2010-12-08 2012-06-14 Microsoft Corporation Platform agnostic file attribute synchronization
US8793706B2 (en) 2010-12-16 2014-07-29 Microsoft Corporation Metadata-based eventing supporting operations on data
US20120173568A1 (en) * 2011-01-04 2012-07-05 International Business Machines Corporation Getting individual row counts from related tables matching selection criteria
US8566648B2 (en) 2011-02-02 2013-10-22 Salesforce, Inc. Automated testing on devices
US8903943B2 (en) 2011-02-15 2014-12-02 Salesforce.Com, Inc. Integrating cloud applications and remote jobs
US20120215705A1 (en) 2011-02-18 2012-08-23 Salesforce.Com, Inc. Methods And Systems For Providing An About Me User Interface For An Enterprise Social Network
US9646246B2 (en) 2011-02-24 2017-05-09 Salesforce.Com, Inc. System and method for using a statistical classifier to score contact entities
US9443224B2 (en) 2011-03-01 2016-09-13 Salesforce.Com, Inc. Systems, apparatus and methods for selecting updates to associated records to publish on an information feed
US9524285B2 (en) * 2011-03-05 2016-12-20 Kapaleeswar Madireddi Stream flow chemical process information system and method
US10417263B2 (en) 2011-06-03 2019-09-17 Robert Mack Method and apparatus for implementing a set of integrated data systems
US9430583B1 (en) 2011-06-10 2016-08-30 Salesforce.Com, Inc. Extracting a portion of a document, such as a web page
US20120330924A1 (en) 2011-06-21 2012-12-27 Salesforce.Com, Inc. Method and system for querying an on demand database service
US9069593B2 (en) 2011-06-23 2015-06-30 Salesforce.Com, Inc. Systems and methods for deletion of untracked datastore paths
US9864762B2 (en) 2011-06-23 2018-01-09 Salesforce.Com, Inc. Systems and methods for mapping a value to a new domain
US9208187B2 (en) 2011-06-24 2015-12-08 Salesforce.Com, Inc. Using a database system for selective inclusion and exclusion of types of updates to provide a configuration feed of a social networking system
US20130002676A1 (en) 2011-06-28 2013-01-03 Salesforce.Com, Inc. Computer implemented systems and methods for visualizing organizational connections
US9953273B2 (en) 2011-06-28 2018-04-24 Salesforce.Com, Inc. Systems and methods for creating a rich social media profile
US8943011B2 (en) 2011-06-28 2015-01-27 Salesforce.Com, Inc. Methods and systems for using map-reduce for large-scale analysis of graph-based data
US9069788B2 (en) 2011-07-01 2015-06-30 Salesforce.Com, Inc. Truncating data associated with objects in a multi-tenant database
US9123028B2 (en) 2011-07-01 2015-09-01 Salesforce.Com, Inc. Computer implemented methods and apparatus for controlling the inclusion of edited information in an information feed
US8892585B2 (en) 2011-07-05 2014-11-18 Microsoft Corporation Metadata driven flexible user interface for business applications
US9015494B2 (en) 2011-07-11 2015-04-21 Salesforce.Com, Inc. Methods and apparatus for digital steganography
US9071658B2 (en) 2011-07-12 2015-06-30 Salesforce.Com, Inc. Method and system for presenting a meeting in a cloud computing environment
US8954449B2 (en) 2011-07-12 2015-02-10 Salesforce.Com, Inc. Method and system for determining a user's brand influence
US9037681B2 (en) 2011-07-12 2015-05-19 Salesforce.Com, Inc. Methods and systems for prioritizing multiple network feeds
US9229934B2 (en) 2011-07-12 2016-01-05 Salesforce.Com, Inc. Method and system for document integration
US9195971B2 (en) 2011-07-12 2015-11-24 Salesforce.Com, Inc. Method and system for planning a meeting in a cloud computing environment
US9489660B2 (en) 2011-07-12 2016-11-08 Salesforce.Com, Inc. Methods and systems for public collaborative interface for private network groups
US9395881B2 (en) 2011-07-12 2016-07-19 Salesforce.Com, Inc. Methods and systems for navigating display sequence maps
US20130018955A1 (en) 2011-07-14 2013-01-17 Salesforce.Com, Inc. Computer implemented methods and apparatus for implementing a social network information feed as a platform
US9443225B2 (en) 2011-07-18 2016-09-13 Salesforce.Com, Inc. Computer implemented methods and apparatus for presentation of feed items in an information feed to be displayed on a display device
US8521782B2 (en) 2011-07-20 2013-08-27 Salesforce.Com, Inc. Methods and systems for processing large graphs using density-based processes using map-reduce
US20130024910A1 (en) 2011-07-22 2013-01-24 Salesforce.Com, Inc. Computer implemented methods and apparatus for integrating a social network information feed with a network communications application
US8620875B2 (en) 2011-07-25 2013-12-31 Salesforce.Com, Inc. Fraud analysis in a contact database
US8972421B2 (en) 2011-07-26 2015-03-03 Salesforce.Com, Inc. Systems and methods for propagating a global filter to individual datasets
US9325750B2 (en) 2011-07-26 2016-04-26 Salesforce.Com, Inc. Method and system for viewing a contact network feed in a business directory environment
US9189532B2 (en) 2011-07-26 2015-11-17 Salesforce.Com, Inc. System, method and computer program product for locally defining related reports using a global definition
US8984051B2 (en) 2011-07-26 2015-03-17 Salesforce.Com, Inc. Computer implemented methods and apparatus for communicating feed information to one or more recipients
US9613326B2 (en) 2011-07-26 2017-04-04 Salesforce.Com, Inc. Method and system for filtering common fields across multiple data sets
US9256859B2 (en) 2011-07-26 2016-02-09 Salesforce.Com, Inc. Systems and methods for fragmenting newsfeed objects
US8745625B2 (en) 2011-07-26 2014-06-03 Salesforce.Com, Inc. System, method and computer program product for conditionally executing related reports in parallel based on an estimated execution time
US10121110B2 (en) 2011-07-27 2018-11-06 Salesforce.Com, Inc. System, method and computer program product for progressive rendering of report results
US9591090B2 (en) 2011-08-22 2017-03-07 Salesforce.Com, Inc. Computer implemented methods and apparatus for sharing data of an information feed of an online social network
US9395882B2 (en) 2011-08-24 2016-07-19 Salesforce.Com, Inc. Systems and methods for promoting related lists
US8549047B2 (en) 2011-08-25 2013-10-01 Salesforce.Com, Inc. Computer implemented methods and apparatus for feed-based case management
US8725721B2 (en) 2011-08-25 2014-05-13 Salesforce.Com, Inc. Personalizing scoping and ordering of object types for search
US9535573B2 (en) 2011-08-26 2017-01-03 Salesforce.Com, Inc. Systems and methods for dynamic list views and detail pages
US9215096B2 (en) 2011-08-26 2015-12-15 Salesforce.Com, Inc. Computer implemented methods and apparatus for providing communication between network domains in a service cloud
US8412178B2 (en) 2011-08-30 2013-04-02 Salesforce.Com, Inc. Mechanism for facilitating dynamic and segment-based monitoring of cellular network performance in an on-demand services environment
US10158638B2 (en) 2011-08-31 2018-12-18 Salesforce.Com, Inc. Computer implemented methods and apparatus for providing access to an online social network
US9830435B2 (en) 2011-10-04 2017-11-28 Salesforce.Com, Inc. Method and system for providing login as a service
US9038074B2 (en) 2011-10-04 2015-05-19 Salesforce.Com, Inc. System, method and computer program product for recursively executing a process control operation to use an ordered list of tags to initiate corresponding functional operations
US10885179B2 (en) 2011-10-05 2021-01-05 Salesforce.Com, Inc. Just-in-time user provisioning framework in a multitenant environment
US9058363B2 (en) 2011-10-07 2015-06-16 Salesforce.Com, Inc. Computer implemented methods and apparatus for providing a distribution list of users in an online social network
US9542711B2 (en) 2011-10-07 2017-01-10 Salesforce.Com, Inc. Computer implemented methods and apparatus for providing selective notifications in an online social network
US9467424B2 (en) 2011-10-07 2016-10-11 Salesforce.Com, Inc. Methods and systems for proxying data
US9589070B2 (en) 2011-10-10 2017-03-07 Salesforce.Com, Inc. Method and system for updating a filter logic expression representing a boolean filter
US9542428B2 (en) 2011-10-10 2017-01-10 Salesforce.Com, Inc. Systems and methods for real-time de-duplication
US9727924B2 (en) 2011-10-10 2017-08-08 Salesforce.Com, Inc. Computer implemented methods and apparatus for informing a user of social network data when the data is relevant to the user
US9007364B2 (en) 2011-10-12 2015-04-14 Salesforce.Com, Inc. Augmented reality display apparatus and related methods using database record data
US9195648B2 (en) 2011-10-12 2015-11-24 Salesforce.Com, Inc. Multi-lingual knowledge base
US9064287B2 (en) 2011-10-13 2015-06-23 Salesforce.Com, Inc. Computer implemented methods and apparatus for providing group-related social network information
US8839448B2 (en) 2011-10-18 2014-09-16 Salesforce.Com, Inc. Generation of a human readable output message in a format that is unreadable by a computer-based device
US9443007B2 (en) 2011-11-02 2016-09-13 Salesforce.Com, Inc. Tools and techniques for extracting knowledge from unstructured data retrieved from personal data sources
US9471666B2 (en) 2011-11-02 2016-10-18 Salesforce.Com, Inc. System and method for supporting natural language queries and requests against a user's personal data cloud
US9047070B2 (en) 2011-11-03 2015-06-02 Salesforce.Com, Inc. System, method and computer program product for defining applications using metadata records created from an object specifying a predefined metadata format
US9977814B2 (en) 2011-11-04 2018-05-22 Salesforce.Com, Inc. Custom metadata in loosely coupled triggers
US9152725B2 (en) 2011-11-04 2015-10-06 Salesforce.Com, Inc. Computer implemented methods and apparatus for configuring and performing a custom rule to process a preference indication
US9830050B2 (en) 2011-11-23 2017-11-28 Salesforce.Com, Inc. Computer implemented methods and apparatus for providing a reminder regarding a feed item of a feed of an online social network
US20130185654A1 (en) 2012-01-17 2013-07-18 Salesforce.Com, Inc. Systems and methods for mapping relevant personal connections
US8812438B2 (en) 2012-01-20 2014-08-19 Salesforce.Com, Inc. System, method and computer program product for synchronizing data using data identifying messages
US9397521B2 (en) 2012-01-20 2016-07-19 Salesforce.Com, Inc. Site management in an on-demand system
US8731151B2 (en) 2012-02-02 2014-05-20 Salesforce.Com, Inc. Methods and apparatus for partially updating a web page using an embedded iFrame
US9306878B2 (en) 2012-02-14 2016-04-05 Salesforce.Com, Inc. Intelligent automated messaging for computer-implemented devices
US9477698B2 (en) 2012-02-22 2016-10-25 Salesforce.Com, Inc. System and method for inferring reporting relationships from a contact database
US20130218885A1 (en) 2012-02-22 2013-08-22 Salesforce.Com, Inc. Systems and methods for context-aware message tagging
US9195835B2 (en) 2012-03-01 2015-11-24 Salesforce.Com, Inc. System and method for initializing tokens in a dictionary encryption scheme
US9503535B2 (en) 2012-03-06 2016-11-22 Salesforce.Com, Inc. Computer implemented methods and apparatus for automatically following entities in an online social network
US9348614B2 (en) 2012-03-07 2016-05-24 Salesforce.Com, Inc. Verification of shared display integrity in a desktop sharing system
US10542043B2 (en) 2012-03-08 2020-01-21 Salesforce.Com.Inc. System and method for enhancing trust for person-related data sources
US9135556B2 (en) 2012-03-08 2015-09-15 Salesforce.Com, Inc. System and method for fast evaluation of standing queries in conjunctive normal form
US9626523B2 (en) 2012-03-08 2017-04-18 Salesforce.Com, Inc. Systems and methods of audit trailing of data incorporation
US10991000B2 (en) 2012-03-09 2021-04-27 Salesforce.Com, Inc. Advertisement distribution system, method and computer program product using a multi-tenant on-demand database system
US8996674B2 (en) 2012-03-19 2015-03-31 Salesforce.Com, Inc. System, method and computer program product for SNMP based mobile device management
US20130254296A1 (en) 2012-03-23 2013-09-26 Salesforce.Com, Inc. Social network communities
US9558277B2 (en) 2012-04-04 2017-01-31 Salesforce.Com, Inc. Computer implemented methods and apparatus for identifying topical influence in an online social network
US9307006B2 (en) 2012-04-11 2016-04-05 Salesforce.Com, Inc. System and method for synchronizing data objects in a cloud based social networking environment
US9361468B2 (en) 2012-04-17 2016-06-07 Salesforce.Com, Inc. Method and system for granting access to secure data
US11010701B2 (en) 2012-04-30 2021-05-18 Salesforce.Com, Inc. System and method for managing sales meetings
US9262037B2 (en) 2012-04-30 2016-02-16 Salesforce.Com, Inc. Selective capture of incoming email messages for diagnostic analysis
US9753926B2 (en) 2012-04-30 2017-09-05 Salesforce.Com, Inc. Extracting a portion of a document, such as a web page
US9137172B2 (en) 2012-05-02 2015-09-15 Salesforce.Com, Inc. Managing multiple proxy servers in a multi-tenant application system environment
US8972336B2 (en) 2012-05-03 2015-03-03 Salesforce.Com, Inc. System and method for mapping source columns to target columns
US10621372B2 (en) 2012-05-03 2020-04-14 Salesforce.Com, Inc. Method and system for generating database access objects
US9197513B2 (en) 2012-05-03 2015-11-24 Salesforce.Com, Inc. Computer implemented methods and apparatus for representing a portion of a user interface as a network address
US8973106B2 (en) 2012-05-03 2015-03-03 Salesforce.Com, Inc. Computer implemented methods and apparatus for providing permissions to users in an on-demand service environment
US9110959B2 (en) 2012-05-03 2015-08-18 Salesforce.Com, Inc. System and method for geo-location data type searching in an on demand environment
US9252976B2 (en) 2012-05-09 2016-02-02 Salesforce.Com, Inc. Method and system for social media cooperation protocol
US9094359B2 (en) 2012-05-09 2015-07-28 Salesforce.Com, Inc. Method and system for inter-social network communications
US9177007B2 (en) 2012-05-14 2015-11-03 Salesforce.Com, Inc. Computer implemented methods and apparatus to interact with records using a publisher of an information feed of an online social network
US9264388B2 (en) 2012-05-18 2016-02-16 Salesforce.Com, Inc. Re-routing incoming email for a multi-tenant database system
US9916592B2 (en) 2012-05-18 2018-03-13 Oracle International Corporation Method and system for implementing implicit follow and automatic unfollow
US9237156B2 (en) 2012-05-21 2016-01-12 Salesforce.Com, Inc. Systems and methods for administrating access in an on-demand computing environment
EP2856345A1 (en) * 2012-05-24 2015-04-08 Telefonaktiebolaget LM Ericsson (PUBL) Meta model driven data export from a database and meta model driven data import to a database
US20130339399A1 (en) * 2012-06-18 2013-12-19 Dexter A. Dorris Dynamic Schema
US9378263B2 (en) 2012-06-19 2016-06-28 Salesforce.Com, Inc. Method and system for creating indices and loading key-value pairs for NoSQL databases
US9979587B2 (en) 2012-06-19 2018-05-22 Salesforce.Com, Inc. Method and system for semi-synchronously exporting data
US9479387B2 (en) 2012-06-22 2016-10-25 Salesforce.Com, Inc. Methods and systems for priority-based notifications for mobile devices
US9148438B2 (en) 2012-06-25 2015-09-29 Salesforce.Com, Inc. System, method and computer program product for publishing non-malicious third party content to a data feed
US20140006459A1 (en) * 2012-06-29 2014-01-02 Hewlett-Packard Development Company, L.P. Rule-based automated test data generation
US9766881B2 (en) 2012-07-02 2017-09-19 Salesforce.Com, Inc. Social project management system and marketplace
US10049131B2 (en) 2012-07-02 2018-08-14 Salesforce.Com, Inc. Computer implemented methods and apparatus for determining user access to custom metadata
US9658933B2 (en) 2012-07-02 2017-05-23 Salesforce.Com, Inc. Automatically modifying a test for a program on multiple electronic devices
US9715879B2 (en) 2012-07-02 2017-07-25 Salesforce.Com, Inc. Computer implemented methods and apparatus for selectively interacting with a server to build a local database for speech recognition at a device
US9241017B2 (en) 2012-07-03 2016-01-19 Salesforce.Com, Inc. Systems and methods for cross domain service component interaction
US9436701B2 (en) 2012-07-03 2016-09-06 Salesforce.Com, Inc. Methods and systems for regulating user engagement
US9628493B2 (en) 2012-07-03 2017-04-18 Salesforce.Com, Inc. Computer implemented methods and apparatus for managing permission sets and validating user assignments
US10447737B2 (en) 2012-07-03 2019-10-15 Salesforce.Com, Inc. Delegating administration rights using application containers
US9075766B2 (en) 2012-07-12 2015-07-07 Salesforce.Com, Inc. Computer implemented methods and apparatus for determining whether to continue relationships in an online social network
US10146955B2 (en) 2012-07-12 2018-12-04 Salesforce.Com, Inc. System and method for access control for data of heterogeneous origin
US10148603B2 (en) 2012-07-12 2018-12-04 Salesforce.Com, Inc. Methods and systems for generating electronic messages based upon dynamic content
US9245145B2 (en) 2012-07-16 2016-01-26 Salesforce.Com, Inc. Methods and systems for regulating database activity
US10097667B2 (en) 2012-07-16 2018-10-09 Salesforce.Com, Inc. Methods and systems for regulating database activity
US9268822B2 (en) 2012-07-18 2016-02-23 Salesforce.Com, Inc. System and method for determining organizational hierarchy from business card data
US9619458B2 (en) 2012-07-20 2017-04-11 Salesforce.Com, Inc. System and method for phrase matching with arbitrary text
US9659059B2 (en) 2012-07-20 2017-05-23 Salesforce.Com, Inc. Matching large sets of words
US9984126B2 (en) 2012-07-23 2018-05-29 Salesforce.Com, Inc. Identifying relevant feed items to display in a feed of an enterprise social networking system
US9367626B2 (en) 2012-07-23 2016-06-14 Salesforce.Com, Inc. Computer implemented methods and apparatus for implementing a topical-based highlights filter
US9569060B2 (en) 2012-07-25 2017-02-14 Salesforce.Com, Inc. Computer implemented methods and apparatus for composing and batch publishing feed items in a feed-based interaction context
US9886695B2 (en) 2012-07-27 2018-02-06 Salesforce.Com Inc. Sales force automation system and method for real-time traveling salesperson location tracking and account visit selection
US9432320B2 (en) 2012-07-30 2016-08-30 Salesforce.Com, Inc. System and method for providing an information-centric application
US8990958B2 (en) 2012-08-31 2015-03-24 Salesforce.Com, Inc. Systems and methods for content management in an on demand environment
US9990426B2 (en) 2012-08-31 2018-06-05 Salesforce.Com, Inc. Systems and methods for content management in an on-demand environment
US9747388B2 (en) 2012-08-31 2017-08-29 Salesforce.Com, Inc. Systems and methods for providing access to external content objects
US9830385B2 (en) 2012-09-04 2017-11-28 Salesforce.Com, Inc. Methods and apparatus for partitioning data
US9575871B2 (en) 2012-09-04 2017-02-21 Salesforce.Com, Inc. System and method for dynamically debugging data in a multi-tenant database environment
US9292589B2 (en) 2012-09-04 2016-03-22 Salesforce.Com, Inc. Identifying a topic for text using a database system
US9495342B2 (en) 2012-09-05 2016-11-15 Salesforce.Com, Inc. System and method for automatically inserting correct escaping functions for field references in a multi-tenant computing environment
US9495430B2 (en) 2012-09-06 2016-11-15 Salesforce.Com Systems and methods for batch processing of data records in an on-demand system
US9037611B2 (en) 2012-09-13 2015-05-19 Microsoft Technology Licensing, Llc Generation of a user interface based on a relational data model
US9898519B2 (en) 2012-09-14 2018-02-20 Salesforce.Com, Inc. Systems and methods of enriching CRM data with social data
US9553783B2 (en) 2012-09-14 2017-01-24 Salesforce.Com, Inc. Spam flood detection methodologies
US9253283B2 (en) 2012-09-14 2016-02-02 Salesforce.Com, Inc. Systems and methods for ghosting and providing proxies in a network feed
US9977788B2 (en) 2012-09-14 2018-05-22 Salesforce.Com, Inc. Methods and systems for managing files in an on-demand system
US9774555B2 (en) 2012-09-14 2017-09-26 Salesforce.Com, Inc. Computer implemented methods and apparatus for managing objectives in an organization in a social network environment
US9495403B2 (en) 2012-09-14 2016-11-15 Salesforce.Com, Inc. Method and system for cleaning data in a customer relationship management system
US20140082183A1 (en) 2012-09-14 2014-03-20 Salesforce.Com, Inc. Detection and handling of aggregated online content using characterizing signatures of content items
US10089638B2 (en) 2012-09-17 2018-10-02 Salesforce, Inc. Streamlined data entry paths using individual account context on a mobile device
US9495557B2 (en) 2012-09-18 2016-11-15 Salesforce.Com, Inc. Methods and systems for managing access to data in an on-demand system
US9626637B2 (en) 2012-09-18 2017-04-18 Salesforce.Com, Inc. Method and system for managing business deals
US9069858B1 (en) 2012-09-18 2015-06-30 Salesforce.Com, Inc. Systems and methods for identifying entity mentions referencing a same real-world entity
US9634977B2 (en) 2012-10-01 2017-04-25 Salesforce.Com, Inc. Systems and methods of redactive messaging
US9442778B2 (en) 2012-10-01 2016-09-13 Salesforce.Com, Inc. Method and system for secured inter-application communication in mobile devices
US9418003B2 (en) 2012-10-10 2016-08-16 Salesforce.Com, Inc. System, method and computer program product for conditionally performing garbage collection
US9076072B2 (en) 2012-10-11 2015-07-07 Salesforce.Com, Inc. System and method for web page rendering test automation suite
US9264391B2 (en) 2012-11-01 2016-02-16 Salesforce.Com, Inc. Computer implemented methods and apparatus for providing near real-time predicted engagement level feedback to a user composing a social media message
US9171169B2 (en) 2012-12-14 2015-10-27 Salesforce.Com, Inc. System and method for dynamic analysis wrapper objects for application dataflow
US9170908B2 (en) 2012-12-14 2015-10-27 Salesforce.Com, Inc. System and method for dynamic analysis bytecode injection for application dataflow
US9177137B2 (en) 2012-12-14 2015-11-03 Salesforce.Com, Inc. System and method for dynamic analysis tracking object associations for application dataflow
US9171150B2 (en) 2012-12-14 2015-10-27 Salesforce.Com, Inc. System and method for dynamic analysis tracking objects for application dataflow
US9703815B2 (en) 2012-12-17 2017-07-11 Salesforce.Com, Inc. Third party files in an on-demand database service
US10318924B2 (en) 2012-12-18 2019-06-11 salesforce.com,inc. User interface date selectors for historical reports
US9767133B2 (en) 2012-12-18 2017-09-19 Salesforce.Com, Inc. Systems and methods for alternative change processes for changes to data objects
US9195438B2 (en) 2012-12-19 2015-11-24 Salesforce.Com, Inc. System, method and computer program product for creating an application within a system
US9195854B2 (en) 2012-12-19 2015-11-24 Salesforce.Com, Inc. System and method for controlling the on and off state of features at runtime
US9116710B2 (en) * 2012-12-22 2015-08-25 Oracle International Corporation Dynamic user interface authoring
US9495079B2 (en) 2013-01-10 2016-11-15 Salesforce.Com, Inc. Persistent feeder component for displaying feed items received from information feeds of online social networks
US9778820B2 (en) 2013-01-18 2017-10-03 Salesforce.Com, Inc. Managing applications on a computing device
US10175873B2 (en) 2013-01-21 2019-01-08 Salesforce.Com, Inc. System and method for retrieving data based on scrolling velocity
US9607090B2 (en) 2013-01-21 2017-03-28 Salesforce.Com, Inc. Computer implemented methods and apparatus for recommending events
US9465828B2 (en) 2013-01-22 2016-10-11 Salesforce.Com, Inc. Computer implemented methods and apparatus for identifying similar labels using collaborative filtering
US10296562B2 (en) 2013-02-12 2019-05-21 Oath Inc. Dynamic generation of mobile web experience
US20140279629A1 (en) 2013-03-12 2014-09-18 Salesforce.Com, Inc. System and method for generating an organization profile based on skill information
US9864739B1 (en) * 2013-03-13 2018-01-09 EMC IP Holding Company LLC Automatic layout of graphical user interface screens from object data
US9501363B1 (en) 2013-03-15 2016-11-22 Nuodb, Inc. Distributed database management system with node failure detection
US10740323B1 (en) 2013-03-15 2020-08-11 Nuodb, Inc. Global uniqueness checking in distributed databases
US11176111B2 (en) 2013-03-15 2021-11-16 Nuodb, Inc. Distributed database management system with dynamically split B-tree indexes
US20140280329A1 (en) 2013-03-15 2014-09-18 Salesforce.Com, Inc. Systems and methods for cross-referencing feed items
US9823813B2 (en) 2013-03-15 2017-11-21 Salesforce.Com, Inc. Apparatus and methods for performing an action on a database record
US9483526B2 (en) 2013-03-21 2016-11-01 Salesforce.Com, Inc. Automatically subscribing users of an enterprise network to a record
US9400840B2 (en) 2013-03-25 2016-07-26 Salesforce.Com, Inc. Combining topic suggestions from different topic sources to assign to textual data items
US10430332B2 (en) 2013-03-25 2019-10-01 Salesforce.Com, Inc. System and method for performance tuning of garbage collection algorithms
US9203881B2 (en) 2013-03-25 2015-12-01 Salesforce.Com, Inc. Systems and methods of online social environment based translation of entity methods
US9965524B2 (en) 2013-04-03 2018-05-08 Salesforce.Com, Inc. Systems and methods for identifying anomalous data in large structured data sets and querying the data sets
US9659303B2 (en) 2013-04-03 2017-05-23 Salesforce.Com, Inc. System and method for handling gamification fraud
US9734187B2 (en) 2013-04-03 2017-08-15 Salesforce.Com, Inc. Atomic transactions in a NOSQL database
US9246892B2 (en) 2013-04-03 2016-01-26 Salesforce.Com, Inc. System, method and computer program product for managing access to systems, products, and data based on information associated with a physical location of a user
US9672575B2 (en) 2013-04-03 2017-06-06 Salesforce.Com, Inc. Capturing information regarding an interaction to a database
US10037348B2 (en) 2013-04-08 2018-07-31 Nuodb, Inc. Database management system with database hibernation and bursting
US10684752B2 (en) 2013-04-12 2020-06-16 Salesforce.Com, Inc. Computer implemented methods and apparatus for responding to actionable text patterns in a feed item
US9398156B2 (en) 2013-04-12 2016-07-19 Salesforce.Com, Inc. Computer implemented methods and apparatus for managing agent workload in a customer service environment
US10114873B2 (en) 2013-04-17 2018-10-30 Salesforce.Com, Inc. Computer implemented methods and apparatus for retrieving content related to a feed item of an online social network
US9830398B2 (en) 2013-04-17 2017-11-28 Salesforce.Com, Inc. System and method for associating dynamic objects with database records
US9542472B2 (en) 2013-04-19 2017-01-10 Salesforce.Com, Inc. Facilitating collaboration on a record among a group of users of a feed-based enterprise network
US9785560B2 (en) 2013-04-19 2017-10-10 Salesforce.Com, Inc. Scene-isolated internet application
US9641349B2 (en) 2013-04-22 2017-05-02 Salesforce.Com, Inc. Systems and methods of viral enablement of features by peer-to-peer connection
WO2014178743A1 (en) * 2013-04-29 2014-11-06 Grigorev Evgeny Aleksandrovich Method for managing a relational database
US9460474B2 (en) 2013-05-03 2016-10-04 Salesforce.Com, Inc. Providing access to a private resource in an enterprise social networking system
US9647922B2 (en) 2013-05-15 2017-05-09 Salesforce, Inc. Computer implemented methods and apparatus for trials onboarding
US10430608B2 (en) 2013-06-14 2019-10-01 Salesforce.Com, Inc. Systems and methods of automated compliance with data privacy laws
US9665270B2 (en) 2013-06-28 2017-05-30 Sap Se Layout algorithm for entity relation model diagram
US9892177B2 (en) 2013-07-11 2018-02-13 Salesforce.Com, Inc. Systems and methods for interacting with external content objects
US9467434B2 (en) 2013-07-15 2016-10-11 Salesforce.Com, Inc. Document rendering service
US9600155B2 (en) 2013-07-15 2017-03-21 Salesforce.Com, Inc. Computer implemented methods and apparatus for customizing a data interface in an on-demand service environment
US20150032729A1 (en) 2013-07-23 2015-01-29 Salesforce.Com, Inc. Matching snippets of search results to clusters of objects
US10147054B2 (en) 2013-07-26 2018-12-04 Salesforce.Com, Inc. Displaying content of an enterprise social network feed on a mobile device
US9798813B2 (en) 2013-07-31 2017-10-24 Salesforce.Com, Inc. Extensible person container
US9866537B2 (en) 2013-08-02 2018-01-09 Salesforce.Com, Inc. Systems and methods for long universal resource locator compression
US9426249B2 (en) 2013-08-05 2016-08-23 Salesforce.Com, Inc. Providing an improved web user interface framework for building web applications
US9524157B2 (en) 2013-08-06 2016-12-20 Salesforce.Com, Inc. Providing an improved web user interface framework for building web applications
US9244660B2 (en) 2013-08-13 2016-01-26 Salesforce.Com, Inc. Responsive self-service website template
US9921724B2 (en) 2013-08-15 2018-03-20 Salesforce.Com, Inc. Presenting data on a mobile device in communication with an on-demand database system
US10191939B2 (en) 2013-08-23 2019-01-29 Salesforce.Com, Inc. Systems and methods for social append
US9973550B2 (en) 2013-09-11 2018-05-15 Salesforce.Com, Inc. Systems and methods for applying intelligence and prioritization to calendared events
US9972015B2 (en) 2013-09-13 2018-05-15 Salesforce.Com, Inc. Methods and systems for facilitating customer support using a social post case feed and publisher
US11714923B2 (en) 2013-09-26 2023-08-01 Salesforce, Inc. Methods and systems for protecting data integrity
US9277432B2 (en) 2013-10-09 2016-03-01 Salesforce.Com, Inc. Systems and methods for automated on-device performance testing of mobile applications
US10902004B2 (en) 2013-10-16 2021-01-26 Salesforce.Com, Inc. Processing user-submitted updates based on user reliability scores
US10423907B2 (en) 2013-10-18 2019-09-24 Salesforce.Com, Inc. Geolocation based work data on a mobile device using a database system
US10021205B2 (en) 2013-10-22 2018-07-10 Salesforce.Com, Inc. Rules-based multipoint routing of real-time information using client-server architecture
US9665261B2 (en) 2013-10-28 2017-05-30 Salesforce.Com, Inc. Providing a user interface for customizing state transitions of panes in a bounding window
US9686348B2 (en) 2013-10-28 2017-06-20 Salesforce.Com, Inc. Inter-entity connection maps
US9152796B2 (en) 2013-10-30 2015-10-06 Salesforce.Com, Inc. Dynamic analysis interpreter modification for application dataflow
US10332129B2 (en) 2013-11-01 2019-06-25 Salesforce.Com, Inc. Methods and systems for processing a log file
US9529652B2 (en) 2013-11-07 2016-12-27 Salesforce.Com, Inc. Triaging computing systems
US10482070B2 (en) 2013-11-12 2019-11-19 Salesforce.Com, Inc. Form field creation systems and methods
US9893905B2 (en) 2013-11-13 2018-02-13 Salesforce.Com, Inc. Collaborative platform for teams with messaging and learning across groups
US10367649B2 (en) 2013-11-13 2019-07-30 Salesforce.Com, Inc. Smart scheduling and reporting for teams
US10146597B2 (en) 2013-11-14 2018-12-04 Salesforce.Com, Inc. Delegating handling of computing events of a mobile device application
US11157859B2 (en) 2013-11-15 2021-10-26 Salesforce.Com, Inc. Systems and methods for performance summary citations
US9798764B2 (en) 2013-12-20 2017-10-24 Salesforce.Com, Inc. Identifying recurring sequences of user interactions with an application
US10346882B2 (en) 2014-01-02 2019-07-09 Salesforce.Com, Inc. System and method for aggregating web clipping data
US10198490B2 (en) 2014-01-06 2019-02-05 Salesforce.Com, Inc. Systems and methods for interactively configuring multiple conditions and multiple actions in a workflow application
US10412016B2 (en) 2014-01-30 2019-09-10 Salesforce.Com, Inc. Streaming information based on available bandwidth
US9753703B2 (en) 2014-02-04 2017-09-05 Salesforce.Com, Inc. Generating identifiers for user interface elements of a web page of a web application
US10324922B2 (en) 2014-02-13 2019-06-18 Salesforce.Com, Inc. Providing a timeline of events regarding a database record
US10354264B2 (en) 2014-03-24 2019-07-16 Salesforce.Com, Inc. Contact recommendations based on purchase history
US10089286B2 (en) 2014-03-25 2018-10-02 Salesforce.Com, Inc. Systems and methods for collaborative editing of interactive walkthroughs of content
US9983943B2 (en) 2014-03-27 2018-05-29 Salesforce.Com, Inc. Reversing object manipulations in association with a walkthrough for an application or online service
US20150339408A1 (en) * 2014-05-23 2015-11-26 Bank Of America Corporation Universal transaction repository
US9519630B2 (en) 2014-06-30 2016-12-13 Salesforce.Com, Inc. Fast CSS parser engineered for runtime use
US10423611B2 (en) 2014-07-30 2019-09-24 Salesforce.Com, Inc. Advanced searching of relational data via a mobile device
US10339126B2 (en) 2014-08-11 2019-07-02 Salesforce.Com, Inc. Processing log files using a database system
US9509715B2 (en) 2014-08-21 2016-11-29 Salesforce.Com, Inc. Phishing and threat detection and prevention
US9774603B2 (en) 2014-08-22 2017-09-26 Salesforce.Com, Inc. Managing user permissions in relation to system events occurring in a database system
US9538377B2 (en) 2014-08-22 2017-01-03 Salesforce.Com, Inc. Switching between restricted-access websites on mobile user devices
US9865313B2 (en) 2014-08-22 2018-01-09 Salesforce.Com, Inc. System and method for dynamic caching
US9632852B2 (en) 2014-08-25 2017-04-25 Salesforce.Com, Inc. Detecting and managing flooding of multi-tenant message queues
US10296753B2 (en) 2014-08-26 2019-05-21 Salesforce.Com, Inc. Permission comparator
US10223367B2 (en) 2014-08-27 2019-03-05 Salesforce.Com, Inc. Distributed sorting of event log files
US9349101B2 (en) 2014-08-29 2016-05-24 Salesforce.Com, Inc. Systems and methods for partitioning sets of features for a bayesian classifier
US9805051B2 (en) 2014-09-10 2017-10-31 Salesforce.Com, Inc. Synchronization and strategic storage of multiple versions of a file
US20160078120A1 (en) 2014-09-11 2016-03-17 Salesforce.Com, Inc. Extracting and processing metrics from system generated events
US9619655B2 (en) 2014-09-12 2017-04-11 Salesforce.Com, Inc. Cloud-based security profiling, threat analysis and intelligence
US9417840B2 (en) 2014-09-16 2016-08-16 Salesforce.Com, Inc. In-memory buffer service
US9460442B2 (en) 2014-09-19 2016-10-04 Salesforce.Com, Inc. Sensor data gathering
US10204120B2 (en) 2014-09-19 2019-02-12 Salesforce.Com, Inc. Error checking database records
US10073679B2 (en) * 2014-09-26 2018-09-11 Oracle International Corporation Efficient and intuitive databinding for mobile applications
US9851968B2 (en) 2014-09-26 2017-12-26 Oracle International Corporation High performant iOS template based application build system
US9858174B2 (en) 2014-09-26 2018-01-02 Oracle International Corporation Updatable native mobile application for testing new features
US9826045B2 (en) 2014-09-26 2017-11-21 Oracle International Corporation Efficient means to test server generated applications on mobile device
US10290133B2 (en) 2014-09-26 2019-05-14 Oracle International Corporation High fidelity interactive screenshots for mobile applications
US10095797B2 (en) 2014-10-03 2018-10-09 Salesforce.Com, Inc. Suggesting actions for evaluating user performance in an enterprise social network
US10133795B2 (en) 2014-10-06 2018-11-20 Salesforce.Com, Inc. Personalized metric tracking
US10341279B2 (en) 2014-10-09 2019-07-02 Salesforce.Com, Inc. Action links
US9710127B2 (en) 2014-10-09 2017-07-18 Salesforce.Com, Inc. User-customizable permissions in a computing environment
US9716730B2 (en) 2014-10-10 2017-07-25 Salesforce.Com, Inc. System, method and computer program product for sharing content via links
US9462002B2 (en) 2014-10-10 2016-10-04 Salesforce.Com, Inc. System, method, and computer program product for sharing files based on user profile visibility
US10290127B2 (en) 2014-10-10 2019-05-14 Saleforce.com, inc. Responsive line display
US10049141B2 (en) 2014-10-10 2018-08-14 salesforce.com,inc. Declarative specification of visualization queries, display formats and bindings
US10120544B2 (en) 2014-10-10 2018-11-06 Salesforce.Com, Inc. Chart selection tooltip
US9756110B2 (en) 2014-10-10 2017-09-05 Salesforce.Com, Inc. Systems and methods for optimizing web page load time
US10592841B2 (en) 2014-10-10 2020-03-17 Salesforce.Com, Inc. Automatic clustering by topic and prioritizing online feed items
US9984166B2 (en) 2014-10-10 2018-05-29 Salesforce.Com, Inc. Systems and methods of de-duplicating similar news feed items
US20160259840A1 (en) * 2014-10-16 2016-09-08 Yahoo! Inc. Personalizing user interface (ui) elements
US9740743B2 (en) 2014-10-20 2017-08-22 Salesforce.Com, Inc. Matching objects using keys based on match rules
US10083488B2 (en) 2014-10-23 2018-09-25 Salesforce.Com, Inc. Purchasing contact information from an electronically displayed map
US10110533B2 (en) 2014-10-28 2018-10-23 Salesforce.Com, Inc. Identifying entities in email signature blocks
US9544307B2 (en) 2014-10-29 2017-01-10 Salesforce.Com, Inc. Providing a security mechanism on a mobile device
US10120848B2 (en) 2014-12-09 2018-11-06 Salesforce.Com, Inc. Methods and systems for applying responsive design to subframes on a web page
US9646064B2 (en) 2014-12-10 2017-05-09 Salesforce.Com, Inc. Template based software container
US9792008B2 (en) 2014-12-16 2017-10-17 Salesforce.Com, Inc. User interface with analytics overlay
US10552464B2 (en) 2014-12-18 2020-02-04 Salesforce.Com, Inc. Identifying relevant material for cases
US9805427B2 (en) 2015-01-29 2017-10-31 Salesforce.Com, Inc. Systems and methods of data mining to customize software trial demonstrations
US9785620B2 (en) 2015-02-05 2017-10-10 Salesforce.Com, Inc. Creating linked communications
WO2016130962A1 (en) 2015-02-13 2016-08-18 Abbott Laboratories Automated storage modules for diagnostic analyzer liquids and related systems and methods
US9965541B2 (en) 2015-02-24 2018-05-08 Salesforce.Com, Inc. Interest groups based on network feed items
US10175999B2 (en) 2015-02-25 2019-01-08 Salesforce.Com, Inc. Converting video into a walkthrough for an application or an online service
US10541811B2 (en) 2015-03-02 2020-01-21 Salesforce.Com, Inc. Systems and methods for securing data
US9275099B1 (en) 2015-03-09 2016-03-01 Vinyl Development LLC Source independent query language
US10374987B2 (en) 2015-03-11 2019-08-06 Salesforce.Com, Inc. Electronic notifications of users concurrently interacting with the same feed item of a social network feed
US10884869B2 (en) 2015-04-16 2021-01-05 Nuodb, Inc. Backup and restore in a distributed database utilizing consistent database snapshots
US9940411B2 (en) 2015-04-17 2018-04-10 Salesforce.Com, Inc. Systems and methods of bypassing suppression of event bubbling for popup controls
US10031730B2 (en) 2015-04-22 2018-07-24 Salesforce.Com, Inc. Systems and methods of implementing extensible browser executable components
US10353905B2 (en) 2015-04-24 2019-07-16 Salesforce.Com, Inc. Identifying entities in semi-structured content
US10452244B2 (en) 2015-05-04 2019-10-22 Salesforce.Com, Inc. Systems and methods of optimizing delivery of form factor specific content
US10397309B2 (en) 2015-05-13 2019-08-27 Salesforce.Com, Inc. Systems and methods of implementing tracking of resource usage for a cloud-based system
US10296717B2 (en) 2015-05-14 2019-05-21 Salesforce.Com, Inc. Automated prescription workflow for device management
JP6453707B2 (en) * 2015-05-15 2019-01-16 株式会社東芝 Power plant system and power plant system server
US10235476B2 (en) 2015-05-28 2019-03-19 Salesforce.Com, Inc. Matching objects using match rules and lookup key
US10067969B2 (en) 2015-05-29 2018-09-04 Nuodb, Inc. Table partitioning within distributed database systems
US10180954B2 (en) 2015-05-29 2019-01-15 Nuodb, Inc. Disconnected operation within distributed database systems
US10083236B2 (en) 2015-05-29 2018-09-25 Salesforce.Com, Inc. Database searching using a graph of nodes and edges formed using log node pairs
US10210218B2 (en) 2015-06-16 2019-02-19 Salesforce.Com, Inc. Processing a file to generate a recommendation using a database system
US9773050B2 (en) 2015-06-19 2017-09-26 Salesforce.Com, Inc. User interface for aggregated task data
US10296440B2 (en) 2015-06-24 2019-05-21 Salesforce.Com, Inc. Multi-tenant aware debugging methods and systems
US10909575B2 (en) 2015-06-25 2021-02-02 Salesforce.Com, Inc. Account recommendations for user account sets
US10715626B2 (en) 2015-06-26 2020-07-14 Salesforce.Com, Inc. Account routing to user account sets
US9979689B2 (en) 2015-06-29 2018-05-22 Salesforce.Com, Inc. Authoring tool for creating new electronic posts
US10152489B2 (en) 2015-07-24 2018-12-11 Salesforce.Com, Inc. Synchronize collaboration entity files
US9948743B2 (en) 2015-07-28 2018-04-17 Salesforce.Com, Inc. Managing memory usage in server systems
US9811444B2 (en) 2015-08-04 2017-11-07 Salesforce.Com, Inc. Testing software enhancements in database applications
US11102313B2 (en) 2015-08-10 2021-08-24 Oracle International Corporation Transactional autosave with local and remote lifecycles
US9990223B2 (en) 2015-08-10 2018-06-05 Salesforce.Com, Inc. Systems and methods of improving parallel functional processing
US10582001B2 (en) 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
US10157196B2 (en) 2015-08-12 2018-12-18 Salesforce.Com, Inc. Intra-platform data migration
US10419514B2 (en) 2015-08-14 2019-09-17 Oracle International Corporation Discovery of federated logins
US10452497B2 (en) 2015-08-14 2019-10-22 Oracle International Corporation Restoration of UI state in transactional systems
US10013668B2 (en) 2015-08-14 2018-07-03 Oracle International Corporation Secure storage of enterprise certificates for cloud services
US9420104B1 (en) 2015-08-18 2016-08-16 Salesforce.Com, Inc. Systems and methods for an omni-channel routing broker
US9710637B2 (en) 2015-08-28 2017-07-18 Salesforce.Com, Inc. Unicode-based image generation and testing
US10235637B2 (en) 2015-08-28 2019-03-19 Salesforce.Com, Inc. Generating feature vectors from RDF graphs
US9619642B2 (en) 2015-08-28 2017-04-11 Salesforce.Com, Inc. Unicode-based image generation and testing
US10515326B2 (en) 2015-08-28 2019-12-24 Exacttarget, Inc. Database systems and related queue management methods
US9710638B2 (en) 2015-08-28 2017-07-18 Salesforce.Com, Inc. Unicode-based image generation and testing
US10049337B2 (en) 2015-08-31 2018-08-14 Salesforce.Com, Inc. Quantitative metrics for assessing status of a platform architecture for cloud computing
US9767040B2 (en) 2015-08-31 2017-09-19 Salesforce.Com, Inc. System and method for generating and storing real-time analytics metric data using an in memory buffer service consumer framework
US10372421B2 (en) 2015-08-31 2019-08-06 Salesforce.Com, Inc. Platform provider architecture creation utilizing platform architecture type unit definitions
US10572820B2 (en) 2015-09-02 2020-02-25 Salesforce.Com, Inc. Evaluating personalized recommendation models
US10198484B2 (en) 2015-09-10 2019-02-05 Salesforce.Com, Inc. Displaying reduced and detailed visual representations of calendar items based on mouse cursor movement
US10430765B2 (en) 2015-09-11 2019-10-01 Salesforce.Com, Inc. Processing keyboard input to perform events in relation to calendar items using a web browser-based application or online service
US10387439B2 (en) 2015-09-11 2019-08-20 Salesforce.Com, Inc. Configuring service consoles based on service feature templates using a database system
US10592474B2 (en) 2015-09-11 2020-03-17 Salesforce.Com, Inc. Processing log files using a database system
US10296661B2 (en) 2015-09-11 2019-05-21 Salesforce.Com, Inc. Processing log files using a database system
US10261890B2 (en) 2015-09-14 2019-04-16 Salesforce.Com, Inc. Methods and systems for executing tests using grouped/filtered test classes during testing of an application
US10114737B2 (en) 2015-09-14 2018-10-30 Salesforce.Com, Inc. Methods and systems for computing code coverage using grouped/filtered source classes during testing of an application
US10146915B2 (en) 2015-09-14 2018-12-04 Salesforce.Com, Inc. Publication of collaborative file to library
US9905034B2 (en) 2015-09-14 2018-02-27 Salesforce.Com, Inc. Secure isolation of scripting from native graphic rendering of animated data visualizations
US10115213B2 (en) 2015-09-15 2018-10-30 Salesforce, Inc. Recursive cell-based hierarchy for data visualizations
US9632849B2 (en) 2015-09-15 2017-04-25 Salesforce.Com, Inc. System having in-memory buffer service, temporary events file storage system and events file uploader service
US10191768B2 (en) 2015-09-16 2019-01-29 Salesforce.Com, Inc. Providing strong ordering in multi-stage streaming processing
US10756991B2 (en) 2015-09-17 2020-08-25 Salesforce.Com, Inc. Simplified entity engagement automation
US10324773B2 (en) 2015-09-17 2019-06-18 Salesforce.Com, Inc. Processing events generated by internet of things (IoT)
US10146592B2 (en) 2015-09-18 2018-12-04 Salesforce.Com, Inc. Managing resource allocation in a stream processing framework
US10089368B2 (en) 2015-09-18 2018-10-02 Salesforce, Inc. Systems and methods for making visual data representations actionable
US9842000B2 (en) 2015-09-18 2017-12-12 Salesforce.Com, Inc. Managing processing of long tail task sequences in a stream processing framework
US9946593B2 (en) 2015-09-18 2018-04-17 Salesforce.Com, Inc. Recovery strategy for a stream processing system
US9965330B2 (en) 2015-09-18 2018-05-08 Salesforce.Com, Inc. Maintaining throughput of a stream processing framework while increasing processing load
US10325107B2 (en) 2015-09-23 2019-06-18 Salesforce.Com, Inc. Systems and methods for securing data using encryption
US9977797B2 (en) 2015-09-28 2018-05-22 Salesforce.Com, Inc. Combined directed graphs
US10331689B2 (en) 2015-10-01 2019-06-25 Salesforce.Com, Inc. Methods and apparatus for presenting search results according to a priority order determined by user activity
US11120015B2 (en) 2015-10-05 2021-09-14 Salesforce.Com, Inc. Importing data using a mobile computing device
US10528211B2 (en) 2015-10-08 2020-01-07 Salesforce.Com, Inc. Computing systems and processes for simultaneous co-development of dashboard interfaces
US10389774B2 (en) 2015-10-09 2019-08-20 Salesforce.Com, Inc. System for broadcasting events
US10140385B2 (en) * 2015-10-14 2018-11-27 Successfactors, Inc. Configuring a presentation of data based on a context
US10582012B2 (en) 2015-10-16 2020-03-03 Oracle International Corporation Adaptive data transfer optimization
US10915299B2 (en) 2015-10-16 2021-02-09 Salesforce.Com, Inc. Automatically matching start criteria and completion criteria of a walkthrough for an application or online service
US10324991B2 (en) 2015-10-30 2019-06-18 Salesforce.Com, Inc. Search promotion systems and method
US10203939B2 (en) * 2015-10-30 2019-02-12 Sap Se Method and system for parameter model framework
US10936611B2 (en) 2015-10-30 2021-03-02 Salesforce.Com, Inc. Search promotion systems and method
US10223389B2 (en) 2015-11-03 2019-03-05 Salesforce.Com, Inc. System and method for analyzing complex metadata
US9766965B2 (en) 2015-11-25 2017-09-19 Salesforce.Com, Inc. System and method for monitoring and detecting faulty storage devices
US11481440B2 (en) 2015-11-30 2022-10-25 Salesforce.Com, Inc. System and method for processing metadata to determine an object sequence
US10083024B2 (en) 2015-12-01 2018-09-25 Salesforce.Com, Inc. Application aware virtual patching
US10187403B2 (en) 2015-12-02 2019-01-22 Salesforce.Com, Inc. False positive detection reduction system for network-based attacks
US10210276B2 (en) 2015-12-28 2019-02-19 Salesforce.Com, Inc. Managing information displayed in web pages
US10776374B2 (en) 2015-12-28 2020-09-15 Salesforce.Com, Inc. Self-monitoring time series database system based on monitored rate of change
US10776506B2 (en) 2015-12-28 2020-09-15 Salesforce.Com, Inc. Self-monitoring time series database system that enforces usage policies
US10776318B2 (en) 2015-12-28 2020-09-15 Salesforce.Com, Inc. Self-monitoring time series database system
US10949426B2 (en) 2015-12-28 2021-03-16 Salesforce.Com, Inc. Annotating time series data points with alert information
US11244238B2 (en) 2018-01-29 2022-02-08 Salesforce.Com, Inc. Search query result set count estimation
US10402367B2 (en) 2016-01-13 2019-09-03 Salesforce.Com, Inc. Batch job processing using a database system
US9965634B2 (en) 2016-01-15 2018-05-08 Salesforce.Com, Inc. Space-efficient storage of encrypted data
US10459597B2 (en) 2016-02-03 2019-10-29 Salesforce.Com, Inc. System and method to navigate 3D data on mobile and desktop
US10909118B2 (en) 2016-02-04 2021-02-02 Salesforce.Com, Inc. Cache optimization for missing data
US10437635B2 (en) 2016-02-10 2019-10-08 Salesforce.Com, Inc. Throttling events in entity lifecycle management
US10713588B2 (en) 2016-02-23 2020-07-14 Salesforce.Com, Inc. Data analytics systems and methods with personalized sentiment models
US10212057B2 (en) 2016-02-23 2019-02-19 Salesforce.Com Inc. Disparate monitoring for IoT
US9864867B2 (en) 2016-02-23 2018-01-09 Salesforce.Com, Inc. Secure persistent communication between related domains using cookies
US10116502B2 (en) 2016-02-23 2018-10-30 Salesforce.Com, Inc. System and method for providing configuration settings to services in a cloud infrastructure
US10262032B2 (en) 2016-02-24 2019-04-16 Salesforce.Com, Inc. Cache based efficient access scheduling for super scaled stream processing systems
US10901996B2 (en) 2016-02-24 2021-01-26 Salesforce.Com, Inc. Optimized subset processing for de-duplication
US10409650B2 (en) 2016-02-24 2019-09-10 Salesforce.Com, Inc. Efficient access scheduling for super scaled stream processing systems
US10152497B2 (en) 2016-02-24 2018-12-11 Salesforce.Com, Inc. Bulk deduplication detection
AT518298B1 (en) * 2016-03-07 2020-01-15 Avl List Gmbh Method for creating and updating a remote instance of a screen view
US9846635B2 (en) 2016-03-18 2017-12-19 Salesforce.Com, Inc. Making production data available for testing in a non-production environment
US10956450B2 (en) 2016-03-28 2021-03-23 Salesforce.Com, Inc. Dense subset clustering
US10949395B2 (en) 2016-03-30 2021-03-16 Salesforce.Com, Inc. Cross objects de-duplication
WO2017165914A1 (en) * 2016-03-31 2017-10-05 Wisetech Global Limited "methods and systems for database optimisation"
US10203889B2 (en) 2016-04-01 2019-02-12 Salesforce.Com, Inc. Multi-tier file system with transparent holes
US10678757B2 (en) 2016-04-08 2020-06-09 Salesforce.Com, Inc. Reliable generation of a unique key in a distributed system
US10713376B2 (en) 2016-04-14 2020-07-14 Salesforce.Com, Inc. Fine grain security for analytic data sets
US10057206B2 (en) 2016-04-18 2018-08-21 Salesforce.Com, Inc. Combining updates of a social network feed
US10235081B2 (en) 2016-04-28 2019-03-19 Salesforce.Com, Inc Provisioning timestamp-based storage units for time series data
US10423799B2 (en) 2016-04-28 2019-09-24 Salesforce.Com, Inc. Methods and apparatus for scalable metrics gathering from secure data centers
US10614393B2 (en) 2016-04-29 2020-04-07 Salesforce.Com, Inc. Associating job responsibilities with job titles
US10567311B2 (en) 2016-04-29 2020-02-18 Salesforce.Com, Inc. Publisher and share action integration in a user interface for automated messaging
US10282361B2 (en) 2016-04-29 2019-05-07 Salesforce.Com, Inc. Transforming time series data points from concurrent processes
US10282352B2 (en) 2016-05-03 2019-05-07 Salesforce.Com, Inc. Computing systems and processes for improved database junction relationships
US11188542B2 (en) 2016-05-03 2021-11-30 Salesforce.Com, Inc. Conditional processing based on data-driven filtering of records
US10178125B2 (en) 2016-05-03 2019-01-08 Salesforce.Com, Inc. Stateless prevention of login-based cross-site request forgery
US10296563B2 (en) 2016-05-09 2019-05-21 Salesforce.Com, Inc. Automated testing of perceptible web page elements
US9838377B1 (en) 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US10454940B2 (en) 2016-05-11 2019-10-22 Oracle International Corporation Identity cloud service authorization model
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US10581820B2 (en) 2016-05-11 2020-03-03 Oracle International Corporation Key generation and rollover
US10135847B2 (en) 2016-05-18 2018-11-20 Salesforce.Com, Inc. Reverse shell network intrusion detection
US10108733B2 (en) 2016-05-26 2018-10-23 Salesforce.Com, Inc. Methods and systems for providing customized web pages to users of a website
US10642851B2 (en) 2016-05-26 2020-05-05 Salesforce.Com, Inc. Caching time series data
US10346451B2 (en) 2016-05-27 2019-07-09 Salesforce.Com, Inc. Identifying conversations in unstructured media
US10007607B2 (en) 2016-05-31 2018-06-26 Salesforce.Com, Inc. Invalidation and refresh of multi-tier distributed caches
US10102133B2 (en) 2016-05-31 2018-10-16 Salesforce.Com, Inc. Reducing latency by caching derived data at an edge server
US10140456B2 (en) 2016-06-08 2018-11-27 Salesforce.Com, Inc. Runtime analysis of software security vulnerabilities
US10380347B2 (en) 2016-06-08 2019-08-13 Salesforce.Com., Inc. Hierarchical runtime analysis framework for defining vulnerabilities
US10122661B2 (en) 2016-06-10 2018-11-06 Salesforce.Com, Inc. Messaging systems and methods that employ a blockchain to ensure integrity of message delivery
US10204345B2 (en) 2016-06-28 2019-02-12 Salesforce.Com, Inc. Driving customer service interactions on social media
US11227005B2 (en) 2016-06-30 2022-01-18 Salesforce.Com, Inc. Gesture-based database actions
US10250716B2 (en) 2016-06-30 2019-04-02 Salesforce.Com, Inc. Priority-driven boxcarring of action requests from component-driven cloud applications
US10250715B2 (en) 2016-06-30 2019-04-02 Salesforce.Com, Inc. Dynamic adjustment of boxcarring of action requests from component-driven cloud applications
US10268772B2 (en) 2016-07-01 2019-04-23 Salesforce.Com, Inc. System and method for encouraging user engagement during a presentation
US10685004B2 (en) 2016-07-11 2020-06-16 Salesforce.Com, Inc. Multiple feature hash map to enable feature selection and efficient memory usage
US10719428B2 (en) 2016-07-20 2020-07-21 Salesforce.Com, Inc. Automation framework for testing user interface applications
US10237733B2 (en) 2016-07-20 2019-03-19 Salesforce.Com, Inc Behavioral authentication
US11222010B2 (en) 2016-07-21 2022-01-11 Salesforce.Com, Inc. Value transformations that enable data services to update data objects
US11138222B2 (en) 2016-07-22 2021-10-05 Salesforce.Com, Inc. Enabling multiple third-party data services to update custom data objects
US11138176B2 (en) 2016-07-21 2021-10-05 salfesforce.com, inc. Enabling a third-party data service to update custom data objects
US10372934B2 (en) 2016-07-21 2019-08-06 Salesforce.Com, Inc. Access controlled queries against user data in a datastore
US10693922B2 (en) 2016-07-25 2020-06-23 Salesforce.Com, Inc. Multi-channel customer engagement platform
US10410107B2 (en) 2016-07-26 2019-09-10 Salesforce.Com, Inc. Natural language platform for database system
US10432697B2 (en) 2016-07-26 2019-10-01 Salesforce.Com, Inc. Method and system for re-deploying metadata and associated data from a source organization to a destination organization
US10001983B2 (en) 2016-07-27 2018-06-19 Salesforce.Com, Inc. Rolling version update deployment utilizing dynamic node allocation
US10412158B2 (en) 2016-07-27 2019-09-10 Salesforce.Com, Inc. Dynamic allocation of stateful nodes for healing and load balancing
US10241890B2 (en) 2016-07-28 2019-03-26 Salesforce.Com, Inc. Hybrid code modification in intermediate language for software application
US10505941B2 (en) 2016-08-05 2019-12-10 Oracle International Corporation Virtual directory system for LDAP to SCIM proxy service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10516672B2 (en) 2016-08-05 2019-12-24 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US10530578B2 (en) 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10263947B2 (en) 2016-08-05 2019-04-16 Oracle International Corporation LDAP to SCIM proxy service
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US11144653B2 (en) 2016-08-22 2021-10-12 Accenture Global Solutions Limited Network communication stack for database control and resource planning
US10409816B2 (en) 2016-08-23 2019-09-10 Salesforce.Com, Inc. Accessing and displaying shared data
US10164859B2 (en) 2016-08-29 2018-12-25 Salesforce.Com, Inc. Methods and apparatus to perform elastic monitoring of software applications using embedded watchdogs
US10482141B2 (en) 2016-08-30 2019-11-19 Salesforce.Com, Inc. Extensible moderation framework
US10942903B2 (en) 2016-08-30 2021-03-09 Salesforce.Com, Inc. Rate limiting in a moderation framework of a database system
US10346370B2 (en) 2016-08-30 2019-07-09 Salesforce.Com, Inc. Rate limiting in a moderation framework of a database system
US10417210B2 (en) 2016-08-30 2019-09-17 Salesforce.Com, Inc. Multi-token matching scheme
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10268574B2 (en) 2016-09-01 2019-04-23 Salesforce.Com, Inc. Deployment testing for infrastructure delivery automation
US10558634B2 (en) 2016-09-06 2020-02-11 Salesforce.Com, Inc. Multi-user probabalistic array
US10896192B2 (en) 2016-09-08 2021-01-19 Salesforce.Com, Inc. Allowing in-line edit to data table of linked data of a data store
US10915519B2 (en) 2016-09-09 2021-02-09 Salesforce.Com, Inc. Processing offline updates to records of a database system
US11232223B2 (en) 2016-09-13 2022-01-25 Salesforce.Com, Inc. Providing web application components within remote systems
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10515082B2 (en) * 2016-09-14 2019-12-24 Salesforce.Com, Inc. Identifying frequent item sets
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10511589B2 (en) 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
US10616224B2 (en) 2016-09-16 2020-04-07 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10484243B2 (en) 2016-09-16 2019-11-19 Oracle International Corporation Application management for a multi-tenant identity cloud service
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
US10778718B2 (en) 2016-09-16 2020-09-15 Salesforce.Com, Inc. Phishing detection and prevention
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10637861B2 (en) 2016-09-16 2020-04-28 Salesforce.Com, Inc. Validating state change requests
US10341354B2 (en) 2016-09-16 2019-07-02 Oracle International Corporation Distributed high availability agent architecture
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
US10635659B2 (en) 2016-09-19 2020-04-28 Salesforce.Com, Inc. Mobile application bundled with metadata database
US10956503B2 (en) 2016-09-20 2021-03-23 Salesforce.Com, Inc. Suggesting query items based on frequent item sets
US10671626B2 (en) 2016-09-27 2020-06-02 Salesforce.Com, Inc. Identity consolidation in heterogeneous data environment
US10642474B2 (en) 2016-09-28 2020-05-05 Salesforce.Com, Inc. Processing keyboard input to cause movement of items in a user interface of a web browser-based application
US10572031B2 (en) 2016-09-28 2020-02-25 Salesforce.Com, Inc. Processing keyboard input to cause re-sizing of items in a user interface of a web browser-based application
US10380094B2 (en) 2016-09-30 2019-08-13 Salesforce.Com, Inc. Custom multi-tenant non-relational platform objects
US10713604B2 (en) 2016-09-30 2020-07-14 Salesforce.Com, Inc. Bi-directional notification framework
US10275281B2 (en) 2016-09-30 2019-04-30 Salesforce.Com, Inc. Scheduling jobs for processing log files using a database system
US10223136B2 (en) 2016-09-30 2019-03-05 Salesforce.Com, Inc. Generating content objects using an integrated development environment
US10521406B2 (en) 2016-09-30 2019-12-31 Salesforce.Com, Inc. Merging along object hierarchies
US10613709B2 (en) 2016-09-30 2020-04-07 Salesforce.Com, Inc. Leveraging and managing assessment environments in an assessment hub
US10984665B2 (en) 2016-09-30 2021-04-20 Salesforce.Com, Inc. Customizing sequences of content objects
US10212189B2 (en) 2016-10-11 2019-02-19 Salesforce.Com, Inc. Authentication of client devices using modified images
US10275298B2 (en) 2016-10-12 2019-04-30 Salesforce.Com, Inc. Alerting system having a network of stateful transformation nodes
US10778559B2 (en) 2016-10-17 2020-09-15 Salesforce.Com, Inc. Facilitating simulation of network conditions in a hybrid application environment
US10642872B2 (en) 2016-10-21 2020-05-05 Salesforce.Com, Inc. System for optimizing content queries
US10824620B2 (en) 2016-10-21 2020-11-03 Salesforce.Com, Inc. Compiling a relational datastore query from a user input
US10509843B2 (en) 2016-10-28 2019-12-17 Salesforce.Com, Inc. Systems and methods for managing tabs in web applications
US10447672B2 (en) 2016-11-01 2019-10-15 Salesforce.Com, Inc. Facilitating encrypted persistent storage in browsers
US10733003B2 (en) 2016-11-03 2020-08-04 Salesforce.Com, Inc. Cost efficient and on-demand pool of running instances in a virtual machine environment
US10423461B2 (en) 2016-11-03 2019-09-24 Salesforce.Com, Inc. Single table multiple thread-safe resource pools
US10558626B2 (en) 2016-11-07 2020-02-11 Salesforce.Com, Inc. Merging and unmerging objects using graphical representation
US10666722B2 (en) 2016-11-22 2020-05-26 Salesforce.Com, Inc. Message delivery in a distributed server environment
US9980112B1 (en) 2016-11-23 2018-05-22 Salesforce.Com, Inc. System and method for coordinating an emergency response at a facility
US10726039B2 (en) 2016-11-29 2020-07-28 Salesforce.Com, Inc. Systems and methods for updating database indexes
US10318330B2 (en) 2016-11-30 2019-06-11 Salesforce.Com, Inc. Data-persisting temporary virtual machine environments
US10116660B2 (en) 2016-11-30 2018-10-30 Salesforce.Com, Inc. Security modes for a component-based web security model
US10129258B2 (en) 2016-11-30 2018-11-13 Salesforce.Com, Inc. Secure component-based web applications
US10482086B2 (en) 2016-11-30 2019-11-19 Salesforce.Com, Inc. Identifying similar database queries
US10552744B2 (en) 2016-12-02 2020-02-04 Salesforce.Com, Inc. Rule set induction
US10628384B2 (en) 2016-12-09 2020-04-21 Salesforce.Com, Inc. Optimized match keys for fields with prefix structure
US10891263B2 (en) 2016-12-09 2021-01-12 Salesforce.Com, Inc. Systems and methods for providing database updates for data visualization
US10817549B2 (en) 2016-12-09 2020-10-27 Salesforce.Com, Inc. Augmenting match indices
US10817465B2 (en) 2016-12-09 2020-10-27 Salesforce.Com, Inc. Match index creation
US10592307B2 (en) 2016-12-13 2020-03-17 Salesforce.Com, Inc. Multi user threaded executor
US10540369B2 (en) 2016-12-19 2020-01-21 Salesforce.Com, Inc. Org sync suspend and resume data sync
US10237336B2 (en) 2016-12-22 2019-03-19 Salesforce.Com, Inc. Methods and systems for protecting computing resources
US10496673B2 (en) 2016-12-27 2019-12-03 Salesforce.Com, Inc. Org sync async subscribe emails
US10733613B2 (en) 2017-01-04 2020-08-04 Salesforce.Com, Inc. Methods and systems for performing data assessment
US10387388B2 (en) 2017-01-04 2019-08-20 Salesforce.Com, Inc. Database schema for efficient data assessment
US10373046B2 (en) 2017-01-06 2019-08-06 Salesforce.Com, Inc. Client-server hybrid AI scores for customized actions
US10146581B2 (en) 2017-01-13 2018-12-04 Salesforce.Com, Inc. Dynamically configuring a process based on environmental characteristics monitored by a mobile device
US10397249B2 (en) 2017-01-18 2019-08-27 Salesforce.Com, Inc. Intrusion detection based on login attempts
US10282175B2 (en) * 2017-01-24 2019-05-07 Salesforce.Com, Inc. Methods and systems for performing a partial build
US10628590B2 (en) 2017-01-24 2020-04-21 Salesforce.Com, Inc. Application security assessment
US11190344B2 (en) 2017-01-25 2021-11-30 Salesforce.Com, Inc. Secure user authentication based on multiple asymmetric cryptography key pairs
US10650028B2 (en) 2017-01-25 2020-05-12 Salesforce.Com, Inc. Relational database instruction validation
US10411907B2 (en) 2017-01-25 2019-09-10 Salesforce.Com, Inc. Secure remote user authentication leveraging public key cryptography and key splitting
US10356088B1 (en) 2017-01-25 2019-07-16 Salesforce.Com, Inc. User authentication based on multiple asymmetric cryptography key pairs
US10545962B2 (en) 2017-01-25 2020-01-28 Salesforce.Com, Inc. Relational database instruction validation
US10637658B2 (en) 2017-01-25 2020-04-28 Salesforce.Com, Inc. Secure internal user authentication leveraging public key cryptography and key splitting
US11436223B2 (en) 2017-01-30 2022-09-06 Salesforce, Inc. Query pin planner
US10904267B2 (en) 2017-02-03 2021-01-26 Salesforce.Com, Inc. Non-intrusive threat detection in a computer network
US10719555B2 (en) 2017-02-07 2020-07-21 Salesforce.Com, Inc. System and method in a database system for sharing a data item with an entity in another tenant domain
US10735426B2 (en) 2017-02-09 2020-08-04 Salesforce.Com, Inc. Secure asynchronous retrieval of data behind a firewall
US10891627B2 (en) 2017-02-15 2021-01-12 Salesforce.Com, Inc. Methods and apparatus for using artificial intelligence entities to provide information to an end user
US10783188B2 (en) 2017-02-17 2020-09-22 Salesforce.Com, Inc. Intelligent embedded self-help service
US10136044B2 (en) 2017-02-22 2018-11-20 Salesforce.Com, Inc. Method, apparatus, and system for communicating information of selected objects of interest displayed in a video-chat application
US10459941B2 (en) 2017-02-22 2019-10-29 Salesforce.Com, Inc. Providing context-specific content relating to a displayed personal information management (PIM) message for display in a user interface of a PIM application
US10409697B2 (en) 2017-02-23 2019-09-10 Salesforce.Com, Inc. Automated self-healing database system and method for implementing the same
US10880255B2 (en) 2017-02-27 2020-12-29 Salesforce.Com, Inc. System and method in a social networking system for filtering updates in an information feed
US10178424B2 (en) 2017-02-27 2019-01-08 Salesforce.Com, Inc. Content delivery system and method for providing customized channels and content to terminal devices
US10469438B2 (en) 2017-02-27 2019-11-05 Salesforce.Com, Inc. Facilitating integration of collaborative communication platform and document collaboration tool
US10467292B2 (en) 2017-02-28 2019-11-05 Salesforce.Com, Inc. Suggesting query items based on database fields
US10372600B2 (en) 2017-03-01 2019-08-06 Salesforce.Com, Inc. Systems and methods for automated web performance testing for cloud apps in use-case scenarios
US10169312B2 (en) 2017-03-08 2019-01-01 Salesforce.Com, Inc. System and method in a social networking system for displaying updates in an information feed
US10579368B2 (en) 2017-03-10 2020-03-03 Salesforce.Com, Inc. Blockchain version control systems
US10417183B2 (en) 2017-03-14 2019-09-17 Salesforce.Com, Inc. Database and file structure configurations for managing text strings to be provided by a graphical user interface
US11049025B2 (en) 2017-03-15 2021-06-29 Salesforce.Com, Inc. Systems and methods for compute node management protocols
US10332289B2 (en) 2017-03-15 2019-06-25 Salesforce.Com, Inc. Methods and systems for providing a visual feedback representation of performance metrics
US10803080B2 (en) 2017-03-21 2020-10-13 Salesforce.Com, Inc. Thread record provider
US10261836B2 (en) 2017-03-21 2019-04-16 Oracle International Corporation Dynamic dispatching of workloads spanning heterogeneous services
US10810230B2 (en) 2017-03-21 2020-10-20 Salesforce.Com, Inc. Thread record provider
US10860377B2 (en) 2017-03-22 2020-12-08 Salesforce.Com, Inc. Technologies for identifying thread memory allocation
US10817815B2 (en) 2017-03-27 2020-10-27 Salesforce.Com, Inc. Providing attendees from a different organization with supplemental information related to a calendar event
US10474673B2 (en) 2017-03-28 2019-11-12 Salesforce.Com, Inc. Methods and apparatus for performing machine learning to improve capabilities of an artificial intelligence (AI) entity used for online communications
US10891298B2 (en) 2017-03-28 2021-01-12 Salesforce.Com, Inc. Systems and methods for package component visualizations
US10594815B2 (en) 2017-04-03 2020-03-17 Salesforce.Com, Inc. Systems and methods for electronic notification broadcasts
US10977236B2 (en) 2017-04-03 2021-04-13 Salesforce.Com, Inc. Dynamic recommendation methods and systems for database changes
US10587401B2 (en) 2017-04-03 2020-03-10 Salesforce.Com, Inc. Secure handling of customer-supplied encryption secrets
US10452462B2 (en) 2017-04-07 2019-10-22 Salesforce.Com, Inc. Parsing complex log entry types
US10664455B2 (en) 2017-04-07 2020-05-26 Salesforce.Com, Inc. Complex log entry type schemas
US10803465B2 (en) 2017-04-10 2020-10-13 Salesforce.Com, Inc. Enabling hierarchical structure representation of entities
US10423522B2 (en) 2017-04-12 2019-09-24 Salesforce.Com, Inc. System and method for detecting an error in software
US10776250B2 (en) 2017-04-12 2020-09-15 Salesforce.Com, Inc. Switchable environments for test cases
US10754831B2 (en) 2017-04-25 2020-08-25 Salesforce.Com, Inc. Generating a hierarchical data structure
US10831783B2 (en) 2017-04-25 2020-11-10 Salesforce.Com, Inc. Updating a hierarchical data structure
US10721152B2 (en) 2017-04-27 2020-07-21 Salesforce.Com, Inc. Automated analysis and recommendations for highly performant single page web applications
US10645138B2 (en) 2017-05-02 2020-05-05 Salesforce.Com, Inc Event stream processing system using a coordinating spout instance
US11663205B2 (en) 2017-05-04 2023-05-30 Salesforce, Inc. Technologies for asynchronous querying
US11082519B2 (en) 2017-05-08 2021-08-03 Salesforce.Com, Inc. System and method of providing web content using a proxy cache
US10536439B2 (en) 2017-05-08 2020-01-14 Salesforce.Com, Inc. Client fingerprinting for information system security
CN115098084A (en) * 2017-05-09 2022-09-23 合肥汉腾信息技术有限公司 Non-coding form design and drawing method
US10592866B2 (en) 2017-05-12 2020-03-17 Salesforce.Com, Inc. Calendar application, system and method for creating records in a cloud computing platform from within the context of the calendar application
US10504069B2 (en) 2017-05-12 2019-12-10 Salesforce.Com, Inc. Calendar application, system and method for performing actions on records in a cloud computing platform from within the context of the calendar application
US10454915B2 (en) 2017-05-18 2019-10-22 Oracle International Corporation User authentication using kerberos with identity cloud service
US10318349B2 (en) 2017-05-22 2019-06-11 Salesforce.Com, Inc. Distributed scheduling in a virtual machine environment
US10852926B2 (en) 2017-05-23 2020-12-01 Salesforce.Com., Inc. Filter of data presentations via user-generated links
US10360136B2 (en) 2017-05-23 2019-07-23 Salesforce.Com., Inc. Dashboard execution engine
US11054971B2 (en) 2017-05-23 2021-07-06 Salesforce.Com., Inc. Modular runtime environment
US10713223B2 (en) 2017-06-01 2020-07-14 Salesforce.Com, Inc. Opportunistic gossip-type dissemination of node metrics in server clusters
US10693951B2 (en) 2017-06-01 2020-06-23 Salesforce.Com, Inc. Decentralized, resource aware load distribution in a distributed system
US11475064B2 (en) 2017-06-08 2022-10-18 Salesforce.Com, Inc. System and method in a database system for creating a field service work order
US10838941B2 (en) 2017-06-14 2020-11-17 Salesforce.Com, Inc. Automated image-based record creation and related database systems
US11586696B2 (en) 2017-06-19 2023-02-21 Salesforce, Inc. Enhanced web browsing
US10489170B2 (en) 2017-06-19 2019-11-26 Salesforce.Com, Inc. Application warmup engine
US10853440B2 (en) 2017-06-19 2020-12-01 Salesforce.Com, Inc. Displaying an object having a link to a database record in response to a user selection of a highlighted reference
US11269938B2 (en) 2017-06-21 2022-03-08 Salesforce.Com, Inc. Database systems and methods for conversational database interaction
US10523425B2 (en) 2017-06-22 2019-12-31 Salesforce.Com, Inc. Database password changes
US10817479B2 (en) 2017-06-23 2020-10-27 Salesforce.Com, Inc. Recommending data providers' datasets based on database value densities
US10416952B2 (en) 2017-06-27 2019-09-17 Salesforce.Com, Inc. Identifying a viewport within a browser window
US10644890B1 (en) 2017-06-29 2020-05-05 Salesforce.Com Language-agnostic secure application deployment
US10719811B2 (en) 2017-06-29 2020-07-21 Salesforce.Com, Inc. Method and system for retroactive removal of content from an organization activity timeline
US10686741B2 (en) 2017-06-29 2020-06-16 Salesforce.Com, Inc. Method and system for real-time blocking of content from an organization activity timeline
US10749689B1 (en) 2017-06-29 2020-08-18 Salesforce.Com, Inc. Language-agnostic secure application development
US11163910B2 (en) 2017-06-29 2021-11-02 Salesforce.Com, Inc. Methods and systems for data migration
US10374794B1 (en) 2017-06-30 2019-08-06 Salesforce.Com, Inc. Secure transmission of tokens using private key fragments
US10425224B1 (en) 2017-06-30 2019-09-24 Salesforce.Com, Inc. Identity confirmation using private keys
US9961519B1 (en) 2017-08-01 2018-05-01 Salesforce.Com, Inc. Facilitating mobile device interaction with an enterprise database system
US10579641B2 (en) 2017-08-01 2020-03-03 Salesforce.Com, Inc. Facilitating mobile device interaction with an enterprise database system
CN111213138A (en) 2017-08-15 2020-05-29 诺宝公司 Index splitting in distributed databases
US10664244B2 (en) 2017-08-22 2020-05-26 Salesforce.Com, Inc. Dynamic page previewer for a web application builder
US10521223B1 (en) 2017-08-22 2019-12-31 Wells Fargo Bank, N.A. Systems and methods of a metadata orchestrator augmenting application development
US10402174B2 (en) 2017-08-25 2019-09-03 Salesforce.Com, Inc. Overriding component attributes in a web application builder
US10775969B2 (en) 2017-08-25 2020-09-15 Salesforce.Com, Inc. System and method for notifying a softphone of navigation change events
US10609140B2 (en) 2017-08-28 2020-03-31 Salesforce.Com, Inc. Dynamic resource management systems and methods
US10476855B1 (en) 2017-08-29 2019-11-12 Salesforce.Com, Inc. Identity confirmation using private keys
US10540149B2 (en) 2017-08-30 2020-01-21 Salesforce.Com, Inc. Property editor component in a web application builder framework
US10509633B2 (en) 2017-08-30 2019-12-17 Salesforce.Com, Inc. Base editor component in a web application builder framework
US10846068B2 (en) 2017-08-30 2020-11-24 Salesforce.Com, Inc. Interactions layer in a web application builder framework
US10514896B2 (en) 2017-08-30 2019-12-24 Salesforce.Com, Inc. Web application builder framework
US10509546B2 (en) 2017-08-31 2019-12-17 Salesforce.Com, Inc. History component for single page application
US10909070B2 (en) 2017-08-31 2021-02-02 Salesforce.Com, Inc. Memory efficient policy-based file deletion system
US11138195B2 (en) 2017-08-31 2021-10-05 Salesforce.Com, Inc. Systems and methods for translating n-ary trees to binary query trees for query execution by a relational database management system
US10586025B2 (en) 2017-09-07 2020-03-10 Salesforce.Com, Inc. Managing the display of hidden proprietary software code to authorized licensed users
US10348858B2 (en) 2017-09-15 2019-07-09 Oracle International Corporation Dynamic message queues for a microservice based cloud service
US10579692B2 (en) 2017-09-27 2020-03-03 Salesforce.Com, Inc. Composite keys for multi-tenant non-relational platform objects
US10831789B2 (en) 2017-09-27 2020-11-10 Oracle International Corporation Reference attribute query processing for a multi-tenant cloud service
US11714811B2 (en) 2017-09-27 2023-08-01 Salesforce, Inc. Run-time querying of multi-tenant non-relational platform objects
US11036357B2 (en) 2017-09-27 2021-06-15 Salesforce.Com, Inc. Generating or updating cross-community streams
US10579691B2 (en) 2017-09-27 2020-03-03 Salesforce.Com, Inc. Application programming interface representation of multi-tenant non-relational platform objects
US10834137B2 (en) 2017-09-28 2020-11-10 Oracle International Corporation Rest-based declarative policy management
US11271969B2 (en) 2017-09-28 2022-03-08 Oracle International Corporation Rest-based declarative policy management
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
US10467412B2 (en) 2017-10-05 2019-11-05 Salesforce.Com, Inc. Software container modeling
US10733212B2 (en) 2017-10-16 2020-08-04 Salesforce.Com, Inc. Entity identifier clustering based on context scores
US10984070B2 (en) 2017-10-18 2021-04-20 Salesforce.Com, Inc. Dynamic content placeholders for microblogging posts
US10693952B2 (en) 2017-10-23 2020-06-23 Salesforce.Com, Inc. Technologies for low latency messaging
US11003662B2 (en) 2017-10-30 2021-05-11 Salesforce.Com, Inc. Trigger-free asynchronous maintenance of custom indexes and skinny performance meta-structures
US10387041B2 (en) 2017-11-02 2019-08-20 Salesforce.Com, Inc. Data migration system
US11048663B2 (en) 2017-11-15 2021-06-29 Salesforce.Com, Inc. Database systems and methods for automated database modifications
US10853131B2 (en) 2017-11-20 2020-12-01 Salesforce.Com, Inc. Dataflow life cycles
US10754735B2 (en) 2017-11-20 2020-08-25 Salesforce.Com, Inc. Distributed storage reservation for recovering distributed data
US10409583B2 (en) 2017-11-27 2019-09-10 Salesforce.Com, Inc. Content deployment system having a content publishing engine with a filter module for selectively extracting content items provided from content sources for integration into a specific release and methods for implementing the same
US10684847B2 (en) 2017-11-27 2020-06-16 Salesforce.Com, Inc. Content deployment system having a proxy for continuously providing selected content items to a content publishing engine for integration into a specific release and methods for implementing the same
US10936596B2 (en) 2017-11-30 2021-03-02 Salesforce.Com, Inc. Dynamic selection of data sources for streaming dynamic data
US10528816B2 (en) 2017-11-30 2020-01-07 Salesforce.Com, Inc. System and method for retrieving and displaying supplemental information and pertinent data using augmented reality
US11088925B2 (en) 2017-12-04 2021-08-10 Salesforce.Com, Inc. Technologies for capacity remediation in multi-tenant cloud environments
US10866894B2 (en) 2017-12-13 2020-12-15 Salesforce.Com, Inc. Controlling memory usage in a cache
US10904197B2 (en) 2017-12-19 2021-01-26 Salesforce.Com, Inc. Management of members of social network conversations
US10887281B2 (en) 2017-12-19 2021-01-05 Salesforce.Com, Inc. Automated host-based firewall configuration management
US11163759B2 (en) 2017-12-21 2021-11-02 Salesforce.Com, Inc. Predicting entities for database query results
US11030210B2 (en) 2018-01-03 2021-06-08 Salesforce.Com, Inc. Hierarchical rules for displaying user interface pages
US10642468B2 (en) 2018-01-16 2020-05-05 Salesforce.Com, Inc. Accessibility lock and accessibility pause
US11048684B2 (en) 2018-01-16 2021-06-29 Salesforce.Com, Inc. Lazy tracking of user system web cache
US10739991B2 (en) 2018-01-16 2020-08-11 Salesforce.Com, Inc. System and method of providing an overlay user interface for a touchscreen display
US10761904B2 (en) 2018-01-17 2020-09-01 Salesforce.Com, Inc. Method and system for synchronizing and joining multiple calls to the same asynchronous code segment
US10802884B2 (en) 2018-01-17 2020-10-13 Salesforce.Com, Inc. Efficient provisioning of an infrastructure based on different factors
US10671739B2 (en) 2018-01-17 2020-06-02 Salesforce.Com, Inc. Managing the sharing of common library packages with subscribers
US11170381B2 (en) 2018-01-18 2021-11-09 Salesforce.Com, Inc. Method and system for generating insights regarding a party in response to a call
US10671248B2 (en) 2018-01-18 2020-06-02 Salesforce.Com, Inc. Live agent chat console
US10567505B2 (en) 2018-01-18 2020-02-18 Salesforce.Com, Inc. Methods and systems for session synchronization and sharing of applications between different user systems of a user
US10693883B2 (en) 2018-01-22 2020-06-23 Salesforce.Com, Inc. Technologies for integrating and sandboxing web resources
US10713070B2 (en) 2018-01-22 2020-07-14 Salesforce.Com, Inc. Systems and methods for capturing and visualizing user interactions across devices
US10616230B2 (en) 2018-01-23 2020-04-07 Salesforce.Com, Inc. Managing authorization tokens for calling third-party vendors
US10616352B2 (en) 2018-01-24 2020-04-07 Salesforce.Com, Inc. Integrating third-party vendors' APIs
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US10650337B2 (en) 2018-01-29 2020-05-12 Salesforce.Com, Inc. Technical field service inventory management
US10936477B2 (en) 2018-01-31 2021-03-02 Salesforce.Com, Inc. End-to-end user interface component testing
US11086819B2 (en) 2018-04-23 2021-08-10 Salesforce.Com, Inc. Efficiently deleting data from objects in a multi-tenant database system
US10771353B2 (en) 2018-01-31 2020-09-08 Salesforce.Com, Inc. Policy enforcement as a service for third party platforms with asynchronous user tracking mechanisms
US10560349B2 (en) 2018-01-31 2020-02-11 Salesforce.Com, Inc. Data consistency of policy enforcement for distributed applications
US10642803B2 (en) 2018-01-31 2020-05-05 Salesforce.Com, Inc. Adding a partition to an existing table stored on a distributed file system
US10860606B2 (en) 2018-01-31 2020-12-08 Salesforce.Com, Inc. Efficiently deleting data from objects in a multi tenant database system
US10680958B2 (en) 2018-01-31 2020-06-09 Salesforce.Com, Inc. Policy enforcement as a service for third party platforms
US11016959B2 (en) 2018-01-31 2021-05-25 Salesforce.Com, Inc. Trie-based normalization of field values for matching
US11206273B2 (en) 2018-01-31 2021-12-21 Salesforce.Com, Inc. Content management system connect
US11416116B2 (en) 2018-01-31 2022-08-16 Salesforce.Com, Inc. Generation of mobile device notifications
US10778543B2 (en) 2018-01-31 2020-09-15 Salesforce.Com, Inc. Opaque interface for enclosed/wrapped asynchronous pushing and/or pulling data between policy enforcement as a service (PEaaS) components
US10853334B2 (en) 2018-03-02 2020-12-01 Salesforce.Com, Inc. Technologies for providing service isolation, scalability, and proactive tenant migration in multi-tenant ecosystems
US10699070B2 (en) 2018-03-05 2020-06-30 Sap Se Dynamic retrieval and rendering of user interface content
US10708420B2 (en) 2018-03-22 2020-07-07 Salesforce.Com, Inc. Method and system for automatically transcribing a call and updating a record based on transcribed voice data
US10931656B2 (en) 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US11165634B2 (en) 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US10798165B2 (en) 2018-04-02 2020-10-06 Oracle International Corporation Tenant data comparison for a multi-tenant identity cloud service
US11258775B2 (en) 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
US10664192B2 (en) 2018-04-26 2020-05-26 Salesforce.Com, Inc. In-memory service with plural buffer type assignment
US10936308B2 (en) 2018-04-30 2021-03-02 Salesforce.Com, Inc. Multi-tenant collaborative learning
US10742806B2 (en) 2018-05-08 2020-08-11 Salesforce.Com, Inc. Method, system and bot architecture for automatically sending a user content, that is responsive to user messages from that user, to solicit additional information from that user
US10992740B2 (en) 2018-05-14 2021-04-27 Salesforce.Com, Inc. Dynamically balancing partitions within a distributed streaming storage platform
US10909125B2 (en) 2018-05-22 2021-02-02 Salesforce.Com, Inc. Asymmetric rank-biased overlap
US11132501B2 (en) 2018-05-25 2021-09-28 Salesforce.Com, Inc. Smart column selection for table operations in data preparation
US10958431B2 (en) 2018-05-30 2021-03-23 Salesforce.Com, Inc. Authenticating computing system requests across tenants of a multi-tenant database system
US11252119B2 (en) 2018-06-04 2022-02-15 Salesforce.Com, Inc. Message logging using two-stage message logging mechanisms
US10915295B2 (en) 2018-06-07 2021-02-09 Salesforce.Com, Inc. Automated generation of audio daily activity overview powered by a database
US10878218B2 (en) 2018-06-18 2020-12-29 Salesforce.Com, Inc. Device fingerprinting, tracking, and management
US11061896B2 (en) 2018-06-19 2021-07-13 Salesforce.Com, Inc. Maximizing operator parallelism
US11494378B2 (en) 2018-06-19 2022-11-08 Salesforce, Inc. Runtime optimization of grouping operators
US10721323B2 (en) 2018-06-19 2020-07-21 Salesforce.Com, Inc. High-performance data streaming
US11012444B2 (en) 2018-06-25 2021-05-18 Oracle International Corporation Declarative third party identity provider integration for a multi-tenant identity cloud service
US10764273B2 (en) 2018-06-28 2020-09-01 Oracle International Corporation Session synchronization across multiple devices in an identity cloud service
US11218461B2 (en) 2018-06-29 2022-01-04 Salesforce.Com, Inc. Authenticating computing system requests with an unknown destination across tenants of a multi-tenant system
US11797866B2 (en) 2018-07-18 2023-10-24 Salesforce.Com, Inc. Systems and methods for accelerating execution of processes based on artificial intelligence (AI) prediction of blockchain consensus
US11315055B2 (en) 2018-07-26 2022-04-26 Salesforce.Com, Inc. System and method for visualizing an order allocation process
US10705860B2 (en) 2018-07-27 2020-07-07 Salesforce.Com, Inc. Method and system for declarative configuration of user self-registration and log in pages and processes for a service provider and automatic deployment of the same
US11423063B2 (en) 2018-07-31 2022-08-23 Salesforce, Inc. Flattening hierarchical database records using inverted indexing
US10664266B2 (en) 2018-09-04 2020-05-26 Salesforce.Com, Inc. Maintaining client version affinity during a server cluster upgrade
US10671236B2 (en) 2018-09-20 2020-06-02 Salesforce.Com, Inc. Stateful, contextual, and draggable embedded widget
US10866959B2 (en) 2018-09-20 2020-12-15 Salesforce.Com, Inc. Debug tracing of next best action strategy engine
US11308067B2 (en) 2018-09-21 2022-04-19 Salesforce.Com, Inc. Associating flows in different states to a database record
US11016722B2 (en) 2018-09-24 2021-05-25 Salesforce.Com, Inc. Database systems and methods for conversation-driven dynamic updates
US11580179B2 (en) 2018-09-24 2023-02-14 Salesforce.Com, Inc. Method and system for service agent assistance of article recommendations to a customer in an app session
US10902021B2 (en) 2018-09-24 2021-01-26 Salesforce.Com, Inc. Automated self-scaling database system for automatically scaling out read operations and method for implementing the same
US11199944B2 (en) 2018-09-24 2021-12-14 Salesforce.Com, Inc. System and method for navigation within widget-sized browser panels
US10915827B2 (en) 2018-09-24 2021-02-09 Salesforce.Com, Inc. System and method for field value recommendations based on confidence levels in analyzed dataset
US10891308B2 (en) 2018-09-24 2021-01-12 Salesforce.Com, Inc. Automated self-scaling database system for automatically scaling out write operations and method for implementing the same in a multi-tenant, cloud-based computing environment
US11625409B2 (en) 2018-09-24 2023-04-11 Salesforce, Inc. Driving application experience via configurable search-based navigation interface
US10838698B2 (en) 2018-09-24 2020-11-17 Salesforce.Com, Inc. Providing a reuse capability for visual programming logic within a building tool
US11379192B2 (en) 2018-09-25 2022-07-05 Salesforce, Inc. Saving a snippet of visual programming logic for reuse amongst programs created using an automation building tool
US11416830B2 (en) 2018-09-25 2022-08-16 Salesforce.Com, Inc. Method and system for automatically creating action plans based on an action plan template
US10817266B2 (en) 2018-09-25 2020-10-27 Salesforce.Com, Inc. Converting a captured image to visual programming logic for an automation building tool
US10642916B2 (en) 2018-09-25 2020-05-05 Salesforce, Inc. Systems and methods for providing client-side enablement of server communications via a single communication session for a plurality of browser-based presentation interfaces
US10938755B1 (en) 2019-10-07 2021-03-02 Salesforce.Com, Inc. Browser-independent multi-tab communication methods and systems
US11256772B2 (en) 2018-09-25 2022-02-22 Salesforce.Com, Inc. Systems and methods for providing client-side enablement of server communications via a single communication session for a plurality of browser-based presentation interfaces
US10902254B2 (en) 2018-09-26 2021-01-26 Salesforce.Com, Inc. Converting a captured image of a layout to a structured document template
US11003427B2 (en) 2018-09-28 2021-05-11 Salesforce.Com, Inc. Interface for generating and testing formulas using a formula language
US11010143B2 (en) 2018-09-28 2021-05-18 Salesforce.Com, Inc. Executing formulas written using formula language
US11693835B2 (en) 2018-10-17 2023-07-04 Oracle International Corporation Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service
US10686739B2 (en) 2018-10-18 2020-06-16 Salesforce.Com, Inc. Systems and methods for enabling client-side rendering of rich content by a plurality of browser-based messaging interfaces communicating with a server via a single communication session
US11321187B2 (en) 2018-10-19 2022-05-03 Oracle International Corporation Assured lazy rollback for a multi-tenant identity cloud service
US10783063B2 (en) 2018-10-23 2020-09-22 Salesforce.Com, Inc. Systems and methods for testing a customer environment
US10789052B2 (en) 2018-10-29 2020-09-29 Salesforce.Com, Inc. User interface (UI) design system mapping platform for automatically mapping design system components to a design document file from a design tool to generate a mapped specification
US11055162B2 (en) 2018-10-31 2021-07-06 Salesforce.Com, Inc. Database system performance degradation detection
US11190420B2 (en) 2018-10-31 2021-11-30 Salesforce.Com, Inc. Generating events from host based logging for consumption by a network logging host
US10824446B2 (en) 2018-11-02 2020-11-03 Salesforce.Com, Inc. Methods and systems for autocompletion
US11409742B2 (en) 2018-12-06 2022-08-09 Salesforce, Inc. Efficient database searching for queries using wildcards
US10853046B2 (en) 2018-12-13 2020-12-01 Salesforce.Com, Inc. Deployment of software applications on server clusters
US11182144B2 (en) 2018-12-31 2021-11-23 Salesforce.Com, Inc. Preventing database package updates to fail customer requests and cause data corruptions
US11194591B2 (en) 2019-01-23 2021-12-07 Salesforce.Com, Inc. Scalable software resource loader
US10747551B2 (en) 2019-01-23 2020-08-18 Salesforce.Com, Inc. Software application optimization
US10802944B2 (en) 2019-01-23 2020-10-13 Salesforce.Com, Inc. Dynamically maintaining alarm thresholds for software application performance management
US11140142B2 (en) 2019-01-24 2021-10-05 Salesforce.Com, Inc. Method and system for authentication
US11436233B2 (en) 2019-01-25 2022-09-06 Salesforce, Inc. Generating adaptive match keys
US11157337B2 (en) 2019-01-28 2021-10-26 Salesforce.Com, Inc. Method and system for processing a stream of incoming messages sent from a specific input message source and validating each incoming message of that stream before sending them to a specific target system
US11099973B2 (en) 2019-01-28 2021-08-24 Salesforce.Com, Inc. Automated test case management systems and methods
US11126673B2 (en) 2019-01-29 2021-09-21 Salesforce.Com, Inc. Method and system for automatically enriching collected seeds with information extracted from one or more websites
US10866996B2 (en) 2019-01-29 2020-12-15 Saleforce.com, inc. Automated method and system for clustering enriched company seeds into a cluster and selecting best values for each attribute within the cluster to generate a company profile
US11210198B2 (en) 2019-01-30 2021-12-28 Salesforce.Com, Inc Distributed web page performance monitoring methods and systems
US11386380B2 (en) 2019-01-30 2022-07-12 Salesforce.Com, Inc. System and method for visual, artificial intelligence, and rule based quality assurance
US11526539B2 (en) 2019-01-31 2022-12-13 Salesforce, Inc. Temporary reservations in non-relational datastores
US11042434B2 (en) 2019-01-31 2021-06-22 Salesforce.Com, Inc. Database ingestion across internal and external data sources using error rate handling
US11216444B2 (en) 2019-01-31 2022-01-04 Salesforce.Com, Inc. Scalable event sourcing datastore
US11263178B2 (en) 2019-01-31 2022-03-01 Salesforce.Com, Inc. Intelligent prediction of future generation of types of data objects based on past growth
US11010771B2 (en) 2019-01-31 2021-05-18 Salesforce.Com, Inc. Machine learning from data steward feedback for data matching
US11061734B2 (en) 2019-01-31 2021-07-13 Salesforce.Com, Inc. Performing customized data compaction for efficient parallel data processing amongst a set of computing resources
US11755914B2 (en) 2019-01-31 2023-09-12 Salesforce, Inc. Machine learning from data steward feedback for merging records
US11651357B2 (en) 2019-02-01 2023-05-16 Oracle International Corporation Multifactor authentication without a user footprint
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
US10971159B2 (en) 2019-02-19 2021-04-06 Salesforce.Com, Inc. Cross account access for a virtual personal assistant via voice printing
US11321343B2 (en) 2019-02-19 2022-05-03 Oracle International Corporation Tenant replication bootstrap for a multi-tenant identity cloud service
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11429714B2 (en) 2019-03-12 2022-08-30 Salesforce.Com, Inc. Centralized privacy management system for automatic monitoring and handling of personal data across data system platforms
US11488082B2 (en) 2019-03-27 2022-11-01 Salesforce, Inc. Monitoring and verification system for end-to-end distribution of messages
US10922062B2 (en) 2019-04-15 2021-02-16 Salesforce.Com, Inc. Software application optimization
US10922095B2 (en) 2019-04-15 2021-02-16 Salesforce.Com, Inc. Software application performance regression analysis
US11113302B2 (en) 2019-04-23 2021-09-07 Salesforce.Com, Inc. Updating one or more databases based on dataflow events
US11100813B2 (en) 2019-05-09 2021-08-24 Salesforce.Com, Inc. System and method for managing screen reader announcements on web pages
US11176156B2 (en) 2019-05-10 2021-11-16 Salesforce.Com, Inc. Efficiently and accurately assessing the number of identifiable records for creating personal profiles
US11157298B2 (en) 2019-05-21 2021-10-26 Salesforce.Com, Inc. Method and system for automatically invoking functionality while using a primary application without user action
US11360990B2 (en) 2019-06-21 2022-06-14 Salesforce.Com, Inc. Method and a system for fuzzy matching of entities in a database system based on machine learning
US11245729B2 (en) 2019-07-09 2022-02-08 Salesforce.Com, Inc. Group optimization for network communications
US11087333B2 (en) 2019-07-30 2021-08-10 Salesforce.Com, Inc. Facilitating session-based read/write of context variables to share information across multiple microservices
US11698891B2 (en) 2019-07-30 2023-07-11 Salesforce.Com, Inc. Database systems and related multichannel communication methods
US11163740B2 (en) 2019-07-30 2021-11-02 Salesforce.Com, Inc. Machine-learnt field-specific tokenization
US11886461B2 (en) 2019-07-31 2024-01-30 Salesforce, Inc. Machine-learnt field-specific standardization
US11151088B2 (en) 2019-08-02 2021-10-19 Salesforce.Com, Inc. Systems and methods for verifying performance of a modification request in a database system
US11586945B2 (en) 2019-08-06 2023-02-21 Salesforce.Com, Inc. Methods and systems for automated, intelligent application process development that recommend how to modify applications based on usage patterns of end users
US11347795B2 (en) 2019-08-08 2022-05-31 Salesforce.Com, Inc. Tools and methods that format mapping information from a data integration system
US11170322B2 (en) 2019-08-13 2021-11-09 Salesforce.Com, Inc. Using a client-side machine learning model dynamically in a mobile enterprise application on a mobile device
US11074559B2 (en) 2019-08-30 2021-07-27 Salesforce.Com, Inc. Payments platform, method and system for a cloud computing platform
US11288640B2 (en) 2019-08-30 2022-03-29 Salesforce.Com, Inc. Cloud computing platform, method and system having a payments platform for integrating an asynchronous payment gateway service with the cloud computing platform
US11538000B2 (en) 2019-08-30 2022-12-27 Salesforce.Com, Inc. Cloud computing platform, method and system having a payments platform for integrating a synchronous payment gateway service with the cloud computing platform
US11080704B2 (en) 2019-08-30 2021-08-03 Salesforce.Com, Inc. Payments platform, method and system having external and internal operating modes for ingesting payment transaction data from payment gateway services at a cloud computing platform
US10984283B2 (en) 2019-09-10 2021-04-20 Salesforce.Com, Inc. Recognition of biases in data and models
US11379266B2 (en) 2019-09-10 2022-07-05 Salesforce.Com, Inc. Automatically identifying and right sizing instances
US11321490B2 (en) 2019-09-11 2022-05-03 Salesforce.Com, Inc. Protected access to metadata based on package membership
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11403280B2 (en) 2019-09-25 2022-08-02 Salesforce.Com, Inc. Master data management technologies
US11567957B2 (en) 2019-09-25 2023-01-31 Salesforce.Com, Inc. Incremental addition of data to partitions in database tables
US11567850B2 (en) 2019-10-01 2023-01-31 Salesforce, Inc. Detecting application events based on encoding application log values
US11403265B2 (en) 2019-10-02 2022-08-02 Salesforce, Inc. Dynamically controlling data migration
US11514008B2 (en) 2019-10-02 2022-11-29 Salesforce, Inc. Dynamically controlling data migration
US11637831B2 (en) 2019-10-09 2023-04-25 Salesforce, Inc. Application programmer interface platform with direct data center access
US11416484B2 (en) 2019-10-15 2022-08-16 Salesforce, Inc. Performance optimization of hybrid sharing model queries
US11244004B2 (en) 2019-10-23 2022-02-08 Salesforce.Com, Inc. Generating adaptive match keys based on estimating counts
US11431663B2 (en) 2019-10-24 2022-08-30 Salesforce, Inc. Technologies for predicting personalized message send times
US10986051B1 (en) 2019-10-31 2021-04-20 Salesforce.Com, Inc. System and method for dynamic chat message customization
US11381540B2 (en) 2019-10-31 2022-07-05 Salesforce, Inc. Tracking premature events in electronic message processing
US11431481B2 (en) 2019-11-07 2022-08-30 Salesforce, Inc. System for securing memory dumps
US11307957B2 (en) 2019-11-07 2022-04-19 Salesforce.Com, Inc. Systems and methods for determining optimal cost-to-serve for cloud applications in the public cloud
US11410107B2 (en) 2019-11-07 2022-08-09 Salesforce.Com, Inc. Systems and methods for real-time determination of cost-to-serve metrics and cost attribution for cloud applications in the public cloud
US11507617B2 (en) 2019-11-15 2022-11-22 Salesforce, Inc. Unsupervised dialogue topic extraction
US20210150483A1 (en) 2019-11-18 2021-05-20 Salesforce.Com, Inc. System and method for automatically creating personalized courses and trackable achievements
US11314790B2 (en) 2019-11-18 2022-04-26 Salesforce.Com, Inc. Dynamic field value recommendation methods and systems
US11386258B2 (en) 2019-11-19 2022-07-12 Salesforce.Com, Inc. Dynamic scalable vector graphics (SVG) system and methods for implementing the same
US11544762B2 (en) 2019-11-19 2023-01-03 Salesforce.Com, Inc. Techniques and architectures for recommending products based on work orders
US11611548B2 (en) 2019-11-22 2023-03-21 Oracle International Corporation Bulk multifactor authentication enrollment
US11431500B2 (en) 2019-11-26 2022-08-30 Salesforce, Inc. Authorization code management for published static applications
US11120702B2 (en) 2019-12-01 2021-09-14 Salesforce.Com, Inc. Systems and methods for validating localized assessments in an external system
US11354726B2 (en) 2019-12-20 2022-06-07 Salesforce.Com, Inc. Change order application programming interfaces
US11055093B1 (en) 2019-12-23 2021-07-06 Salesforce.Com, Inc. Methods and systems for automated, intelligent application development by scanning metadata by a plug-in to make recommendations
US11177973B2 (en) 2020-01-10 2021-11-16 Salesforce.Com, Inc. Distributed audience computation software service
US11442989B2 (en) 2020-01-13 2022-09-13 Salesforce, Inc. Scalable roll-up summary field calculation using graphs
US11775287B2 (en) 2020-01-15 2023-10-03 Salesforce, Inc. Manifest and content delivery
US11620483B2 (en) 2020-01-17 2023-04-04 Salesforce, Inc. Discovering suspicious person profiles
US11755680B2 (en) 2020-01-22 2023-09-12 Salesforce, Inc. Adaptive recognition of entities
US11243812B2 (en) 2020-01-23 2022-02-08 Salesforce.Com, Inc. Automated operating system patching using auto scaling group and persistent volumes
US11349923B2 (en) 2020-01-23 2022-05-31 Salesforce.Com, Inc. Persistent volumes for stateful applications
US11151638B2 (en) 2020-01-27 2021-10-19 Salesforce.Com, Inc. Methods and systems for performing change management at login
US11372667B2 (en) 2020-01-27 2022-06-28 Salesforce, Inc. Restoring the state of paused virtual machine environments with external attached volumes
US11397736B2 (en) 2020-01-27 2022-07-26 Salesforce, Inc. Large scale data ingestion
US11580276B2 (en) 2020-01-28 2023-02-14 Salesforce.Com, Inc. Dynamic asset management system and methods for generating interactive simulations representing assets based on automatically generated asset records
US11663544B2 (en) 2020-01-28 2023-05-30 Salesforce.Com, Inc. System and methods for risk assessment in a multi-tenant cloud environment
US11663169B2 (en) 2020-01-28 2023-05-30 Salesforce.Com, Inc. Dynamic asset management system and methods for automatically tracking assets, generating asset records for assets, and linking asset records to other types of records in a database of a cloud computing system
US11392581B2 (en) 2020-01-28 2022-07-19 Salesforce.Com, Inc. System and method for providing dynamically grouped search results from a hierarchy
US11372928B2 (en) 2020-01-29 2022-06-28 Salesforce.Com, Inc. Adaptive match indexes
US11475049B2 (en) 2020-01-31 2022-10-18 Salesforce, Inc. Methods and systems for organization extensibility and cluster scalability
US11297501B2 (en) 2020-01-31 2022-04-05 Salesforce.Com, Inc. Firewall discovery and management
US11537503B2 (en) 2020-01-31 2022-12-27 Salesforce.Com, Inc. Code editor for user interface component testing
US11113180B2 (en) 2020-01-31 2021-09-07 Salesforce.Com, Inc. Efficiently tracking code location of run-time events in system software
US11588840B2 (en) 2020-01-31 2023-02-21 Salesforce, Inc. Automated encryption degradation detection, reporting and remediation
US11755720B2 (en) 2020-01-31 2023-09-12 Salesforce, Inc. Secure membranes and cross namespace communication
US11711330B2 (en) 2020-01-31 2023-07-25 Salesforce, Inc. Out of office message configuration
US11233787B2 (en) 2020-01-31 2022-01-25 Salesforce.Com, Inc. Automated on call and ad hoc access to restricted resources
US11005801B1 (en) 2020-01-31 2021-05-11 Salesforce.Com, Inc. Personalized dashboard chart for email subscriptions
US11416677B2 (en) 2020-04-09 2022-08-16 Salesforce.Com, Inc. Dynamic resource management systems and form integration methods
US11915834B2 (en) 2020-04-09 2024-02-27 Salesforce, Inc. Efficient volume matching of patients and providers
US11526551B2 (en) 2020-04-10 2022-12-13 Salesforce, Inc. Search query generation based on audio processing
US11509608B2 (en) 2020-04-13 2022-11-22 Salesforce, Inc. Methods and systems for configuring an email engine
US11539652B2 (en) 2020-04-13 2022-12-27 Salesforce, Inc. Rate limiting actions with a message queue
US11916918B2 (en) 2020-04-14 2024-02-27 Salesforce, Inc. System mode override during flow execution
US11552802B2 (en) 2020-04-15 2023-01-10 Salesforce, Inc. Stateless mutual authentication between services
US10936571B1 (en) 2020-04-28 2021-03-02 Salesforce.Com, Inc. Undo based logical rewind in a multi-tenant system
US11755582B2 (en) 2020-04-30 2023-09-12 Salesforce, Inc. Adaptive field-level matching
US11163731B1 (en) 2020-05-04 2021-11-02 Salesforce.Com, Inc. Autobuild log anomaly detection methods and systems
US11164118B1 (en) 2020-05-21 2021-11-02 Salesforce.Com, Inc. Generating work plans which include work steps when creating new work orders
US11182719B1 (en) 2020-05-21 2021-11-23 Salesforce.Com, Inc. Associating executable actions with work steps in work plans generated when creating work orders
US11113459B1 (en) 2020-05-22 2021-09-07 Salesforce.Com, Inc. Dynamic guidance engine for software customization systems
US11474793B2 (en) 2020-05-22 2022-10-18 Salesforce.Com, Inc. Polymorphic application architecture
US11294648B2 (en) 2020-05-22 2022-04-05 Salesforce.Com, Inc. Application development architecture for mobile applications
US11556461B2 (en) 2020-06-16 2023-01-17 Salesforce.Com, Inc. Middleware for transparent user interface testing
US11762656B2 (en) 2020-07-13 2023-09-19 Salesforce, Inc. Service fabrication tool
US11522686B2 (en) 2020-07-16 2022-12-06 Salesforce, Inc. Securing data using key agreement
US11368292B2 (en) 2020-07-16 2022-06-21 Salesforce.Com, Inc. Securing data with symmetric keys generated using inaccessible private keys
US11194774B1 (en) 2020-07-20 2021-12-07 Salesforce.Com, Inc. Systems and methods for logically copying data from a source database to one or more target databases
US11586643B2 (en) 2020-08-11 2023-02-21 Salesforce.Com, Inc. Enabling dynamic data capture with database objects
US11159625B1 (en) 2020-09-04 2021-10-26 Salesforce.Com, Inc. Efficiently distributing connections to service instances that stream multi-tenant data
US11416382B2 (en) 2020-09-18 2022-08-16 Salesforce, Inc. Change list-based snapshots of applications for development and testing
US11379351B2 (en) 2020-09-18 2022-07-05 Salesforce, Inc. Change list-based snapshots of applications for testing and development
US11907385B2 (en) 2020-09-18 2024-02-20 Salesforce, Inc. Process flow granular control and execution
US11460975B2 (en) 2020-09-18 2022-10-04 Salesforce, Inc. Metric presentation within a flow builder
US11658957B2 (en) 2020-10-23 2023-05-23 Salesforce.Com, Inc. Methods and apparatuses for temporary session authentication and governor limits management
US11687523B2 (en) 2020-11-25 2023-06-27 Salesforce, Inc. System and method for efficiently transferring data for offline use
US11595309B2 (en) 2020-11-30 2023-02-28 Salesforce, Inc. Source network address translation for unique sender identification
US11675800B2 (en) 2020-11-30 2023-06-13 Salesforce, Inc. Version control and execution on a mobile device
US11520797B2 (en) 2020-12-11 2022-12-06 Salesforce, Inc. Leveraging time-based comments on communications recordings
US11328032B1 (en) 2020-12-21 2022-05-10 Salesforce.Com, Inc. Systems and methods for presenting a demo for enabling a visual dialogue with a customer by single user tap actions
US11741119B2 (en) 2021-01-26 2023-08-29 Salesforce, Inc. Canonical data model for distributed data catalog and metadata exchange
US11573682B2 (en) 2021-01-27 2023-02-07 Salesforce.Com, Inc. System and method for selecting one out of a plurality of participants in a network-based video meeting
US11728974B2 (en) 2021-01-29 2023-08-15 Salesforce, Inc. Tenant-based database encryption
US11853699B2 (en) 2021-01-29 2023-12-26 Salesforce.Com, Inc. Synthetic crafting of training and test data for named entity recognition by utilizing a rule-based library
US11630844B2 (en) 2021-01-29 2023-04-18 Salesforce.Com, Inc. System and method for augmenting synced data across multiple systems to facilitate data cleansing
US11330070B1 (en) 2021-01-29 2022-05-10 Salesforce.Com, Inc. Containerized workflow engines executing metadata for user-defined applications
US11520482B2 (en) 2021-02-22 2022-12-06 Salesforce.Com, Inc. Navigating displayed graphical user interface panels using assigned keyboard shortcut key(s)
US11797638B2 (en) 2021-02-24 2023-10-24 Salesforce.Com, Inc. Aggregate component for parallel browser-initiated actions
US11321422B1 (en) 2021-03-09 2022-05-03 Salesforce.Com, Inc. User-configurable aggregate web components
US11620305B2 (en) 2021-03-25 2023-04-04 Salesforce.Com, Inc Ruleset engine for generating homogeneous data sets
US11385876B1 (en) 2021-04-01 2022-07-12 Salesforce.Com, Inc. Infrastructure control interface for database systems
US11775519B2 (en) 2021-04-08 2023-10-03 Salesforce, Inc. Optimizing indexes for accessing database tables
US11520691B2 (en) 2021-04-14 2022-12-06 Salesforce.Com, Inc. Test procedure systems and methods
US11429257B1 (en) 2021-04-15 2022-08-30 Salesforce.Com, Inc. Dynamically generated help based on derived hierarchical context
US11409505B1 (en) 2021-04-16 2022-08-09 27 Software U.S. Inc. Automated authoring of software solutions from a data model with related patterns
US11693652B2 (en) 2021-04-16 2023-07-04 27 Software U.S. Inc. Automated authoring of software solutions from a data model
US11314489B1 (en) 2021-04-16 2022-04-26 27 Software U.S. Inc. Automated authoring of software solutions by first analyzing and resolving anomalies in a data model
US11620124B2 (en) 2021-04-23 2023-04-04 Salesforce.Com, Inc. System and method for flow runtime versioning
US11748243B2 (en) 2021-04-27 2023-09-05 Salesforce, Inc. Intelligent generation of page objects for user interface testing
US11636025B2 (en) 2021-04-27 2023-04-25 Salesforce, Inc. Intelligent generation of automated user interface testing methods
US11487753B1 (en) 2021-05-03 2022-11-01 Salesforce, Inc. Optimizing transaction times in distributed databases
US11507729B1 (en) 2021-05-13 2022-11-22 Salesforce, Inc. Scoped containers using CSS custom properties and color pairs
US11665268B2 (en) 2021-07-30 2023-05-30 Salesforce.Com, Inc. Customization in standard application programming interfaces (APIs) provided by a cloud computing platform
US20230054518A1 (en) * 2021-08-20 2023-02-23 H. Paul Zellweger Method and apparatus for a data funnel interface with adjustable paths
US11836072B2 (en) 2021-08-23 2023-12-05 Salesforce.Com, Inc. Risk-based root cause identification methods and related autobuild systems
US11748352B2 (en) * 2021-08-26 2023-09-05 International Business Machines Corporation Dynamical database system resource balance
US11681522B2 (en) 2021-10-21 2023-06-20 Salesforce, Inc. Self-healing build pipelines for an application build process across distributed computer platforms
US11442754B1 (en) 2021-10-27 2022-09-13 Salesforce, Inc. Targeting system for web page components
US11886458B2 (en) 2021-11-05 2024-01-30 Salesforce, Inc. Configurable data transformation between different database systems
US11755400B2 (en) 2021-11-30 2023-09-12 Salesforce, Inc. Error detection and mitigation for software pull requests
US11734265B1 (en) 2022-03-08 2023-08-22 Salesforce, Inc. Automatic GraphQL data source field change handler
US11893377B2 (en) 2022-04-27 2024-02-06 Salesforce, Inc. Dependency-aware rules engine for delivering managed package upgrades
US11874797B1 (en) 2022-06-23 2024-01-16 Salesforce, Inc. Smart privilege escalation in a cloud platform
US11750460B1 (en) 2022-10-06 2023-09-05 Salesforce, Inc. Identifying duplicate entries in views of same and other network management interfaces

Citations (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631661A (en) * 1982-12-07 1986-12-23 International Business Machines Corporation Fail-safe data processing system
US5353401A (en) * 1992-11-06 1994-10-04 Ricoh Company, Ltd. Automatic interface layout generator for database systems
US5428776A (en) * 1991-03-12 1995-06-27 Wang Laboratories, Inc. System for composing a graphical interface to a relational database which displays a network of query and source icons
US5499371A (en) * 1993-07-21 1996-03-12 Persistence Software, Inc. Method and apparatus for automatic generation of object oriented code for mapping relational data to objects
US5523942A (en) * 1994-03-31 1996-06-04 New England Mutual Life Insurance Company Design grid for inputting insurance and investment product information in a computer system
US5548749A (en) * 1993-10-29 1996-08-20 Wall Data Incorporated Semantic orbject modeling system for creating relational database schemas
US5550971A (en) * 1993-06-30 1996-08-27 U S West Technologies, Inc. Method and system for generating a user interface adaptable to various database management systems
US5553218A (en) * 1992-03-09 1996-09-03 International Business Machines Corporation Graphical user interface for relating key index properties to database table columns
US5615367A (en) * 1993-05-25 1997-03-25 Borland International, Inc. System and methods including automatic linking of tables for improved relational database modeling with interface
US5627979A (en) * 1994-07-18 1997-05-06 International Business Machines Corporation System and method for providing a graphical user interface for mapping and accessing objects in data stores
US5701543A (en) * 1995-09-19 1997-12-23 Noritsu Koki Co., Ltd. Cartridge case stocker apparatus in automatic film development processor machine
US5764973A (en) * 1994-02-08 1998-06-09 Enterworks.Com, Inc. System for generating structured query language statements and integrating legacy systems
US5778375A (en) * 1996-06-27 1998-07-07 Microsoft Corporation Database normalizing system
US5802514A (en) * 1996-04-09 1998-09-01 Vision Software Tools, Inc. Automated client/server development tool using drag-and-drop metaphor
US5812134A (en) * 1996-03-28 1998-09-22 Critical Thought, Inc. User interface navigational system & method for interactive representation of information contained within a database
US5819264A (en) * 1995-04-03 1998-10-06 Dtl Data Technologies Ltd. Associative search method with navigation for heterogeneous databases including an integration mechanism configured to combine schema-free data models such as a hyperbase
US5832498A (en) * 1994-09-13 1998-11-03 Bull, S.A. Device for generating object-oriented interfaces for relational data bases and a process implemented by this device
US5873093A (en) * 1994-12-07 1999-02-16 Next Software, Inc. Method and apparatus for mapping objects to a data source
US5905985A (en) * 1997-06-30 1999-05-18 International Business Machines Corporation Relational database modifications based on multi-dimensional database modifications
US5937409A (en) * 1997-07-25 1999-08-10 Oracle Corporation Integrating relational databases in an object oriented environment
US5950190A (en) * 1997-05-13 1999-09-07 Aptek, Inc. Dynamic, self-modifying graphical user interface for relational database applications
US5966707A (en) * 1997-12-02 1999-10-12 International Business Machines Corporation Method for managing a plurality of data processes residing in heterogeneous data repositories
US5986673A (en) * 1997-10-17 1999-11-16 Martz; David R. Method for relational ordering and displaying multidimensional data
US6012067A (en) * 1998-03-02 2000-01-04 Sarkar; Shyam Sundar Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web
US6016394A (en) * 1997-09-17 2000-01-18 Tenfold Corporation Method and system for database application software creation requiring minimal programming
US6029172A (en) * 1996-08-28 2000-02-22 U.S. Philips Corporation Method and system for selecting an information item
US6035300A (en) * 1995-12-15 2000-03-07 International Business Machines Corporation Method and apparatus for generating a user interface from the entity/attribute/relationship model of a database
US6058391A (en) * 1997-12-17 2000-05-02 Mci Communications Corporation Enhanced user view/update capability for managing data from relational tables
US6061394A (en) * 1996-11-28 2000-05-09 Anritsu Corporation Digital communication system modulated signal generation apparatus incorporating fading simulator
US6069627A (en) * 1995-11-01 2000-05-30 International Business Machines Corporation Extender user interface
US6101502A (en) * 1997-09-26 2000-08-08 Ontos, Inc. Object model mapping and runtime engine for employing relational database with object oriented software
US6175837B1 (en) * 1998-06-29 2001-01-16 Sun Microsystems, Inc. Object-relational mapping toll that processes views
US6199068B1 (en) * 1997-09-11 2001-03-06 Abb Power T&D Company Inc. Mapping interface for a distributed server to translate between dissimilar file formats
WO2001033388A2 (en) * 1999-11-01 2001-05-10 Sherwood International Group Limited Method and system for multi-user access of a database over a network
US6266675B1 (en) * 1997-10-07 2001-07-24 Phycom Corporation System and method for using a relational database to enable the dynamic configuration of an application program
US20010011364A1 (en) * 1998-01-07 2001-08-02 Everett W. Stoub System for converting scrolling display to non-scrolling columnar display
US6279008B1 (en) * 1998-06-29 2001-08-21 Sun Microsystems, Inc. Integrated graphical user interface method and apparatus for mapping between objects and databases
US20010034733A1 (en) * 2000-03-03 2001-10-25 Michel Prompt System and method for providing access to databases via directories and other hierarchical structures and interfaces
US6314415B1 (en) * 1998-11-04 2001-11-06 Cch Incorporated Automated forms publishing system and method using a rule-based expert system to dynamically generate a graphical user interface
US20010056460A1 (en) * 2000-04-24 2001-12-27 Ranjit Sahota Method and system for transforming content for execution on multiple platforms
US6374252B1 (en) * 1995-04-24 2002-04-16 I2 Technologies Us, Inc. Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US20020088008A1 (en) * 2000-08-21 2002-07-04 Markel Steven O. System and method for distribution of interactive content to multiple targeted presentation platforms
US20020087986A1 (en) * 2000-08-21 2002-07-04 Markel Steven O. System and method for web based enhanced interactive television content page layout
US20020138497A1 (en) * 2001-03-26 2002-09-26 International Business Machines Corporation Method, system, and program for implementing a database trigger
US6493704B1 (en) * 1999-09-13 2002-12-10 Oracle Corporation Method and apparatus for using metadata to dynamically generate a display page to solicit input from a user
US6496833B1 (en) * 1999-11-01 2002-12-17 Sun Microsystems, Inc. System and method for generating code for query object interfacing
US6499036B1 (en) * 1998-08-12 2002-12-24 Bank Of America Corporation Method and apparatus for data item movement between disparate sources and hierarchical, object-oriented representation
US20030004971A1 (en) * 2001-06-29 2003-01-02 Gong Wen G. Automatic generation of data models and accompanying user interfaces
US6523045B1 (en) * 1998-05-29 2003-02-18 Plexus Systems, Llc Graphical user interface shop floor control system
US20030084046A1 (en) * 2001-10-25 2003-05-01 Abm Systems Ltd. Versatile database interface system
US6571232B1 (en) * 1999-11-01 2003-05-27 Sun Microsystems, Inc. System and method for browsing database schema information
US20030135825A1 (en) * 2001-12-05 2003-07-17 Matthew Gertner Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources
US6609128B1 (en) * 1999-07-30 2003-08-19 Accenture Llp Codes table framework design in an E-commerce architecture
US6631519B1 (en) * 2000-03-30 2003-10-07 Microsoft Corporation Automated schema and interface generation
US6640231B1 (en) * 2000-10-06 2003-10-28 Ontology Works, Inc. Ontology for database design and application development
US20030220893A1 (en) * 2002-05-23 2003-11-27 International Business Machines Corporation Dynamic content generation/regeneration for a database schema abstraction
US20030225768A1 (en) * 2002-06-03 2003-12-04 Microsoft Corporation Workload analysis tool for relational databases
US20040015476A1 (en) * 2000-09-01 2004-01-22 Twaddle Graham Kennedy Method and system for dynamic web-page generation, and computer-readable storage
US6697808B1 (en) * 2001-06-19 2004-02-24 Microstrategy, Inc. Method and system for performing advanced object searching of a metadata repository used by a decision support system
US6738077B1 (en) * 2000-07-18 2004-05-18 Apple Computer, Inc. Dynamic generation and automated distribution of user interface from database model
US6857123B1 (en) * 1998-12-18 2005-02-15 International Business Machines Corporation Method and apparatus for a Meta Data Service in a data processing system
US6867789B1 (en) * 2000-02-15 2005-03-15 Bank One, Delaware, National Association System and method for generating graphical user interfaces
US6915301B2 (en) * 1998-08-25 2005-07-05 International Business Machines Corporation Dynamic object properties
US20050209892A1 (en) * 2004-03-19 2005-09-22 Miller Jonathan K [Automated system and method for providing accurate, non-invasive insurance status verification]
US7062502B1 (en) * 2001-12-28 2006-06-13 Kesler John N Automated generation of dynamic data entry user interface for relational database management systems
US7155667B1 (en) * 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7302436B2 (en) * 2003-10-02 2007-11-27 Bayerische Motoren Werke Aktiengesellschaft Business workflow database and user system
US7318066B2 (en) * 2000-10-31 2008-01-08 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US7461052B2 (en) * 2004-12-06 2008-12-02 International Business Machines Corporation Abstract query plan
US7730056B2 (en) * 2006-12-28 2010-06-01 Sap Ag Software and method for utilizing a common database layout
US7885981B2 (en) * 2000-10-31 2011-02-08 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US8126937B2 (en) * 2004-10-05 2012-02-28 Sap Ag Visual database modeling
US8161081B2 (en) * 2001-03-16 2012-04-17 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631664A (en) 1983-07-19 1986-12-23 Bachman Information Systems, Inc. Partnership data base management system and method
JPH03164816A (en) 1989-11-22 1991-07-16 Mitsubishi Electric Corp Information processor
US5701453A (en) 1993-07-01 1997-12-23 Informix Software, Inc. Logical schema to allow access to a relational database without using knowledge of the database structure
US20020010000A1 (en) 2000-01-25 2002-01-24 Vincent Chern Knowledge-based information retrieval system and method for wireless communication device
FR2813492B1 (en) * 2000-09-06 2006-09-01 Hydrotronic CUTTING BAR FOR COMBINE HARVESTER OR LIKE ENGINE

Patent Citations (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631661A (en) * 1982-12-07 1986-12-23 International Business Machines Corporation Fail-safe data processing system
US5428776A (en) * 1991-03-12 1995-06-27 Wang Laboratories, Inc. System for composing a graphical interface to a relational database which displays a network of query and source icons
US5553218A (en) * 1992-03-09 1996-09-03 International Business Machines Corporation Graphical user interface for relating key index properties to database table columns
US5353401A (en) * 1992-11-06 1994-10-04 Ricoh Company, Ltd. Automatic interface layout generator for database systems
US5495567A (en) * 1992-11-06 1996-02-27 Ricoh Company Ltd. Automatic interface layout generator for database systems
US5615367A (en) * 1993-05-25 1997-03-25 Borland International, Inc. System and methods including automatic linking of tables for improved relational database modeling with interface
US5550971A (en) * 1993-06-30 1996-08-27 U S West Technologies, Inc. Method and system for generating a user interface adaptable to various database management systems
US5499371A (en) * 1993-07-21 1996-03-12 Persistence Software, Inc. Method and apparatus for automatic generation of object oriented code for mapping relational data to objects
US5548749A (en) * 1993-10-29 1996-08-20 Wall Data Incorporated Semantic orbject modeling system for creating relational database schemas
US5764973A (en) * 1994-02-08 1998-06-09 Enterworks.Com, Inc. System for generating structured query language statements and integrating legacy systems
US5523942A (en) * 1994-03-31 1996-06-04 New England Mutual Life Insurance Company Design grid for inputting insurance and investment product information in a computer system
US5627979A (en) * 1994-07-18 1997-05-06 International Business Machines Corporation System and method for providing a graphical user interface for mapping and accessing objects in data stores
US5832498A (en) * 1994-09-13 1998-11-03 Bull, S.A. Device for generating object-oriented interfaces for relational data bases and a process implemented by this device
US5873093A (en) * 1994-12-07 1999-02-16 Next Software, Inc. Method and apparatus for mapping objects to a data source
US5819264A (en) * 1995-04-03 1998-10-06 Dtl Data Technologies Ltd. Associative search method with navigation for heterogeneous databases including an integration mechanism configured to combine schema-free data models such as a hyperbase
US6374252B1 (en) * 1995-04-24 2002-04-16 I2 Technologies Us, Inc. Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US5701543A (en) * 1995-09-19 1997-12-23 Noritsu Koki Co., Ltd. Cartridge case stocker apparatus in automatic film development processor machine
US6069627A (en) * 1995-11-01 2000-05-30 International Business Machines Corporation Extender user interface
US6035300A (en) * 1995-12-15 2000-03-07 International Business Machines Corporation Method and apparatus for generating a user interface from the entity/attribute/relationship model of a database
US5812134A (en) * 1996-03-28 1998-09-22 Critical Thought, Inc. User interface navigational system & method for interactive representation of information contained within a database
US5802514A (en) * 1996-04-09 1998-09-01 Vision Software Tools, Inc. Automated client/server development tool using drag-and-drop metaphor
US5778375A (en) * 1996-06-27 1998-07-07 Microsoft Corporation Database normalizing system
US6029172A (en) * 1996-08-28 2000-02-22 U.S. Philips Corporation Method and system for selecting an information item
US6061394A (en) * 1996-11-28 2000-05-09 Anritsu Corporation Digital communication system modulated signal generation apparatus incorporating fading simulator
US5950190A (en) * 1997-05-13 1999-09-07 Aptek, Inc. Dynamic, self-modifying graphical user interface for relational database applications
US5905985A (en) * 1997-06-30 1999-05-18 International Business Machines Corporation Relational database modifications based on multi-dimensional database modifications
US5937409A (en) * 1997-07-25 1999-08-10 Oracle Corporation Integrating relational databases in an object oriented environment
US6199068B1 (en) * 1997-09-11 2001-03-06 Abb Power T&D Company Inc. Mapping interface for a distributed server to translate between dissimilar file formats
US6016394A (en) * 1997-09-17 2000-01-18 Tenfold Corporation Method and system for database application software creation requiring minimal programming
US6101502A (en) * 1997-09-26 2000-08-08 Ontos, Inc. Object model mapping and runtime engine for employing relational database with object oriented software
US6266675B1 (en) * 1997-10-07 2001-07-24 Phycom Corporation System and method for using a relational database to enable the dynamic configuration of an application program
US5986673A (en) * 1997-10-17 1999-11-16 Martz; David R. Method for relational ordering and displaying multidimensional data
US5966707A (en) * 1997-12-02 1999-10-12 International Business Machines Corporation Method for managing a plurality of data processes residing in heterogeneous data repositories
US6058391A (en) * 1997-12-17 2000-05-02 Mci Communications Corporation Enhanced user view/update capability for managing data from relational tables
US20010011364A1 (en) * 1998-01-07 2001-08-02 Everett W. Stoub System for converting scrolling display to non-scrolling columnar display
US6012067A (en) * 1998-03-02 2000-01-04 Sarkar; Shyam Sundar Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web
US6523045B1 (en) * 1998-05-29 2003-02-18 Plexus Systems, Llc Graphical user interface shop floor control system
US6175837B1 (en) * 1998-06-29 2001-01-16 Sun Microsystems, Inc. Object-relational mapping toll that processes views
US6279008B1 (en) * 1998-06-29 2001-08-21 Sun Microsystems, Inc. Integrated graphical user interface method and apparatus for mapping between objects and databases
US6499036B1 (en) * 1998-08-12 2002-12-24 Bank Of America Corporation Method and apparatus for data item movement between disparate sources and hierarchical, object-oriented representation
US6915301B2 (en) * 1998-08-25 2005-07-05 International Business Machines Corporation Dynamic object properties
US6314415B1 (en) * 1998-11-04 2001-11-06 Cch Incorporated Automated forms publishing system and method using a rule-based expert system to dynamically generate a graphical user interface
US6857123B1 (en) * 1998-12-18 2005-02-15 International Business Machines Corporation Method and apparatus for a Meta Data Service in a data processing system
US6609128B1 (en) * 1999-07-30 2003-08-19 Accenture Llp Codes table framework design in an E-commerce architecture
US6493704B1 (en) * 1999-09-13 2002-12-10 Oracle Corporation Method and apparatus for using metadata to dynamically generate a display page to solicit input from a user
US6571232B1 (en) * 1999-11-01 2003-05-27 Sun Microsystems, Inc. System and method for browsing database schema information
US6496833B1 (en) * 1999-11-01 2002-12-17 Sun Microsystems, Inc. System and method for generating code for query object interfacing
WO2001033388A2 (en) * 1999-11-01 2001-05-10 Sherwood International Group Limited Method and system for multi-user access of a database over a network
US6867789B1 (en) * 2000-02-15 2005-03-15 Bank One, Delaware, National Association System and method for generating graphical user interfaces
US20060020586A1 (en) * 2000-03-03 2006-01-26 Michel Prompt System and method for providing access to databases via directories and other hierarchical structures and interfaces
US20010034733A1 (en) * 2000-03-03 2001-10-25 Michel Prompt System and method for providing access to databases via directories and other hierarchical structures and interfaces
US6631519B1 (en) * 2000-03-30 2003-10-07 Microsoft Corporation Automated schema and interface generation
US20010056460A1 (en) * 2000-04-24 2001-12-27 Ranjit Sahota Method and system for transforming content for execution on multiple platforms
US7155667B1 (en) * 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US6738077B1 (en) * 2000-07-18 2004-05-18 Apple Computer, Inc. Dynamic generation and automated distribution of user interface from database model
US20020088008A1 (en) * 2000-08-21 2002-07-04 Markel Steven O. System and method for distribution of interactive content to multiple targeted presentation platforms
US20020087986A1 (en) * 2000-08-21 2002-07-04 Markel Steven O. System and method for web based enhanced interactive television content page layout
US20040015476A1 (en) * 2000-09-01 2004-01-22 Twaddle Graham Kennedy Method and system for dynamic web-page generation, and computer-readable storage
US6640231B1 (en) * 2000-10-06 2003-10-28 Ontology Works, Inc. Ontology for database design and application development
US7318066B2 (en) * 2000-10-31 2008-01-08 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US7885981B2 (en) * 2000-10-31 2011-02-08 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US8161081B2 (en) * 2001-03-16 2012-04-17 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US20020138497A1 (en) * 2001-03-26 2002-09-26 International Business Machines Corporation Method, system, and program for implementing a database trigger
US6697808B1 (en) * 2001-06-19 2004-02-24 Microstrategy, Inc. Method and system for performing advanced object searching of a metadata repository used by a decision support system
US20030004971A1 (en) * 2001-06-29 2003-01-02 Gong Wen G. Automatic generation of data models and accompanying user interfaces
US20030084046A1 (en) * 2001-10-25 2003-05-01 Abm Systems Ltd. Versatile database interface system
US20030135825A1 (en) * 2001-12-05 2003-07-17 Matthew Gertner Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources
US7062502B1 (en) * 2001-12-28 2006-06-13 Kesler John N Automated generation of dynamic data entry user interface for relational database management systems
US7401094B1 (en) * 2001-12-28 2008-07-15 Kesler John N Automated generation of dynamic data entry user interface for relational database management systems
US20030220893A1 (en) * 2002-05-23 2003-11-27 International Business Machines Corporation Dynamic content generation/regeneration for a database schema abstraction
US20030225768A1 (en) * 2002-06-03 2003-12-04 Microsoft Corporation Workload analysis tool for relational databases
US7302436B2 (en) * 2003-10-02 2007-11-27 Bayerische Motoren Werke Aktiengesellschaft Business workflow database and user system
US20050209892A1 (en) * 2004-03-19 2005-09-22 Miller Jonathan K [Automated system and method for providing accurate, non-invasive insurance status verification]
US8126937B2 (en) * 2004-10-05 2012-02-28 Sap Ag Visual database modeling
US7461052B2 (en) * 2004-12-06 2008-12-02 International Business Machines Corporation Abstract query plan
US7730056B2 (en) * 2006-12-28 2010-06-01 Sap Ag Software and method for utilizing a common database layout

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WebDB, Tutorial Guide Release 2.2. OCT 1999. <http://docs.oracle.com/cd/A87860_01/doc/webdb.817/a77075.pdf> *

Cited By (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7761535B2 (en) * 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
US20030159136A1 (en) * 2001-09-28 2003-08-21 Huang Xiao Fei Method and system for server synchronization with a computing device
US20070067710A1 (en) * 2005-09-22 2007-03-22 Clark David K Navigating table data with mouse actions
US8826112B2 (en) * 2005-09-22 2014-09-02 International Business Machines Corporation Navigating table data with mouse actions
US20070143398A1 (en) * 2005-12-16 2007-06-21 Jean Graham Central work-product management system for coordinated collaboration with remote users
US7761591B2 (en) * 2005-12-16 2010-07-20 Jean A. Graham Central work-product management system for coordinated collaboration with remote users
US8078598B2 (en) * 2006-01-09 2011-12-13 Siemens Aktiengesellschaft Efficient SQL access to point data and relational data
US20090327212A1 (en) * 2006-01-09 2009-12-31 Trevor Bell Efficient SQL access to point data and relational data
US20080162532A1 (en) * 2006-12-27 2008-07-03 Rakshit Daga Method and system for generating relational spreadsheets
US8869020B2 (en) * 2006-12-27 2014-10-21 Sap Ag Method and system for generating relational spreadsheets
US20080162553A1 (en) * 2006-12-27 2008-07-03 Rakshit Daga Method and system for generating string-based addresses
US8015210B2 (en) 2006-12-27 2011-09-06 Sap Ag Method and system for generating string-based addresses
US8719124B2 (en) 2007-04-30 2014-05-06 Textura Corporation Construction payment management systems and methods with specified billing features
US9824375B2 (en) 2007-04-30 2017-11-21 Textura Corporation Construction payment management systems and methods with specified billing features
US10169389B2 (en) 2007-10-26 2019-01-01 Microsoft Technology Licensing, Llc Metadata driven reporting and editing of databases
US20140012883A1 (en) * 2007-10-26 2014-01-09 Microsoft Corporation Metadata driven reporting and editing of databases
US9372876B2 (en) * 2007-10-26 2016-06-21 Microsoft Technology Licensing, Llc Metadata driven reporting and editing of databases
US7895174B2 (en) * 2008-03-27 2011-02-22 Microsoft Corporation Database part table junctioning
US20090248710A1 (en) * 2008-03-27 2009-10-01 Microsoft Corporation Database Part Table Junctioning
US8595236B2 (en) * 2009-11-05 2013-11-26 International Business Machines Corporation Searching existing user interfaces to enable design, development and provisioning of user interfaces
US20110107243A1 (en) * 2009-11-05 2011-05-05 International Business Machines Corporation Searching Existing User Interfaces to Enable Design, Development and Provisioning of User Interfaces
US20120137359A1 (en) * 2010-11-29 2012-05-31 Groupe Cgi Inc. Method For Storing (Hiding) A Key In A Table And Corresponding Method For Retrieving The Key From The Table
US20120151382A1 (en) * 2010-12-14 2012-06-14 Microsoft Corporation Generating and managing electronic documentation
US9286061B2 (en) * 2010-12-14 2016-03-15 Microsoft Technology Licensing, Llc Generating and managing electronic documentation
US9141650B1 (en) * 2011-12-06 2015-09-22 The Boeing Company Methods and systems for filtering tree node data to determine part and assembly relationships
US9201575B2 (en) * 2012-01-10 2015-12-01 General Motors Llc Method and system for database browsing
US20130179807A1 (en) * 2012-01-10 2013-07-11 General Motors Llc Method and system for database browsing
US20140047377A1 (en) * 2012-08-09 2014-02-13 Sap Ag Retrieving data from an external data source
US20140149470A1 (en) * 2012-11-27 2014-05-29 Sandeep Rawal Systems and methods for storing and populating forms
US20150286720A1 (en) * 2012-12-11 2015-10-08 Tmm Data, Llc Methods and systems for collecting, managing, and sharing data
US20140310262A1 (en) * 2013-03-15 2014-10-16 Cerinet Usa Inc. Multiple schema repository and modular database procedures
US20160117416A1 (en) * 2014-10-27 2016-04-28 Joseph Wong Automatic detection of queries missing order-by via unit test
US9767219B2 (en) * 2014-10-27 2017-09-19 Successfactors, Inc. Automatic detection of queries missing order-by via unit test
WO2016179536A1 (en) * 2015-05-07 2016-11-10 51 Maps, Inc. Secure container platform for resource access and placement on unmanaged and unsecured devices
US11115211B2 (en) 2015-05-07 2021-09-07 Ba Insight, Llc Secure container platform for resource access and placement on unmanaged and unsecured devices
US10423629B2 (en) * 2015-09-22 2019-09-24 Microsoft Technology Licensing, Llc Intelligent tabular big data presentation in search environment based on prior human input configuration
US20170083526A1 (en) * 2015-09-22 2017-03-23 Microsoft Technology Licensing, Llc Intelligent tabular big data presentation in search environment based on prior human input configuration
US20220382719A1 (en) * 2016-09-17 2022-12-01 Oracle International Corporation Change request visualization in hierarchical systems
US11487716B2 (en) 2016-09-17 2022-11-01 Oracle International Corporation Application materialization in hierarchical systems
US11449474B2 (en) * 2016-09-17 2022-09-20 Oracle International Corporation Change request visualization in hierarchical systems
US11144512B2 (en) 2016-09-17 2021-10-12 Oracle International Corporation Data intersection mastering in hierarchical systems
US11036692B2 (en) 2016-09-17 2021-06-15 Oracle International Corporation Governance pools in hierarchical systems
US20180181555A1 (en) * 2016-12-27 2018-06-28 Ohio State Innovation Foundation Rewriting forms for constrained interaction
US11238980B2 (en) 2017-03-24 2022-02-01 Galen Data, Inc. Systems and methods to automate transfer, storage, and analysis of medical device data
WO2018175944A1 (en) * 2017-03-24 2018-09-27 Galen Data, Inc. Systems and methods to automate transfer, storage, and analysis of medical device data
US11645250B2 (en) * 2017-12-08 2023-05-09 Palantir Technologies Inc. Detection and enrichment of missing data or metadata for large data sets
US20190258731A1 (en) * 2018-02-22 2019-08-22 Flowfinity Wireless, Inc. Dynamic data editor for data analysis system
US11741080B2 (en) * 2018-02-22 2023-08-29 Flowfinity Wireless, Inc. Dynamic data editor for data analysis system
RU2704873C1 (en) * 2018-12-27 2019-10-31 Общество с ограниченной ответственностью "ПЛЮСКОМ" System and method of managing databases (dbms)
US20200301909A1 (en) * 2019-03-20 2020-09-24 Parametric Systems Pty Ltd Techniques for Controlling Interaction with an Application Database
US11630819B2 (en) * 2019-03-20 2023-04-18 Parametric Systems Pty Ltd Techniques for controlling interaction with an application database
WO2020264053A1 (en) * 2019-06-27 2020-12-30 Kleeen Software, Inc. System and method for employing constraint based authoring

Also Published As

Publication number Publication date
US7401094B1 (en) 2008-07-15
US7062502B1 (en) 2006-06-13

Similar Documents

Publication Publication Date Title
US7401094B1 (en) Automated generation of dynamic data entry user interface for relational database management systems
US20230222109A1 (en) Method and apparatus for converting heterogeneous databases into standardized homogeneous databases
US7673282B2 (en) Enterprise information unification
US7185317B2 (en) Logical data modeling and integrated application framework
US8086647B2 (en) Sequenced modification of multiple entities based on an abstract data representation
US7853610B2 (en) Virtual foldering system for blending process and content in a collaborative environment
US6035300A (en) Method and apparatus for generating a user interface from the entity/attribute/relationship model of a database
US7752197B2 (en) SQL query construction using durable query components
US7730446B2 (en) Software business process model
US6161103A (en) Method and apparatus for creating aggregates for use in a datamart
US7577934B2 (en) Framework for modeling and providing runtime behavior for business software applications
US7925658B2 (en) Methods and apparatus for mapping a hierarchical data structure to a flat data structure for use in generating a report
US20090287737A1 (en) Architecture for enabling rapid database and application development
US8775330B2 (en) Establishing a data management fee structure based on fine grained data entities
US20040093559A1 (en) Web client for viewing and interrogating enterprise data semantically
US7739224B1 (en) Method and system for creating a well-formed database using semantic definitions
US20070255741A1 (en) Apparatus and method for merging metadata within a repository
US20070094306A1 (en) Method and model for enterprise system development and execution
US20060122977A1 (en) Techniques for managing interdependent data objects
US20080016048A1 (en) Intelligent condition pruning for size minimization of dynamic, just in time tables
US20070198987A1 (en) API for obtaining unambiguous representation of objects in a relational database
US20080016047A1 (en) System and method for creating and populating dynamic, just in time, database tables
Mueller Microsoft ADO. NET Entity Framework Step by Step
US6931414B1 (en) Creating visual data models combining multiple inter-related model segments
US20060106776A1 (en) Utilizing mathematical operations with abstract queries

Legal Events

Date Code Title Description
AS Assignment

Owner name: UNIFI SCIENTIFIC ADVANCES, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MIND CONCEPTS TECHNOLOGY, LLC;REEL/FRAME:025500/0683

Effective date: 20100528

AS Assignment

Owner name: ADVANCED DYNAMIC INTERFACES, LLC, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:UNIFI SCIENTIFIC ADVANCES, INC.;REEL/FRAME:028267/0793

Effective date: 20120104

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION