Interactive Form Editor with Simultaneous Automatic Creation of Schema Files

The interactive form editor facilitates user-friendly creation of database forms by visually dragging and dropping data fields, automatically generating schema codes, addressing the challenge of non-technical users in defining compatible forms for digital relational databases.

JP2025523055APending Publication Date: 2025-07-17TREASURE DATA INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025501537
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-26
Filing Date
2023-07-07
Publication Date
2025-07-17

AI Technical Summary

Technical Problem

Users without technical knowledge face difficulties in creating user interface forms compatible with established data schemas for digital relational databases, requiring custom programming or schema definition knowledge.

Method used

An interactive form editor that allows users to visually create forms by dragging and dropping data fields, automatically generating data schema and user interface schema codes, enabling bidirectional editing and validation, and exporting the code for digital storage.

Benefits of technology

Enables non-technical users to create functional forms compatible with data schemas without manual coding, ensuring form functionality and quality control during creation and deployment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025523055000001_ABST
    Figure 2025523055000001_ABST
Patent Text Reader

Abstract

Providing a computer-implemented method executed by one or more computing devices that execute one or more sequences of stored program instructions. 【Solution means】The computer-implemented method includes starting the execution of an interactive form editor and presenting a graphical user interface and the simultaneous display of three or more windows corresponding to a form, a data schema, a user interface schema, field attributes, and a field template, accepting a first input that specifies dragging two or more data entry fields and dropping them onto two or more pages of a multi-page form, automatically and simultaneously updating a data schema window with data schema code corresponding to the two or more data entry fields, accepting a second input and, in response, exporting the data schema code to a digital file of a digital data storage system, accepting a third input and, in response, copying the data schema code to a configuration file and adding the configuration file to a digital storage package, and uploading the digital storage package to a shared file system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Copyright Notice A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright 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 file or records, but otherwise reserves all copyrights and rights. (Registered Trademark) Treasure Data, Inc.

[0002] One technical field of the present disclosure is data-driven forms that support user interaction with large-scale relational database systems. Another technical field is visual and graphic interactive computer-implemented interface design tools.

Background Art

[0003] The approaches described in this section are approaches that could be pursued, but are not necessarily approaches that have already been conceived or pursued. Therefore, absent other indications, no one of the approaches described in this section should be presumed to be eligible for prior art solely by virtue of its inclusion in this section.

[0004] Today, digital relational databases are widely used in the integration of various practical applications to store, manage, and control the flow of information in enterprises. An example of an application is employee expense management. In many enterprises, employees or contractors bear external expenses during the employment process and scope, and have the right to receive reimbursement from the enterprise for these expenses. To manage the collection, review, and approval of expense information, enterprises use expense management software linked to a relational database.

[0005] Visual and graphic interactive forms can be programmed as elements of the front end of such databases. A user of a database instance may want to define their own form to adapt the database system to the specific requirements of a business, product, or service. To date, the definition of such forms has required custom programming or knowledge of schema definition and languages. Users other than technicians may find it difficult to understand the basic schema definition of forms. Therefore, there is an urgent need in the field of database applications for an improved computer implementation method that allows users other than technicians to create user interface forms that are compatible with established data schemas.

Summary of the Invention

Problems to be Solved by the Invention

[0006] The present invention has been made to solve the above problems in the prior art.

Means for Solving the Problems

[0007] The appended claims may function as a summary of the invention.

Brief Description of the Drawings

[0008]

Figure 1

Figure 2

Figure 3A

Figure 3B

Figure 4A

Figure 4B

Figure 5

Figure 6

Figure 7

Figure 8A

Figure 8B

Figure 9

BEST MODE FOR CARRYING OUT THE INVENTION

[0009] In the following description, for the purpose of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.

[0010] The text of this disclosure is intended to prose the algorithms necessary to program a computer to implement the claimed invention at the same level of detail used by those of ordinary skill in the art of the disclosure to communicate with each other regarding the programmed functions, inputs, transformations, outputs, and other aspects of programming, in combination with the drawings. That is, the level of detail presented in this disclosure is the same level of detail that those of ordinary skill in the art normally use to communicate with each other to represent the algorithms or the structure and functions of the programs programmed to implement the invention claimed herein.

[0011] 1. General Overview In an embodiment, a computer user can visually create a form for a database application by dragging data fields and dropping them onto a form to associate different types of fields with different attributes, and automatically generate a preview display of the data that an end user enters into the form at runtime, while simultaneously updating the data schema and the user interface schema. The simultaneous creation of four types of data - the data schema, the user interface schema, the association between the data field types and the form, and the display of the input data - corresponds to something developed from past practice and one aspect of the inventive contribution conceived by the inventors at the time of the invention, such as the combination of views of these four data classes in a single user interface.

[0012] As further described in other sections of this specification, in an embodiment, the interactive form editor 1. A dynamic layout for the user to expand and collapse various panels 2. JSON Schema Code Editor 3. UI Schema Code Editor 4. Integrated Schema Code Editor 5. Form Data Preview 6. Live Form Renderer Preview 7. Attribute Panel for Interactive Mode, can be programmed in new combinations.

[0013] In embodiments, depending on the configuration, the user can actively switch between the supported code editor languages (JSON or YAML), view split or integrated schemas, configure single-page form modals or multi-page form modals, and switch form editing via the code editor or the interactive builder. In embodiments, in the code editor mode, the user manually edits each schema, and any updates are automatically synchronized with the visual form such that a live preview of the form is rendered when it appears in the runtime used with the database application. In this way, the user can fully customize the form and export the code. In the interactive editor, the user can drag preconfigured schema templates and drop them into the modal to build the form. They can edit the schema attributes via the UI. In this way, the user can fully customize the form and export the code. Any changes to this mode are synchronized to draw the live preview.

[0014] The user also has the option to switch between edit modes to make modifications. Any changes in either mode are bilateral, updating the appropriate UI fields in a live or responsive manner. Advanced users can use both methods in iterative mode to edit the form to ease configuration and then switch to the editor mode to provide advanced configurations not currently supported by drag-and-drop.

[0015] The multi-page form builder is an extension of the single-page form and generates an integrated schema with nested page objects. Thus, the user can define each page using a code editor or an interactive editor.

[0016] Embodiments include the subject matter of the following numbered clauses.

[0017] 1. A computer-implemented method executed by one or more computing devices that execute one or more sequences of stored program instructions, the method comprising starting execution of an interactive form editor and presenting a graphical user interface and simultaneous display of three or more windows corresponding to a form, a data schema, a user interface schema, field attributes, and a field template; receiving a first input specifying dragging two or more data entry fields and dropping them onto two or more pages of a multi-page form; automatically and simultaneously updating a data schema window with data schema code corresponding to the two or more data entry fields; receiving a second input and, in response, exporting the data schema code to a digital file of a digital data storage system; receiving a third input and, in response, copying the data schema code to a configuration file and adding the configuration file to a digital storage package; and uploading the digital storage package to a shared file system.

[0018] 2. The computer-implemented method of clause 1, wherein the second input includes a close command or an export command.

[0019] 3. The computer-implemented method of clause 1, wherein the third input includes a command to copy the schema code.

[0020] 4. The computer-implemented method of claim 1, further comprising asynchronously accepting manual changes to the data schema code with respect to an update of the data schema window, and automatically updating the visual appearance of the multi-page form according to the updated data schema code in response thereto.

[0021] 5. The computer-implemented method of claim 1, further comprising asynchronously accepting updates to field attributes with respect to an update of the data schema window, and automatically updating the visual appearance of the multi-page form according to the updated data schema code in response thereto.

[0022] 6. The computer-implemented method of claim 1, further comprising asynchronously accepting a fourth input including data entry of values into fields of the multi-page form with respect to an update of the data schema window, and automatically updating the form data window to show the code representation of the values in response thereto.

[0023] 7. The computer-implemented method of claim 1, wherein the multi-page form includes at least a data schema, a user interface schema, and form data.

[0024] 8. The computer-implemented method of claim 1, further comprising adding a new field to the multi-page form by accepting an input specifying to drag a template identifier from a template panel and drop the template identifier onto a page of the multi-page form, and automatically displaying a default name of the new field of the multi-page form and a graphical widget into which data entry can be accepted in response thereto.

[0025] 9. Digitally storing the data schema code and the user interface (UI) schema code in the main memory of the backing store for the data schema window and the UI schema window, and hiding the data schema window and the UI schema window with an interactive form editor while updating the data schema code and the UI schema code of the storage device in real time without user involvement, the computer-implemented method of claim 1 further comprising.

[0026] 10. The computer-implemented method of claim 1 further comprising performing an inverse update of the multi-page form and its visual appearance in response to a fourth input specifying an edit or change to the data schema code or the UI schema code shown in the data schema window or the UI schema window.

[0027] 11. Displaying a plurality of toggle widgets near the multi-page form, programmed to respond to a fourth input specifying to display the code using JSON or YAML without an interactive editor display, and closing the visual display of the form, field attributes, form fields, and form data in response to a fourth input of a JSON control or a YAML control, and opening an editor for the data schema code corresponding to the data schema window using JSON syntax or YAML syntax, the computer-implemented method of claim 1 further comprising.

