METHOD AND SYSTEM FOR PROVIDING STATIC AND DYNAMIC INPUTS AND ADVANCED LOGGING CAPABILITIES IN APPLICATION DEVELOPMENT SYSTEMS
A method for providing a user interface in a low-code or no-code development platform includes generating, by a computing system, a graphic user interface of an application development program. The graphic user interface includes: a first area including a list of blocks; a second area including a structured data object comprising nodes corresponding to one or more of the blocks; and a third area including a parameter field of a selected one of the nodes, wherein the parameter field is configured to receive user input defining both a static string and a dynamic variable.
The present disclosure relates generally to application development systems and, more particularly, to a method and system for providing static and dynamic inputs and advanced logging capabilities in application development systems.
BACKGROUNDCurrently, when a new computer program is desired, a trained programmer uses one or more specialized computer languages to create code. Code instructs a computer to perform a desired function.
In most cases, even for simple programs, the programmer must have extensive training in order to write code that will be capable of creating the desired computer functionality. In the case of complex software, the programmer may need to develop an architecture for the computer program, and then write the code to implement the architecture. For a large project, an entire team of trained programmers may be needed to create the desired code.
Thus, the process of coding is complex, expensive, and, for some individuals, beyond their ability. For most individuals, the solution to providing a computer with a desired functionality is to purchase pre-programmed software to enable the desired functionality. For example, a user desiring to use a computer to perform business accounting may purchase an accounting program that provides a computer with the functionality of performing accounting procedures on the computer.
Nevertheless, a user may desire specialized functionality for the computer that is not currently for sale, or may desire to modify an existing program. However, unless that user is a trained programmer and is willing to expend the resources needed to code a new program, the user will not be able to use the desired specialized functionality on the computer.
Low-code and no-code (codeless) development platforms provide a mechanism for users to create programs (e.g., applications) without having specific knowledge of a programming language. Low-code and no-code development platforms typically operate by permitting the user to drag and drop visual objects in a graphic user interface, with the platform automatically creating coding in the programming language based on the user inputs at the user interface.
Some objects used in the user interface (UI) of low-code and no-code development platforms include parameter fields where the user inputs data in the form of either a static string or a dynamic variable. To facilitate the user-perceived codeless nature of the UI, a user is required to navigate through a modal in the UI to select a variable in a parameter field, and this is time consuming.
SUMMARYIn a first aspect of the present disclosure, there is a method of providing a user interface in a low-code or no-code development platform. The method includes generating, by a computing system, a graphic user interface of an application development program. The graphic user interface includes: a first area including a list of blocks; a second area including a structured data object comprising nodes corresponding to one or more of the blocks; and a third area including a parameter field of a selected one of the nodes, wherein the parameter field is configured to receive user input defining both a static string and a dynamic variable.
In another aspect of the present disclosure, there is a computer program product for providing a user interface in a low-code or no-code development platform. The computer program product includes one or more computer readable storage media having program instructions collectively stored on the one or more computer readable storage media. The program instructions are executable to generate a graphic user interface of an application development program, wherein the graphic user interface includes: a first area including a list of blocks; a second area including a structured data object comprising nodes corresponding to one or more of the blocks; and a third area including a parameter field of a selected one of the nodes, wherein the parameter field includes an introductory character and a closing character indicating that the parameter field is configured to receive only user input defining a dynamic variable
In a further aspect of the present disclosure, there is a computer system for providing a user interface in a low-code or no-code development platform. The system includes a processor, a computer readable memory, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media. The program instructions are executable to generate a graphic user interface of an application development program, wherein the graphic user interface includes: a first area including a list of blocks; a second area including a structured data object comprising nodes corresponding to one or more of the blocks; and a third area including a parameter field of a selected one of the nodes, wherein the parameter field is configured to receive user input defining both a static string and a dynamic variable.
Aspects of the present disclosure are described in the detailed description which follows, in reference to the noted plurality of drawings by way of non-limiting examples of exemplary embodiments of the present disclosure.
The present disclosure relates generally to application development systems and, more particularly, to a method and system for providing static and dynamic inputs and advanced logging capabilities in application development systems. In accordance with aspects of the present disclosure, a low-code or no-code development platform includes parameter fields that permit a user (e.g., an application developer) to input both static strings and dynamic variables in a single parameter field. Implementations also provide the user with the ability to selectively disable and re-enable logs for stages of an application.
In conventional low-code and no-code development platforms, parameter fields are configured such that a user must choose to enter either a static string or a dynamic variable into a parameter field. The parameter fields are defined in the development platform to expect only one of a static string and a dynamic variable, and the user cannot deviate from this definition. This is disadvantageous in some situations, for example, where the user's workflow would benefit from being able to combine both a static string and a dynamic variable into a single parameter field. One such scenario is adding logs to a Logiflow (e.g., logic document) on the platform. Having to choose between a string and a variable in a parameter field is limiting because sometimes a variable without context is difficult to understand. Moreover, forcing users to navigate to a modal to select variables is time consuming, especially if the user knows in advance which variable they intend to select in a parameter field.
Another issue that is present in conventional low-code and no-code development platforms is the inability to selectively turn logs on and off for stages of an application. When debugging an application using logs, there are times when the user is unconcerned with log outputs for certain stages of the application. The user has no ability, however, to turn off the log for the stages that are of no concern. When this is the case, the log is cluttered with information that is not relevant to the user. Moreover, when a log is completely deleted, the user must build the log from scratch again in the future if the user needs the log at a later date.
Advantageously, aspects of the present disclosure address these issues by providing one or more features that allow users to enter both static strings and dynamic variables into a single parameter field. In implementations, by typing regularly in a parameter field, the user creates a string message in the parameter field. In implementations, to input a variable in the parameter field, the user either selects a dedicated button (or other dedicated operation) to open a modal for the variable or types an introductory character in the parameter field. Opening the modal permits the user to search for and select one or more variables. In embodiments, typing the introductory character in the parameter field automatically causes a closing character to appear in the parameter field, and the user then types between the introductory character and the closing character to dynamically search for and select one or more variables. In this manner, a user may quickly find and select a variable without having to navigate a modal, which can be time consuming.
In some embodiments, the parameter field may be constrained to receive only a variable and to not receive a string (i.e., the combination of a string and variable is invalid). In these embodiments, the introductory character and the closing character are automatically displayed in the parameter field without the need for the user to type the introductory character. In these embodiments, to input a variable in a particular parameter field, the user either clicks a dedicated button to open a modal for selecting one or more variables, or begins typing between the introductory character and the closing character to dynamically search for and select one or more variables. In this manner, it is made clear to the user which parameter fields accept both static strings and dynamic variables, and which parameter fields accept only dynamic variables, and this clarity enhances the user experience when working with this new functionality.
Additional aspects of the present disclosure provide features that allow users to select a toggle switch (or other activation method) to activate or deactivate a log for a stage of an application being developed in the development platform. In embodiments, by toggling the switch to the OFF position, a log is saved but does not appear in the log table. To reactivate the log, the user may toggle the switch to the ON position.
Accordingly, implementations of the disclosure provide an improvement to the technical field of application development systems, in particular low-code and no-code development platforms. The ability to combine static strings and dynamic variables into a single parameter field is not present in conventional low-code and no-code development platforms, and this ability improves the efficiency of users using the development platform. Implementations of the disclosure provide an additional improvement to this technical field by improving the user experience in such development platforms by clearly indicating which parameter fields accept both static strings and dynamic variables, and which parameter fields accept only dynamic variables. Implementations of the disclosure provide further improvement to this technical field by providing users the ability to selectively deactivate logs for certain stages of an application, which improves a user's efficiency during debugging of the application.
Implementations of the present disclosure may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.
As shown in
The bus 110 permits communication among the components of computing device 105. For example, bus 110 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures to provide one or more wired or wireless communication links or paths for transferring data and/or power to, from, or between various other components of computing device 105.
The processor 115 may be one or more processors or microprocessors that include any processing circuitry operative to interpret and execute computer readable program instructions, such as program instructions for controlling the operation and performance of one or more of the various other components of computing device 105. In embodiments, processor 115 interprets and executes the processes, steps, functions, and/or operations of the present disclosure, which may be operatively implemented by the computer readable program instructions. For example, processor 115 enables the computing device 105 to provide static and dynamic inputs and advanced logging capabilities in application development systems.
In embodiments, processor 115 may receive input signals from one or more input devices 130 and/or drive output signals through one or more output devices 135. The input devices 130 may be, for example, a keyboard, touch sensitive user interface (UI), etc., as is known to those of skill in the art such that no further description is required for a complete understanding of the present disclosure. The output devices 135 can be, for example, any display device, printer, etc., as is known to those of skill in the art such that no further description is required for a complete understanding of the present disclosure.
The storage device 120 may include removable/non-removable, volatile/non-volatile computer readable media, such as, but not limited to, non-transitory media such as magnetic and/or optical recording media and their corresponding drives. The drives and their associated computer readable media provide for storage of computer readable program instructions, data structures, program modules and other data for operation of computing device 105 in accordance with the different aspects of the present disclosure. In embodiments, storage device 120 may store operating system 145, application programs 150, and program data 155 in accordance with aspects of the present disclosure.
The system memory 125 may include one or more storage mediums, including for example, non-transitory media such as flash memory, permanent memory such as read-only memory (“ROM”), semi-permanent memory such as random access memory (“RAM”), any other suitable type of storage component, or any combination thereof. In some embodiments, an input/output system 160 (BIOS) including the basic routines that help to transfer information between the various other components of computing device 105, such as during start-up, may be stored in the ROM. Additionally, data and/or program modules 165, such as at least a portion of operating system 145, application programs 150, and/or program data 155, that are accessible to and/or presently being operated on by processor 115 may be contained in the RAM.
The communication interface 140 may include any transceiver-like mechanism (e.g., a network interface, a network adapter, a modem, or combinations thereof) that enables computing device 105 to communicate with remote devices or systems, such as a mobile device or other computing devices such as, for example, a server in a networked environment, e.g., cloud environment. For example, computing device 105 may be connected to remote devices or systems via one or more local area networks (LAN) and/or one or more wide area networks (WAN) using communication interface 140.
As discussed herein, computing system 100 may be configured to provide one or more features that allow users to enter both static strings and dynamic variables into a single parameter field. The computing system may be configured to provide one or more features that allow users to click a toggle switch to activate or deactivate a log for a stage of an application being developed in a development platform. In particular, computing device 105 may perform tasks (e.g., process, steps, methods and/or functionality) in response to processor 115 executing program instructions contained in a computer readable medium, such as system memory 125. The program instructions may be read into system memory 125 from another computer readable medium, such as data storage device 120, or from another device via the communication interface 140 or server within or outside of a cloud environment. In embodiments, an operator may interact with computing device 105 via the one or more input devices 130 and/or the one or more output devices 135 to facilitate performance of the tasks and/or realize the end results of such tasks in accordance with aspects of the present disclosure. In additional or alternative embodiments, hardwired circuitry may be used in place of or in combination with the program instructions to implement the tasks, e.g., steps, methods and/or functionality, consistent with the different aspects of the present disclosure. Thus, the steps, methods and/or functionality disclosed herein can be implemented in any combination of hardware circuitry and software.
As depicted in
Cloud computing environment 200 may be configured such that cloud resources 205 provide computing resources to client devices 210 through a variety of service models, such as Software as a Service (SaaS), Platforms as a service (PaaS), Infrastructure as a Service (IaaS), and/or any other cloud service models. Cloud resources 205 may be configured, in some cases, to provide multiple service models to a client device 210. For example, cloud resources 205 can provide both SaaS and IaaS to a client device 210. Cloud resources 205 may be configured, in some cases, to provide different service models to different client devices 210. For example, cloud resources 205 can provide SaaS to a first client device 210 and PaaS to a second client device 210.
Cloud computing environment 200 may be configured such that cloud resources 205 provide computing resources to client devices 210 through a variety of deployment models, such as public, private, community, hybrid, and/or any other cloud deployment model. Cloud resources 205 may be configured, in some cases, to support multiple deployment models. For example, cloud resources 205 can provide one set of computing resources through a public deployment model and another set of computing resources through a private deployment model.
In embodiments, software and/or hardware that performs one or more of the aspects, functions and/or processes described herein may be accessed and/or utilized by a client (e.g., an enterprise or an end user) as one or more of an SaaS, PaaS and IaaS model in one or more of a private, community, public, and hybrid cloud. Moreover, although this disclosure includes a description of cloud computing, the systems and methods described herein are not limited to cloud computing and instead can be implemented on any suitable computing environment.
Cloud resources 205 may be configured to provide a variety of functionality that involves user interaction. Accordingly, a user interface (UI) can be provided for communicating with cloud resources 205 and/or performing tasks associated with cloud resources 205. The UI can be accessed via a client device 210 in communication with cloud resources 205. The UI can be configured to operate in a variety of client modes, including a fat client mode, a thin client mode, or a hybrid client mode, depending on the storage and processing capabilities of cloud resources 205 and/or client device 210. Therefore, a UI can be implemented as a standalone application operating at the client device in some embodiments. In other embodiments, a web browser-based portal can be used to provide the UI. Any other configuration to access cloud resources 205 can also be used in various implementations.
As shown in
In embodiments, the server 305 runs an application development program 320 that is configured to communicate with a client application 340 running on the client device 310 to permit a user to utilize the client application 340 to create software applications without the user having to code any of the software being developed. In embodiments, the application development program 320 and the client application 340 communicate with one another to display one or more working areas in a graphical user interface (UI) 345 that is displayed on a display device 350 of the client device 310. In embodiments, the application development program 320 and the client application 340 cooperate to enable users with little or no background in computer software development to simply drag-and-drop tiles (also called blocks) that contain prebuilt features onto a canvas and start building applications in the UI 345.
In embodiments, each tile corresponds to a set of data nodes that are composable structured data objects according to a domain-specific language. In one example, sets of tiles are displayed within a first area of the UI 345 and one or more drop zones are displayed in a second area of the UI 345. In this example, dragging a selected tile from the first area to a drop zone within the second area appends the corresponding set of data nodes into a structured data object according to the domain-specific language. In this manner, the application development program 320 provides the user with the ability to create software applications in what the user perceives as a low code or no code development environment by manipulating the tiles shown in the UI 345.
As further shown in
Each of the modules 355 may be stored and run at the server 305. Alternatively, one or more of the modules 355 may be run at the client device 310. In one example, all of the modules 355 run at the server 305, and the client application 340 comprises a browser application that receives data from the various modules 355 and presents a visual display in the UI 345 based on the data received from the modules 355. In another example, a first subset of the modules 355 runs at the client device 310 and a second subset of the modules 355 runs at the server 305. For example, the client device 310 may run a tile renderer module, a data and metadata binding module, and a business rule and workflow module, with all other modules 355 being run at the server 305. These examples are not limiting and other configurations of the modules 355 may be used in implementations.
The application development program 320 may include additional or fewer modules than those shown in
As depicted, the UI 400 includes a first area 401, a second area 402, and a third area 403. In embodiments, the first area 401 includes a listing of blocks (e.g., tiles) 405, and the second area 402 includes a drop zone that includes a visual representation of a plurality of data nodes linked together to form a structured data object 407 according to a domain-specific language. In embodiments, dragging blocks from the first area 401 to the second area 402 appends the corresponding data nodes into the structured data object 407 according to the domain-specific language.
In embodiments, the third area 403 includes one or more parameter fields 420 associated with a selected one of the blocks in the structured data object 407 in the second area 402. In the example shown in
The parameter fields 420 are input fields where the user provides input that defines values of predefined parameters associated with the selected block. The input provided by the user at these fields affects how the selected block functions in the structured data object 407. Aspects of the disclosure are described using the parameter fields 420 associated with the “Array Loop” block 407a as an example. However, aspects described herein may be used with parameter fields in other blocks not shown.
In the example shown in
Still referring to
Still referring to
In the example shown in
In embodiments, and still referring to
In the embodiment shown in
Selecting the ON position creates an active log state for this stage of the application related to the parameter field 442. In the active log state, the system generates log data in the log table for this stage of the application when the application is run during a debug process. Selecting the OFF position creates an inactive log state for this stage of the application related to the parameter field 442. In the inactive log state, the system does not generate log data in the log table for this stage of the application when the application is run during a debug process. However, although a stage might be in the inactive state, the system still generates log data in the log table for other stages of the application that are in the active state when the application is run during a debug process.
At step 605, the system generates a graphic user interface displaying a parameter field. In embodiments, and as described herein, the application development program 320 generates data that defines a graphic user interface that is displayed on the client device 310. In embodiments, the graphic user interface is the UI 400 of
At step 610, the system displays a string in the parameter field in response to user input of the string in the parameter field. In embodiments, and as described at
At step 615, the system displays a modal in response to user input selecting a mapping icon associated with the parameter field. In embodiments, and as described at
At step 620, the system displays a variable in the parameter field in response to user input selecting the variable in the modal. In embodiments, and as described at
At step 625, the system displays a closing character in the parameter field in response to user input of an introductory character in the parameter field. In embodiments, and as described at
At step 630, the system displays a typeahead suggestion of a variable in the parameter field in response to user input of a portion of a variable name. In embodiments, and as described at
At step 635, the system displays a variable in the parameter field in response to user input accepting the typeahead suggestion. In embodiments, and as described at
At step 640, the system displays a suggestion box including one or more variables in response to user input of a portion of a variable name. In embodiments, and as described at
At step 645, the system displays a variable in the parameter field in response to user input at the suggestion box. In embodiments, and as described at
At step 705, the system generates a graphic user interface displaying a parameter field. In embodiments, and as described herein, the application development program 320 generates data that defines a graphic user interface that is displayed on the client device 310. In embodiments, the graphic user interface is the UI 400 of
At step 710, the system displays a modal in response to user input selecting a mapping icon associated with the parameter field. In embodiments, and as described at
At step 715, the system displays a variable in the parameter field in response to user input selecting the variable in the modal. In embodiments, and as described at
At step 720, the system displays a typeahead suggestion of a variable in the parameter field in response to user input of a portion of a variable name. In embodiments, and as described at
At step 725, the system displays a variable in the parameter field in response to user input accepting the typeahead suggestion. In embodiments, and as described at
At step 730, the system displays a suggestion box including one or more variables in response to user input of a portion of a variable name. In embodiments, and as described at
At step 735, the system displays a variable in the parameter field in response to user input at the suggestion box. In embodiments, and as described at
The foregoing examples have been provided merely for the purpose of explanation and are in no way to be construed as limiting of the present disclosure. While aspects of the present disclosure have been described with reference to an exemplary embodiment, it is understood that the words which have been used herein are words of description and illustration, rather than words of limitation. Changes may be made, within the purview of the appended claims, as presently stated and as amended, without departing from the scope and spirit of the present disclosure in its aspects. Although aspects of the present disclosure have been described herein with reference to particular means, materials and embodiments, the present disclosure is not intended to be limited to the particulars disclosed herein; rather, the present disclosure extends to all functionally equivalent structures, methods and uses, such as are within the scope of the appended claims.
Claims
1. A method of providing a user interface in a low-code or no-code development platform, the method comprising:
- generating, by a computing system, a graphic user interface of an application development program, wherein the graphic user interface includes: a first area including a list of blocks; a second area including a structured data object comprising nodes corresponding to one or more of the blocks; and a third area including a parameter field of a selected one of the nodes, wherein the parameter field is configured to receive user input defining both a static string and a dynamic variable.
2. The method of claim 1, further comprising modifying the graphic user interface to display a string in the parameter field in response to user input of the string in the parameter field.
3. The method of claim 2, further comprising modifying the graphic user interface to display a modal in response to user input selecting a mapping icon associated with the parameter field.
4. The method of claim 3, further comprising modifying the graphic user interface to display a variable in the parameter field in response to user input selecting the variable in the modal, wherein the string and the variable are concurrently displayed in the parameter field.
5. The method of claim 2, further comprising modifying the graphic user interface to display a closing character in the parameter field in response to user input of an introductory character in the parameter field.
6. The method of claim 5, further comprising modifying the graphic user interface to display a typeahead suggestion of a variable in the parameter field in response to user input of a portion of a variable name between the introductory character and the closing character in the parameter field.
7. The method of claim 5, further comprising modifying the graphic user interface to display a suggestion object including one or more variables in response to user input of a portion of a variable name between the introductory character and the closing character in the parameter field.
8. The method of claim 7, further comprising modifying the graphic user interface to display a selected one of the one or more variables in the parameter field in response to user input selecting the one of the one or more variables in the suggestion object, wherein the string and the selected one of the one or more variables are concurrently displayed in the parameter field.
9. The method of claim 1, wherein the graphic user interface includes a switch associated with a stage of an application related to the parameter field, and further comprising:
- turning off logging for the stage in response to user input selecting an OFF state of the toggle switch; and
- turning on logging for the stage in response to user input selecting an ON state of the toggle switch.
10. The method of claim 1, wherein each of the nodes in the second area corresponds to one of the blocks dragged-and-dropped from the first area into the second area.
11. The method of claim 1, wherein the parameter field is one of plural fields that are predefined for the selected one of the nodes.
12. The method of claim 1, wherein each respective one of the nodes has a different set of predefined fields that are displayed in the third area when the respective one of the nodes is selected in the second area.
13. A computer program product for providing a user interface in a low-code or no-code development platform, the computer program product comprising one or more computer readable storage media having program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to:
- generate a graphic user interface of an application development program, wherein the graphic user interface includes: a first area including a list of blocks; a second area including a structured data object comprising nodes corresponding to one or more of the blocks; and a third area including a parameter field of a selected one of the nodes, wherein the parameter field includes an introductory character and a closing character indicating that the parameter field is configured to receive only user input defining a dynamic variable.
14. The computer program product of claim 13, wherein the program are instructions executable to:
- modify the graphic user interface to display a modal in response to user input selecting an object associated with the parameter field; and
- modify the graphic user interface to display a variable in the parameter field in response to user input selecting the variable in the modal.
15. The computer program product of claim 13, wherein the program instructions are executable to:
- modify the graphic user interface to display a typeahead suggestion of a variable in the parameter field in response to user input of a portion of a variable name between the introductory character and the closing character in the parameter field.
16. The computer program product of claim 13, wherein the program instructions are executable to:
- modify the graphic user interface to display a suggestion box including one or more variables in response to user input of a portion of a variable name between the introductory character and the closing character in the parameter field.
17. The computer program product of claim 16, wherein the program instructions are executable to:
- modify the graphic user interface to display a selected one of the one or more variables in the parameter field in response to user input selecting the one of the one or more variables in the suggestion box.
18. The computer program product of claim 13, wherein the graphic user interface includes a toggle switch associated with a stage of an application related to the parameter field, and the program instructions are executable to:
- turn off logging for the stage in response to user input selecting an OFF state of the toggle switch; and
- turn on logging for the stage in response to user input selecting an ON state of the toggle switch.
19. A system comprising:
- a processor, a computer readable memory, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to:
- generate a graphic user interface of an application development program, wherein the graphic user interface includes: a first area including a list of blocks; a second area including a structured data object comprising nodes corresponding to one or more of the blocks; and a third area including a parameter field of a selected one of the nodes, wherein the parameter field is configured to receive user input defining both a static string and a dynamic variable.
20. The system of claim 19, wherein the graphic user interface includes a toggle switch associated with a stage of an application related to the parameter field, and the program instructions are executable to:
- turn off logging for the stage in response to user input selecting an OFF state of the toggle switch; and
- turn on logging for the stage in response to user input selecting an ON state of the toggle switch.
Type: Application
Filed: Jul 16, 2021
Publication Date: Jan 19, 2023
Inventors: Claire Casaregola (New York, NY), Yair Pike (San Francisco, CA), Harini Pundi Satyanarayanan (New York, NY), Michael Greene (Seattle, WA), Lauren Miller (New York, NY)
Application Number: 17/378,027