Skip to content

Working with Business Processes

The Neuron ESB Business Process Designer is essentially an MDI (multi document interface) hosted in the Neuron ESB Explorer. To work with Business Processes select Processes from the navigation bar located on the left hand side of the Neuron ESB Explorer. This will open the Business Process Designer as well as the Processes Library. The Processes Library appears on the left above the navigation bar and lists available Business Processes from the working Neuron ESB solution. The Business Process Designer fills the rest of the workspace and consists of the Design Canvas, a Process Steps Toolbox listing all the Process Steps used to create Business Processes and a property grid to specify the design time properties of the selected Process Step as shown in Figure 6.

Business Process Designer
Figure 6: Business Process DesignerBusiness Processes can be designed and managed within the Neuron ESB Explorer.

Displaying Business Processes

A Business Process is opened and displayed on the Design Canvas by either double clicking on the Business Process within the Processes Library or selecting Open from the Business Process context menu when selected. Each Business Process is opened within their own Tab within the Neuron ESB Explorer. This allows multiple Processes to be opened at the same time, allowing a user to navigate between them all by simply selecting their respective tabs. Additionally, the tabs are dock-able and detachable, allowing several processes to be arranged within the same window as shown in Figure 7 and Figure 8 below.

Business Process Designer Business Processes  opened
Figure 7: Business Process Designer – Business Processes can be opened in their own tabs and docked within the Neuron ESB Explorer.
Business Process Designer Business Processes can also be detached
Figure 8: Business Process DesignerBusiness Processes can also be detached from the Neuron ESB Explorer.

Lastly, when a user navigates to another part of the Neuron ESB Explorer to work on any other part of the solution and later navigates back to the Business Process Designer, all previously opened Business Processes will still be opened in their respective tabs and locations. If there was a test message submitted for a specific process using the “Edit Test Message” dialog, that message will still be maintained and loaded in the “Edit Test Message” dialog when used with the specific Process.

Processes Library

The Processes Library displays a list of all saved Business Processes (and Workflows) within the currently opened Neuron ESB solution. The Process Library provides functions to create, manage and find Business Processes within a Neuron ESB Solution as displayed in the Figure 9.

Processes Library Business Processes   are stored and listed
Figure 9: Processes LibraryBusiness Processes are stored and listed within the Processes Library located within the Neuron ESB Explorer. Processes can be added and deleted and their dependencies can be viewed by selecting the appropriate toolbar button.

Processes can be added and deleted and their dependencies can be viewed by selecting the appropriate toolbar button.

Adding a Business Process

Business Processes can be created in the following ways:

  • By selecting the Create Process sub menu from the Add toolbar menu located directly above the listing of Processes as shown in Figure 10
  • By selecting the Create -> Process context menu depicted in Figure 9.
  • By selecting an existing Business Process and selecting Copy context menu depicted in Figure 9
  • By Importing an existing Business Process using the Import Toolbar button on the Design Canvas
New Menu Add menu item
Figure 10: New MenuAdd menu item displaying the Create Process sub menu.

Adding a Business Process will result in a blank, unnamed Business Process appearing on the Design Canvas surface as displayed in Figure 11.

Design Canvas Displaying a New Business  Process and the Property Page grid listing its properties.
Figure 11: Design Canvas – Displaying a New Business Process and the Property Page grid listing its properties.

Once a Business Process is added to the Design Canvas, several properties can be populated by using the Property Page grid (Figure 12) located at the bottom right corner of the Business Process Designer. The Property Page grid represents the configurable design time properties for the selected Business Process or Process step. The following properties are specific to a Business Process:

  • Name Required.
  • Description Optional. Cannot exceed 255 characters.
  • Category Optional. Cannot exceed 50 characters. Used in the Neuron ESB Explorer Filter Toolbar to limit which Neuron ESB objects within the Neuron ESB Explorer to make visible.
  • Referenced Assemblies Optional. Used to add references to 3rd party or existing .NET assemblies for later reference by C# Process Steps and all Steps that expose the Code Editor.
Neuron ESB Business Process Property Page grid
Figure 12: Neuron ESB Business Process Property Page grid

Saving a Business Process

To save a Business Process, the Apply button, located on the Design Canvas, must be clicked followed by the Neuron ESB Explorers Save Toolbar button or menu item. Once a Business Process has been saved, it can be renamed, copied, exported or deleted.

At least one Process Step is required to be placed onto the Business Process before it can be saved to the Neuron ESB solution.

Deleting a Business Process

Business Processes can be deleted by selecting a specific Business Process within the Processes Library, then selecting the Delete toolbar button located directly above the listing of Processes. Alternatively, Delete can be selected from the short-cut menu once a Business Process is selected within the Processes Library.

To finalize the delete action, the Neuron ESB Explorers Save Toolbar button or menu item must be selected. If there are Parties currently referencing the Process, a dialog (Figure 13) will be displayed warning the user before the delete action is committed.

