BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 1 of 13
Synopsis: This document describes
implementation of BECS RabbitMQ Listener.
BECS RabbitMQ Listener Documentation
1 BECS (Bentley Enterprise Connection Services) ................................................................................ 2
2 BECS RabbitMQ Listener setup and usage ........................................................................................ 2
2.1 BECS RabbitMQ Listener prerequisites ..................................................................................... 2
2.2 Architecture ............................................................................................................................. 2
2.3 BECS RabbitMQ Listener Setup ................................................................................................. 3
2.3.1 BECS Scheduler Service ..................................................................................................... 3
2.3.2 BECS Scheduler Management overview and configuration ............................................... 3
2.4 RabbitMQ example of usage .................................................................................................... 9
3 References ..................................................................................................................................... 12
4 Glossary ......................................................................................................................................... 13
Number: B000xxxxx
Updated: 6th September 2018
By: Alex Cimbalak, Bentley SK
State: Draft Scope: BECS Listener 5.5x
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 2 of 13
1 BECS (Bentley Enterprise Connection Services) BECS enables trusted and certified integration between Bentley software and mission critical enterprise
applications such as enterprise resource planning (ERP) systems based on visual modeling of integration
projects. BECS automates the flow of data between Bentley applications, such as ALIM, and enterprise
applications to provide two-way communications for data creation, updates, and modifications, keeping
the data in both systems accurate and up to date. Bentley Enterprise Connection Services is certified for
integration with SAP® NetWeaver™ as well as SAP® HANA™ and provides the ability to exchange both
business object metadata and table data with SAP.
BECS is essentially a service bus with typical service bus related functionality. This functionality includes
an ability to create and use native "connectors" to external applications, including but not limited to
SAP®, Maximo®, Oracle® and many others.
Connectors are used in conjunction with data flow controls such as merge, split etc., to form a data
exchange solution template. BECS solution templates may be as simple as an incoming and outgoing
connector with pass through data flow, or very complex comprising many connectors with very
sophisticated data flow controls, internal BECS mappings and validations.
2 BECS RabbitMQ Listener setup and usage In this chapter, we will describe all relevant processes related to installation and setup of BECS
RabbitMQ Listener
2.1 BECS RabbitMQ Listener prerequisites BECS RabbitMQ Listener requires:
BECS Server version 5.5 or higher
RabbitMQ server
2.2 Architecture BECS RabbitMQ listener awaits messages in defined RabbitMQ server. After message receive, BECS
RabbitMQ listener reads contents, checks whether the message meets defined conditions, reads
required information and in case of successful processing sends command to predefined MSMQ,
dedicated to BECS Server.
Message received from RabbitMQ must be a valid XML.
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 3 of 13
2.3 BECS RabbitMQ Listener Setup Listener consist of BECS Scheduler Service and BECS Scheduler Management
2.3.1 BECS Scheduler Service BECS Scheduler service is installed as a Windows Service. Logs are stored in Listener installation folder.
2.3.2 BECS Scheduler Management overview and configuration Configuration of BECS RabbitMQ Listener is done in BECS Scheduler Management. Following steps
describe how to setup BECS Scheduler Service for listening on RabbitMQ and use it for execution of
Integration projects on BECS Server.
1. Open Scheduler Management 2. On the bottom of welcome screen, click on “Integrator” button
3. On the right side of screen click “Add”
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 4 of 13
4. To schedule RabbitMQ queue trigger, it is necessary to define on which BECS server you will run integration projects triggered by received queue messages Properties for Target:
- Name - MSMQ – Full connection string for BECS Integrator MSMQ - Database
a. Server – Server Name b. UserID – DB User c. Password d. BECS System database e. Trusted connection Option
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 5 of 13
5. Click Save 6. After definition of target BECS Server, click on the bottom side on the button “Queues” 7. Click Add button on the right side. 8. In this screen the definition of RabbitMQ listener is done
- Properties for Connection: o Name o Host (IP address of RabbitMQ server) o UserName (Standard RabbitMQ user/LogOn) o Password o VirtualHost of RabbitMQ queue o Queue Name
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 6 of 13
9. After Listener setup, Scheduler Management allows users to setup trigger for this connection in “Schedule Packs” section.
10. On the bottom side click “Schedule packs“ button 11. Click “Add” button on the right side
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 7 of 13
- Properties for Package: o Package Name o Trigger type – choose Queue o Listener – choose Name of Queue which you defined in listener/Queue/Connection
definition o XSLT transformation – you can write or load XSLT transformation which will
transform incoming message Example:
o Condition – set conditions using Xpath for incoming message – if message meets
these conditions, it will be further processed Example:
o Parameters – define parameters/variables for BECS Integration project, which will
be run Example:
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 8 of 13
Choose type of parameter
Node for Node Value
Complex for Node Tree
Attribute for Node Attribute
Constant for constant value Write XPath and name of parameters which maps to variable in BECS
integration project o Project settings – choose target BECS server(defined in Integrator section) and
integration project name
12. Click Save 13. Restart BECS Scheduler Service
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 9 of 13
2.4 RabbitMQ example of usage In this example we will use integration Project defined in “BECS RabbitMQ connector documentation”
document. We will send message to RabbitMQ and receive it with BECS RabbitMQ listener and start
another BECS Integrator project with received message.
2.4.1.1 Package Definition
In package definition we choose on which queue will scheduler listen to messages, which values will be
used as conditions, which parameters will be sent to BECS integration project and target BECS Server
with Integration Project
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 10 of 13
2.4.1.2 RabbitMQ Status check
Check status of RabbitMQ server
2.4.1.3 Execution of BECS Project
Run related BECS Integration project(for this case we ran project from BECS Visual Architect)
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 11 of 13
2.4.1.4 RabbitMQ Receiving
RabbitMQ received message.
Message:
2.4.1.5 BECS RabbitMQ Listener process
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 12 of 13
Open BECS Scheduler Service Log
2.4.1.6 Description
There is a Schedule Pack is defined to read target RabbitMQ. After execution of Integration project
dedicated to Send a Message to RabbitMQ, BECS Scheduler reads a message from it.
Scheduler checks if message meets conditions, reads parameters from the message and sends command
to defined BECS Server to run Integration Project.
3 References Number Revision Title Status
2018-09-06 14:30:04.3748 INFO Service started.
2018-09-06 14:30:04.4683 INFO Message recieved from: RabbitMQ With ID: 1
2018-09-06 14:30:04.4683 INFO Message:<SyncAssets>
….
</SyncAssets>
2018-09-06 14:30:04.4683 INFO (RabbitMQ Package) Executing project.
2018-09-06 14:30:04.4997 INFO Transformed
2018-09-06 14:30:04.5459 INFO (RabbitMQ Package) Request is sent to Integrator: BECS Integrator
Server
2018-09-06 14:30:04.6702 INFO Message recieved from: BECS_IN
2018-09-06 14:30:04.6702 INFO (MSMQ) Executing project.
BECS RabbitMQ Listener Documentation B000xxxxx
BECS RabbitMQ Listener Documentation Page 13 of 13
4 Glossary Term Description
End of document