Visual programming system

US10296303B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10296303-B2
Application numberUS-201815939734-A
CountryUS
Kind codeB2
Filing dateMar 29, 2018
Priority dateMay 15, 2016
Publication dateMay 21, 2019
Grant dateMay 21, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods, systems, and system for generating code using visual blocks. A selection is made from a list of one or more programming blocks. One or more of the programming blocks are selected and used to display a visual programming block that corresponds to the selected one or more programming blocks. This visual programming block is then used to generate or produce output code.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for defining a process on a visual programming canvas, the method comprising: controlling a client device to display a visual programming canvas; controlling the client device to display, adjacent to the visual programming canvas, a plurality of programming blocks that can be added to the visual programming canvas; receiving a selection of a first programming block of the plurality of programming blocks to be executed within the process, wherein the first programming block refers to a class, and wherein the class comprises constituent components; controlling the client device to display a first visual block representing the first programming block on the visual programming canvas, wherein the first visual block provides access to the constituent components of the class, and wherein the constituent components include an input parameter; receiving a selection of the input parameter for the first programming block; controlling the client device to display an indication of the input parameter within the first visual block on the visual programming canvas; receiving a selection of a second programming block of the plurality of programming blocks to be executed subsequent to the first programming block in the process, wherein the second programming block refers to a method that returns a return value; controlling the client device to display a second visual block representing the second programming block and the return value on the visual programming canvas; controlling the client device to display a prototype compound block; after displaying the prototype compound block, forming a compound programming block from the first programming block and the second programming block; controlling the client device to display a compound visual block representing the compound programming block on the visual programming canvas, wherein the compound visual block identifies the input parameter as an input of the compound block and the return value as an output of the compound block; and generating output programming code for the compound block. 2. The method of claim 1 , wherein receiving the selection of the first programming block comprises receiving user input data indicative of a dragging of the first programming block onto the visual programming canvas. 3. The method of claim 1 , further comprising saving the compound block in a memory. 4. The method of claim 3 , further comprising: receiving, via a graphical user interface, a name of the compound block; and updating a name of the saved compound block to be the received name. 5. The method of claim 1 , wherein the compound programming block preserves a behavior of the first programming block and the second programing block, and wherein the compound visual block has fewer displayed elements than a combination of the first visual block and the second visual block. 6. The method of claim 5 , wherein forming the compound programming block comprises determining which elements from the first visual block and the second visual block are the fewer displayed elements. 7. The method of claim 6 , wherein the fewer displayed elements comprise unfilled inputs to the first visual block or the second visual block. 8. The method of claim 6 , wherein the fewer displayed elements comprises unfilled outputs from the first visual block or the second visual block. 9. The method of claim 1 , further comprising controlling the client device to update the display of the prototype compound block as aspects of the first programming block and the second programming block change. 10. The method of claim 1 , wherein the output programming code comprises JavaScript. 11. The method of claim 1 , wherein forming the compound programming block comprises determining whether any required elements are missing from the first programming block and the second programming block and, responsive to determining that a required element is missing, providing a placeholder for the required element. 12. The method of claim 1 , wherein forming the compound programming block comprises determining whether an output data type of the first programming block differs from an expected input data type of the second programming block. 13. A system comprising: one or more processors; and memory having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to perform functions of: controlling a client device to display a visual programming canvas, controlling the client device to display, adjacent to the visual programming canvas, a plurality of programming blocks that can be added to the visual programming canvas, receiving a selection of a first programming block of the plurality of programming blocks to be executed within the process, wherein the first programming block refers to a class, and wherein the class comprises constituent components, controlling the client device to display a first visual block representing the first programming block on the visual programming canvas, wherein the first visual block provides access to the constituent components of the class, and wherein the constituent components include an input parameter, wherein the input parameter comprises a table name that refers to an incident report table, receiving a selection of the input parameter for the first programming block, controlling the client device to display an indication of the input parameter within the first visual block on the visual programming canvas, receiving a selection of a second programming block of the plurality of programming blocks to be executed subsequent to the first programming block in the process, wherein the second programming block refers to a method that returns a return value, wherein the return value of the method is indicative of a value of a record in the incident report table, controlling the client device to display a second visual block representing the second programming block and the return value on the visual programming canvas, forming a compound programming block from the first programming block and the second programming block, and controlling the client device to display a compound visual block representing the compound programming block on the visual programming canvas, wherein the compound visual block identifies the input parameter as an input of the compound block and the return value as an output of the compound block, and generating output programming code for the compound block. 14. The system of claim 13 , wherein the compound programming block preserves a behavior of the first programming block and the second programing block, and wherein the compound visual block has fewer displayed elements than a combination of the first visual block and the second visual block. 15. The system of claim 13 , wherein forming the compound programming block comprises determining whether any required elements are missing from the first programming block and the second programming block and, responsive to determining that a required element is missing, providing a placeholder for the required element. 16. The system of claim 13 , wherein forming the compound programming block comprises determining whether an output data type of the first programming block differs from an expected input data type of the second programming block. 17. A method for defining a process on a visual programming canvas, the method comprising: controlling a client device to display a visual programming canvas; controlling the client device to display a plurality of programming blocks that can be added

Assignees

Inventors

Classifications

  • Drag-and-drop · CPC title

  • Interaction with lists of selectable items, e.g. menus · CPC title

  • G06F8/34Primary

    Graphical or visual programming · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10296303B2 cover?
Methods, systems, and system for generating code using visual blocks. A selection is made from a list of one or more programming blocks. One or more of the programming blocks are selected and used to display a visual programming block that corresponds to the selected one or more programming blocks. This visual programming block is then used to generate or produce output code.
Who is the assignee on this patent?
Servicenow Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/34. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 21 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).