Confirm Delete Dialog
Figure 13: Confirm Delete Dialog – Displayed if a Business Process is referencing a Party at time of deletion.

Runtime Execution

Business processes are stateless/in memory processes, which allow for a variety of actions to be used in the processing of messages.

  • Business processes can be attached to either the OnPublish or OnReceive events of a party
    • In a request / reply scenario each party would have both OnPublish and OnReceive events available to them
  • Multiple business processes can be used in conjunction with one another
  • Messaging conditions can be used to control the execution of a business process
  • The Execute Process process step can be used to componentize processes
Party Configuration

A Business Process must be attached to the OnPublish or OnReceive event of a Party (or both) to be configured for runtime execution (Figure 14). The exception case is when an existing Business Process is called from another Business Process using the Execute Process Step. In that case, the Business Process is essentially a child process called from a master process. Child processes do not need to be associated with a specific Party.

Message Conditions can be used to restrict the execution of a Business Process when it is added to a Party. Message Conditions can contain one or more conditions (predicates) which can be joined by AND/OR/XOR and supports parenthetic expressions. For example:

(BodyType = 'PurchaseOrder' OR BodyType = 'PurchaseOrderV2') ANDBody Matches XPath '//PurchaseOrder[@Status='Approved'])

Message Conditions can created ad hoc by selecting the Message Condition button (filter icon) located on the Processes dialog box (Figure 14).

Adding Processes to Parties
Figure 14: Adding Processes to Parties – Any number of Processes can be added to a Party using the Processes dialog box launched from the “Edit Processes” tab of the Party. Processes can be assigned to either the OnPublish or OnReceive event or both. Additionally, the execution of the Process can be restricted by adding a Message Condition by launching the “Edit Conditions” dialog by clicking the filter icon button.

The Property on the left hand side of the predicate can be any Neuron ESB Header, custom ESB Message property (by manually adding it) or the body of the ESB Message. There is an extensive list of operators that can be used, including the following:

  • “Contains”
  • “Does Not Contain”
  • “Does Not Match RegEx”
  • “Does Not Match XPath”
  • “Empty”
  • “Equals (text)”
  • “Equals Ignore Case (text)”
  • “Equals (numeric)”
  • “Less Than”
  • “Less Than or Equal”
  • “Greater Than”
  • “Greater Than or Equal”
  • “Matches RegEx”
  • “Matches XPath”
  • “Not Empty”
  • “Not Equals (text)”
  • “Not Equals Ignore Case (text)”
  • “Not Equals (numeric)”
  • “Not Greater Than”
  • “Not Greater Than or Equal”
  • “Not Less Than or Equal”
  • “Not Less Than”

Once attached, the Business Process is executed when a message is received or sent, according to the event the Business Process is attached to and after any associated Message Condition evaluates to True. If attached to the OnPublish event, the Business Process is executed BEFORE the message is published to the destined Topic (determined by the value of the context.Data.Header.Topic value). If attached to the OnReceive event, the Business Process is executed AFTER the Party receives the message from the Topic, but BEFORE the Party passes on the message to any configured Service Connector, Workflow or Adapter Endpoint the Party may be attached to.

Every message sent or received will create a new instance of the Business Process to execute. Once completed, the instance is disposed.

View Dependencies

One of the advantages of the Processes Library is that one or more publishers and/or subscribers to the bus (Parties) can use Business Processes within it. The Dependencies toolbar button can be selected to view all the Parties currently using a selected Business Process. A dialog box displaying the dependencies will be presented as shown in Figure 15.

Business Process Dependency Dialog Box
Figure 15: Business Process Dependency Dialog BoxThis displays all the Publishers and/or Subscribers that are currently using a selected Business Process within the Processes Library.
NOTE: If a Business Process is called from an Execute Process Step, it will not be listed in the Process Dependencies list

Referenced Assemblies

Neuron ESB is built on the Microsoft .NET Framework. As such, it can be customized and extended using Microsoft .NET languages. Specifically, the Neuron ESB Business Process designer ships a set of Language Editor based (Code) Process Steps that expose a Microsoft Visual Studio like editor for writing C# or VB.NET code that can be used to create highly customized and flexible Business Processes. All of these Code based Process Steps allow users to reference any 3rd party .NET assembly, any .NET assembly in the GAC (Global Assembly Cache) or any .NET assembly within the Probing Path of the Neuron ESB service runtime. You can find more information on the Neuron ESB Language Editors using the link below:

Using Language Editors in a Process

Rather than add individual references to every Code Process Step used within a Business Process, references to external assemblies can be added at the Business Process level as shown in Figure 16. If a .NET assembly is referenced at the Business Process level, it will automatically be added to each Code Process Step in the Business Process.

