AppApptypeAn application you deploy and use, installed into a system or loaded into an application as a component, rather than a library whose functions you call.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

MQBA

An implementation of MQTT publish/subscribe in ABAP, with a broker inside the system built on ABAP Push Channels and ABAP Messaging Channels, and a bridge to external non-SAP brokers.

MQBA implements MQTT's publish/subscribe mechanism in ABAP: messages are exchanged through a central broker instance inside the system, built on ABAP Push Channels, ABAP Messaging Channels and shared memory so that receiving them needs no polling. The maintainer created it to use the MQTT-driven IoT world from an SAP ABAP backend, especially in innovation projects. A bridge to external, non-SAP MQTT brokers is included, done at the time of writing by a gateway service based on Node-RED; from ABAP 7.53, where SAP's kernel carries native MQTT support, the companion project MQBA_PINS can be used instead. Area menu ZMQBA holds the main transactions and the customising tables, and other ABAP programs reach the broker through function group ZMQBA_API_BROKER.

Facts

Last pushLicenceMIT

Where it sits

Lives in
Provides
Event MeshABAPEvent MeshcapabilityEmitting and consuming business events across systems through brokers, including subscriptions and mapping application events to broker topics. Work that must survive a request, including deferred processing and retries, belongs to [async processing](capability:async-processing).
Requires
abapGitabapGitartifactInstalls the project into the ABAP system; the README gives abapGit as the install method, with ZMQBA as the default package.

Who is behind it

MDJoergMDJoergPersonMaintains this
In the atlas: maintains 2, contributes to 3
@MDJoerg
maintainerGregor WolfPersonContributes to this
In the atlas: maintains 17, contributes to 59, wrote 2
@gregorwolf
Lars HvamPersonContributes to this
In the atlas: maintains 13, contributes to 92, wrote 1
@larshp
2 contributors

Before choosing this

Signals

ActivityQuietNo published releases; repository quiet for 75 months

It publishes no releases, and its repository has been quiet for at least 24 full months. This may be normal for stable software; check whether its current state still fits your use.

Conditions

PracticalFunctional boundary

The maintainer calls the project beta, states there are no experiences with productive usage, and leaves productive use at your own risk. Two further conditions are stated: the implementation used a NetWeaver ABAP stack 7.50 and a 7.40 was not tested, and a system user has to be maintained for the websocket services, because the external websocket tools do not support user-based authorization.

PolicySAP API Policy 4.2026a§ 2.2.2, 3, FAQ 12, FAQ 27, FAQ 38from Event MeshAn ABAP event integration exposes inbound access to SAP APIs or becomes a systematic or large-scale extraction or replication path. An outbound notification or callback alone is not enough.
  • § 2.2.2 AI call sequences and data extraction. Outside SAP-endorsed architectures, data services or expressly identified pathways, the policy prohibits specified agentic API use and systematic or large-scale extraction.
  • § 3 Monitoring and remedies. SAP states that it may monitor API use and take enforcement actions when use does not comply with the documentation and policy.
  • § FAQ 12 Outbound interfaces. The accompanying FAQ distinguishes external consumption of SAP-provided services from outbound notifications or callbacks sent by an SAP system, which it places outside this policy's scope.
  • § FAQ 27 Custom-developed APIs. Customer-namespace ABAP interfaces are not prohibited merely because they are custom, but their underlying SAP dependencies and usage pattern still determine whether the use aligns with the policy.
  • § FAQ 38 Large-scale data access. Large-scale extraction and replication must use access mechanisms and patterns documented for that purpose rather than treating a transactional or custom API as a general bulk-data surface.

Direction and usage pattern decide the policy relevance. Customer ABAP code may publish events outward, but it must not be used to bypass SAP API controls or substitute a custom event stream for a documented bulk-data pathway.

SAP API Policy 4.2026a →

What it declares

Every artifact

Type
App
Origin
Independently maintained

As an app

Where it runs
Inside the system it serves
Distributed through
abapGit

Connections2

README

quoted from MDJoerg/MQBA under MIT, read
MDJoerg/MQBA/README.mdOn GitHub

What is MQBA?

The MQBA or Message Queue Broker ABAP is an implementation of the MQTT concept for ABAP. This means a simple publish/subscribe mechanism to exchange messages via a central broker instance. See Wikipedia for more information about the concept.

The project was created to use the power of the MQTT driven IoT world within SAP ABAP Backend especially for innovation projects.

A bridge to external MQTT brokers (Non-SAP) is included in this project. At the moment this will be done by a gateway service based on Node-RED.

With ABAP 7.53 SAP includes native MQTT support to the standard kernel. With a release >= 7.53 the project MQBA_PINS can be used.

Current State and news

The project is in an beta state. At the moment there are no experiences with productive usage. You can do it at your own risk.
Some features are planned for the future. So the programs could be changed. See project news on Twitter with hashtag #SAPMQBA.

Update 2019/02/17

Update 2019/01/04:

  • new version with some bugfixes and support for external broker proxies (daemons) added
  • Plugin MQBA_PINS with native MQTT protocol support tested for S/4 1809 (ABAP 7.53)
  • support for other background broker proxies available

Technology background

The project uses modern SAP technologies such as ABAP Push Channels (APC), ABAP Messaging Channels (AMC) or Shared Memory to receive messages without polling to save system resources.

Other new(er) technologies are planned for future enhancements.

Installation and configuration

ABAP Stack

