Skip to Content

Introduction

In this weblog, I will be discussing about how to call a MDM Java-API executable application from ABAP. Even though, SAP has provided the MDM API for ABAP as a part of ‘MDM TECH 5.5’ add-on, you can try another workaround way of connecting to MDM thru the method described in the blog. The pre requisite for this scenario is you need to have a MDM java application, which can run as a console application. Using the ‘rfcexec’ you can register the executable in the ABAP system by registering with a TCP/IP RFC destination (program-id).

Create MDM JAVA application

You can create a simple MDM java application that can connect to the MDM repository and accept command line arguments to update field value of a table in repository. After creating the application, compile and test your application using Netweaver Developer Studio. Make an executable (.EXE) out of the .jar file from NWDS using any java utilities.

image

Create RFC destination

Now you create a RFC destination of type “TCP/IP” with program-id like below:

image

image

Test – ABAP report

You can execute the program from SAP and the check the modified value in MDM Data Manager like below:

Values for the record in MDM before executing the report from ABAP

image

Updated values for the record in MDM after executing the report from ABAP

image

You can notice that the value for the name filed has been changed from “MAT00000004” to “MAT-02”. Using this scenario, you can do mass updates of records by passing the business values from your SAP R/3 system.

To report this post you need to login first.

4 Comments

You must be Logged on to comment or reply to a post.

  1. Thomas Jung
    Althought this approach is technically possible, how would you really handle security?  Also what about objects that require deeper structures that can’t be passed on the command line. 

    If for some reason you can’t or don’t want to use the ABAP API natively, I think users should first consider wrapping their JAVA-API calls in Web Services or using the SAP Delivered MDM API Web Services. These Web Services can then be consumed from ABAP.  This a much more standard approach than using the RFC_REMOTE_PIPE. 

    Even for older ABAP releases that don’t support Web Service proxies, I would think you would want to look at using the Java Connector before resorting to the RFC_REMOTE_PIPE.

    (0) 
    1. BV PILLAI Post author
      Thomas,

      I agree with you. I just demonstrated an easy way of calling the MDM Java-API thru “RFCEXEC’. I know, SAP is also restricted the use of RFCEXEC in the newer version of SAP system’s due to the security risk with the RFC SDK. Yes. The better way would be the writing wrapper web service call for the MDM JAVA-API and then call it from ABAP. Thanks for your recommendation.

      Regards,
      Velu

      (0) 
  2. Ryan Quackenboss
    While I agree with Thomas, I must commend you or thinking outside the box.  Interesting use of two technologies to update data.  This approach may not be practical, but it is truely cool!  Thanks for sharing.
    (0) 
  3. Sudhanshu Agarwal
    Hi,
    As u mentioned that we need to copy rfceexec.exe in tht  java file folder and then run
    “rfcexec -aMDM4A -g uscie8d.wdf.sap.corp -xgateway”
    First thing is that enough to copy thsi file only in java file.
    and from where this command will run under tht java file directory wher this “rfcexec.exe” reside or from that sap server only.
    when i am trying to do from java file folder i am getting “this is no a valid wind32 application”
    please help me on this issue.
    (0) 

Leave a Reply