[0028] 12. The computer-implemented method of claim 1, wherein each data field of the multi-page form has a plurality of digitally stored attributes including at least an internal field name, a screen name, or a display name of the data field, and one or more characteristics or constraints.

[0029] 13. Accept a fourth input specifying to drag a field template from a template panel and drop it onto a multi-page form, and in response, automatically copy one or more default attributes of the field template to data schema code, further including automatically instantiating a field definition of the data schema code in a data schema window. The computer-implemented method of claim 1.

[0030] 14. Select a field corresponding to a field definition to access a field attribute panel, accept a fifth input specifying to modify one or more attributes of the field, and automatically and simultaneously update the visual appearance of the fields of the multi-page form in the data schema code of the data schema window and the UI schema code of the UI schema. The computer-implemented method of claim 13.

[0031] 15. Start execution of an interactive form editor to present a graphical user interface and a simultaneous display of three or more windows corresponding to a form, a data schema, a user interface schema, field attributes, and field templates. Accept a first input specifying to drag two or more data input fields and drop them onto two or more pages of a multi-page form. Automatically and simultaneously update a data schema window with data schema code corresponding to two or more data entry fields. Accept a second input, and in response, export the data schema code to a digital file of a digital data storage system. Accept a third input, and in response, copy the data schema code to a configuration file and add the configuration file to a digital storage package. A computer-implemented method by uploading the digital storage package to a shared file system. One or more non-transitory computer-readable storage media storing one or more sequences of instructions that, when executed by one or more processors, cause the one or more processors to execute.

[0032] 16. The non - transitory computer - readable storage medium of claim 15, wherein the second input includes a close command and an export command.

[0033] 17. The non - transitory computer - readable storage medium of claim 15, wherein the third input includes a command to copy a schema code.

[0034] 18. The non - transitory computer - readable storage medium of claim 15, further including an instruction sequence that, when executed using one or more processors, asynchronously with respect to the update of the data schema window, accepts manual changes to the data schema code and, in response, automatically updates the visual appearance of the multi - page form according to the updated data schema code.

[0035] 19. The non - transitory computer - readable storage medium of claim 15, further including an instruction sequence that, when executed using one or more processors, asynchronously with respect to the update of the data schema window, accepts updates to field attributes and, in response, automatically updates the visual appearance of the multi - page form according to the updated data schema code.

[0036] 20. The non - transitory computer - readable storage medium of claim 15, further including an instruction sequence that, when executed using one or more processors, asynchronously with respect to the update of the data schema window, accepts a fourth input including data entry of values into fields of the multi - page form and, in response, automatically updates the form data window to show the code representation of the values.

[0037] 21. The non - transitory computer - readable storage medium of claim 15, wherein the multi - page form includes at least a data schema, a user interface schema, and form data.

[0038] When executed using a processor of 22.1 or higher, accept an input specifying that a template identifier is dragged from a template panel and dropped onto a page of a multi-page form, and in response, cause one or more processors to add a new field to the multi-page form by automatically displaying the default name of the new field of the multi-page form and the graphical widget into which data entry can be accepted. The non-transitory computer-readable storage medium of claim 15 further includes an instruction sequence.

[0039] When executed using a processor of 23.1 or higher, digitally store a data schema code and a user interface (UI) schema code in the main memory of a backing store for a data schema window and a UI schema window, and without user involvement, update the data schema code and the UI schema code of the storage device in real time while hiding the data schema window and the UI schema window with an interactive form editor. The non-transitory computer-readable storage medium of claim 15 further includes an instruction sequence.

[0040] When executed using a processor of 24.1 or higher, the non-transitory computer-readable storage medium of claim 15 further includes an instruction sequence that, in response to a fourth input specifying an edit or change to the data schema code or the UI schema code shown in the data schema window or the UI schema window, causes one or more processors to perform an inverse update of the multi-page form and its visual appearance.

[0041] When executed using a processor above 25.1, displaying a plurality of toggle widgets near a multi-page form in response to a fourth input that specifies displaying code using JSON or YAML without an interactive editor display, and further including an instruction sequence for causing one or more processors to close the visual display of forms, field attributes, form fields, and form data in response to a fourth input of a JSON control or YAML control and open an editor for data schema code corresponding to a data schema window using JSON syntax or YAML syntax, the non-transitory computer-readable storage medium of claim 15.

[0042] 26. The non-transitory computer-readable storage medium of claim 15, wherein each data field of the multi-page form has a plurality of digital storage attributes including at least an internal field name, a screen name, or a display name of the data field and one or more characteristics or constraints.

[0043] When executed using one or more processors, accepting a fourth input that specifies dragging a field template from a template panel and dropping it onto a multi-page form, and in response thereto, automatically instantiating a field definition of data schema code in a data schema window, including automatically copying one or more default attributes of the field template to the data schema code, the non-transitory computer-readable storage medium of claim 15 further including an instruction sequence for causing one or more processors to perform the above.

[0044] When executed using a processor above 28.1, accepting a fifth input that specifies selecting a field corresponding to a field definition, accessing a field attribute panel, and modifying one or more attributes of the field, and further including an instruction sequence that causes one or more processors to automatically and simultaneously update the visual appearance of the fields of the multi-page form with the data schema code of the data schema window and the UI schema code of the UI schema. A non-transitory computer-readable storage medium according to claim 27.

[0045] 2. Structural and Functional Overview A certain commercially available software as a service (SaaS) database application includes computer-supported facilities that can be installed in an instance of the database application and enable end users to create digital assets that may be beneficial to unrelated end users. Digital assets may include forms, files, images, or other elements. The purpose of creating new digital assets may be to extend the database application or to share new forms for specific areas or industries that other users may find beneficial.

[0046] Generally, forms and files are digitally provided or stored in a shared file system that other users can use online using a browser. Therefore, a first user with a license for a first instance of the database application can create a form or a package containing the form and store it in a virtual marketplace for packages, files, and forms. An unrelated second user can access this virtual marketplace, download the package and its components, and install them in an instance of the second user of the same database application. One example is the TREASURE DATA MARKETPLACE commercially available from Treasure Data Co., Ltd. The marketplace may offer free or paid downloads of packages.

[0047] With this approach, a user or developer typically creates a form as part of a large package that includes other files, code, or images stored together in an archive or other shared file. When an end user downloads and installs the package, the form becomes available, can be opened or instantiated, and used. The form can specify input data that the user must supply to successfully install. For example, the form can contain input data fields for an application programming interface (API) key, a data table name, or other installation information. The package can define a data analysis dashboard with specified graphs, charts, or other information displays. The form of the package can contain input data fields for an API key, a source table, and identification information for the data being analyzed.

[0048] In some such systems, the forms provided by a user must conform to a specified format or configuration. For example, data-driven forms may need to conform to a published schema such as a JSON schema described in the online domain “json-schema.org.” A developer can be any end user of a database application. The end user can be an employee of a customer of the manufacturer, seller, or licensee of the database application. Some users may have a wide range of technical knowledge and can create forms using a code editor outside of the user interface of the database application or shared file system. However, a developer may not have a wide range of technical knowledge or education. According to an embodiment, an interactive form editor is programmed to accept visual and graphic user input, such as a drag-and-drop command using a pointing device, and in response create a form and simultaneously automatically create a schema definition for the form. In some embodiments, the interactive form and schema are displayed side by side and can be alternately viewed or edited by changing one and automatically updating the other. This process can be referred to as, for example, bidirectional editing. Thus, a user can preview the form during creation. In an embodiment, the schema is automatically validated when the form is created. As a result, a developer can create and store a correct functional form without having to manually create, edit, or modify form code. Further, in an embodiment, the validation function can automatically perform quality control on the form to ensure that the form functions when other users download and install it.

[0049] FIG. 1 illustrates a distributed computer system showing a usage scenario and main functional elements when an embodiment can be implemented.

[0050] In an embodiment, the computer system 100 includes components that are at least partially implemented by one or more computing devices, such as one or more hardware processors that execute stored program instructions stored in one or more memories to perform the functions described herein. In other words, all of the functions described herein are intended to refer to operations that are implemented using programming on a special-purpose computer or a general-purpose computer in various embodiments. FIG. 1 illustrates only one of many possible arrangements of components configured to execute the programming described herein. Other arrangements may include fewer or different components, and the division of labor among the components may vary depending on the arrangement.

[0051] FIG. 1 and all of the descriptions and claims of the present disclosure are intended to present, disclose, and claim a technical system and a technical method in which a computer specifically programmed using a dedicated distributed computer system design performs functions that were not previously available for practically applying computing technologies to problems of developing, validating, and deploying machine learning models. Thus, it is unsupported and incorrect to interpret the present disclosure or claims to include exceptions to patent eligibility, such as abstract ideas, mental processes, methods of classifying human activities, or mathematical algorithms.

