Patent ID: 8392013

Claim:
A method of automating a business process, the method comprising the following steps: performing a first stage of a two-stage, nested process, said first stage comprising the following steps: providing a user interface which graphically presents a first plurality of icons to a user, said first plurality of icons being process icons wherein each process icon represents an operation step having at least one input and at least one output; enabling the user to select one or more of said process icons; enabling the user to form connections between the selected process icons to form a first graphical structure which represents data flow between the operation steps represented by the process icons; wherein at least some of said process icons represent rules; performing a second stage of a two-stage, nested process, said second stage comprising the following steps: defining at least one of said rules represented by a process icon by graphically presenting a second plurality of icons to a user, said second plurality of icons being rule icons wherein each rule icon represents a rule operation step having at least one input and at least one output; enabling the user to select one or more of said rule icons; and enabling the user to form connections between the selected rule icons to form a second graphical structure which represents data flow between the rule operation steps represented by the rule icons, the method further comprising: automatically generating computer instructions in the form of P-code operators directly from said process icons, rule icons and connections, without any requirement for said user to write or compile any source code; executing, using an executive operator, the P-code operators corresponding with said operation steps and rule operation steps corresponding to the selected process icons and rule icons, and in accordance with said connections, wherein each said operation step and rule operation step can only be executed when data is present at all of its inputs, and cannot be executed when data is absent from any one of its inputs; and periodically scanning said P-code operators to search for P-code operators which have data at all of their inputs, and then executing P-code operators which are found to have data at all of their inputs.