If you have gone through the previous post and decided to start learning XI, this article will help you create your first XI scenario. You will understand the concepts better since do-it-yourself is always the best approach rather than simply reading through. I assume that you have read the previous post and are by now fairly familiar with the architecture of Exchange Infrastructure. I shall still introduce the different components of XI Architecture in course of this example.
The Scenario
A custom XML document containing certain data is picked up from the file system by file adapter. The message is mapped to IDoc-XML format and then routed to the IDoc adapter. A custom IDoc is posted into the partner R/3 system by means of a call to an inbound function module. Data is updated into custom DDic tables in the R/3 system. A custom IDoc type ZRZORDER and message type ZRZSO_MT have been defined in target R/3 system.
Overview of DDic tables
Custom IDoc ZRZORDER contains three segments to hold the data records of these tables. If you haven’t already created, create three data dictionary tables as shown below:
In this example we are using a custom IDoc. However, you may use any existing IDoc to try out this scenario. To understand how to create a custom IDoc, refer to my post on ALE and IDocs.
System Landscape Directory
SLD stores information about different systems involved in the Integration Landscape. It also helps administer the software components and their usage dependencies on each other. The products, software component and dependency information (collectively called Software Catalog) is used by the Integration Repository while the systems or the landscape information (Technical Landscape and Business Landscape) is used by the Integration Directory. Technical Landscape contains Technical systems, which store the technical information about software systems like the physical host where it is installed. Business Landscape contains Business Systems which is nothing but a business-specific wrapper to a technical system. Every Business System points to a Technical System. For example, an SAP system would be defined as a Technical System of type Web AS ABAP while a particular client on this system could then be defined as a Business system. This Business system would thus point to its Technical System. Now, Let us begin with SLD settings relevant to our scenario.
Create a Product and a Software Component
- Go to Start Integration Builder (Transaction SXMB_IFR) -> System Landscape Directory -> Software Catalog.
- Define a Product.
- Define a Software Component and assign it to the above Product.
Create Technical and Business Systems
- Access path – Start Integration Builder (Transaction SXMB_IFR) -> System Landscape Directory -> Technical Landscape
- Create a technical system of type ‘Third-Party’ to identify the legacy system.
- Specify the Host name
- Add the system to the software component created previously
- Similarly create a technical system of type ‘Web AS ABAP’ to identify the client on the R/3 system
- Now, follow the access path – Start Integration Builder (SXMB_IFR) -> System Landscape Directory -> Business Landscape
- Create a new business system to identify the legacy system
- Specify the corresponding third-party TS
- Give a Logical system name
- Select your product and SWC
- Identify the BS as an Application System and select your Integration server
- Similarly, create a business system to identify the R/3 system
Thus, we are done with SLD settings. In the coming posts we will understand design and configuration required for this scenario. The next post deals with designing repository objects using the Integration Repository, the design time tool provided by SAP.
very good!
A nice article with an easy to understand presentation. Please keep posted.
Much Appreciated…….
I need to run XI on ides for the first time.my challenge is that when use the transaction code SXMB_IFR, i get a folder entitled SapWorkDir, with several files inside.how do i get the transaction code to work.
Try using the url to XI start page –
http://host:j2eeport/dir for PI 7.1 onwards
and http://host:j2eeport/rep for other versions
Hi Riyaz,
Months ago you’ve been a good help for me, so i need u one more time.
I’m developing an interface that runs several times from SAP to other system and from other system to SAP. Well, the adapter should be SOAP, or SOA, i don’t have it clear at all.
The problem is that the XML that goes from SAP SRM Portal to the other system should use a user and pasword to access in the second system, ok? i mean:
-Interface goes from SAP to a “system”
-several users can try to log in the target system.
-A requirement of the second system is to be logged with the user and pwd per person that tries it.
– i need to add a header like this:
Zoe
IloveDogs
4sample, so, i don`t know how it works, where should i fill this header? can i create it in the source XML file? can it be added in the CommChannel as a propperty?
Thanks and best regards.
If I understood your issue correctly, you want PI to use username/password to access the target system. In this case, you dont have to pass it in the XML. You can specify the username/password (provided to you by the partner system) in the receiver adapter communication channel, say SOAP receiver. and that should work.
Thanks for your fast response, but maybe i’m not clear. I know that we can fill the user and psw in the adapter, but the problem is that several users and psw are going to be used, so i’m trying yo find the way for this issue. don’t worry because i’ll try to find the answer and in this case i´ll post it here if u wanna.
Thanks a lot for this webpage.
Passing passwords in XML would be risky. Instead, you can maintain a service user who logs into the target system on behalf of all the users. This service user can be maintained in the adapter configuration.
If you want to track which user actually initiated the transaction, you can add a reference field in the XML. This field would contain the actual username. Whether or not a particular user has authorization to access the system can be checked through mapping lookups or by similar means from within PI. If a user does not have authorization, you can terminate the message processing.
Hi Riyaz’
on your blog, do i have to create a technical system also and Business system for the R/3 system and attach it on the product and software component that i’ve created for the legacy system>?
Sciha,
You need to create business system and technical systems for your R/3 system. You can do this automatically by executing the transaction RZ70 on your R/3 system. Provide the gateway information of your PI system. The technical system will be of type ‘Web AS ABAP’.
The products/SWCV you created for legacy system are different from this. You should create a separate business system and technical system to represent the legacy system. This technical system would generally be of type ‘Third Party’ and can be created manually in SLD as explained in the above article.
thanks Riyaz’
I’m making a RFC to RFC integration just to test if my PI is working okay but when i tried to run the function module on the ECC side i’ve encountered this problem on my sender comm. chann.
Error in processing caused by: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: senderAgreement not found: lookup of binding via CPA-cache failed for AdapterType RFC, AdapterNS http://sap.com/xi/XI/System, direction INBOUND, fromParty ”, fromService ‘COM_CICS_CONNECT’, toParty ”, toService ”, interface ‘GWY_READ_CONNECTED_SYSTEMS’, NS ‘urn:sap-com:document:sap:rfc:functions’ for channel ‘CC_FROM_SAP’ (channelId 056caa338a3738a6b6433f639db11da4)
is it because i haven’t yet fully configured my SAP ECC system connection to PI?
btw i’ve followed this scenario for the rfc testing
https://www.riyaz.net/blog/understanding-the-rfc-adapter/technology/sap/42/
Sciha,
Did you do the correct configuration in Integration Directory? From the error, it seems that you havent created the sender agreement object for your scenario. Please refer this article https://www.riyaz.net/blog/xipi-configuration-using-integration-directory/technology/sap/25/. It discuses how to configure any PI scenario.
hi Riyaz,
i’ve corrected the Sender agreement now my error in the RWB is”
Error in processing caused by: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: alternativeServiceIdentifier: party/service from channel configuration are not equal to party/service from lookup of alternativeServiceIdentifier (CPA party/service/channel ”/’COM_CICS_CONNECT’/’CC_FROM_SAP’, lookup of alternativeServiceIdentifier for party ”, schema ‘TechnicalSystem’ with ‘ID1#800′ returned party/service of ”/’erpdemo1clnt800’)
is it because the technical system from my ECC is not equal to the one I’ve set up on my SLD?
Schia,
Dont setup ur technical systems manually. Always advisable to run transaction RZ70 in ur ECC system to create technical system in PI SLD.
if I want to give multiple records in the file for a file2 file scenario ,what is the process?
Thank You
You can design the occurrence of repeating fields accordingly in your data types. for how to use file adapter see this article – https://www.riyaz.net/blog/xipi-file-adapter-configuration/technology/sap/74/
Hi Riyaz,
Thanks for your Blogs and quick replies! your very helpful to us’
I have a question and request as well, Have you tried integrating PI with a mainframe CICS system? using the IWay Adapters. and if ever can see make a blog or steps on how I can get a data from the Mainframe.
Thanks so much
Havent had a chance to work on Mainframe integration using PI. You may want to check out iWay website for more info – Details About Adapters by iWay or some details on SDN here
okay thank you Riyaz, currently integrating one right now and just need some configurations help on the Mainframe side.
ok. If I find some useful article on configuration, will let you know. Once you are done, if you would like to publish a how-to article on mainframes intergration here on this website, do let me know. Everyone would benefit from your knowledge and inputs.
okay thanks Riyaz’
hi, good website about SAP PI. i’m also just involved in a project related
to SAP PI. unfortunately i’m on customer site (means most of the project is
done by our vendor), my main job more towards on Abap work load task. my
exprience with SAP PI only created an abap code where the programme will
download some data into mysql using JDBC adapter.
currently i’m gain interest to learn create a simple programme from A to Z,
from created an abap programme , setting PI connection until on web service
(maybe implement a simple web using PHP and Mysql since i also have basic in
that language). hopefully by can find more on your website. keep on your
good job!
My Latest Abap Post Send Excel
attchment via Email using XML to control Excel’s properties
Hi,
New to SAP.
Correct me if i’m wrong, the messaging system will transform the XML from a 3rd Party source to the iDoc format and then passed through to the SAP R/3 system to process.
How would you go about Performance testing the inbound iDOC if the 3rd Party & messaging systems are not available ? What tool would you use?
Whats the interface to the SAP r/3 system (eg, soap etc)?
You might want to explore using eCATT tools provided by SAP for performance testing.
hi riyaz,
is that possible for SAP PI to connect with phpmyadmin? and the phpmyadmin is installed using WAMP Server. do i need to configure the JDBC connector with phpmyadmin. thannks you.
You need the JDBC drivers from the database provider to be able to connect to it via PI. These drivers must be installed on PI server. You need to find out if the database you are using with phpmyadmin (e.g. MySQL) provides those drivers.
Also look at discussion here.
Hi,
I want to build a synchronous interface between a 3rd party system and SAP, 3rd partyPISAP, what are the tasks SAP BASIS needs to create for this in SLD like software component version, does the 3rd party needs to be a business system or business service?what is the naming convention for software component version?
Thanks
Hi iam new to pi
what are the authorisations need to run :PI administration under http://host:port/rep/start as iam facing an authorisation problem
What exactly PI support team does?
hi riyaz,
what are the different ways SAP PI can integrate with SAP SRM?