This is the first in my 3-part series on supporting B2B using a specific vertical Industry Standard in the SAP Exchange Infrastructure. SAP supports B2B (Business to Business) Interoperability in the High Tech, Chemical, and Automotive industries through the RosettaNet, CIDX, and STAR standards, respectively. I'm one of a few developers who has worked on the integration of these standards into SAP content packages for XI. SAP provides a complete end-to-end solution spanning the industry standards, the integration platform, and the application.
In 2005, through the IndustrySpeak Initiative we recruited over 125 ISVs worldwide. We then trained, enabled, and certified many of them to create XI content packages to become Powered By NetWeaver.
For this blog series, I'll be using a standard from the Open Applications Group (OAG) which can be utilized for teaching purposes as it is more of a "horizontal" standard, meaning it can be used for any industry.
Let's assume you want to support a B2B transaction like Procurement utilizing some Industry Standard. For the sake of this exercise, we can use OAG. It is very similar to RosettaNet, CIDX, and STAR as both the business process and technical definition of the message is provided by the organization.
As opposed to having one monster blog, I have broken this exercise into 3 smaller parts.
The sequence (and approximate time required) is as follows:
- Environment Prep (about 1 hour)
- Integration Content (about 1 hour)
- Testing (about 1 hour)
Please note, I have listed this as a Beginner blog. For this reason, everything you need to do is spelled out in [repetitive] detail.
Please forgive me for not cutting any corners... =P
Prerequisites
To succeed with this blog, you'll need access to at least 3 things...
- The Internet
- an SAP XI box (preferably XI 3.0 SP14) Ideally this is connected to your ERP system and has the Support Package 48 XI Content for SAP APPL 4.6C installed.
- an SAP ERP backend (preferably one that has ALE and the inbound ORDERS.ORDERS05 IDOC configured)
[Note: documentation for this topic (#3) is out of scope - please see elsewhere in SDN for this info]
Assuming you have the above prerequisites, let's start prepping the environment.
Step 1: Prep the XI Environment.
Create your own Product and Software Component (SWC) in the System Landscape Directory (SLD).
1. Start the Integration Builder (Transaction Code SXMB_IFR).
2. Login to the System Landscape Directory.
3. Click on the “Software Catalog” link.
4. Choose Products as the Software Type.
5. Click on the New Product button.
6. In the Define Product screen, do the following:
7. Enter the vendor “xyz.com”
8. Enter the name “MYPRODUCT” and version “1.0”
9. Choose Create. Your product has been created.
The screen switches to the Define Software Component view. Here do the following:
10. Keep the Product and Vendor information.
11. Enter the name “OAG_EXAMPLE” and version “30.1” of your SWC.
12. Choose Create. Your software component has been created.
Import the SWC into the Integration Repository
13. Login to the Integration Repository.
14. Navigate the menu Tools -> Transfer from System Landscape Directory -> Import Software Component Versions.
15. Select the SWC that you just created (OAG_EXAMPLE). Click Import.
16. Once the SWC is imported click Exit. You should now see the SWC in the tree on the left pane.
17. Expand the SWC to see the SWC version. Double click this version to see its details on the right pane.
Create the Namespace under the SWC
18. Double-click the SWC OAG_EXAMPLE’s version to see its details on the right pane.
19. Click the Change icon to go into EDIT mode for the SWC version.
20. In the Namespaces section, enter the namespace e.g. http://xyz.com/xi/OAG/80/R3/46C
21. Leave the object attributes as default.
22. Save the objects. Activate the objects.
Step 2: Download the OAG message for Procurement.
Go to the Open Applications Group. Navigate to the "Free Downloads" page. Select the OAGIS 8.0 SP3 link. Fill-in the required registration information, then download the OAGIS 8.0 XSDs. There's over 10MB worth of data that gets downloaded to your local machine. Extract all of the files to <your filesystem>. You'll only need the following 11 (289KB) files:
- \\<your filesystem>\OAGIS8.0\OAGIS\BODs\ProcessPurchaseOrder.xsd (3K)
- \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Verbs\Process.xsd (2K)
- \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Nouns\PurchaseOrder.xsd (6K)
- \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Nouns\Order.xsd (22K)
- \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Verbs\Verb.xsd (5K)
- \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Verbs\VerbBase.xsd (1K)
- \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Nouns\Document.xsd (9K)
- \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Components.xsd (155K)
- \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Fields.xsd (54K)
- \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Enums.xsd (19K)
- \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Meta.xsd (13K)
Importing External Objects
The purpose of this exercise is to demonstrate the process of importing external definitions of Industry Standard messages into the SAP XI system. The following process can be used for almost any XML Industry Standard like RosettaNet, CIDX, STAR, ACORD, PIDX, ebXML, etc. SAP does provide a number of Industry Standard interfaces that are centrally maintained and provided for both SAP, External Parnter and Customer usage that can be uploaded for use in XI. See the Service Marketplace section below for more info.
- Navigate to the External Definitions under the namespace (http://xyz.com/xi/OAG/80/R3/46C) that you created in Step 1 (#20).
(Interface Object -> External Definition) - Next upload the ProcessPurchaseOrder.xsd into the External Definition.
- Highlight the External Definitions object. Right-click to display the context menu. Select New from the context menu.
- Enter the name ProcessPurchaseOrder. Click Create. The object is displayed on the right pane in the Edit mode.
- For the category select the XSD option.
- For the File field click on the Import External Definitions icon.
- Navigate to <your filesystem> folder. Select the ProcessPurchaseOrder.xsd file from the folder \\<your filesystem>\OAGIS8.0\OAGIS\BODs\ProcessPurchaseOrder.xsd.
- For the Source field enter the value ProcessPurchaseOrder.xsd. Save the file.
- Navigate to the External References tab. In the table, under the Source column, you will see an entry for:
../Resources/Verbs/Process.xsd
../Resources/Nouns/PurchaseOrder.xsdNotice that the Name field is empty. This is because the Process.xsd and PurchaseOrder.xsd files have not been uploaded to the system under this SWC and Namespace. We will now upload these files.
- Highlight the External Definitions object. Right-click to display the context menu. Select New from the context menu.
- Enter the name Process. Click Create. The object is displayed on the right pane in the Edit mode.
- For the category select the XSD option.
- For the File field click on the Import External Definitions icon.
- Navigate to the OAGIS folder on <your filesystem>. Select the Process.xsd file from the folder \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Verbs\Process.xsd
- For the Source field enter the value ../Resources/Verbs/Process.xsd. Save the file.
- Navigate to the External References tab. In the table, under the Source column, you will see an entry for:
Verb.xsd.Notice that the Name field is empty. This is because the Verb.xsd has not been uploaded to the system under this SWC and Namespace. Now upload this file.
- Highlight the External Definitions object. Right-click to display the context menu. Select New from the context menu.
- Enter the name Verb. Click Create. The object is displayed on the right pane in the Edit mode.
- For the category select the XSD option.
- For the File field click on the Import External Definitions icon.
- Navigate to the OAGIS folder on <your filesystem>. Select the Verb.xsd file from the folder \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Verbs\Verb.xsd.
- For the Source field enter the value Verb.xsd. Save the file.
- Navigate to the External References tab. In the table, under the Source column, you will see an entry for:
VerbBase.xsdNotice that the Name field is empty. This is because the VerbBase.xsd has not been uploaded to the system under this SWC and Namespace. Now upload this file.
- Highlight the External Definitions object. Right-click to display the context menu. Select New from the context menu.
- Enter the name VerbBase. Click Create. The object is displayed on the right pane in the Edit mode.
- For the category select the XSD option.
- For the File field click on the Import External Definitions icon.
- Navigate to the OAGIS folder on <your filesystem>. Select the VerbBase.xsd file from the folder \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Verbs\VerbBase.xsd.
- For the Source field enter the value VerbBase.xsd. Save the file.
No need to enter any values in the External References Tab.We're almost half-way done...!!!
We still have some files left to upload to complete the ProcessPurchaseOrder message definition. - Highlight the External Definitions object. Right-click to display the context menu. Select New from the context menu.
- Enter the name PurchaseOrder. Click Create. The object is displayed on the right pane in the Edit mode.
- For the category select the XSD option.
- For the File field click on the Import External Definitions icon.
- Navigate to the OAGIS folder on <your filesystem>. Select the PurchaseOrder.xsd file from the folder \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Nouns\PurchaseOrder.xsd.
- For the Source field enter the value ../Resources/Nouns/PurchaseOrder.xsd. Save the file.
- Navigate to the External References tab. In the table you will see an entry for:
Order.xsdNotice that the Name field is empty. This is because the Order.xsd has not been uploaded to the system under this SWC and Namespace. Now upload this file.
- Highlight the External Definitions object. Right-click to display the context menu. Select New from the context menu.
- Enter the name Order. Click Create. The object is displayed on the right pane in the Edit mode.
- For the category select the XSD option.
- For the File field click on the Import External Definitions icon.
- Navigate to the OAGIS folder on <your filesystem>. Select the Order.xsd file from the folder \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Nouns\Order.xsd.
- For the Source field enter the value Order.xsd. Save the file.
- Navigate to the External References tab. In the table you will see an entry for:
Document.xsd
As above, notice that the Name field is empty. This is because the Document.xsd file has not been uploaded to the system under this SWC and Namespace. We will now upload this file. - Highlight the External Definitions object. Right-click to display the context menu. Select New from the context menu.
- Enter the name Document. Click Create. The object is displayed on the right pane in the Edit mode.
- For the category select the XSD option.
- For the File field click on the Import External Definitions icon.
- Navigate to the OAGIS folder on <your filesystem>. Select the Document.xsd file from the folder \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Nouns\Document.xsd
- For the Source field enter the value Document.xsd. Save the file.
- Navigate to the External References tab. In the table you will see an entry for:
../Components.xsd
As above, notice that the Name field is empty. This is because the Components.xsd file has not been uploaded to the system under this SWC and Namespace. We will now upload this file. - Highlight the External Definitions object. Right-click to display the context menu. Select New from the context menu.
- Enter the name Components. Click Create. The object is displayed on the right pane in the Edit mode.
- For the category select the XSD option.
- For the File field click on the Import External Definitions icon.
- Navigate to the OAGIS folder on <your filesystem>. Select the Components.xsd file from the folder \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Components.xsd.
- For the Source field enter the value ../Components.xsd. Save the file.
- Navigate to the External References tab. In the table you will see an entry for:
Fields.xsd
As above, notice that the Name field is empty. This is because the Fields.xsd file has not been uploaded to the system under this SWC and Namespace. We will now upload this file. - Highlight the External Definitions object. Right-click to display the context menu. Select New from the context menu.
- Enter the name Fields. Click Create. The object is displayed on the right pane in the Edit mode.
- For the category select the XSD option.
- For the File field click on the Import External Definitions icon.
- Navigate to the OAGIS folder on <your filesystem>. Select the Fields.xsd file from the folder \\<your filesystem>\OAGIS8.0\OAGIS\Resources\Fields.xsd.
- For the Source field enter the value Fields.xsd. Save the file.
- Navigate to the External References tab. In the table you will see an entry for:
Enums.xsd
Meta.xsd - Similar as before notice that the Name column is empty. This is because the Enums.xsd and Meta.xsd files have not been uploaded to the system under this SWC and Namespace. Please upload these 2 remaining files.
Note: No need to maintain anything in the External References Tab! - Once you are done and have saved your changes, go check out the Fields object once again.
Notice that the Enums and Meta files have entries in the Name column. - REMEMBER:Activate your CHANGELIST.
Exchange Infrastructure (XI) Interfaces
One last step, before we jump into mapping, will be the creation of an XI Message Interface, which is based on the External Definitions we just uploaded to XI. In order for the ProcessPurchaseOrder interface structure to be defined properly, we needed to upload additional supporting XSD files. This was done in the previous exercise. We also need an XI object called a Message Interface to represent the ProcessPurchaseOrder, which will later be used in another XI object called an Interface Mapping.
- Highlight the Message Interfaces object. Right-click to display the context menu. Select New from the context menu.
- Enter the name ProcessPurchaseOrder. Click Create. The object is displayed on the right pane in the Edit mode.
- For the Attributes radio buttons select Abstract and Asynchronous.
- For Message Types Output Message click the F4 Display Input Help Icon.
- Expand the Namespace Object http://xyz.com/xi/OAG/80/R3/46C.
- Expand the External Definitions.
- Expand the node ProcessPurchaseOrder.
- Select the ProcessPurchaseOrder.
- Click Apply.
- Save and Activate your Changelist.
SAP Interfaces
For this exercise, we'll be using the ORDERS.ORDERS05 IDOC. For more information regarding this IDOC, check out the IFR. Otherwise, from your ERP system, go to transaction, WE60. Type in ORDERS05 and enjoy reading!
If you have access to the SAP Service Market Place, download the XI Content Package for your specific version of SAP ERP or R/3. In this exercise, we are using an SAP R/3 4.6C system. The Support Pack (SP 48) contains the necessary SAP interfaces (i.e. ORDERS.ORDERS05) that will be used in the exercise.
These are some of the interfaces in SP48 SAP APPL.
If you do have access to the Service MarketPlace, please get the XI CONTENT SAP APPL for SP48. Otherwise, just upload the ORDERS.ORDERS05 IDOC to your own SWC. (Note: there are quite a few blogs already that describe how to upload IDOCS from ERP to XI...)
Service Marketplace
NOTE: If you are an existing SAP user, you might be able to download and use the SAP delivered Industry Standard interfaces like OAGIS, RosettaNet, CIDX, PIDX, and STAR from the SAP Service Marketplace at http://service.sap.com. See your SAP Account Professional for more information and access to this content.
Until next time....