Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
Showing results for 
Search instead for 
Did you mean: 

Previous – Idempotent Receiver | Index | Next – Message Channel

This week, we'll learn one of the most common patterns known as Service Activator.

When do I use this pattern?

Service Activator acts as a translator between the service exposed by the Message Endpoint and the messaging system. For example, an OData service can be consumed in CPI using a Service Activator commonly known to us developers as OData Receiver Adapter.

Service Activator in CPI

In CPI, I'll demonstrate the OData Receiver Adapter as a Service Activator.

Integration Flow

OData Service

The integration flow starts immediately using Timer Start Event, gets the product from Northwind OData Service using OData Receiver Adapter, and Logs the message contents using a Groovy Script.

The Service Activator is implemented as OData Receiver Adapter. The OData Receiver Adapter invokes the OData service using HTTPS, the HTTP response body is converted to a nicer format and stored into the message body. whereas headers are copied into message headers. A CamelHttpResponseCode header is also set.

The Log Groovy Script shows us the content of the Message. The script is like so:

def Message processData(Message message) {

def messageLog = messageLogFactory.getMessageLog(message)

messageLog.addAttachmentAsString('Headers', message.headers.collect { key, value ->
key + ':\t' + value
}.join('\n'), null)
messageLog.addAttachmentAsString('Body', message.getBody(String), null)

return message



CamelHttpResponseCode: 200
HttpStatusCodes: OK
ODataResponseType: Properties
SAP_MessageProcessingLogID: AF-DILhznrDxdh_O8s9gq-HkSMD8
SAP_MplCorrelationId: AF-DILgcLpXDWMgi0y190B6yKRrJ
SAP_PregeneratedMplId: AF-DILhK89mz6lm-NFvqmuw9SM3M
scriptFile: script1.groovy
scriptFileType: groovy


<QuantityPerUnit>10 boxes x 20 bags</QuantityPerUnit>

As you can see the raw HTTP response from OData service was nicely wrapped in a Message by the Service Activator.

EIPinCPI Rating - 10/10

CPI has a number of out-of-the-box Service Activators, called as Adapters for most common protocols and applications. A developer can also develop adapters if required. In addition, the Cloud Platform Integration Suite has Open Connectors that allow connection to many applications. Therefore, CPI has a full rating of 10/10 for the Service Activator pattern.


Service Activator pattern enables us to consume and provide services from the messaging system without the consumer/producer having knowledge of the messaging code.

References/Further Readings

Hope this helps,

Previous – Idempotent Receiver | Index | Next – Message Channel

Labels in this area