Well, I was thoroughly amused by learning the fact that the book ‘NetWeaver for Dummies’ became an instant bestseller recently during SAPPHIRE. Though I haven’t yet had a glance at that book, I am pretty sure that it would have been a thoroughly satisfying experience for developers who are getting introduced to SAP NetWeaver and ESA concepts.
This made me think: Why shouldn’t I pen a few lines on my technical experiences during the course of getting introduced to the very basic concepts of NetWeaver Components? In this post I want to take you through how I went about creating my first example on ‘Process Integration’ based on SAP Exchange Infrastructure. (For well versed developers, it’s nothing but the standard NameOut and NameIn Example).
I would like to point out that this example is purely for the first timers who are ready to take off from the Ship…and it shows the underlying concepts of simple Asynchronous Message Processing using XI.
Well, the Scenario is very simple:
I have One SAP System (WAS), three Clients (100, 200, 300). So we have three different logical systems. Client 100 is configured as the Integration server.
A message is generated in client 200 (business system 200, sender) and sent via client 100 (Integration Server) to client 300 (business system 300, receiver). In client 300 either a database table is posted to or an application error is triggered that can then be seen in central monitoring.
Going to specifics of the business scenario, the sender system sends a name which contains FirstName and Lastname. (On the selection screen for the report you can enter a first name and last name). The integration server concatenates the two parts of the name and then posts to the receiver system as one ‘FulName’. For example, if the sender sends ‘Vaijayanth’ and ‘M.K ‘separately, Integration server should map this into ‘VaijayanthM.K’ and post it to the receiver.
So… How should I start…?
First we will finish the critical steps in the Integration server and then go to the programming aspects in sender and receiver systems.
1. I should have my System Landscape in place for XI Server to decipher who are the sender and receiver systems.
So I go to my XI server (read Client 100) and launch the System Landscape directory. There I create two technical systems for 200 and 300. Then I create corresponding Business systems. Now I need a software component which can point to the technical components involved in the landscape. So I create products and one software Component (‘mydemo’) and attach the component and products to my business systems.
2. Now that I have the Landscape in place, I can go ahead with designing my Processes and their Mappings. So I Launch Integration Builder (Design) and then ‘import’ my Software Component from SLD. Now I can see my Software Component (‘mydemo’) in Integration Builder (Design).
3. Now under this software component, I define a namespace which is unique (like http://mydemo.com/firstexample).
4. Taking a Bottom-Up approach, I create datatypes, messagetypes,interfaces, MessageMapping, and Interface Mapping in that order.
A) I need to define two message types. One to understand the message coming from the sender and then to send a message that is understood by receiver. So I create two message types Name_send and Name_receive. Name_send contains a datatype like a structure which contains FirstName and Lastname. Name_receive Contains datatype which is a simple string .
5. By now I know what should my Outbound Interface point to… yes… it is nothing but what my sender sends. (Name_send). Similarly my inbound message is the message that my receiver expects. (Name_receive).
6. Now I should map both interfaces.
My Firstname and lastname should get concatenated into a full name. So I create a message mapping(Map_Names) with Source message Name_send and Target Message Name_receive.
7. I create Interface mapping which refers to the MessageMapping ‘Map_Names’.
Now all the necessary elements to design my business scenario are ready..So I start creating a business scenario by inserting two application components. (One for Sender and another for receiver). (Two swimlanes in my Business Scenario editor).
Basically the processes are defined by ‘Actions’ done by application components. So I create actions ‘Send Names’ and ‘Receive Name’. Action Send Names contains Outbound Interface and, naturally, Action ‘Receive Name’ should have the Inbound Interface as it is the inbound message which is sent to the receiver. As the last step in my Integration Design, I create an ‘Asynchronous Connection’ between these actions and specify the mapping ‘Map_names’.
Now I have my Scenario in place and all I have to do is to configure the above created scenario and determine the Sender and Receiver. Then I need to generate interfaces (Proxies) that in application systems (Clients 200 & 300) communicate with the Integration Server.
This basically concludes my first part of this 2-part post. By the time you come up with a similar kind of scenario design, this page will be updated by the subsequent post!!
P.S. Don’t miss lots of useful information posted by fellow developers in Exchange Infrastructure Forum…It’s all there!!