cancel
Showing results for 
Search instead for 
Did you mean: 

XI - Publish and Subscribe

Former Member
0 Kudos

Hi All,

From my recent discussions with SAP folks in XI, I realized WebServices is the way to go.. But How do you accomplish a publish/subscribe (not a request-response and hence WebService wont fit the theme or will it ? ).. As an illustration, let us say I have following scenario

> A new customer is entered in SAP system

> I will have the process configured to "spit" out a idoc(??)

> The idoc will be routed to XI (can it) and then I need it to be sent to systems outside of SAP like a legacy system that can handle JMS etc..

This is a typical pub(XI is the publisher) and sub(non-SAP systems subscribe)..How can this be done ? I do not think WebService is a way to go..

Regards

Madhu

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

All - Thanks much for your replies.. Very enlightening.. I do have another clarification to the same issue..

> If the target system is an application (needs API calls - not a database) should I build new adapters using the adapter development kit

> I also heard that XI does not act as a JMS server although it can talk JMS. So, this means I need to have a JMS provider server - right (like Weblogic etc) ?

Thanks much

Madhavan

Former Member
0 Kudos

> > If the target system is an application (needs API

> calls - not a database) should I build new adapters

> using the adapter development kit

Building new adapter is a daunting task. Can't you wrap your external application as a SOAP-based web service and use SOAP adapter from xi to talk to the application? The other option is to use http adapter if you can wrap your external application with a jsp or servlet or asp etc.

>

> > I also heard that XI does not act as a JMS server

> although it can talk JMS. So, this means I need to

> have a JMS provider server - right (like Weblogic

> etc) ?

>

You are right. XI does not have a built-in jms server.

Regards,

Suresh

Former Member
0 Kudos

I am wondering why this scenario is complicated? Let me give my thought on this -

1. Configure r/3 to send IDOC to XI.

2. do necessary mapping in XI in required reciver format

3. configure communication channel using JMS Adapter for receiver.

4. define reciver determination as sender r/3 and receiver as legacy system, with interface mapping(As necessary)

5. define receiver aggreement. Do not need sender aggreement as this is idoc.

Former Member
0 Kudos

Ravi - For JMS to work, one of them (XI or the recieving system) should have a JMS server else there is no way JMS will work - correct ?

Madhavan

Former Member
0 Kudos

You need a JMS server at the receiver.

Former Member
0 Kudos

Thanks Suresh !

Former Member
0 Kudos

Hi.

You will have configured the SAP system to spit out an iDoc upon the creation of a customer.

This iDoc will be sent to the XI system (using proxies (native XI format) or the iDoc adapter).

Once the iDoc gets into XI, you will have configured XI to map the iDoc to the format required by the target legacy system. Once mapped, the target message is sent to the relevant target system via the configuration of a communication channel. The communication channel in the Integration Directory (config time) component enables you to define receivers of this new customer.

Hope this helps.

Former Member
0 Kudos

HI,

As from the replies, there are lot of ways to tackle this and lot of possible options to get this working.

Let me put in my suggestion:-

Use the transaction SWEC(Event Linkage for Change Documents) to attach the customer master change document object to a Function module. The Idoc generation can be done here( Either by creating the IDOC message fully or submitting the report RBDMIDOX which generates the IDoc from change pointers - for this the change pointers need to be activated for customer master message type).

Thanks & Regards,

Renjith

jakob_steen-petersen
Active Participant
0 Kudos

Write an ABAP program who reads the customer master data and post it in an IDOC. IDOC type DEBMAS03 could be used for that.

Create an event in SM62. Schedule your program to start on the Event.

Use an user-exit in the customer master data (SAPMF02D) an trigger the Event here using the function module BP_EVENT_RAISE.

MichalKrawczyk
Active Contributor
0 Kudos

hi Madhavan,

in SAP this is done by scheduling a job

once a new customer is entered

your scheduled report sends customer master data

you can schedule your report (TCODE - BD12 I think) to one day or every 5 minutes... it depend on your needs and the system performence

Regards,

michal