Version 6 of TCLWS (Web Services for Tcl) as SAP Client

Updated 2015-06-04 06:56:45 by oehhar

HaO 2015-04-27: I am attacking the subject to write a more or less generic TCLWS Web Service client for SAP. This is my "progress report page", which might involve the next days when I progress.

Thanks to Gerald W. Lester for the great package !

Literature

This is the book I am using for reference: [L1 ]

Authentication

SAP has many authentication and transport security options. I tried HTTP Basic Authentication and no transport layer security.

Within this clt thread [L2 ], JMar wrote how to use basic authentication:

#-- http basic authentication
set authinfo [ base64::encode $szUsername:$szPassword ]
set httpHeader [ list Authorization "Basic $authinfo" ]

set szResponseDct [ ::WS::Client::DoCall $szServiceName myMethod $myRequest $httpHeader ] 

This worked out of the box.

WSDL File

The WSDL file delivered by SAP parses out of the box.

The URL may be taken from SAP "SOAMANAGER" and must include the bindings. URLs from the Web service wizard (SE80) don't contain the binding.

CALL

The main Information is that SAP only supports WSDL 1.1 [L3 ]Wikipedia WSDL .

When the service is called without setting any options in TCLWS, one get the error from SAP:

Fehler bei der Web-Service-Verarbeitung; Weitere Details im Web-Service-Fehlerprotokoll auf Provider-Seite (UTC-Zeitstempel ...; Transaktions-ID ...)

this is German, English would be something like: 'Error in Web service processing; more details in the error protocol of the provider'.

When looking to the protocol, one finds out, that the passed variables were not detected.