[0052] In an embodiment, the plurality of user computers 102, 104 are communicatively coupled to two or more application server instances 106A, 106B using a data communication network 103, and each of the application server instances is coupled to a shared file system of a form storage device 114 and a data repository 116. Each of the user computers 102, 104 may include a desktop computer, a workstation, a laptop computer, a tablet computer, a mobile computing device, or a smartphone. Each of the user computers 102, 104 may comprise the hardware components and architecture shown in FIG. 9, which are described in other sections of this specification. Each of the user computers 102, 104 generally incorporates an operating system, one or more application programs such as business or personal productivity applications, and an Internet browser such as FIREFOX, DUCKDUCKGO, EDGE, CHROME, or SAFARI.

[0053] Network 103 broadly represents one or more local area networks, wide area networks, campus networks, Internetworks, or combinations thereof, including, but not limited to, the public Internet.

[0054] Each of the application server instances 106A, 106B may include a computer, a processor cluster, or a virtual machine instance in an enterprise facility, a private data center, a public data center, or an online cloud computing facility such as Amazon AWS (AMAZON AWS), Microsoft AZURE (MICROSOFT AZURE), and the like. For the purpose of showing a clear example, assume that each of the application server instances 106A, 106B is associated with a different enterprise, user, or licensee, and that the user computer 102 accesses and uses only the application server instance 106A, and the user computer 104 accesses and uses only the application server instance 106B. In this architecture, the application server instances 106A, 106B may be coupled to a shared multi-tenant storage device in the form of the data repository 116, which can implement tenant-specific security controls to ensure that only the computers of authorized users can create, read, update, or delete data belonging to the instance to which the user computer is associated.

[0055] Each of the application server instances 106A, 106B generally incorporates an instance of a software-as-a-service (SaaS) application, such as a database application, although the specific application programs can vary in different embodiments and can be adapted to fields, industries, or sectors such as finance, education, health, manufacturing, and others. For clarity, the SaaS applications incorporated in the application server instances 106A, 106B are omitted in FIG. 1. The functional elements of the application server instances 106A, 106B relevant to this disclosure can include form editor instructions 108, schema validator 110, and presentation instructions 126. These elements are shown as examples in the application server instance 106A. The functional elements are programmed to work together to facilitate creating one or more forms 118 and storing the forms in the shared file system form storage 114, and using the shared storage, the first user computer 102 associated with the first application server instance 106A can create and store a form 118, and the second user computer 104 can download the form and install it on the second application server instance 106B. In this way, the shared file system form storage 114 can implement a shared marketplace that can incorporate forms, packages, files, or other resources provided by the community of computer users, for download, installation, and use by other users or their computers.

[0056] In an embodiment, form 118 includes a union of a digitally stored data schema 130 and a user interface (UI) schema 122. During the form 118 creation process, further described in other sections of this specification, and at runtime when the form is used, form data 124 can be created and stored in relation to the form as a result of user input into the form's data fields. As further described, when form 118 is edited, in preview mode, the user can enter data into the form's fields, which results in the display of form data 124. At runtime, when form 118 is used in relation to one of application server instances 106A, 106B, form data 124 is created and temporarily stored in main memory, and can be posted from main memory to a data repository using, for example, a parameterized HTTP POST request in which the form data includes a payload.

[0057] In some embodiments, a developer defines a package for execution using Amazon's TERRAFORM. In one embodiment, the package includes a configuration data set conforming to YAML, specifications for one or more workflows, and form 118. Alternatively, the package contains JSON, a file specifying a visualization or other processing workflow, and specifications for the conversion of data from a multi-page form to a workflow. In an embodiment, the data schema 130 of each form 118 conforms to a schema definition 112 that can be stored using a network server or storage device accessible by application server instances 106A, 106B via network 103. A schema validator 110 can be programmed to generate data schema 130 when form 118 is created to ensure that the data schema conforms to schema definition 112. In an embodiment, schema definition 112 is a JSON data-driven form schema of the type that is documented at the time of this writing to a file in the public internet domain "json-schema.org".

[0058] The architectural description of FIG. 1 and the functional description of computer system 100 and its functional elements in the present disclosure mainly focus on a form editing mode, stage, or phase in which user computer 102 provides visual drag-and-drop input to define form 118, automatically generates code representing the form, and can store the form as part of a large package stored in shared file system form storage 114. After form 118 is created using form editor instructions 108 and the techniques herein, the same user computer 102 or a different user computer 104 can install the form and other elements of the package containing the form on one of application server instances 106A, 106B. Through the installation, form 118 becomes available for use with this instance and the data of data repository 116 belonging to this instance. The usage mode, stage, or phase after installation is referred to as runtime in the present disclosure. Each of application server instances 106A, 106B may include functional elements not shown in FIG. 1 for loading, executing, and rendering form 118 at runtime. For example, a front-end rendering instruction set may be programmed to read form 118, analyze the code of the data schema and / or UI schema, and visually render the form on user computer 104 for interactive use.

[0059] Figure 2 is a flowchart of a computer-implemented process or algorithm that can be programmed as part of one embodiment. Figure 2 and each of the other flowcharts in this specification are intended as examples at a functional level when those skilled in the art belonging to the technology of the present disclosure communicate with each other to describe and execute an algorithm using programming. The flowchart is not intended to illustrate every instruction, method object, or sub-step required to program every aspect of the working program, but is provided at the same functional example level commonly used in the art at a high level to convey the basics of the working program under development.

[0060] In block 202, the process is programmed to initiate the execution of an interactive form editor having a graphical user interface and a simultaneous display of three or more of forms, data schemas, user interface schemas, field attributes, and field templates.

[0061] In block 204, the process is programmed to accept an input specifying that two or more data entry fields are dragged and dropped onto two or more pages of a multi-page form. In block 206, the process is programmed to automatically synchronously update the data schema window with the data schema code corresponding to the data entry fields added to the multi-page form.

[0062] In block 208, the process is programmed to optionally accept manual changes to the code of the data schema. In block 210, the process is programmed to automatically update the visual appearance of the multi-page form according to the updated data schema code. In one embodiment, a rendering engine, "react-jsonschema-form", can be used to update the visual appearance of the multi-page form. The rendering engine accepts as input the data schema code and the code for the user interface schema and generates a visual representation of the form. The cited rendering engine is available at the time of this writing in the folder or directory "rjsf-team" of the GITHUB service on the public Internet.

[0063] In block 212, the process is programmed to optionally accept updates to field attributes. In block 213, the process is programmed to optionally accept user data entry of values in the fields of the form and automatically update the form data window to show the code representation of the values, thus implementing a preview mode for the data values that can be entered into the fields of the form at runtime. Any of blocks 208, 210, 212, 213 can always be executed asynchronously in response to user input when the form is being created or defined.

[0064] In block 214, the process is programmed to determine whether a close or export command has been received. If not received, control passes to block 204, where the process thus accepts further input of dragging other fields and dropping them on the form, performs automatic updates to the window about the data schema and other windows as required, accepts updates to field attributes, accepts changes to the code of the data schema, and forms a loop that can automatically update the visual appearance again. In this way, blocks 204, 206, 208, 210, 212, 213, 214 enable continuous simultaneous two-way updates of the multi-part visual form, the schema definition for the data, and the UI characteristics of the form, without the end user needing to manually edit the code. Instead, as further described in other sections, a drag-and-drop operation can be used to create fields on the form and adjust field attributes, and in response the process automatically generates and / or updates the correct code for the data schema and the UI schema, or for the integrated schema. Updates to either the code or the visual format are synchronized across the entire editor and shown in a live preview when the form is edited. A preview is also provided in the embodiment for how the coded payload of the data values is formed at runtime when the data values are input into the form.

[0065] In block 216, the process is programmed to export the data schema code to a file. For example, after the multi-page form is completed, the user can select the "EXPORT DATA" option or its equivalent from among the controls of the graphical user interface. In response, the form editor can be programmed to copy the JSON code shown in the data schema window to the clipboard or scratchpad memory of the user computer 102. Then the user pastes a copy of the same code into a configuration file and binds the configuration file to the package that the user uploads to the shared file system. These steps can be automatically executed under the control of a script, workflow, or stored control program.

[0066] In block 218, the process is programmed to accept a command to copy the data schema code to a configuration file and add the configuration file to the package. In block 220, the process is programmed to accept a command to create a compressed file or archive, although the use of an archive or compressed file is not necessary. In block 222, the process is programmed to accept an upload command and upload the package to the shared file system.

[0067] FIG. 3A illustrates an example of a computer display device depicting and displaying a graphical user interface presented in schematic form that provides a simultaneous display of a form visualization representation, a data schema, a user interface (UI) schema, form data, field attributes, and form fields to a form editor. FIG. 3B shows an example of a similar computer display device in which an expanded form field panel is shown in relation to the form. Referring first to FIG. 3A, in an embodiment, the computer display device 300 comprises a graphical user interface referred to as a form editor 302 that includes a data schema window 304, a UI schema window 306, a form data window 308, a form 310, a field attribute panel 313, a template panel 314, and controls 312. In one embodiment, the form 310 includes a graphical visualization representation of a data entry form that may be used, for example, in relation to a SaaS-based database application. In some embodiments, as described in other sections, the definition of UI or presentation elements may be integrated into the data schema so that separate data schema and UI schema windows 304, 306 are not required.