For example, if a general-purpose assembly library was required to be used throughout a Business Process and that Business Process used multiple Code Process Steps, adding references at the Business Process level would be an effective way of centralizing the management of those references. Otherwise, the developer would be required to add the assembly reference to each Code Process Step within the Business Process. Subsequently, if the reference had to be updated later for some reason, the developer would have to find all the Code Process Steps the assembly was referenced in and manually remove them, rather than just removing it once at the Business Process level.

Business Process References
Figure 16: Business Process References – Adding assembly references as the Business Process level.
Note: The GAC requires strong names and this can cause a traditional obstacle for developers who have turned on auto versioning for their assemblies. It is highly recommended that developers do not use assembly versioning for the dlls they plan to reference in the Code Editor. File versioning should be used in place of assembly versioning when versioning is desired.

The Neuron ESB Process Library provides several ways that allow users to organize, categorize and find relevant Business Processes; Type ahead Search, Categorization and Folder hierarchies.

Type Ahead Search

The Process Library has an integrated type ahead Search bar that will automatically filter and display Business Process as characters are entered into the Search bar (Figure 17)

Type Ahead Search
Figure 17: Type Ahead SearchDisplays all Business Processes that match the characters typed into the Search Bar.
Categorization

All Business Processes now have both a category and description property. If assigned a category, the category selected in the Category Filter toolbar dropdown of the Neuron ESB Explorer will automatically filter the view of Business Processes in the Process Library. This filter will also affect the visibility of all other Neuron ESB objects within the currently opened solution (Figure 18).

Category Filter
Figure 18: Category Filter – Filters all Neuron Objects in the Neuron ESB Explorer based on the Category assigned to them.
Folder hierarchies

Users can create a folder hierarchy to organize and store Business Processes in. The Add Folder button can be used to create top-level folders within the Process Library. Sub folders can be created by right clicking on an existing folder and selecting Create Folder from the context menu. Users can also rename the folder by clicking on the name and in the Process Library for it to become editable.

Once folders are created, existing Business Processes can be dragged and dropped into the folders. Once the folder organization is complete, the solution must be saved for the folder hierarchy to be persisted with the solution.

Design Canvas

The Business Process Design Canvas contains a visual representation of the Business Process and each of its Process Steps. To create a Business Process, individual Process Steps are dragged onto the Business Process currently displayed on the Design Canvas Figure 19.

Note: Process Steps are dragged from the Process Step list located in the upper right hand corner of the Business Process Designer.
Design Canvas
Figure 19: Design CanvasThis is used to create and edit Business Processes within Neuron ESB.

Users interact with the Design Canvas, Process Steps Toolbox and Toolbar to build and test Business Processes.

Toolbar Functions

The Toolbar positioned directly above the Design Canvas provides functions that allow users to interact with the Business Process in a number of way including testing and debugging, importing/exporting, report generation and managing changes made to the Process Figure 20.

Process Toolbar
Figure 20: Process ToolbarProvides functions that allow users to interact with the Business Process
Apply

To persist changes to the Business Process to memory (not to disk), click the Apply Toolbar button. Once clicked, developers can navigate to other areas of the Neuron ESB Explorer. The user must, at some point, choose the Save option from the Neuron ESB Explorers menu or Toolbar to ensure the changes are persisted to the actual opened solution. If Save is not selected, all changes will be lost if the Neuron ESB Explorer is closed.

This is only enabled if a change has been detected, Figure 21.

Process Toolbar Apply button persists   changes to memory
Figure 21: Process ToolbarApply button persists changes to memory
Undo

The Undo function will reverse all existing changes that have been made to the Business Process prior to Apply being executed. Undo will not work to rollback changes that have been committed to memory by the Apply function.

This is only enabled if a change has been detected, Figure 22.

Process Toolbar Undo button
Figure 22: Process ToolbarUndo button reverses recent changes to memory
Test

The Test function will start the testing process and launch the Edit Test Message dialog form, Figure 23. The Edit Test Message dialog form is used to prompt the user for information and the data (i.e. message) to use to conduct the test. The user can provide custom properties, choose Environment Variables associated with a particular deployment group, load a specific data payload and edit existing Neuron ESB header properties like Source ID and Topic.

Process Toolbar Test button initiates   the testing process
Figure 23: Process Toolbar Test button initiates the testing process

Once a test is started, it can be stopped by selecting the Stop Toolbar button. Otherwise, the test will continue until an exception is thrown or the process completes.

To learn how to Test a Process click on the link below:

Testing a Business Process

Debug

The Debug function will start the Neuron ESB .NET debugging engine and launch the Edit Test Message dialog form, Figure 24. The Edit Message Test dialog form is used to prompt the user for information and the data (i.e. message) to use to conduct the debugging session. The user can provide custom properties, choose Environment variables associated with a particular deployment group, load a specific data payload and edit existing Neuron ESB header properties like Source ID and Topic.

