Difference between webMethods SAP Adapter and Enterprise Ad


Can anybody tell me the difference between webMethods SAP Adapter and Enterprise Adapter: SAP Edition.

Thanks in advance.



Both ESAP and ISAP webMethods adapters are designed to connect their corresponding runtime systems to SAP. The ESAP connects the webMethods Enterprise system and the other adapter the IS system.

The enterprise system is event based and therefore works well for point-to-point integrations but really shines on 1-to-many integrations.

The ESAP adapters are designed to run on multiple parallel instances on the same host, while the IS adapter/server is designed for a single host enviroment.

The ESAP ALE in/out adapters are multithreaded, just as the ISAP adapter is.

The ESAP adapters run the native RFC/JCO libraries on the adapter process. So, in case of a crash of the SAP native libraries, the over all system is not affected because even if the adapter crashes nothing get lost.
The ISAP adapters load the native libraries on the same process that the IS uses. If the native libraries crash, this brings down the entire IS server.

The ESAP ALE client adapter includes some features not available in the ISAP adapters: generate IDOC files, append to multiple files at the same time(using multiple adapter instances), and allow for the usage of the “inbound_idoc_process” truely asynchronous IDOC execution even for a 4.x SAP systems.

The ISAP adapters provide some basic implementation of ALE monitoring, which the ESAP doesn’t have, but it can be configured and implemented manually fairly easily.

The ESAP adapters use the JCO 2.0.10 version, and handle I18N issues within the adapter. The ISAP uses later versions of the JCO libraries, and the myltibyte sypport is delegated in the sap libraries instead of the adapter.

The ESAP adapters are designed for memory efficiency and speed regardless of the size of the document.
The ISAP adapter uses XML nativelly, and runs on an Integration Server instance. Therefore has higher memory and CPU requirements as it is bound to the overall performance of the IS server itself.

Their configuration is conceptually very similar even though they use different tools and UI.

The future WmSAP adapter which will run nativelly on top of the new IS ADK6, will look very similar to the ESAP adapters from a configuration perspective, in terms of services and notifications.

hope this helps

Does the Enterprise SAP Adapter worh with SAP ECC 5.0 ? Any known impact/ issues ?

There are no known issues for the ESAP adapters.
It works with all available versions of SAP.



Tried connecting Enterprise SAP Adapter version 4.2 with JcO 2.0.8. to SAP ECC 5.0. At this point receiving Standard SAP Idocs from SAP into webM is a big issue. Get the following error :

Run-time exception while processing “DeliveryDocumentRecDELVRY03”

com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: connection closed without message (CM_NO_DATA_RECEIVED) com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: connection closed without message (CM_NO_DATA_RECEIVED)

        at com.sap.mw.jco.rfc.MiddlewareRFC$Client.nativeReset(Native Method)

The configured operation does not recognize this Idoc. So for e.g. when we enter the Idoc Type, Msg Type and extension, for an ALE Outbound operation, we get the same error as above.

We tried upgrading jco version to 2.16 or 2.12 but the ES SAP adapter wont even start. We are running adk version 4.2.1.

Any help is appreciated.


An update

We update the jco version from 2.0.08 to jco 2.0.12. We see a different error now for standard Idoc processing only. The error message is:

Let me know if any of you can provide ideas on whats going on here.



The adapter process was unable to supply a set of valid values for the following reason: (201) IDoc/RFC exception: com.sap.mw.jco.JCO$AbapException: (126) SEGMENT_UNKNOWN: Segment could not be read
COM.activesw.adapter.devkit.AdapterException: (201) IDoc/RFC exception: com.sap.mw.jco.JCO$AbapException: (126) SEGMENT_UNKNOWN: Segment could not be read
at COM.activesw.adapter.sap.SapAleOutAdapter.adapterNamespaceLookup(SapAleOutAdapter.java:351)
at com.wm.adapter.intdevkit.AdapterMain.processLookupValues(AdapterMain.java:2540)
at com.wm.adapter.intdevkit.AdapterMain.processNamespaceRequest(AdapterMain.java:2468)
at com.wm.adapter.intdevkit.AdapterMain.handleBrokerEvent(AdapterMain.java:2330)
at com.wm.adapter.intdevkit.AdapterMain.getEvents(AdapterMain.java:1405)
at com.wm.adapter.intdevkit.AdapterMain.runAdapterMain(AdapterMain.java:3776)
at com.wm.adapter.intdevkit.AdapterMain.main(AdapterMain.java:5103)