[0068] FIG. 3A and the other figures of the drawings are illustrated and described with reference to computer display device 300. In various embodiments, computer display device 300 may be integrated with or provided peripherally to either of user computers 102, 104. Examples of computer display devices that may function with embodiments include LCD displays, touch screen displays, smartphone displays, plasma display panels, vector displays, CRT screens, and other digital electronic devices on which a graphical user interface may be drawn or displayed. The graphical user interface of the present disclosure may be drawn using a graphical processing unit, a conventional CPU, or other processor, either alone or in combination with a display driver or other electronic device. Presentation instructions 126 may be programmed on the server side such that an application program or browser on one of user computers 102, 104 generates and outputs display instructions that can be parsed and drawn by calling or interoperating with graphical elements, system display services, or operating system APIs that support the graphical display alone or in combination. Display instructions may include dynamic HTML, a stream of API calls with parameter values, vector display instructions, and others.

[0069] Form 310 may include a plurality of different data entry fields, and for purposes of showing an illustrative example, one field titled "Basic" is shown in FIG. 3A. In other embodiments, form 310 may have a number of pages or steps, and each page or step may have some practical number of fields. In an embodiment, template panel 314 identifies available field types by category and sub-type, examples of categories being "Number fields" and an example of a sub-type being "Number enum" which means a numeric list field.

[0070] Adding a field to form 310 involves accepting an input that specifies dragging a template identifier from the template panel 314 and dropping the template identifier onto the form 310. Now referring to FIG. 3B, in one embodiment, by dragging the template identifier onto the form 310 as indicated by arrow 320, other field titles "SELECT" and "BASIC" can be added to the form 310. A drag-and-drop operation can be directed using a computer pointing device such as a mouse, trackball, or touchpad, or directly on the touch-sensitive screen of device 300.

[0071] Accordingly, the form editor 302 is programmed to automatically display the default name of the new field of form 310 and the graphical widget into which data entry can be accepted. In the example of FIG. 3A, the "BASIC" field is a numeric field and has a rectangular widget programmed to accept numeric data entry. Also in response to the drag-and-drop operation, the form editor 302 is programmed to immediately generate code for the data schema corresponding to form 310 with the new field, update the data schema window 304 to show the code, generate code for the UI schema corresponding to the form with the new field, and update the UI schema window 306 to show the code. The data schema window 304 provides a coded representation of what data fields are in form 310, and the UI schema window 306 provides a coded representation of how these fields should be displayed on the form.

[0072] The data schema code and the UI schema code are digitally stored in the main memory of a data structure or file that functions as a backing store for the data schema window 304 and the UI schema window 306. In some embodiments, one or more of the data schema window 304, the UI schema window 306, and the form data window 308 may be hidden from display in the form editor in response to user input, such as selecting one or more window close controls associated with the window. Thus, the data schema window 304 and the UI schema window 306 correspond to a visual representation of the underlying backing store, although a continuous visual display of these windows is not required in all embodiments. What is important is that the relevant code is generated and updated in real time in the storage device without user involvement so that user actions can be limited to dragging fields and dropping them onto forms.

[0073] Furthermore, form editor 302 is programmed to perform reverse updates of form 310 and its visual appearance in response to user input specifying edits or changes to the code shown in data schema window 304 or UI schema window 306. In an embodiment, each of data schema window 304 and UI schema window 306 is programmed as a text editor capable of accepting user input specifying selection of a character position within the code shown in either window, typing changes, selections, copy and paste operations, cut or delete operations, and other text editing operations implemented in a graphical user interface's character-based text editor. In an embodiment, form editor 302 is programmed to perform real-time reverse updates of form 310 and its visual appearance on a character-by-character basis in response to user input specifying changes to the code shown in data schema window 304 or UI schema window 306. Alternatively, updates to form 310 may occur after a number of edits to the window in response to detection of a focus change of a cursor outside the window to a form or other element of the interface of form editor 302.

[0074] The form data window 308 provides a visual representation of the encoded form of the data values entered into the form 310. When the form editor 302 is used to create the form 310, the form data window 308 is created at runtime after installation by an instance of the SaaS application (Figure 1) when the form is in use and effectively provides a preview of the encoded form of the data values that will ultimately be posted to the backend application server. For example, in the form editor 302 of Figure 3A, when a field is added to the form 310, the user creating the form can type the data value into the form's field. In response, the form editor 302 is programmed to generate the encoded form of the data value and display the encoded form in the form data window 308. The encoded form may conform to JSON, YAML, or another structured language or format. In an embodiment, the encoded form of the data values in the data window 308 corresponds to the format of the data that the form 310 will send in a POST request or other transmission at runtime when moving data from the form to another server.

[0075] The template panel 314 may include any number of templates for a plurality of different categories of data fields, each having a number of subtypes. The templates may correspond to field types valid in the JSON data schema. The items of the template panel 314 are not exhaustive, and in other embodiments other data types may be supported. In one embodiment, the categories and subtypes include basic, radio, select for boolean fields, basic for object fields, basic for numeric fields, integer range, numeric list (list), basic, disabled, password, read-only, text area for string fields. The reference to "object" in this context refers to a program construct that defines a logical container for one or more ancestor or child elements. In embodiments, any number of object nestings and inclusion levels are possible. String type fields based on disabled templates may be used to present default values to the form that the user cannot change. When a field is based on a disabled template and has a default value, the default value is automatically reflected in the form data when the field is added to the form. Alternatively, a disabled template may be used to identify non-display data fields.

[0076] For other field attributes, marking a field as a secret field can indicate that subsequent processing of such values must be done with high security. Examples of high security include requiring user access control verification before transferring the value of the field to a different user, or requiring application access control verification before transferring the value of the field to another system, process, workflow, application, computer, or network area. By defining such controls in the field attributes, the data schema can be automatically updated when fields with these attributes are added to the form.

[0077] Control 312 specifies a plurality of functions that enable user input to provide instructions for changes in how the form editor 302 operates. In one embodiment, control 312 includes a toggle widget that enables a user to specify that code be displayed using JSON or YAML without an interactive editor display such as form editor 302. In an embodiment, selecting a JSON control or a YAML control closes the visual display of form 310, field attributes 313, form fields 314, and form data 308 and opens an editor for the code in data schema window 304 using JSON syntax or YAML syntax, respectively. In contrast, when the "Interactive Editor" control of control 312 is selected, in response, form editor 302 of FIGS. 3A and 3B is displayed. Control 312 may also include an "Export Code" widget that can be programmed as an active link or graphical button. In an embodiment, in response to user input specifying selection of the "Export Code" widget, form editor 302 is programmed to call the file download function of the operating system of the user's user computer 102 at that time to send a copy of the data schema code shown in data schema window 304. The "Export Code" function enables the user to obtain a copy of the auto-generated code that includes a package for later uploading to a shared file system. Typically, the "Export Code" operation is used when the user has filled out form 310 and is ready to share this with others as part of a package in a shared file system.

[0078] Each data field of the form 310 has multiple digital storage attributes such as an internal field name, a screen name or display name of the field, and one or more characteristics or constraints. In the embodiments of FIGS. 3A and 3B, when a field template is dragged from the template panel 314 and dropped onto the form 310, the field definition of the code in the data schema window 304 is automatically instantiated, including automatically copying the default attributes of the field template into the code. Therefore, one or more attributes of any field of the form 310 can be modified by identifying or selecting the field and accessing the field attribute panel 313. Identifying the field may include overlaying the screen cursor on a specific field of the form 310 using the pointing device of the user computer 102. Selecting the field may include being able to overlay the screen cursor on a specific field of the form 310 using the pointing device of the user computer 102.

[0079] Comparing FIGS. 3A and 3B, it can be seen that FIG. 3B shows an example where a "Select" field and a second "Basic" field are dragged onto the form 310 and instantiated here. In response to these operations, the form editor 302 is programmed to automatically update the data schema window 304 to display the data schema code in Table 1 and automatically update the UI schema window 306 to display the UI schema code in Table 2.

[0080] Table 1. Updated Data Schema Code for FIG. 3B

Table 1

[0081] Table 2. Updated UI Schema Code for FIG. 3B

Table 2

[0082] Figure 4A illustrates a form like that of FIG. 3A where one field is highlighted and as a result a pop-up field attribute panel is displayed. In the example of FIG. 4A, the user input indicates a selection of a first field labeled "Basic". In response, the form editor 302 is programmed to update the field using an individual visual attribute such as highlighting, inverted color, vivid color, or another attribute. At the same time, the form editor 302 is programmed to automatically display a pop-up field attribute panel 402 near the selected field and to incorporate a field attribute panel that includes the field attributes corresponding to the selected field and the values for the attributes. Thus, the size and content of the field attribute panel 402 will vary depending on which field is selected, its name, type, and other values. In the example of FIG. 4A, the basic field has an internal ID of "numeric", a title or display name of "Basic", and an "invalid" attribute that is not selected. Each of the attributes shown in the field attribute panel 402 is programmed to accept user input to change a value such as "numeric", "basic", or the check box for the "invalid" attribute. In response to user input to update any value in the field attribute panel 402 and subsequent selection of an "Apply" widget 404 or a similar activation widget, the form editor 302 is programmed to automatically update the visual appearance of the fields in the form 310, the code in the data schema window 304, and the code in the UI schema 306 simultaneously. Thus, each field can have multiple attributes. In one embodiment, the field has a "required" attribute that causes the data entry requirements for the field to be enforced on application instances 106A, 106B when the form is selected or activated at runtime after installation. Field attributes may be manually entered into the data schema window 304 using JSON code.

