ABAP Outbound Proxy: Set EOIO Queue

In order to use EOIO (Exactly-Once-In-Order), you have to pass the Queue ID to the class before calling the Outbound Proxy in your ABAP Program. It can be a static value like shown below (parameter) or a dynamic object like a document number:

 

PARAMETERS: p_queue TYPE sxmsqidapp.

DATA: l_proxy TYPE REF TO z…,
async_messaging TYPE REF TO if_wsprotocol_async_messaging.

CREATE OBJECT l_proxy.

async_messaging ?= l_proxy->get_protocol( if_wsprotocol=>async_messaging ).
async_messaging->set_serialization_context( p_queue ).

WHINT Webhook JSON Connector

WHINT_WJC

Functionality

This solution enables you to push data via an ABAP structure to a Webhook using JSON.

Prerequisites

  • Works with any SAP ABAP Based system (Basis 6.10 and higher)
  • You install the Whitepaper InterfaceDesign ABAP components through a transport
  • The software comes in an isolated, namespace-specific environment that basically provides one function group and a sample report to show the usage

Usage

  • You pass the data to be transferred from any context
    • BAdI (Business Add-In)
    • User-Exit (CMOD)
    • BTE (Business Transaction Event)
    • BOR Event
    • Enhancement Spot
    • Customer-specific ABAP program
  • to a function module:  /WHINT/WJC_ABAP2JSON

Example

You want to add subscribers from your SAP CRM system to your MailChimp E-Mail distribution list.

See our blog entry: “SAP integration with Webhooks and JSON through elastic.io

SAP integration with Webhooks and JSON through elastic.io

WHINT_WJC_elastic

This article shows how to integrate any SAP ABAP system with MailChimp through elastic.io using a solution of Whitepaper InterfaceDesign, the WHINT Webhook JSON Connector.


elastic

Our Partner elastic.io is an iPaaS (Integration Platform as a Service), a cloud connectivity solution to enable business integration between on-premise and on-demand applications. The platform is hosted in Germany´s most secure cloud environment and fulfills highest security standards.

MailChimp is a cloud solution to send marketing emails, automated messages, and targeted campaigns.

Whitepaper InterfaceDesign provides professional services and software solutions around SAP integration and cloud connectivity. We are a SAP Application Development Partner since 2014.

SAP Partner


Step-by-step guide: Prerequisites

  1. Install the add-on into your SAP ABAP system
  2. Create an account at elastic.io
  3. Create an account at MailChimp
  • No additional middleware needed (!)

Configure MailChimp

  • Create a list

MailChimp Create List


Configure elastic.io (1)

  • Add new flow
  • Save Webhook URL

elastic 1 elastic 2


Configure SAP

  • Configure the connectivity
  • Select the data structure to be sent
  • Retrieve the JSON structure by invoking the WHINT WJC (Webhook JSON Connector)

Transaction SM59: Create an RFC destination (HTTP) and select SSL

sap 1 sap 2

Transaction STRUST: Load the SSL certificates (CAs) needed for the HTTPS connection

sap 3

Transaction SE11: Select or create a DDIC structure to pass the information to MailChimp

sap 4

Transaction SE38: Create program that invokes the WHINT WJC and run:

sap 5 sap 7


Configure elastic.io (2)

  • Insert JSON String into Webhook sample
  • Define field mapping
  • Connect your MailChimp account

elastic 3

elastic 4

elastic 5

Start the flow!


Monitoring & Results

  • SAP
  • elastic.io
  • MailChimp

sap 8

Monitoring on elastic.io:

elastic 7 elastic 8

Verify result in MailChimp:

mailchimp list 2 mailchimp list 3

ABAP Outbound Proxy: Request Acknowledgements

To request System- or Application-Acknowledgements, you have to request them before calling the Outbound Proxy in your ABAP Program:

DATA: l_proxy TYPE REF TO z…,
acknowledgment_request_details TYPE PRX_ACK_REQUEST_DETAILS,
async_messaging TYPE REF TO if_wsprotocol_async_messaging.

CREATE OBJECT l_proxy.

async_messaging ?= l_proxy->get_protocol( if_wsprotocol=>async_messaging ).

acknowledgment_request_details-application_ok = abap_true.
acknowledgment_request_details-application_error = abap_true.

acknowledgment_request_details-system_ok = abap_true.
acknowledgment_request_details-system_error = abap_true.

async_messaging->set_acknowledgment_requested( details = acknowledgment_request_details ).