Skip to main content

Introduction to BPL Processes

The Business Process Language (BPL) is a language used to describe executable business processes within a standard XML document. BPL syntax is based on several of the proposed XML standards for defining business process logic. A BPL business process class is derived from Ens.BusinessProcessBPLOpens in a new tab. It is identical in every way to a class derived from Ens.BusinessProcessOpens in a new tab, except that it supports BPL.

Use the Business Process Designer to create BPL classes in the Management Portal. To access the Business Process Designer, select Interoperability > Build > Business Processes. (When you open a BPL class in Studio, you also invoke the Business Process Designer; see Notes on Creating BPL in Studio.)

Note that there is overlap among the options available in business processes, data transformations, and business rules. For a comparison, see Comparison of Business Logic Tools.

BPL Features

BPL is a language used to describe executable business processes within a standard XML document. BPL syntax is based on several of the proposed XML standards for defining business process logic, including the Business Process Execution Language for Web Services (BPEL4WS or BPEL) and the Business Process Management Language (BPML or BPMI).

BPL is a superset of other proposed XML-based standards, in that it provides additional elements whose purpose is to help you build integration solutions. These additional elements include support for the following:

  • Execution flow control elements such as <branch>, <if>, <switch>, <foreach>, <while>, and <until>. For information about how to use these and other BPL syntax elements, see Business Process and Data Transformation Language Reference.

  • Generation of executable code from business process logic.

  • Embedding SQL and custom-written code into the business process logic.

    You can use ObjectScript or Python as the scripting language.

  • The Business Process Designer, a full-featured, visual modeling tool for graphically viewing and editing business process logic. This tool includes complete round-trip engineering between the visual and BPL representations of the business process. Changes to one representation are automatically reflected in the other.

  • Automatic support for both asynchronous and synchronous messaging between business processes and other members of an integration solution. BPL streamlines this difficult and error-prone programming task.

  • Persistent state. BPL permits a long-running business process to automatically suspend execution—and efficiently save its execution state to a built-in, persistent cache—whenever it is inactive; for example, when it is waiting for an asynchronous response. InterSystems IRIS automatically manages all state preservation and the ability to smoothly resume processing.

  • Rich and varied data transformation services, including SQL queries embedded within the business process.

You can create a BPL business process using the Management Portal or your IDE. The recommended way is to use the Business Process Wizard from the Business Process Designer page of the Management Portal.

A BPL Business Process Can Be Reusable

A business process component or BPL component is a BPL business process that a programmer wishes to identify as a modular, reusable sequence of steps in the BPL language. A BPL component is analogous to a function, macro, or subroutine in other programming languages.

Only another BPL business process can call a BPL component. It does this using the BPL <call> element. The BPL business process component performs tasks, then returns control to the BPL business process that called it.

The production architecture already allows one BPL business process to call another BPL business process. The optional component designation simply provides convenience. It allows you to classify certain BPL business processes as simpler, lower-level components that:

  • Are not intended to run as stand-alone business processes (although nothing in the architecture prevents this)

  • May be reusable (in the sense of a function, macro, or subroutine in the BPL language)

Business processes that are not components are assumed to have more complex, special-purpose designs, and to operate at a higher conceptual level than components. It is expected that BPL non-components call BPL components to accomplish tasks.


There is no requirement that you use the component designation for any BPL business process. It is available as a convenience for any BPL programmer who prefers it.

You make a business process into a component by setting an attribute of the top-level <process> container for the BPL business process. The attribute is called component and you can set it to 1 (true) or 0 (false). For syntax details, see Business Process and Data Transformation Language Reference.

To set the value of the component attribute, you can do either of the following:

  • In the General tab of the Business Process Designer, select Is component to include this process in the Component Library.

  • Edit the BPL <process> element within the XData BPL block in the class code using Studio.

To set up a <call> to a component from a BPL business process, see Adding a Call Activity.

FeedbackOpens in a new tab