[0083] Figure 4B illustrates a schematic diagram of an example of an attribute panel. The example of Figure 4B shows the internal ID of "api key", the display name of "API key", an unselected and invalid attribute, and the attributes of a numeric field from a template for an API key type having the type of "password". In an embodiment, when processing a field having the "password" type, the form editor 302 is programmed to hide the data entered in the field using a character such as "*" or other techniques for obfuscating password data. The example of Figure 4B shows that the appearance of the attribute panel 402 changes based on the type of field specified or selected.

[0084] FIG. 5 illustrates an example of a computer display device such as that of FIG. 3A where a numerical value is entered into one field of a form, form data including this value is displayed, and both a field attribute panel and a form field panel are displayed. FIG. 5 represents an example where an end user adds a field to a form using form editor 302, then selects a count field, resulting in the opening of field attribute panel 502 which displays the values of the attributes corresponding to the count field. Further, when the end user enters "42" into the count field, in response, form editor 302 is programmed to automatically update form data window 308 with code that designates the value "42" in relation to the "field ID" of "numerical value" shown in field attribute panel 502. When the form is used at runtime by one of application server instances 106A, 106B and at that time the end user enters "42", the application server instance uses the code shown in form data window 308 in the payload of a "post" request, or a similar call to the application server to provide this value. Thus, the example of FIG. 5 shows that an end user can use form editor 302 to verify whether the coding of the form data in form data window 308 is correct based on the values entered into form 310. Asynchronously, the end user can also modify one or more attributes of the "count" field by updating the values in field attribute panel 502.

[0085] FIG. 6 illustrates an example of a computer display device that renders and displays a graphical user interface for a multi-page form in which one field is highlighted. In the example of FIG. 6, computer display device 300 is rendering the graphical user interface of form editor 600 in which form 602 was created. Page control panel 304 includes page selection widget 606 that is programmed to accept input specifying the first or second page using a toggle technique and, in response, update form 602 to show fields for the selected page. In the example of FIG. 6, “Page 2” is selected such that form 602 shows fields for this page.

[0086] The second page includes “Basic Input” field 608 shown in a selected state, and “Selection” field 610 and “Basic” fields 612, 614 in a non-selected state. Control bar 616 may include a “Back” widget and a “Next” widget implemented as active graphical buttons and programmed to switch between “Back” and “Next” states to control virtual movement between page 1 and page 2 of the multi-page form. In embodiments, the multi-page form may have any number of pages. The multi-page form can be beneficial when the package needs to collect complex, structured, or extensive data from the user. For example, multiple pages may contain an ordered data set reached using “Next” or “Back” widgets. Further, on the next page, certain data entry elements, such as a drop-down menu, may be programmed to offer a selection that the data is based on values entered on the previous page. Selection of the “Next” button may be programmed to submit the data values of the previous page for storage in data repository 116 (FIG. 1) such that they can be recalled by a database query call when the next page is accessed.

[0087] As in the prior example, when the form 602 of FIG. 6 is edited to create multiple pages and add fields, the form editor is programmed to automatically update the data schema window 304 with the code corresponding to the pages and fields of the form. Table 3 shows an example of the data schema code that is generated for the example of FIG. 6 in one embodiment, stored in the data schema backing store, and optionally displayed in the data schema window 304.

[0088] Table 3. Updated Data Schema Code for FIG. 6

Table 3A

Table 3B

Table 3C

[0089] In the example of Table 3, the JSON schema code for both "Page 1" and "Page 2" includes a "ui:" declaration. In an embodiment, the data schema code supports JSON or YAML as the source language for the code, but also includes a derived schema that integrates the UI schema into the data schema code. In one implementation example, the "ui" field at the top level of the data schema facilitates the easy transfer of the payload from an API such as the presentation instruction 126 to the front-end rendering elements, and these can split the code to fully render the form at the front-end at runtime. Thus, in an embodiment, a custom integration schema that interoperates with the split JSON schema and UI schema or supports multi-page forms may be used.

[0090] FIG. 7 illustrates an example of a computer display device similar to FIG. 6 in which a data schema window and a form data window are displayed in relation to a form. In the example of FIG. 7, the computer display device 300 depicts and displays a user interface for a form editor 702 that includes a form 701 having two pages, as indicated by a page selection widget 704 in which "Page 1" is selected. The first page includes an API key field 706, an invalid or non-display field 708, a text area field 710, a numeric list field 712, and a placeholder text entry field. The API key field 706 is an example of a secret field, and the form editor 702 can be programmed to interpret field attributes such that a field requires display of obfuscated characters of the field value rather than the actual characters of the field value. The text area field 710, which can be instantiated from a template of a category of "string" and a sub-type of "text area", can be programmed to accept multiple lines of text input. The form editor 702 can be programmed to process a "numeric list" field that can be instantiated from a template of a category of "numeric" and a sub-type of "list" to display a list of radio button widgets each associated with a different numeric value.

[0091] Furthermore, in the example of FIG. 7, the form editor 702 includes a data schema window 304 and a form data window 308 as in the prior example. The data schema window 304 is automatically updated to show the code for the data schema corresponding to the multi-page form and its fields. In this example, the form data window 308 is automatically updated to reflect the values entered into an API key field having an internal identifier of "my data" and a disabled field having an internal identifier of "string". In this example, the value entered into the API key field 706 is shown in plain text form in the form data window 308. In other embodiments, the form editor 702 can be programmed to generate form data for secure or obfuscated fields using encryption or other coding techniques and include the encrypted text or coded form in the form data of the form data window.

[0092] FIG. 8A illustrates an example of a computer display device similar to FIG. 6 in which a multi-page form is being created and the step properties panel is displayed. FIG. 8B illustrates an example of a computer display device similar to FIG. 8A in which a data schema window and a field toolkit are displayed. Referring first to FIG. 8A, in one embodiment, the computer display device 300 depicts and displays a graphical user interface of a form editor 802 that includes a framework space 804, a form 806, a control window 810, a data schema control 820, a form data control 822, a step control panel 826, and a code export control 830. In an embodiment, the framework space 804 functions as a visual container for the form 806, the data schema control 820, the form data control 822, and the step control panel 826. As in the prior example, the form 806 may comprise a plurality of form pages or steps specified by step controls 807, although the example of FIG. 8A includes a single step labeled "API Configuration". The terms "page" and "step" are used interchangeably, and any of these terms, or various functionally equivalent terms, may be used in various embodiments. The form 806 of this example comprises a "label" field 808 that accepts text entry and a "selection" field that includes a single list radio button. The set of form controls 818 may include graphical widgets programmed to switch between steps of the multi-step form 806, such as "back" and "next" widgets.

[0093] Each form 806 may also include step descriptions 816. In this example, the presence or absence of step descriptions may be specified using a toggle widget of a step control panel 826 that is set to "ON" or equivalent. In some embodiments, the step control panel 826 may include a language widget programmed to accept user input specifying the display language for the form 806 and automatically invoke translation logic to translate the text of form fields and labels into the target language specified using the language widget. In some embodiments, the form editor may be programmed with localization support in the UI schema definition to dynamically render the form in various languages according to the local language preferences of the user computers 102, 104. Thus, customization of various field descriptions such as titles, descriptions, help text, hint text, and option labels becomes possible. At runtime, the presentation instructions 126 may be programmed to select and display appropriate descriptor strings using the locale of the user computers 102, 104 or the locale of an application embedded within one of the application server instances 106A, 106B. Table 4 shows an example of an integrated data schema that declares form title values using a number of alternative languages.

[0094] Table 4. Integrated Schema for Declaring Multiple Languages [Table 4]

[0095] In an embodiment, by selecting a control window 810 programmed to prepare two or more tabs 812 labeled as a tool kit and characteristics in the example of FIG. 8A, the content of the step description 816 is specified. In an embodiment, the form editor 802 is programmed to update the control window 810 with one or more data input fields associated with the specified tab in response to user input selecting a tab label such as a tool kit or characteristics. For the characteristics tab, the data input fields may include a step title and a step description, each of which may be specified in one or more languages. A change to the data input fields may be initiated by user input selecting an "Apply" widget 824 in the control window 810. The form editor is programmed to update the form 806 by changing the values entered in the control window 810 in response to the selection of the "Apply" widget 824. Thus, in an embodiment, when the step description field 814 is changed in the control window 810, the step description 816 is automatically updated.

[0096] In an embodiment, the form editor 802 is programmed to visually expand a data schema control 820 to show a data schema window comprising a list of data schema codes corresponding to the form 806 in a manner similar to the data schema window 304 of FIG. 7 in response to user input selecting the data schema control 820. The data schema control 820 may be programmed to have a toggle function that selectively expands or collapses the data schema window 304 in response to successive selections of the control.

[0097] Similarly, the form editor 802 is programmed to visually expand a form data control to show a form data window containing values entered into a form similar to the form data window 308 of FIG. 7 in response to user input selecting the form data control 822. The form data control 822 may be programmed to have a toggle function that selectively expands or collapses the form data window 308 in response to successive selections of the control.

[0098] In an embodiment, as already described for other examples, the "export code" widget 830 is programmed to export the code of the data schema window 304 to a file on the user computers 102, 104.

[0099] Referring now to FIG. 8B, an example of a computer display device similar to that shown in FIG. 8A in which a data schema window and a field tool kit are displayed is illustrated. A data schema control 820 is selected, and in response, the form editor 802 is programmed to automatically instantiate and display a data schema window 304 that includes a list of data schema codes corresponding to the form 806 after calling the schema validator 110 to generate the code. Whenever the data schema window 304 is open, the form editor 802 is programmed to automatically update the code list in response to user input to drag a field and drop it onto the form or change the attributes of the field. In this example, the tool kit tab 812 of the control window 810 is selected, and in response to an update of the control window, the form editor 802 is programmed to display a search box 842 and a plurality of field template tiles 844, each corresponding to a different subtype of field that can be added to the form 806. Any number of different field template tiles 844 can be provided, and the control window 810 can be implemented using a scrolling technique that allows user input to scroll the tiles up or down to make the tiles invisible or visible. The field template tiles 844 can be aligned in a category below or near the category label 846, examples of which are shown as "text field", "numeric field", and "selection". Each of the field template tiles 844 can include a graphical polygon that specifies a field identifier, such as "integer range", when the field template tile is instantiated as a field of the form 806, and an icon or other graphical visual representation of the appearance of the corresponding field. Similar to the template of the form field window 314 in the examples of FIGS. 3A and 3B, each field template tile 844 can be selected via user input using a pointing device and dragged onto the form 806.In response, the form editor 802 is programmed to instantiate a field corresponding to the selected field template tile and add the field to the form.

[0100] Using the disclosed embodiments, a computer user can visually create a form by dragging and dropping data fields onto the form to associate different types of fields with different attributes, and automatically generate a preview representation of the data that an end user will enter into the form at runtime, while simultaneously updating the data schema and the user interface schema. The simultaneous creation of four types of data - the data schema, the user interface schema, the association of data field types with the form, and the representation of the input data - corresponds to a development from past practice and an aspect of the inventor's contribution as conceived at the time of the invention, like the combination of views of these four data classes in a single user interface.

[0101] 3. Implementation Example - Hardware Overview According to one embodiment, the technology described herein is implemented by at least one computing device. The technology may be implemented in whole or in part using a combination of at least one server computer and / or other computing devices coupled using a network such as a packet data network. The computing device may include a digital electronic device such as at least one application specific integrated circuit (ASIC) or field programmable gate array (FPGA) that is wired-connected to implement the technology or that is permanently programmed to implement the technology, or may include at least one general purpose hardware processor programmed to implement the technology according to program instructions in firmware, memory, other storage device, or a combination. Such a computing device may also combine custom wiring logic circuits, ASICs, or FPGAs with custom programming to achieve the described technology. The computing device may be a server computer, workstation, personal computer, portable computer system, handheld device, mobile computing device, wearable device, body-worn or implanted device, smartphone, smart home appliance, internetworking device, autonomous or semi-autonomous device such as a robot or unmanned ground or aerial vehicle, other electronic device in which the described technology is implemented by wired connection and / or programmed logic circuits incorporated, one or more virtual computing machines or instances of a data center, and / or a network of server computers and / or personal computers.

[0102] FIG. 9 is a block diagram illustrating an example of a computer system in which an embodiment can be implemented. In the example of FIG. 9, a computer system 900 and instructions for implementing the disclosed technology in hardware, software, or a combination of hardware and software are schematically represented, for example, by squares or circles, at the same level of detail customarily used by those of ordinary skill in the art to which the present disclosure pertains, to convey information about computer architecture and the implementation of computer systems.

[0103] The computer system 900 includes an input / output (I / O) subsystem 902 that may include a bus and / or other communication mechanism for communicating information and / or instructions between components of the computer system 900 in an electronic signal path. The I / O subsystem 902 may include an I / O controller, a memory controller, and at least one I / O port. The electronic signal path is schematically represented in the drawing, for example, as a straight line, a one-way arrow, or a two-way arrow.

[0104] At least one hardware processor 904 is coupled to the I / O subsystem 902 for processing information and instructions. The hardware processor 904 may include, for example, a general-purpose microprocessor or microcontroller, and / or a dedicated microprocessor such as an embedded system or a graphics processing unit (GPU), or a digital signal processor or an ARM processor. The processor 904 may comprise an integrated arithmetic logic unit (ALU) or may be coupled to another ALU.

[0105] Computer system 900 includes one or more units of memory 906, such as main memory, coupled to I / O subsystem 902 for electronically digitally storing data and instructions executed by processor 904. Memory 906 may include volatile memory, such as various forms of random access memory (RAM), or other dynamic storage devices. Memory 906 may also be used to store temporary variables or other intermediate information during execution of instructions by processor 904. Such instructions, when stored on a non-transitory computer-readable storage medium accessible to processor 904, can cause computer system 900 to be a special-purpose machine customized to perform the operations specified by the instructions.

[0106] Computer system 900 further includes non-volatile memory, such as read only memory (ROM) 908, or other static storage devices coupled to I / O subsystem 902 for storing information and instructions for processor 904. ROM 908 may include various forms of programmable ROM (PROM), such as erasable PROM (EPROM) or electrically erasable PROM (EEPROM). Units of persistent storage device 910 may include various forms such as non-volatile RAM (NVRAM), such as flash memory, solid state storage devices, magnetic disks, or optical disks such as CD-ROM or DVD-ROM, and may be coupled to I / O subsystem 902 for storing information and instructions. Storage device 910 is an example of a non-transitory computer-readable medium that may be used to store instructions and data that, when executed by processor 904, cause a computer-implemented method to implement the techniques of this specification.

[0107] Instructions in the memory 906, ROM 908, or storage device 910 may include one or more sets of instructions classified as modules, methods, objects, functions, routines, or calls. The instructions may be classified as application programs including one or more computer programs, operating system services, or mobile apps. The instructions may process operating systems and / or system software, one or more libraries supporting multimedia, programming, or other functions, data protocol instructions implementing TCP / IP, HTTP, or other communication protocols or stacks, file format instructions for parsing or rendering files encoded using HTML, XML, JPEG, MPEG, or PNG, user interface instructions for rendering or interpreting commands for a graphical user interface (GUI), command line interface, or text user interface, application software such as office suites, Internet access applications, design and manufacturing applications, graphics applications, audio applications, software engineering applications, educational applications, games, or various applications. The instructions may implement a web server, web application server, or web client. The instructions may be classified as data storage layers such as presentation layers, application layers, and relational database systems using structured query language (SQL) or not only SQL, object stores, graph databases, flat file systems, or other data storage devices.

[0108] Computer system 900 may be coupled to at least one output device 912 via I / O subsystem 902. In one embodiment, output device 912 is a digital computer display. Examples of displays that may be used in various embodiments include touch screen displays, or light emitting diode (LED) displays, or liquid crystal displays (LCD), or electronic paper displays. Computer system 900 may alternatively, or in addition to a display device, include other types of output devices 912. Examples of other output devices 912 include printers, ticket printers, plotters, projectors, sound cards or video cards, speakers, buzzers or piezoelectric devices or other audible devices, lamps or LEDs or LCD indicators, tactile devices, actuators, or servos.

[0109] At least one input device 914 is coupled to I / O subsystem 902 to communicate signals, data, command selections, or gestures to processor 904. Examples of input devices 914 include touch screens, microphones, still and video digital cameras, alphanumeric and other keys, keypads, keyboards, graphics tablets, image scanners, joysticks, clocks, switches, buttons, dials, slides, and / or various types of sensors such as force sensors, motion sensors, thermal sensors, accelerometers, gyroscopes, and inertial measurement unit (IMU) sensors, and / or various types of transceivers such as cellular or WiFi wireless, radio frequency (RF) or infrared (IR) transceivers, and global positioning system (GPS) transceivers.

[0110] Another type of input device is a control device 916 that can alternatively or in addition to the input function perform other automated control functions such as cursor control or navigation of a graphical interface on a display screen. The control device 916 can be a touchpad, mouse, trackball, or cursor direction keys for communicating direction information and command selections to the processor 904 and for controlling cursor movement on the display 912. The input device can have at least two degrees of freedom in two axes, namely a first axis (e.g., x) and a second axis (e.g., y), for the device to specify a position on a plane. Another type of input device is a wired, wireless, or optical control device such as a joystick, pen-type scanner, console, steering wheel, pedal, gear shift mechanism, or other type of control device. The input device 914 can include combinations of a number of different input devices such as a video camera and a depth sensor.

[0111] In another embodiment, the computer system 900 can comprise a mono Internet of Things (IoT) device in which one or more of the output device 912, input device 914, and control device 916 are omitted. Alternatively, in such an embodiment, the input device 914 can include one or more cameras, motion detectors, thermometers, microphones, seismic detectors, other sensors or detectors, measurement devices or encoders, and the output device 912 can include a dedicated display such as a single-line LED or LCD display, one or more indicators, a display panel, a meter, a valve, a solenoid, an actuator, or a servo.

[0112] When computer system 900 is a mobile computing device, input device 914 may include a GPS receiver coupled to a GPS module capable of triangulation to a plurality of Global Positioning System (GPS) satellites and determination and generation of geographical location or position data such as latitude and longitude values for the geophysical location of computer system 900. Output device 912 may include hardware, software, firmware, and interfaces for generating position reporting packets, notifications, pulses or heartbeat signals, or other repetitive data transmissions specifying the location of computer system 900, either alone or in combination with other application-specific data sent to host 924 or server 930.

[0113] Computer system 900 may implement the techniques described herein using customized wiring logic circuitry, at least one ASIC or FPGA, firmware, and / or program instructions or logic circuitry that, when loaded and used or executed in combination with the computer system, cause the computer system to operate as or program it to be a dedicated machine. According to one embodiment, the techniques herein are implemented by computer system 900 in response to a processor 904 executing at least one sequence of at least one instruction stored in main memory 906. Such instructions may be read into main memory 906 from another storage medium such as storage device 910. Execution of the instruction sequence stored in main memory 906 causes processor 904 to perform the process steps described herein. In an alternative embodiment, instead of or in combination with software instructions, a wiring circuit configuration may be used.

[0114] As used herein, the term "memory medium" refers to a non-transitory medium that stores data and / or instructions for operating a machine in a specific manner. Such memory media can include non-volatile media and / or volatile media. Non-volatile media includes, for example, optical or magnetic disks such as storage device 910. Volatile media includes dynamic memory such as memory 906. General forms of memory media include, for example, hard disks, solid state drives, flash drives, magnetic data storage media, any optical or physical data storage media, memory chips, and others.

[0115] Memory media is distinct from, but can be used in conjunction with, transmission media. Transmission media is involved in the transmission of information between memory media. For example, transmission media includes coaxial cables, copper wires, and optical fibers including the wires that form the bus of I / O subsystem 902. Transmission media can also take the form of acoustic or light waves such as those generated during radio and infrared data communications.

[0116] When carrying at least one sequence of at least one instruction to processor 904 for execution, various forms of media can be involved. For example, the instruction can first be carried on the magnetic disk or solid state drive of a remote computer. The remote computer loads the instruction into dynamic memory and uses a modem to send the instruction over a communication link such as an optical fiber, coaxial cable, or telephone line. A local modem or router for computer system 900 receives the data over the communication link and can convert the data into a format that can be read by computer system 900. For example, a receiver such as a radio frequency antenna or infrared detector receives data carried by a wireless or optical signal, and an appropriate circuit configuration can provide the data to I / O subsystem 902, such as loading the data onto the bus. I / O subsystem 902 carries the data to memory 906, from which processor 904 reads and executes the instruction. The instruction received by memory 906 can optionally be stored in storage device 910 before or after execution by processor 904.

[0117] The computer system 900 also includes a communication interface 918 coupled to a bus 902. The communication interface 918 provides a two-way data communication connection to a network link 920 that is directly or indirectly connected to at least one communication network, such as a network 922, or a public or private cloud on the Internet. For example, the communication interface 918 can be a modem that provides a data communication connection to an Ethernet networking interface, an integrated services digital network (ISDN) card, a cable modem, a satellite modem, or a corresponding type of communication line, such as any type of Ethernet cable or metal cable, or an optical fiber line or a telephone line. The network 922 broadly represents a local area network (LAN), a wide area network (WAN), a campus network, an Internetwork, or a combination thereof. The communication interface 918 can include a LAN card that provides a data communication connection to a compatible LAN, a cellular wireless telephone interface wired to transmit and receive cellular data according to a cellular wireless telephone networking standard, or a satellite wireless interface wired to transmit and receive digital data according to a satellite wireless networking standard. In any of such implementations, the communication interface 918 transmits and receives electrical, electromagnetic, or optical signals via a signal path that carries a digital data stream representing various types of information.

[0118] The network link 920 generally provides electrical, electromagnetic, or optical data communication directly or through at least one network to other data devices, using, for example, satellite, cellular, Wi-Fi, or Bluetooth® technology. For example, the network link 920 can provide a connection through the network 922 to a host computer 924.

[0119] Furthermore, network link 920 may provide a connection through network 922 or other computing devices via an internetworking device and / or computer operated by an Internet service provider (ISP) 926. ISP 926 provides data communication services through a worldwide packet data communication network represented as the Internet 928. Server computer 930 may be coupled to the Internet 928. Server 930 broadly represents any computer, data center, virtual machine, or virtual computing instance, with or without a hypervisor or computer that runs a containerization program system such as DOCKER or KUBERNETES. Server 930 may be implemented using one or more computers or instances to represent an electronic digital service that is accessed and used by sending web service requests, uniform resource locator (URL) strings that include parameters in an HTTP payload, API calls, application service calls, or other service calls. Computer system 900 and server 930 may form elements of a distributed computing system that includes other computers, processing clusters, server farms, or other mechanisms of computers that cooperate to perform tasks or execute applications or services. Server 930 may include one or more instruction sets classified as modules, methods, objects, functions, routines, or calls. The instructions may be classified as application programs that include one or more computer programs, operating system services, or mobile apps.The commands may include application software such as operating systems and / or system software, one or more libraries that support multimedia, programming, or other functions, data protocol commands or stacks that implement TCP / IP, HTTP, or other communication protocols, file formats that process commands to parse or render files encoded using HTML, XML, JPEG, MPEG, or PNG, user interface commands that draw or interpret commands for a graphical user interface (GUI), command line interface, or text user interface, office suites, Internet access applications, design and manufacturing applications, graphics applications, audio applications, software engineering applications, educational applications, games, or various other applications. Server 930 may include a web application server that incorporates a presentation layer, an application layer, and a data storage layer such as a relational database system that uses Structured Query Language (SQL) or not only SQL, an object store, a graph database, a flat file system, or other data storage devices.

[0120] Computer system 900 may send messages and receive data and instructions including program code through a network, network link 920, and communication interface 918. In an example of the Internet, server 930 may send the requested code for an application program through Internet 928, ISP 926, local network 922, and communication interface 918. The received code may be executed by processor 904 upon receipt and / or stored in storage device 910 or other non-volatile storage device for later execution.

[0121] The execution of the instructions described in this section may implement the process in the form of an instance of a running computer program consisting of program code and its current activity. Depending on the operating system (OS), the process may consist of multiple execution threads that execute instructions simultaneously. In this context, while a computer program is a passive set of instructions, a process can be the actual execution of these instructions. Several processes may be associated with the same program. For example, opening several instances of the same program means that one or more processes are running. Multitasking may be implemented such that multiple processes share the processor 904. While each processor 904 or core of the processor executes a single task at a time, the computer system 900 may be programmed to implement multitasking that switches between the processors during the tasks being executed without having to wait for each task to complete. In an embodiment, when a task indicates that it can be switched while performing an input / output operation, or when a hardware interrupt occurs, the switch may be performed. By rapidly implementing a context switch that simultaneously provides the situation of simultaneous execution of multiple processes, time sharing may be implemented to allow for fast response for interactive user applications. In an embodiment, for safety and reliability, the operating system may prevent direct communication between independent processes and provide an inter-process communication function with strict mediation and control.

[0122] In the above specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Accordingly, the specification and drawings are to be considered in an illustrative rather than a limiting sense. The only thing that uniquely indicates the scope of the invention and what the applicant intends to be the scope of the invention, including later amendments, is the literal and equivalent scope of such claims in the specific form set forth by the set of claims published in this application.

Description of the Reference Numerals

[0123] 102 User computer 103 Data communication network 104 User computer 106A, 106B Application server instances 108 Form editor command 110 Schema validator 112 Schema definition 114 Shared file system form storage device 116 Data repository 118 Form 122 User interface schema 124 Form data 126 Presentation command 130 Data schema 300 Computer display device 302 Form editor 304 Data schema window 306 User interface schema window 308 Form data window 310 Form 312 Control 313 Field attribute panel 314 Template panel 402 Field attribute panel 404 "Apply" widget 502 Field attribute panel 600 Form editor 602 Form 606 Page selection widget 608 "Basic" input field 610 "Select" field 612 "Basic" field 614 "Basic" field 616 Control bar 701 Form 702 Form editor 704 Page selection widget 706 API key field 708 Invalid or Hidden Field 710 Text Area Field 712 Numeric List Field 802 Form Editor 804 Form Workspace 806 Form 807 Step Control 808 "Label" Field 810 Control Window 812 Toolkit Tab 814 Step Description Field 816 Step Description 818 Form Control 820 Data Schema Control 822 Form Data Control 824 "Apply" Widget 826 Step Control Panel 830 Code Export Control 842 Search Box 844 Field Template Tile 846 Category Label 900 Computer System 902 Input / Output (I / O) Subsystem 904 Hardware Processor 906 Memory 908 Read-Only Memory (ROM) 910 Storage Device 912 Output Device 914 Input Device 916 Control Device 918 Communication Interface 920 Network Link 922 Network 924 Host 926 Internet Service Provider (ISP) 928 Internet 930 Server