Process Toolbar Debug button initiates   the debugging process
Figure 24: Process ToolbarDebug button initiates the debugging process

Once a debugging session is started, it can be stopped by selecting the Stop Toolbar button. Users can set breakpoints directly on Process Steps or within C# Process steps. The .NET debugger will stop at those points during the test where the context of the objects can be examined in the Watch Window. Users can then Step into, over or continue debugging using the Step Over Toolbar button or by pressing F5/F10/F11 on the keyboard.

To learn how to Debug a Process click on the link below:

.NET Debugging a Business Process

Step Over

Used in conjunction with the Debug Toolbar button, Figure 25. Once a .NET debugging session has started, the Step Over Toolbar button is enabled can be used to execute the next line of code but not follow execution through any function calls (Step Over). This is equivalent to pressing F10 in Microsoft Visual Studio. This requires that Breakpoints are set either within C# Process Steps or directly on Process Steps.

Step Over button used   during the debugging process
Figure 25: Process ToolbarStep Over button used during the debugging process

To learn how to Debug a Process click on the link below:

.NET Debugging a Business Process

Stop

Used in conjunction with the Debug and Test Toolbar buttons, Figure 26. Once a .NET debugging session or Test session has started, the Stop button can be selected to terminate session or exit out of a loop type of Process Step (i.e. For, For Each, While, Split).

Stop button used to   stop testing or debugging process
Figure 26: Process ToolbarStop button used to stop testing or debugging process

To learn how to Debug a Process click on the link below:

.NET Debugging a Business Process

To learn how to Test a Process click on the link below:

Testing a Business Process

Clear All Breakpoints

Used in conjunction with the Debug Toolbar button, Figure 27. This is used to clear all breakpoints that may exist within a C# Process Steps or on any Process Steps.

Clear All Breakpoints   button removes all breakpoints used in debugging process
Figure 27: Process ToolbarClear All Breakpoints button removes all breakpoints used in debugging process

To learn how to Debug a Process click on the link below:

.NET Debugging a Business Process

Pan

Clicking the Pan Toolbar button toggles panning mode on and off, Figure 28. In panning mode the left mouse button can be used to move the Business Process around on the design surface by clicking anywhere on the canvas. Depressing the center mouse button if available can also be used for panning.

Pan button used for   moving a Business Process on the canvas
Figure 28: Process ToolbarPan button used for moving a Business Process on the canvas

Conversely, the Business Process can be moved to any location on the Canvas by selecting it with the mouse cursor and dragging it to a different location on the canvas.

Zoom

Business Processes currently displayed on the Design Canvas can be resized to either 25%, 50%, 75% or 100% of their original size by selecting the Zoom drop down selector located on the bottom status bar of the Design Canvas, Figure 29. Anytime a Business Process is first opened on the Design Canvas, it will automatically be centered as well as resized to fit the current window.

Zoom button used for   resizing a Business Process on the canvas
Figure 29: Process ToolbarZoom button used for resizing a Business Process on the canvas

By holding down the Control key (Ctrl); users can use their mouse wheel to zoom in and out of any Business Process, well beyond the static zoom ratios offered on the toolbar.

Import/Export

Right Clicking on a Business Process within the Design Canvas displays a short cut menu that not only allows you to add any step but also offers an Import and Export option, Figure 30. Selecting the Import short cut menu item will first prompt you that the current Business Process will be replaced. If you click Yes on the confirmation dialog, a file open dialog will be presented allowing you to select a previously exported Neuron Business Process. When selecting the Export short cut menu item you will be presented with a save file dialog.

Note: The default file extension is .npx for exported Neuron Business Processes.
 Import/Export buttons
Figure 30: Process ToolbarImport/Export buttons used to move processes between solutions at design time

This Import/Export process can be used when active deployment of a process to be immediately picked up by the Neuron ESB service runtime is not desired, as in the case of active development scenarios.

Alternatively, the XML file located in the Solutions Processes folder can be directly copied to another Solutions Processes folder. It will then appear in the Process Library if the solution is opened within the Neuron ESB Explorer. However, if there is an active Neuron ESB service runtime configured with that solution and anything in the solution already configured to run the Business Process, it will be executed.

Print/Save

All processes within the Neuron ESB Process Designer can now be saved as a JPEG or Printed as a report through the new Process Designers toolbar, Figure 31

Print/Save buttons used   to genenrate reports and create process images
Figure 31: Process ToolbarPrint/Save buttons used to genenrate reports and create process images

Clicking the Save button will prompt the user for a location to save the JPEG image of the process to.

Clicking the Print button will display a Print Preview form with an image of the process along with any custom code that any Process Step may contain. All custom code is formatted with Rich Text and separated in the report by the name of the Process step that contains it, Figure 32.

Print/Save buttons
Figure 32: Process ToolbarPrint/Save buttons used to genenrate reports and create process images
Copy

