Bridge AWS serverless events to SAP PO
AWS Eventbridge is a serverless event bus for connecting AWS services, SaaS vendors and custom applications deployed on AWS cloud.
This blog shows how to use SAP PO as an Event producer or Event subscriber for AWS Eventbridge with KaTe’s AWS Adapter
Terminologies of AWS Event Bridge
AWS Eventbridge provides an event bus that is administrated through AWS console or AWS APIs. In AWS Eventbridge terminology “Event producers” can publish events to the event bus as JSON payloads.
Any AWS Service can be a producer, as well as partnered SaaS providers (for a complete list see here). Also you could write own custom producers with the AWS SDK.
“Event consumers” can subscribe to events via filter rules. Most of the existing AWS services (e.g. SQS, Lambda or Kinesis) can be consumers of Eventbridge via configuration and no programming effort.
Events follow a certain structure that consists of header and data fields. There are a few key fields that are generally used in any event (custom or AWS event)
- source : the source of an event (e.g. AWS service or your custom name for custom events)
- resource: the resource in the source that emits the event
- detail-Type: action of the event
E.g. here is an example how a custom event from an “ERP” and its orderprocessing could look like:
The fields below “detail” contain the actual payload content of the event.
Any defined event field can be used to create filter rules in order to subscribe exactly to the event that a target service or application needs.
AWS Eventbridge also offers a schema registry to document event structures in OpenAPI from which client applications can generate stubs for subscribers in different popular programming languages.
SAP PO as AWS Eventbridge producer
The KaTe AWS Adapter allows SAP PO to be used as AWS event producer with a receiver channel.
A receiver channel is configured with the AWS access secrets and information about the custom event like source, resource and detailType.
For custom eventbus names also an alternative event bus name can be specified.
The header fields defined in the channel are merged with the PO XML payload into the JSON event structure by the channel.
E.g. If we send an PO XML message payload like this to the adapter
It will be transmitted to AWS Eventbridge as event composed by the fixed channel settings (headers) and the PO payload fields under detail:
SAP PO as event subscriber
SAP PO can also act as a subscriber to AWS eventbridge through a SQS sender channel as transport mechanism.
An Event can then routed to the SQS queue through a filter defined in a filter rule and is consumed by SAP PO through a sender channel from there.
Here’s an example rule created in the AWS console that filters the former “ERP” event with detail type “OrderCreated” from source “ERP”, if the field OrderStatus has the value “Placed”.
The target could then be a SQS queue (here OrdersPlaced queue is configured)
In SAP PO we would configure a AWS SQS sender channel that consumes events from the “OrdersPlaced” SQS queue with the Content Transformation Option set to XML.
The event is then pulled from the queue and can be processed as XML in SAP PO.
Integrating AWS native serverless technologies like AWS Eventbridge or SQS with SAP PO can be challenging due to the need to do multiple API calls with AWS specific features like region information, IAM authentication and XML/JSON transformation.
The KaTe AWS Adapter simplifies using AWS native services like Eventbridge and SQS through simple channel configurations that can be easily managed by PO developers without implementing all underlying API calls by themselves and manage secrets “out of band” in a secure channel parameter.