Punchout project with Trading Networks


I have a new project starting up to handle punchout (basically, remote shopping cart interactions) with IS and TN. We plan to have IS sit between external punchout users and our catalog server, mediating punchout session setup and exit. The advantage is that our catalog server will only need to “speak” an in-house “generic punchout language” – all punchout requests will be translated to and from this generic language by IS. The punchout documents will be archived in TN.

Has anyone got any suggestions to offer? In particular, on:

  • implementing punchout with the standards below?
  • using TN to store non-XML documents like OCI and OBI requests?

We plan to support:

  1. SAP’s Open Catalog Interface (OCI) and CommerceOne Roundtrip
    I think we’ll have to build support for this by hand. Has anyone implemented OCI punchout? Do you know if CommerceOne’s Roundtrip differs substantially from OCI?

  2. Ariba Punchout (cXML)
    We may build support for this too. Has anyone used the WM Ariba OnRamp for punchout?

  3. Open Buying on the Internet (OBI)
    We’ll have to build this too. I’m looking at using code from an old WM OBI adapter - the WmOBI.zip Ver 1.6 package for B2B 3.6. There seems to be no updated version of this adapter.

Looking forward to your comments.


“The punchout documents will be archived in TN.”

This is probably unnecessary. Punchout processes are inherently transient. Usually there is no need to “prove” that a punchout occurred.

“using TN to store non-XML documents like OCI and OBI requests?”

Haven’t done this but it must be doable as EDI docs get stored there.

  1. Used the Ariba OnRamp for punchout. It’s pretty straight-forward. The OnRamp makes it painless.


We have done Ariba Punch Out and OCI here. We are using TN to receive punchout documents and route them on the basis of Ariba Network ID.
Our OCI adapter is not a webMethods one, we process that using custom .NET applications. OCI has its own xml implementation which can be mapped to whichever internal format that you are using.
The Ariba punch out is very straight forward and is similar to the order receiving.
Good Luck with your project!

Thanks guys. Rob, you’re right the punchout is transitory. However, customer service want it to debug problems. We’ll just have to be careful to supress the Ariba shared secret from the document.
About using TN to store non-XML documents like OCI and OBI requests – it’s possible, as shown by the TN Java API, but it’s not documented well. I’ve asked WM to clarify the status of this issue.

Thanks Vinod. I’m crafting an OCI session entry record and output template right now


We have connected Requisite BugsEye directly (i.e. not via Wm) to various things including EBP from SAP (obviously), EBD from C1 and Ariba Buyer. In other words, things are pretty flexible on almost every end , and with the luxury of a Wm server in between you should be fine.

What would worry me in your architecture is the response time when returning the shopping basket to the buying app. The moment you click “order” (or whatever) to return to the buying app creates a lot of stress for the user in my experience, and if you have anything but an immediate response, the user will start closing browser windows all over the place. So, I would be careful when trying to use the wm server as a web server (how many requests will you handle?) and I would not do to too many operations on the way between the catalogue system and the buying app.



Hi Sonam

wrt to using TN to store non-xml content we do this in one of two ways,
Create a record structure like:
-@transactionType(only use if not populating payload record below)
-payload (Optional Record)
–*body(need to HTML encode if payload is XML, useful for putting XML through TN that does not have tags that meet @attribute requirements above)

Then after populating the above record, use
if you populated the payload record use wm.tn.doc.xml:routeXml
else {
wm.tn.doc:addContentPart (this is your payload)

during the execution of the processing rule once the document has been recognised, if you populated the payload record then you get the content the normal ($xmldata) way (need to htmldecode if the body was XML), otherwise you use wm.tn.doc:getContentPart.


> over the place. So, I would be careful when trying to use the wm
> server as a web server (how many requests will you handle?) and I
> would not do to too many operations on the way between the catalogue > system and the buying app.

Thanks for the useful tip Bruno. Performance is an issue - we will have to load test IS servers before rollout. I’m leaning towards not archiving punchout entry and exit transactions in the TN DB.

We will try keeping round-trips between IS and the catalog system to a minimum, but there have to be at least 2 - one at entry and one at exit. Even if we design it so that the customer posts directly to IS during punchout exit, IS must still validate their shopping cart witih the catalog server.

Thanks for sharing your inputs Kevin.

The ability to store contentParts of the document is pretty handy - I’ve used that myself for storing/restoring document fragments; and for storing remote server acknowledgements.

We are having IS (4.6) sit b/w external punchout users and our catalog server. I am working on a new project of creating punchout for SAP OCI 3.0 user. After the checkout the catalog server creates an internal format xml file and sends it to IS. I need to translate this file into SAP OCI 3.0 HTML format and post it to customer’s URL. Has anyone got any suggestion how to do this or might have done similar thing.

I appreciate all your help.


Anyone of you experiencing this installation problem?
After I install Ariba Supplier OnRamp 1.5.1 on top of Integration Server 6.0.1, I got the following error and the IS startup stopped:
2003-10-14 13:33:47 PDT [ISS.0028.0001C] Loading packages
java.lang.NumberFormatException: 5*
at java.lang.Integer.parseInt(Integer.java(Compiled Code))
at java.lang.Integer.parseInt(Integer.java:455)
at com.wm.app.b2b.server.PackageManager.checkDependencyVersion(PackageManager.java:1811)
at com.wm.app.b2b.server.PackageManager.makeGraph(PackageManager.java:1682)
at com.wm.app.b2b.server.PackageManager.getLoadOrder(PackageManager.java:1861)
at com.wm.app.b2b.server.PackageManager.loadPackages(PackageManager.java:306)
at com.wm.app.b2b.server.PackageManager.init(PackageManager.java:216)
at com.wm.app.b2b.server.Server.run(Server.java:238)

Then I uninstalled Ariba Supplier OnRamp 1.5.1, the IS started fine.
Is this a JDK version problem? I am using JDK 1.42, it had the same problem when using the JVM (1.3.1) coming with webMethods.

Is this a bug ? Thanks,


The webMethods Ariba OnRamp version 1.5.1 will not function correctly out of the box with webMethods IS 6.0.1 for Windows. After the install, the OnRamp will install several packages. One of these packages is the wmAribaSupplier. This package will have a manifest.v3 file in its directory. The shipped file has the following entry:


This entry needs to be modified to read:

Until this entry is made, whenever this package attempts to load, it will throw a NumberFormatException error. Manually editing this file is the only way around this problem. Please note that this is an un-documented fix.

Thanks…and it works fine now during the start-up.

I started configuring TN support for Ariba Supplier OnRamp. It showed that the POSR was created successfully on the screen, but when I was browsing for this processing rule in TN console, it was not there. Is there anything missing or some other configuration I have not done?


Plz help me answer this quetion.
cXML is authored by which one of the following:



Kind of an odd question that is easily answered with a Google search or two. Sounds like a homework or test question, which if that’s the case, you’ll need to do on your own. :slight_smile: