Thursday, August 6, 2015

Integrating SAP into third-party software

In the last time, i was talking a lot with customers and partners about how to integrate 3rd Party software with the SAP Business Suite.

There are always different needs, depending on different plattforms for different reasons.

Even if we are offering a complete E-Commerce Business Suite including an OpenUI5 Responsive Front-End, some partners/customers have their own UI Solutions or custom developed middleware.
In such szenarios, we mostly develop/offer the needed SAP Business Services to be integrated by themself.

Since i am a lazy developer following DRY (do not repeat yourself) i put together the needed information for 3rd parties to get an overview how to integrate with SAP.

SAP Business Suite Integration


The image above will show the current possibilities of the most used SAP customer landscape szenarios (leaving out the deprecated stuff that is no more maintained).

As you can see in the overview, you will run into "The Paradox of Choice" and there is no on-size-fit-all solution regarding SAP integration.

Depending on your middleware, you can choose one of the following server side connector stacks, or decide to use client side integration technologies also on the server-side.

PHP Performance Comparison


While comparing PHP interface technologies, we noticed that the expected best performance for RFC is not given. Inside SAP-JCO (Java), the connection will be hold (Connection Pooling) while PHP needs each time a new reconnect. Beside this, the function lookup takes a lot of time and is also not cacheable inside PHP. Especially for complex interfaces, the lookup will take a lot of time.

The following compares both interface with a performance intensive BAPI_SALESORDER_SIMULATE call we use generally inside our E-Commerce solutions to calculate customer prices and availabilities.You can see, that the PHP fire-and-forget interpreted scripts perform much better using JSONRPC.

PHP Performance Comparison

This comparison will only be valid for PHP using SAP NW RFCSDK. The results will be quite different using SAP JCO. If you need multiple SAP RFC calls inside the same script (especially on the same interface), the results will also be different.

Additional Information

Technology Links

TypTechnologyNameAuthor
RFC ConnectorNode.jsnode-sapnwrfcJoachim Dorner
PHPphp-sapnwrfcPiers Harding
Pythonpython-sapnwrfc
Rubyruby-sapnwrfc
RRSAP
SAP Java ConnectorJAVASAP JcoSAP
SAP Connector for MS .NET.NETSAP .NET Connector
SAP Business ConnectorMulti (EAI)SAP BC
SAP GatewayHTTP(S)SAP GW (SCN)

To get an understanding of the pros and cons and what to choose when, the following matrix will split them up into different point of views.

Comparison Matrix

TypTechnologyUsageFootprintCOMPerformance
HTTPODataPrefered and most up-to-date technology for restful (CRUD) business services. Needs an OData client library to benefit from all featuresJSON ATOM/XMLSYNC+
JSON-RPCOut-of-the-box possibilty to call remote enabled BAPIs (see RFC) without the need of RFCJSONSYNC+
SOAP WSService Orientated Architecture (SOA) providing existing BAPIs via SOAP. Also higher level services are available using SAP Enterprise Services (E-SOA)XML/SOAPSYNC--
IDoc-XMLStandard SAP Business Objects can be created using a specified IDoc XML structureXMLASYNCN
HTTP-HandlerCustom ABAP Class to handle http requests and to write back custom responses. The OData handler is based on this and implements the special needs.ANYSYNC+
XML-TransformationTransformation of SAP Business data into XML and vice-versa. Can be a Simple Transformations via an integrated mapping tool or a more advanced Transformation using XSLXMLSYNC-
SMTPMailSending Mails with attached/body data to SAP allows async handling of structured data. Used also for offline szenarios like Adobe Documents Services (ADS) to handle PDF integrated dataMAILASYNCN
RFCBAPIDefault SAP communication prototcol since the very first beginning. Best choice for mass data exchange (ETL) supporting all kind of SAP featuresBINARYSYNC ASYNC++
FILELSMWThe Legacy System Migration Workbench (LSMW) is a tool that supports data migration from legacy systems (non-SAP systems) to SAP systems. The tool has interfaces with the Data Transfer Center and with batch input and direct input processing as well as standard interfaces BAPI and IDoc.CSV/EXCELASYNCN

Useful SAP Transactions

GroupTransactionDescription
ASLSMWLegacy System Migration Workbench
RZ10Maintain Profile Parameters
Fully Qualified Domain, SSO Token
SE11ABAP Dictionary
SE16NData Browser (Database Table)
SE37ABAP Function Builder
SE80Design time ABAP Workbench
SICFHTTP Service Hierarchy Maintenance
ST22ABAP dump analysis
analyze errors (missing user rights, disabled services)
SU53Display Authorization Data for User
analyze missing authorizations
GW SEGWSAP Gateway Service Builder
SPROGeneral System Customizing
Section SAP NetWeaver/SAP Gateway controls many options
IDocWE60Documentation for IDoc types
RFCBAPIBAPI Explorer
SM59Manage RFC Destinations (ABAP, HTTP)
UI5UI5/THEME_DESIGNERUI Theme Designer (Browser)
build customer themes for SAPUI5, WebDynpro, etc.
UI5/THEME_TOOLTool for Customer Themes Maintenance
(transport/rebuild of customer themes)

Maybe this information will be helpful, if you will develop a nice OpenUI5 app and need to get in contact with SAP.

Concerning the most-up-to-date SAP Business Suite technology "S/4 HANA", there will be more integration options available, but this will be another story ;-)

No comments:

Post a Comment

Thank you for your comment!

The comment area is not intended to be used for promoting sites!
Please do not use such links or your comment will be deleted.

Holger

Note: Only a member of this blog may post a comment.