Claims

1. A computer-implemented method executed by one or more computing devices that execute one or more sequences of stored program instructions, comprising: starting the execution of an interactive form editor and presenting a graphical user interface and a simultaneous display of three or more windows corresponding to a form, a data schema, a user interface schema, field attributes, and field templates; accepting a first input that specifies dragging two or more data entry fields and dropping them onto two or more pages of a multi-page form; automatically and simultaneously updating a data schema window with data schema code corresponding to the two or more data entry fields; accepting a second input and, in response to the second input, exporting the data schema code to a digital file of a digital data storage system; accepting a third input and, in response to the third input, copying the data schema code to a configuration file and adding the configuration file to a digital storage package; uploading the digital storage package to a shared file system; A computer-implemented method comprising the above steps.

2. The computer-implemented method of claim 1, wherein the second input includes a close command or an export command.

3. The computer-implemented method of claim 1, wherein the third input includes a command to copy the schema code.

4. The computer-implemented method of claim 1, further comprising asynchronously accepting manual changes to the data schema code with respect to the update of the data schema window, and automatically updating the visual appearance of the multi-page form according to the updated data schema code in response to the manual changes.

5. The computer-implemented method of claim 1, further comprising asynchronously accepting updates to the field attributes with respect to the update of the data schema window, and automatically updating the visual appearance of the multi-page form according to the updated data schema code in response to the updates.

6. Asynchronously with respect to the update of the data schema window, receive a fourth input including data entry of values into fields of the multi-page form, and further include automatically updating a form data window to show a code representation of the values in response to the fourth input, the computer-implemented method of claim 1.

7. The computer-implemented method of claim 1, wherein the multi-page form comprises at least the data schema, the user interface schema, and form data.

8. Receive an input specifying to drag a template identifier from a template panel and drop the template identifier onto a page of the multi-page form to add a new field to the multi-page form, and further include automatically displaying a default name of the new field of the multi-page form and a graphical widget on which the data entry can be received in response to the input, the computer-implemented method of claim 1.

9. Digitally store data schema code and UI schema code in a main memory of a backing store for the data schema window and a user interface (UI) schema window, Hide the data schema window and the UI schema window in the interactive form editor while updating the data schema code and the UI schema code of the storage device in real time without user involvement, The computer-implemented method of claim 1, further including.

10. Execute reverse updates of the multi-page form and the visual appearance of the multi-page form in response to a fourth input specifying an edit or change to the data schema code or the UI schema code shown in the data schema window or the UI schema window, the computer-implemented method of claim 1, further including.

11. Display a plurality of toggle widgets near the multi-page form programmed to respond to a fourth input specifying to display code using JSON or YAML without an interactive editor display. In response to the fourth input to the JSON control or the YAML control, closing the visual display of the form, field attributes, form fields, and form data, and opening an editor for data schema code corresponding to the data schema window using JSON syntax or YAML syntax, The computer-implemented method of claim 1, further comprising.

12. The computer-implemented method of claim 1, wherein each data field of the multi-page form has a plurality of digital storage attributes including at least an internal field name, a screen name, or a display name of the data field, and one or more characteristics or constraints.

13. Receiving a fourth input specifying dragging a field template from a template panel and dropping it onto the multi-page form; Automatically instantiating a field definition of data schema code in the data schema window, including automatically copying one or more default attributes of the field template to the data schema code in response to the input; The computer-implemented method of claim 1, further comprising.

14. Selecting a field corresponding to the field definition, accessing a field attribute panel, and receiving a fifth input specifying modifying one or more attributes of the field; Automatically and simultaneously updating the visual appearance of the field of the multi-page form with the data schema code of the data schema window and the UI schema code of the UI schema; The computer-implemented method of claim 13, further comprising.

15. When executed using one or more processors, Starting the execution of an interactive form editor, presenting a graphical user interface, and a simultaneous display of three or more windows corresponding to a form, a data schema, a user interface schema, field attributes, and a field template; Receiving a first input specifying dragging two or more data entry fields and dropping them onto two or more pages of a multi-page form; Automatically and simultaneously updating the data schema window with data schema code corresponding to the two or more data entry fields; Receiving a second input and, in response to the second input, exporting the data schema code to a digital file of a digital data storage system; Receiving a third input and, in response to the third input, copying the data schema code to a configuration file and adding the configuration file to a digital storage package; Uploading the digital storage package to a shared file system; One or more non-transitory computer-readable storage media storing one or more instruction sequences that cause one or more processors to execute a computer-implemented method as described above.

16. The non-transitory computer-readable storage medium of claim 15, wherein the second input includes a close command or an export command.

17. The non-transitory computer-readable storage medium of claim 15, wherein the third input includes a command to copy the schema code.

18. When executed using one or more processors, asynchronously with respect to updating of the data schema window, receiving a manual change to the data schema code and, in response to the manual change, automatically updating a visual appearance of the multi-page form according to the updated data schema code, the non-transitory computer-readable storage medium of claim 15 further including an instruction sequence that causes the one or more processors to perform the foregoing.

19. When executed using one or more processors, asynchronously with respect to updating of the data schema window, receiving an update to the field attribute and, in response to the update, automatically updating a visual appearance of the multi-page form according to the updated data schema code, the non-transitory computer-readable storage medium of claim 15 further including an instruction sequence that causes the one or more processors to perform the foregoing.

20. When executed using one or more processors, asynchronously with respect to updating of the data schema window, receiving a fourth input including a data entry of a value into a field of the multi-page form and, in response to the fourth input, automatically updating a form data window to show a coded representation of the value, the non-transitory computer-readable storage medium of claim 15 further including an instruction sequence that causes the one or more processors to perform the foregoing.

21. The non - transitory computer - readable storage medium according to claim 15, wherein the multi - page form comprises at least the data schema, the user interface schema, and form data.

22. The non - transitory computer - readable storage medium according to claim 15, further comprising an instruction sequence that, when executed using one or more processors, accepts an input specifying to drag a template identifier from a template panel and drop the template identifier onto a page of the multi - page form to add a new field to the multi - page form, and in response to the input, causes the one or more processors to automatically display a default name of the new field of the multi - page form and a graphical widget into which data entry can be accepted.

23. When executed using one or more processors, digitally storing data schema code and UI schema code in a main memory of a backing store for the data schema window and the user interface (UI) schema window; hiding the data schema window and the UI schema window in the interactive form editor while updating the data schema code and the UI schema code in real - time in a storage device without user involvement; The non - transitory computer - readable storage medium according to claim 15, further comprising an instruction sequence that causes the one or more processors to perform the above.

24. The non - transitory computer - readable storage medium according to claim 15, further comprising an instruction sequence that, when executed using one or more processors, causes the one or more processors to perform an inverse update of the multi - page form and the visual appearance of the multi - page form in response to a fourth input specifying an edit or change to the data schema code or the UI schema code shown in the data schema window or the UI schema window.

25. When executed using one or more processors, displaying a plurality of toggle widgets near the multi - page form, the plurality of toggle widgets being programmed to respond to a fourth input specifying to display code using JSON or YAML without an interactive editor display. In response to the fourth input of JSON control or YAML control, close the visual display of the form, field attributes, form fields, and form data, and open an editor for data schema code corresponding to the data schema window using JSON syntax or YAML syntax, and The non-transitory computer-readable storage medium of claim 15, further comprising an instruction sequence to cause the one or more processors to execute.

26. The non-transitory computer-readable storage medium of claim 15, wherein each data field of the multi-page form has a plurality of digital storage attributes including at least an internal field name of the data field, a screen name or display name, and one or more characteristics or constraints.

27. When executed using one or more processors, Accept a fourth input that specifies dragging a field template from a template panel and dragging it to the multi-page form, and Automatically instantiate a field definition of the data schema code in the data schema window, including automatically copying one or more default attributes of the field template to the data schema code in response to the fourth input, and The non-transitory computer-readable storage medium of claim 15, further comprising an instruction sequence to cause the one or more processors to execute.

28. When executed using one or more processors, Accept a fifth input that specifies selecting a field corresponding to the field definition, accessing a field attribute panel, and modifying one or more attributes of the field, and Automatically and simultaneously update the visual appearance of the field of the multi-page form with the data schema code of the data schema window and the UI schema code of the UI schema, and The non-transitory computer-readable storage medium of claim 27, further comprising an instruction sequence to cause the one or more processors to execute.