at COM.activesw.api.integration.OperationParameterValue.assertNoErrorString(OperationParameterValue.java:3792) 
at COM.activesw.api.integration.OperationParameterValue.getValidValuesInternal(OperationParameterValue.java:3690) 
at COM.activesw.api.integration.OperationParameterValue.confirmNonVariableKeyValueInternal(OperationParameterValue.java:3045) 
at COM.activesw.api.integration.OperationParameterValue.confirmValueInternal(OperationParameterValue.java:3305) 
at COM.activesw.api.integration.OperationParameterValue.confirmValue(OperationParameterValue.java:2882) 
at COM.activesw.api.integration.ConfiguredOperation.confirmAll(ConfiguredOperation.java:2591) 
at COM.activesw.api.integration.ConfiguredOperation.notifyOfParameterValueChange(ConfiguredOperation.java:2511) 
at COM.activesw.api.integration.OperationParameterValue.setValueInternal(OperationParameterValue.java:1224) 
at COM.activesw.api.integration.OperationParameterValue.setValue(OperationParameterValue.java:1163) 
at COM.activesw.tools.tahoe.operation.configured.PluginComboBox.setValueToParam(PluginComboBox.java:223) 
at COM.activesw.tools.tahoe.operation.configured.GenericPluginEditor$SetParameterCommand.doChange(GenericPluginEditor.java:645) 
at COM.activesw.tools.tahoe.util.IntegrationCommand.doit(IntegrationCommand.java:170) 
at com.wm.ite.internal.CommandManagerImpl.doCommand(CommandManagerImpl.java:374) 
at com.wm.ite.api.Command.doCommand(Command.java:458) 
at COM.activesw.tools.tahoe.operation.configured.GenericPluginEditor$SetParameterCommand.doCommand(GenericPluginEditor.java:662) 
at COM.activesw.tools.tahoe.operation.configured.GenericPluginEditor.setParameterValue(GenericPluginEditor.java:614) 
at COM.activesw.tools.tahoe.operation.configured.PluginField.setParameterValue(PluginField.java:162) 
at COM.activesw.tools.tahoe.operation.configured.PluginComboBox$3.actionPerformed(PluginComboBox.java:107) 
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:870) 
at javax.swing.JComboBox.actionPerformed(JComboBox.java:927) 
at javax.swing.JTextField.fireActionPerformed(JTextField.java:421) 
at javax.swing.JTextField.postActionEvent(JTextField.java:586) 
at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:696) 
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1702) 
at javax.swing.JComponent.processKeyBinding(JComponent.java:2156) 
at javax.swing.JComponent.processKeyBindings(JComponent.java:2182) 
at javax.swing.JComponent.processKeyEvent(JComponent.java:2119) 
at java.awt.Component.processEvent(Component.java:3555) 
at java.awt.Container.processEvent(Container.java:1167) 
at java.awt.Component.dispatchEventImpl(Component.java:2595) 
at java.awt.Container.dispatchEventImpl(Container.java:1216) 
at java.awt.Component.dispatchEvent(Component.java:2499) 
at java.awt.LightweightDispatcher.processKeyEvent(Container.java:2162) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2142) 
at java.awt.Container.dispatchEventImpl(Container.java:1203) 
at java.awt.Window.dispatchEventImpl(Window.java:918) 
at java.awt.Component.dispatchEvent(Component.java:2499) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:336) 
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:134) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:101) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:96) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:88)

If you change the JCO version which webMethods delivers, the adapter is NOT supported.
And most likely will not work.
The 2.0.x and 2.1.x versions of JCO are different and NOT interchangable.

I suggest you use the latest version of the ESAP adapters 4.2 SP6.
Do not change the jco webMethods distributes.

If you have an issue with a specific IDOC, you should force the adapter to make the look up again.

Or just for troubleshooting purposes, create a new configured operation and look up the same IDOC type, and see if you get the same error.
If you don’t get and error with a new clean configured operation, it probably means that the idoc you look up has changed within R/3 and the event type the adapter uses in the Integration Component does not correspond to the new structure of the IDOC.

If the error continues, after you have tried a new clean configured operation, I suggest you contact webMethods support.

hope this helps


Thanks for your response. We tried all patch levels of jco (2.09, 2.10, 2.12 and even 2.16). The adapter starts with all these jCo’s. We tried ES SAP Adapter SP6 with the above combinations of jco and yet didnt work. Same SEGMENT_UNKNOWN excpetion. But this may be an SAP issue with segment releases. I will provide an update as soon as we have validated that the solution we have for now is good.

Again thanks for the response.