The Copy Toolbar button will copy the image of the currently selected Business Process to the operating systems Clipboard, Figure 33. This allows users to paste the image into third party programs like Microsoft Word.

Copy button copies the   image of the Process to clipboard
Figure 33: Process Toolbar Copy button copies the image of the Process to clipboard

Business Processes can be dragged to new positions located on the Design Canvas using the mouse pointer, or the Pan Toolbar function. If a Business Process is dragged beyond the Design Canvass borders, then both horizontal and vertical Position Indicators will appear at the bottom and right hand side of the Design Canvas. These provide a visual indicator of where the pipeline is located relative to the Design Canvas.

Reusable processes are an important development pattern. Neuron ESB Processes can be reused/called by other existing processes by using the Execute Process Process Step. If a user double clicks on this Process Step, the Process that it calls will be displayed along with a Back button on the toolbar, Figure 34. This provides the developer a way to navigate back and forth between parent and child processes.

Back button allows navigation   from child process back to the parent process
Figure 34: Process ToolbarBack button allows navigation from child process back to the parent process

Process Steps Toolbox

Over 40 Process Steps are listed in the Process Step Toolbox located in the upper right hand corner of the Process Designer (Figure 35). An icon and a tooltip (which displays a brief description of the Process Step) represent each Process Step. Each Process Step can be dragged onto the currently displayed process on the Design Canvas. Each Process Step has design time properties, which can be modified through the Process Property Page grid.

Once added to a Process, a Process Step can be removed from a Process by right clicking on the edge of the Process Step and selecting Remove from the context menu or pressing the Delete key.

Overall, Process Steps (whether those shipped or custom developed) share a similar set of design time capabilities, behaviors and properties i.e. copy and paste, enabling/disabling, use of Environment Variables, etc.

Displays all elements   of the Process Designer
Figure 35: Process DesignerDisplays all elements of the Process Designer
Process Step Folders

Process Steps within the Toolbox are organized into several Folders:

Process Step FolderProcess Step
Error HandlingException Rethrow
Flow ControlBreak Cancel Decision Execute Process For For Each Parallel Retry Split Timeout Transaction While
LanguagesC# C# Class VB.NET
MessageAudit Compression Detect Duplicates Excel to XML Flat File to XML JSON Pop Push Set Property Trace
SecurityDecrypt XML Encrypt XML Sign XML Verify Signed XML
ServicesAdapter Endpoint HTTP Client Utility Publish Rules WF Service Service Endpoint
StorageMSMQ ODBC Store Table Query Xml Query
XMLTransform XSLT Validate – Schema

When a Custom Process Step is registered, a folder hierarchy (that does not currently exist) can be defined as part of the registration. When the Custom Process Step is displayed within the Process Steps Toolbox in the Neuron ESB Explorer, the folder hierarchy that was registered with it will be created within the Toolbox.

The Process Steps Library has an integrated type ahead Search bar that will automatically filter and display Business Process Steps as characters are entered into the Search bar (Figure 36)

Figure 36: Type Ahead SearchDisplays all Business Process Steps that match the characters typed into the Search Bar.

Properties

Located at the bottom right of the Business Process Designer is the Property Page grid representing the configurable design time properties for the selected Business Process or Process Step. The Property Page grid becomes visible after a Process Step is added to a Business Process and selected, Figure 37. All Process Steps have the following default properties:

  • Bindings Used to bind Neuron ESB Environment Variables to properties at runtime
  • Name Not Required
  • Disable False by default. If true, will not be executed
Property Page grid
Figure 37: Property Page gridUsed to configure design time properties of both Business Process and Process Steps.
Using Environment Variables

Neuron ESB the ability to use Environment Variables for configuration of any adapter or service endpoint, database connection string or process step. By using the Bindings Expression editor, users can bind Environment Variables directly to the properties exposed by those entities. Many developers access the values of Environment Variables directly in Code Process steps within processes. An Environment Variable is defined at the Deployment Group level and can contain a unique value for each Deployment Group. On startup, the Neuron ESB service runtime replaces the Environment Variable with the value associated with the Deployment Group the service is configured for.

All Process steps that have configurable properties have a Bindings property collection accessible on the Process Step Property Page grid. The Binding property launches the Bindings Expression editor, which is used to map Neuron ESB Environment Variables to a Process Steps properties at runtime and during design time testing. This is especially useful for properties such as connection strings and URLs. Clicking the ellipsis button next to the property opens the Binding Expressions Editor as shown in Figure 38.

Binding   Expressions Editor
Figure 38: Binding Expressions EditorUsed to define property values that use environment variables. Environment variable values will be replaced at runtime.

By pressing ctrl+space, a drop down list of all available Environment Variables (filtered by the category filter) will be displayed for selection. Environment Variables can be concatenated with text or other Environment Variables to create the final value for the property.

The editor allows you to define a Binding Expression for any scalar property. To add a Property Binding click a property from the property list located at the left of the dialog box. Enter the value in the Binding Expression text box. The property name in the list will appear in BOLD font if an expression has been entered.

Note: When the replacement of a value occurs, the same formatting rules apply as if they were entered into the property grid associated with the step. So for example, if the property is a type of Timeout then the value must be specified as hh:mm:ss or if the property is a true/false selection then the value must be specified as True or False.
Creating Environment Variables

Values that are used in the Binding Expression feature of Neuron ESB Process Steps are defined in the Deployment tab of Neuron Explorer as shown in Figure 39.

Deployment Tab Displays Environment   Variables
Figure 39: Deployment Tab Displays Environment Variables in the Neuron ESB Explorer

In the example displayed in Figure 39, an environment variable with the name of “query_data_source” is defined with the value “.\SQLExpress” for the deployment group “Development” and a value of “PRODSQL01″ for the deployment group “Production”.At runtime, if the active deployment group is “Production” and the following “Binding Expression” is used for a property value:

Initial Catalog=MessageData; Data Source={$query_data_source};

It will become “Initial Catalog=MessageData; Data Source=PRODSQL01;”. This value will be used for the property when the process step is executed or tested.

Dynamic Configuration

In some scenarios, developers may need to set properties at runtime, rather than relying on design time configuration. For example, the URL or method of the REST API to call may only be known after the execution of custom business logic. The FTP server or folder to send information to may not be known until runtime. Many of the Neuron ESB Business Process Steps support having some of their properties set at runtime. This is called Dynamic Configuration.

The Process Steps that support this expose a set of custom ESB Message properties. These properties will be inspected at runtime and their values retrieved to overwrite any design time properties that they are mapped to. Either the developer would set the property value using either a .NET Language Code Editor (as shown below) or by using the Set Property Process Step, (these are case sensitive).

context.Data.SetProperty("neuron", "pipelineName","MyProcess");

Below is a listing of the Process Steps, their dynamic properties and what design time properties they are mapped to.

Process StepCustom Property (i.e. prefix.name)Design-time Property
Execute Processneuron.pipelineNameProcess
Auditneuron.FailureTypeFailure Type
 neuron.FailureDetailFailure Detail
Compressioncompression.FilenameFile name
Excel to XMLexceltoxml.FilenameN/A
Flat File to Xmlflatfile.FirstRowHeadersFirst Row Contains Header Names
 flatfile.FirstLinesToIgnoreFirst Rows to Ignore
 flatfile.LastLinesToIgnoreLast Rows to Ignore
Service EndpointESBMessage.Header.ServiceService Endpoint
 Addressing.ToN/A
MSMQmsmq.CorrelationIdCorrelationId
 msmq.AppSpecificAppSpecific
 msmq.LabelLabel
 msmq.PriorityPriority
 msmq.AcknowledgeTypeN/A
 msmq.AttachSenderIdN/A
 msmq.TimeToBeReceivedN/A
 msmq.TimeToReachQueueN/A
 msmq.UseDeadLetterQueueN/A
 msmq.UseEncryptionN/A
 msmq.UseJournalQueueN/A
 msmq.UseTracingN/A
 msmq.QueuePathQueue Path
 msmq.RecoverableRecoverable
ODBCodbc.RowNameRow Node Name
 odbc.RootNameRoot Node Name
 odbc.NamepaceTarget Namespace
 odbc.ConnectionStringConnection String
Storesql.ConnectionStringConnectionString
Table Querysql.ConnectionStringConnectionString
Xml Querysql.ConnectionStringConnectionString
Validate – Schemaneuron.schemaN/A
 neuron.schemaNamesSchema Names
Transform – XSLTneuron.xsltN/A
 neuron.xsltNameXSLT Names

Features

Setting Breakpoints

Breakpoints can be set on both Process Steps as well as within any code editor belonging to a C#, C# Class and VB.NET Process Step. Within a Business Process, Breakpoints can be set on any Process Step by selecting Add from the context menu. Once a breakpoint is added, the Process Step will change to a reddish brown color. To retain all Breakpoints between opening and closing of the Business Process, the Process must be saved.

Within a VB.NET, C# or C# Class Code Editor, Breakpoints are set by clicking to the left of the line of code that the debugger should stop at. A red dot will be displayed to the left of the line of code (Breakpoint Indicator Margin) and the line of code will be highlighted in red.

Once a Breakpoint is set and the debugging process has started (by selecting the Debug toolbar button), the green marker will move to the first Process Step that have a Breakpoint. Once the green marker moves to a Code Process Step (whether or not it has a Process Step level Breakpoint set on it) that has Breakpoints set within its Code Editor, the debugger will automatically open the Code Editor and stop on the line of code that has the Breakpoint. The line stopped on will be highlighted in yellow and the debug toolbar of the Code Editor will appear.

