Skip to Content
Author's profile photo Raju C D

Interface In between SAP and MULESOFT

Applies to

SAP ECC, MULESOFT.

Summary

In the New IT world the businesses has to be connected with Cloud application to run their business meritoriously in a compatible mode with new generation devices like Mobiles, Tabs. MULESOFT is a state-of-the-art middleware application in the current market to interact easily and effectively with core business applications like SAP.

This document is trying to illustrate how easily the interface can be built in between SAP to COUPA, and Mulesoft as middleware. New IT world this kind of interface is commonly built in the business.

Created on

05th May 2017

Authors

 

Authors Bio

Raju C D is a SAP Global speaker and Mentor and having 13+ years of experience as a SAP Consultant. Currently working with Accenture Solutions Pvt. Ltd.

Adarsh swami is Mulesoft consultant and having 4 years of experience with Mulesoft product. Currently working with Accenture Solutions Pvt. Ltd.

Table of Content

  1. Introduction
  2. Overview
  3. SAP ECC objects creation
    1. Create a RFC FM which sends data to COUPA
    2. Create a Z_table, to store the acknowledgement from COUPA
    3. Create an RFC FM which receives acknowledgement from COUPA
    4. Create a Z_program and call the RFC FM which sends data to COUPA with help of Mulesoft
  4. Connecting Mulesoft and SAP using BAPI and IDOCs
    1. Push Data from Mulesoft to SAP
    2. Push data from SAP to Mulesoft
      1. SAP RFC Settings
      2. Mulesoft Configuration
      3. SAP connector settings
  5. Sample Coupa API calls from Mulesoft

 

  1. Introduction

This Document gives an in-detail approach to create an interface in between SAP and COUPA, with help of MULESOFT middleware application. It has step by step activites to be done in both SAP and MULESOFT applications. Technically Mulesoft integration is very stress-free comparatively with other middleware applications to interact with could base applications.

  2.  Overview

 

Requirement:  SAP sends the data by running a report program to COUPA and    COUPA sends back acknowledgement to SAP. COUPA is a cloud based P2P application.

Solution:

  1. Create an RFC FM which sends data to COUPA.
  2. Create a Z_table, to store the acknowledgement from COUPA.
  3. Create a RFC FM which receives acknowledgement from COUPA.
  4. Create a Z_program and call the RFC FM which sends data to COUPA with help of Mulesoft.
  5. Create RFC connection in between SAP and Mulesoft, usually this connection will be available when Mulesoft was set up as Middleware in the systems environment.

3. SAP ECC objects creation

 

 

       3.1. Create a RFC FM which sends data to COUPA.

Before creating FM, need a Function group, so create function group first.

Go to Tcode SE37 and choose the GOTO Menu to create Function Group.

 

FUNCTION z_receive_ack_coupa.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(IM_ACK) TYPE  ZCOUPA_ACK
*"----------------------------------------------------------------------
  DATA: wa_zcoupa_ack TYPE zcoupa_ack.

  IF NOT im_ack IS INITIAL.
    SELECT SINGLE * FROM zcoupa_ack
                     INTO wa_zcoupa_ack
                    WHERE po_number EQ wa_zcoupa_ack-po_number
                    AND status EQ space.
    IF sy-subrc EQ 0.
      wa_zcoupa_ack-status = im_ack-status.
      wa_zcoupa_ack-stat_desc = im_ack-stat_desc.
      MODIFY zcoupa_ack FROM wa_zcoupa_ack.
    ENDIF.
  ENDIF.

ENDFUNCTION.

*&---------------------------------------------------------------------*
*& Report  Z_SEND_PO_2_COUPA
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  z_send_po_2_coupa.
*Data Declaration
DATA: wa_ekko TYPE ekko,
      it_ekpo TYPE STANDARD TABLE OF ekpo,
      l_v_mulesoft TYPE rfcdest VALUE 'MULE100'. " Moulesoft Logical system
*Selction Screen
PARAMETERS p_ebeln TYPE ebeln.

START-OF-SELECTION.
*Fetch PO Header
  SELECT SINGLE * FROM ekko INTO wa_ekko WHERE ebeln = p_ebeln.
  IF sy-subrc EQ 0.
*  Fetch PO Item
    SELECT * FROM ekpo INTO TABLE it_ekpo WHERE ebeln = p_ebeln.
  ELSE.

    MESSAGE 'Enter Correct PO Number' TYPE 'E'.
  ENDIF.

  IF NOT wa_ekko IS  INITIAL.
    CHECK l_v_mulesoft IS NOT INITIAL.

**Also check if the RFC destination is active,
**if not dont send the destination back
**this is to avoid system resulting in runtime error if connection fails
    CALL FUNCTION 'RFC_PING'
      DESTINATION l_v_mulesoft
      EXCEPTIONS
        system_failure        = 1
        communication_failure = 2
        OTHERS                = 99.
    IF sy-subrc EQ 0.
*   RFC FM to send PO details to COUPA system.
      CALL FUNCTION 'Z_SEND_2_COUPA'
        DESTINATION l_v_mulesoft
        EXPORTING
          im_ekko = wa_ekko
        TABLES
          im_ekpo = it_ekpo.

    ELSE.
      MESSAGE 'RFC Error' TYPE 'E'.
    ENDIF.


  ENDIF.

    

 

Assigned tags

      10 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Nice article on SAP and Mule soft Interface - Looking for more such article

       

      Author's profile photo CD Raju
      CD Raju
      Blog Post Author

      Thanks Naveen.. Sure, I will post..

       

      Author's profile photo sri kiran
      sri kiran

      Raju & Adarsh ,

      Appreciative Effort .

      Its Informative about upcoming Technologies , and Narration is good but I think some more explanation required i.e, in layman's perspective.

      Author's profile photo CD Raju
      CD Raju
      Blog Post Author

      Hi Kiran,

      Thanks for reading the Blog, I tried  maximum to mention the minor step also in the blog.

      May I know at which step you are missing?

       

      Author's profile photo Sri Bhooshanan
      Sri Bhooshanan

      Raju,

      Any thoughts on MuleSoft vs. SAP PI for integration? We will be integrating SAP with non-SAP systems and need to decide on a middleware product.

      Best,

      Sri

       

      Author's profile photo Patrick Weber
      Patrick Weber

      Thanks for sharing Raju. One suggestion: you might want to level the details provided for the various steps in your tutorial. For instance, you are explaining in much detail how to create function groups and functions but only mention very briefly the RFC destination to be created without giving the name that is used in your code. To somebody experienced in this area, that will be obvious but other parts of the blog suggest that the target audience you had in mind are novices.

      Keep up the good work and have a nice weekend ahead!

      Regards,
      Patrick

      Author's profile photo CD Raju
      CD Raju
      Blog Post Author

      Yes I agree your point 🙂 ,  Thanks for reading my blog..

      Author's profile photo Ganesan Vandaloor
      Ganesan Vandaloor

      hi raju ,

      I have one question in SAP and Mulesoft , please provide your contact number , so that it is very easy to discuss and solve my integration problems . please provide .

       

      Author's profile photo COMPASS GROUP INC
      COMPASS GROUP INC

      Hello Raju ,

       

      Can you please let me know if it is possible to use mule soft SAP connector to S4 HANA system .

       

      Thanks

       

      Author's profile photo Former Member
      Former Member

      Hi all,

      Can someone splash a snapshot of some RFC connection sample from SM59, the HTTP?

      How are the mulesoft URL, parameters and security issues?

      Best regards