Install the Project with ABAPGit. An SAP Netweaver ABAP Stack 7.50 was used for implementation. A Netweaver 7.40 was not tested so far. The default package for installation is ZMQBA.

Activate the services ZMQBA_GW and ZMQBA_INT (websocket nodes) with transaction SICF if inactive. With newer releases of abapGit this could be done automatically. A system user have to be maintained for the services because external websocket tools do not support user based authorization.

Bridge to external brokers

If you want to activate the bridge to external MQTT brokers you will need a Node-RED Service and flow as the connector. See Node-RED-Installation documentation for further information.

The Node-RED Service can be installed on a Raspberry PI or as Docker image for example. Take a look to the openhabian project. In this distribution for Raspberry PI Node-RED, Mosquitto MQTT and openHAB are included and preconfigured.

Since ABAP 7.53 a native ABAP MQTT support is existing. If you have an SAP ABAP Netweaver Stack >= 7.53 you can install the MQBA Plugin project MQBA_PINS and can use this implementation instead of the Node-RED gateway. Configure an external broker like iot.eclipse.org (area menu ZMQBA, configuration) and catch the messages via an ABAP daemon service.

Customizing

The area menu ZMQBA contains the main transactions and customizing tables. Enter ZMQBA as transaction code to show this menu.

Simple Tests and main use cases

Use internal messaging

Use the following transaction to test the internal messaging:

  • ZMQBA_MSG_LIST - display broker messages from memory
  • ZMQBA_PUB - publish a message
  • ZMQBA_SUB - subscribe to a message

Direct private messaging is possible with the session id.

Use external messaging

External messaging is available through a configured Node-RED-Service.

Use the transaction ZMQBA_PUB with activated flag "as external message". Then the message will be routed to the external gateway. You can see the message with MQTT Clients (e.g. MQTT.fx).

If you want to send a MQTT message from the outside use a MQTT Client and display the broker memory with transaction ZMQBA_MSG_LIST.

Use programming interface

See function group ZMQBA_API_BROKER for use the broker features from other ABAP programs. A object oriented library is working behind these function modules.

Realtime messaging to WebUI and Websocket Apps

The internal messaging uses the SICF Service ZMQBA_INT with ABAP Push Channel (APC) Technology and the PCP Protocol. You can connect to websocket ws://yoursaphost:yourport/sap/bc/apc/sap/zmqba_int with a Websocket client like the Chrome plugin Simple Websocket Client. Or use the SAP APC test application http://yoursaphost:yourport/sap/bc/webdynpro/sap/wdr_test_apc_wsp?apc_application=zmqba_int to receive and send messages.

SAP supports the PCP Protocol with a special javascript library. See SAP Help for more information.

Project supporters

Some organizations and individuals support this project and make it possible. Thank you to:

MIT, read
Event Mesh
  1. SAP Integration Suite, advanced event meshEvent streaming and management platform in Integration Suitefrom BTP/BAIP
  2. SAP Cloud Application Event HubDistributes business events between SAP cloud applicationsfrom BTP/BAIP
  3. Event MeshManaged queues and topics over AMQP, MQTT and RESTfrom BTP/BAIP
  4. SAP Integration Suite, Event MeshEvent broker inside SAP Integration Suitefrom BTP/BAIP
  5. com.sap.cds:cds-feature-advanced-event-meshCAP Java plugin for SAP Integration Suite, advanced event meshfrom CAP
  6. com.sap.cds:cds-feature-enterprise-messagingConnects CAP Java messaging to SAP Event Meshfrom CAP
  7. com.sap.cds:cds-feature-event-hubConnects CAP Java messaging to SAP Cloud Application Event Hubfrom CAP
  8. com.sap.cds:cds-feature-kafkaConnects CAP Java messaging to Apache Kafkafrom CAP
  9. com.sap.cds:cds-feature-redisBeta connector from CAP Java messaging to Redis Pub/Subfrom CAP
  10. com.sap.cds:cds-services-bomMaven bill of materials pinning CAP Java module versionsfrom CAP
  11. @cap-js/advanced-event-meshCAP integration with SAP Integration Suite advanced event meshfrom CAP
  12. @cap-js/asyncapiExports AsyncAPI documents for a CAP service's eventsfrom CAP
  13. @cap-js/event-brokerConsumes events from SAP Cloud Application Event Hub in CAPfrom CAP
  14. cds-kafkaKafka adapter exposing topics as a CDS messaging servicefrom CAP
  15. cesar-sap/abap_kafka_rest_proxyABAP connector to Kafka through the Confluent Kafka REST Proxyfrom ABAP
  16. cds-event-monitoringStores, browses and resends messages a CAP service receivesfrom CAP
  17. gregorwolf/AWS_SNS4ABAPICF handler receiving Amazon SNS notifications in an ABAP systemfrom ABAP
  18. INVIXO/abapMQMQTT 3.1.1 client implemented in ABAPfrom ABAP
  19. @sap/cdsCAP Node.js runtimefrom CAP

Details

Sources3
Added by handdiscovered herechecked
github.com/MDJoerg/MQBAtree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viaAdded by hand
first seen in the atlas
ecosystem and domainabap, integration-and-messaging
abaplint
issues under its own abaplint configuration4,701
lines11,764
statements6,952
objects310
files195
analysed, master
abaplint version2.120.84
Flavors1
Standard ABAP
“An SAP Netweaver ABAP Stack 7.50 was used for implementation.” — MDJoerg/MQBA — README, Installation and configurationchecked
Contributors2

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent