cancel
Showing results for 
Search instead for 
Did you mean: 

OCI XML mapping

Former Member
0 Kudos

Hi,

We are working on SRM 4.0 EBP 5.0 CCM 2.0 implementation project and are in process to design the system to read data from external catalog.

The data is successfully read and mapped into OCI parameters if the data sent from external catalog is in HTML format. Now the problem is coming when the data is sent in XML format. I believe only by maintaining two parameters as 'xmltype' and 'xmlDocument' in the XML file coming back from web services (supplier's)the data can be mapped into OCI parameters. Can anyone please confirm this understanding. As before requesting suppliers for these changes I need to confirm from my end.

Is there any way provided by SAP by which we can test the XML data punch outs.

Thanking in advance.

Rahul.

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Thanks Christophe,

I had posted this query to SAP and they have replied me back with Sample OCI 4.0 XML file. With this the system is able to create a shopping cart.

Thanks and Regards,

Rahul

Former Member
0 Kudos

Hi Rahul,

Can you post the OCI XML 4.0 sample here? Thanks.

Regards,

Donald

Former Member
0 Kudos

Thanks again Christophe,

I am sorry but am bit confused with your comment "If your suppliers are all using ESAPO-3.5, then you can try to change the standard code of BBP_WS_DISPATCH_XML_MAPPING." I hope it should have been "If your suppliers are NOT using ESAPO-3.5....." Please correct if wrong.

Also abt field '~xmlDocument', does it required to be maintained by suppliers? If not, do you have any idea how to fetch the return XML data in function module WSI_IMPORT_DATA?

Thanking you again.

Rahul.

Former Member
0 Kudos

Rahul,

If you want to exchange catalog items with supplier web catalogs, they have to be OCI compliant, HTML or XML.

And then, they should use the newest ESAPO version, i.e. ESAPO3.5.

If this is not the case, you will have to map the XML file by yourself to get OCI structured data.

Look at OCI 4.0 specifications (service.sap.com/srm --> mySAP SRM in detail --> SRM 4.0 --> Strategic Purch & sourcing --> Catalog Management --> PDF fiel Open Catalog Interface 4.0 😞

The OCI can also process an XML file. Here the same architecture is used as in the pure HTML variant, this means the XML data is embedded in an HTML form for the transfer from the catalog to the SRM Server via the user’s browser.

To transfer an XML file, besides the fields mentioned in section 3.3, two further HTML-input fields are used:

• xmltype:

This parameter specifies the type of the XML file used so that the correct XML mapping can be found. Up to and including SAP Enterprise Buyer 3.0 the mapping of the received XML data is done exclusively in the Business Connector which must be set up for this purpose for the relevant SAP Enterprise Buyer System.

As of SAP Enterprise Buyer 3.5 the mapping can also be done in the SRM Server itself. A prerequisite is that the corresponding XML schema is used. The previous schemas are also supported.

Valid values for the field type xmlType as of SRM 3.0 are:

Value

Description

DTD/Schema/Mapping

ESAPO

Encoded SAP Object for OCI Version up to and including3.0

PDI_OCI.dtd/PDI_OCI.xsd/BC

ESAPO3.0

Encoded SAP Object for OCI Version up to and including 3.0

PDI_OCI_30.dtd/PDI_OCI_30.xsd/BC

ESAPO3.5

Encoded SAP Object for OCI Version as of 3.5

OpenCatalogInterface.xsd/im SRM Server.

• ~xmlDocument:

In this parameter the XML file that must correspond to one of the schemas above is transferred as a Base64-coded character set. The coding can be done either directly on the server page of the catalog or, as shown in the sample application, by JavaScript on the client’s page.

Rgds

Christophe

Former Member
0 Kudos

Hi Christophe,

Thank you for the update.

We have already maintained 'XML_TYPE' parameter with value "ESAPO-3.5" in the Web Service created for the supplier. We have also maintained parameter 'xmlDocument' with type 'Fixed Value'. We are not sure about its value. I guess this should be the same as maintained by the supplier from his end.

Now my question here is does the supplier need to maintain these two parameters in the xml data he is sending back from his end? If yes, we will have to request around 60 suppliers to modify there data which they are currently sending to an eBuy system. Before requesting this we just need to confirm our approach.

Your any help in this would be highly appriciated.

Thanks in advance,

Rahul.

Former Member
0 Kudos

Hi Rahul,

yes the suppliers have to send back the XML TYPE, otherwise SRM does not know how to interprete it in BBP_WS_DISPATCH_XML_MAPPING.

The BADI BBP_CATALOG_TRANSFER is called too late, so you can not use it to change the data (and it is not designed to process XML document, but mapped OCI data).

If your suppliers are all using ESAPO-3.5, then you can try to change the standard code of BBP_WS_DISPATCH_XML_MAPPING.

This is the only solution to avoid asking all your suppliers to modify their web interface to send this parameter.

Rgds

Christophe

PS: please award points for helpfull answers

Former Member
0 Kudos

Hello Rahul,

OCI XML is supported by SRM.

When the catalog returns items via an XML file, this one is mapped by SRM.

Depending on the XML type (ESAPO...), the mapping is done internally via XLST files or externaly via BC/XI.

You will find all the logic in function BBP_WS_DISPATCH_XML_MAPPING:

- ESAPO : XML mapping is done with an RFC call to BC (but could be replaced by XI)

- ESAPO-3.0: idem

- ESAPO-3.5: internal mapping with XSLT transformation(BBP_OCI_XML_TO_RFC)

So the XML type must be defined in ~xmltype, and you should use ESAPO-3.5.

Regards

Christophe