To learn how to Debug a Process click on the link below:

.NET Debugging a Business Process

Copy, Cut, Paste

A Process Step can be cut or copied from one Business Process and pasted into another location or within another Business Process. This eliminates the need to manually duplicate Process Step configuration. Cut, Copy, and Paste can be accessed by right clicking on any Process Step to display its context menu, Figure 40.

Copy Menu Right Click Context menu
Figure 40: Copy MenuRight Click Context menu displaying Copy menu item used to copy selected Process Step
Disabling Process Steps

Process Steps can be disabled for both design time and runtime environments. If a Process Step is disabled, that Process Step will be stepped over and not executed, either when testing in the Process Designer or at runtime.

Within a Business Process, disabling a Process Step can be accomplished by selecting Disable from the context menu or setting the Disabled property located on the Property Page grid to true. Once a Process Step is disabled, the Process Step will change to a dark grey color. To retain the disabled condition at runtime, the Business Process must be saved.

Process Steps Summary

All Process Steps are listed in the table below.

Process Step Process Step Summary
AuditStores the current message into the Neuron ESB Audit Database. Optionally, store the message body, XPATH value and/or custom message properties. Supports object pooling for concurrency support.
Adapter EndpointCalls an Adapter Endpoint directly without the need to publish a message to a Topic. Supports object pooling for concurrency support.
BreakCauses a For, For Each or While loop to stop, and process execution to begin at the statement immediately following the loop.
CancelPurposefully ends/stops the execution of a process. No exception is reported. The Neuron ESB Runtime terminates the forwarding of the message to the Topic defined on the ESB Message Headers Topic property.
CompressionUsed to Compress or decompress a message using common compression algorithms like GZip, Deflated, BZip2, LZMA, BWT, PPMd, etc.
C#Full C# (.NET Framework version 4.5) code editor with full intellisense, design time compile errors; ability to reference assemblies. Functionally a method template. No external compilation or Visual Studio Development environment required.
C# ClassFull C# Class template (.NET Framework version 4.5) code editor with full intellisense, design time compile errors; ability to reference assemblies. No external compilation or Visual Studio Development environment required. Similar to C# Process Step, however using statements can be used and individual methods can be created.
DecisionProvides branching based on C# code. Branch logic is evaluated from Left to Right.
Decrypt XMLWill decrypt an XML message that was previously encrypted using an AES 256 encryption key. Allows for the use of an optional Initialization Vector value, a 32 bit hexadecimal number used to encrypt the original payload.
Detect DuplicatesCan be used to detect if a message was previously received within a user specified time window. User can define unique id for messages.
Encrypt XMLWill encrypt an XML message using an AES 256 encryption key. Allows for the use of an optional Initialization Vector value, a 32 bit hexadecimal number used with the encryption key to encrypt the payload.
Excel to XMLConverts a message containing an Excel file into an XML document. Where clauses for determining what rows are returned and specifics about how the XML should be constructed can be specified. This uses the Excel ODBC driver which is installed by default with Microsoft Office. This driver can also be downloaded from here: http://www.microsoft.com/download/en/details.aspx?id=13255
ExceptionProvides Try/Catch/Finally Execution Blocks within a Process. Process Steps can be dragged into each Execution Block.
Execute ProcessExecutes another process contained either in the same ESB solution or in an external ESB solution functioning as a library of processes.
Flat File to XMLCan convert flat files to XML. Wizard driven configuration. Optionally can generate XSD schema.
ForProvides a mechanism for repeating a set of steps within an Execution Block for a specified number of iterations. User must define the number of loops. The Break Process Step provides the ability to stop a loop in the middle of an iteration and continue with the next process step after the loop.
For EachProvides a mechanism for repeating a set of steps within an Execution Block for an existing collection of objects. The Break Process Step provides the ability to stop a loop in the middle of an iteration and continue with the next process step after the loop.
HTTP Client UtilityThe HTTP Client Utility is used for calling REST (HTTP) based Service Connectors (endpoints). It is similar to tools like Postman and the REST client of Chrome. It is not uncommon that various pieces of information need to be provided at runtime according to the REST specification. For example, the Method name (e.g. GET, POST, PUT, PATCH, etc.) must be provided. HTTP Headers usually need to be provided (e.g. Content Type, Authorization, Accept, etc.) as well as Query string or URL parameters. The information used to initialize these HTTP elements could come from the existing Neuron ESB Message or context properties or even from Neuron ESB Environment Variables that may have different values at runtime depending on the runtime environment they are deployed to. The HTTP Utility has built in intelligence and allows users to use Neuron ESB Environment Variables, Neuron ESB Message properties, Context properties and literal values to configure any HTTP element, including properties, message body or URL.
JavaScriptDISCONTINUED
JSONProvide JSON encoding and decoding. Supports XML to JSON, JSON to XML, .NET Class to JSON, JSON to .NET Class. Uses the Newtonsoft library.
MsmqPublish a message to or receive a message from an MSMQ queue. Supports the ability to peek at the next message in the queue. Supports MSMQ correlation.
ODBCSupports all inserts, updates, deletes, queries and batch inserts into any data source using an ODBC driver. Supports dynamic SQL as well as stored procs. Optionally can generate XSD schema.
ParallelAllows for parallel execution of process steps. Multiple Branches can be added. Each branch can have N number of Process Steps added to it. Each Branch can be configured to run on a dedicated thread.
PopRetrieves original ESB Message previously pushed by the Push Process Step.
PublishAllows publication of the inbound ESB Message to another Topic authorized by the Publisher. Topic can be static or dynamically defined with the code editor.
PushPlaces a reference of the original ESB Message onto an internal stack so that it can be retrieved with the Pop Process Step.
RethrowRe-throws the current exception. Can be used in the Catch Execution Block or the Execution Block of the Invalid branch of the Validate Schema Process Step.
RetryRetries all Process Steps within its Execution Block. Number of retries, wait interval, trace errors and what type of exception to monitor are configurable. When configured exception is caught, a retry occurs. Once number of retries is exhausted, exception is thrown.
Rules WFAllows design and execution of .NET WF rule set. Will launch the .NET WF Rules Designer where a rule set can be created. Ruleset can access and use Neuron ESB Messages and properties as part of the condition evaluation.
ServiceDISCONTINUED
Service EndpointCalls a Service Endpoint (specifically a Service Connector) directly without the need to publish a message to a Topic. Preferred over using the Service process step. Supports object pooling for concurrency support.
Set PropertyProvides the ability to set or modify any existing or custom ESB Message context property. This is useful to either modify the internal processing and routing behavior of a message, or add custom metadata to a message.
Sign XMLUses the RSA algorithm to attach a cryptographic signature to an XML message. Specifically, the X.509v3 certificates stored in the Windows certificate store and configured in the ESB configuration are used to sign the XML message. This requires the presence of a private key attached to the certificate in the certificate store. Using the private key, the Sign XML process step will use the XML Signature standard to calculate the cryptographically-secure signature for the message and will add the signature to the XML body of the message.
SplitWill split a parent message into individual child messages by either using an XPATH expression or C#.Contains an Execution Block allowing for intermediate Process Step execution (synchronous or asynchronous) for each child message. Optionally aggregates (Join) all child messages after Execution Block. If aggregation is selected it can be either by enclosing the messages in an XML tag or can use C# code.
StoreInsert records into a Microsoft SQL database. Multiple records can be inserted based on the XPath property configured in the step
Table QueryQueries a Microsoft SQL Database for information. Response message data replaces current ESB Message data.
TimeoutThe Timeout Process Step executes the contained Process Steps on a background thread. To succeed, the contained Process Steps needs to complete successfully before the timeout period expires, otherwise a timeout exception will be raised on the Business Process.
TraceWrites the current ESB Message data to the Trace Window during test process execution.
TransactionCan be used to enclose other process steps (that support transactions) inside a transaction scope by placing them within the Transaction Execution Block. This step uses System.Transactions from the .NET Framework.
Transform – XSLTApplies an Xslt/Xsl transform to the ESB message body. Parameterized Xslt/Xsls are supported and the parameters can be dynamically set at runtime. Parameters can be useful when the same value must be repeated many times within the document. Supports providing the name of the Xsl/Xslt to execute at runtime.
Validate SchemaValidate the ESB message body against a set of XSD schemas. For the “schemaLocation” attribute that contain import or include references, both file based and Neuron ESB repository locations are supported. A schemaLocation attribute is used to direct the schema parser on the location of the XSD schema to use. Supports providing the name of the Xsd to execute at runtime.
VB.NETFull VB.NET (.NET Framework version 4.5) code editor with full intellisense, design time compile errors; ability to reference assemblies. Functionally a method template. No external compilation or Visual Studio Development environment required.
Verify Signed XMLThis will use the public key associated with a configured X.509v3 certificate to verify that the signature attached to an XML message is valid and was signed by the private key associated with the public key that is used to verify the messages signature.
WhileThe While Step provides a mechanism for repeating a set of steps within an Execution Block while a condition is met. The Break Process Step provides the ability to stop a loop in the middle of an iteration and continue with the next process step after the loop.
WorkflowDISCONTINUED
XML QueryUsed to retrieve XML from a SQL database. The records retrieved become the body of the ESB message. This is designed to leverage the SQL FOR XML clause, which provides the ability to aggregate the relational rowset returned by the SELECT statement into XML.

Was this article helpful?
Dislike 0
Previous: Extending Processes using .NET
Next: Business Process Tutorial