Create SAP Web Service with SAP
.Net Connector in 5 minutes
Dennis Wang
Microsoft / EAS /SAP
What is SAP .NET Connector
• SAP product. Based on Microsoft .NET
Technology
• Interact with SAP via RFC/SOAP
• Fully integrated with Visual
Studio.NET
• Managed Code
Feature Highlight
• Generates C# Proxy Classes for any
.NET application integrations
• Supports RFC and SOAP
• Supports qRFC, tRFC
• Supports asynchronous SOAP calls
• RFC client or RFC server
Common Language
Runtime
.NET
Connector
Runtime
Web
Services
VB C++
C#
…
Visual
Studio.NET
Microsoft .NET
Proxy
Class
Generator
SAP System
BOR
DDIC
Interface
repository
RFC
SOAP
RFC Layer
Application
Run
time
.NET Connector
Component (generated)
Design
time
SOAP Layer
Feature of Web Service
• It is ASP.Net Web Service
• Hosted by IIS. Using HTTP protocol
• Secure: SSL for connection. NTLM for
authentication. Role base authorization.
• Single sign via NTLM GSSAPI
• Platform Neutral. Can be accessed via
http protocol.
• Strong versioning via XML Namespace
Steps to Create Web Service
for RFC_Customer_Get
• Create a C# project for ASP.Net Web
Service
• Generate SAP Proxy via SAP .Net Proxy
Generator for RFC_Customer_Get
• Open Proxy1.cs and change the following
line
public void Rfc_Customer_Get(…) to
public virtual void Rfc_Customer_Get (…)
Steps to Create Web Service for
RFC_Customer_Get (Continue)
• Open Service1.asmx and do the following
modification
1.
public class Service1 : SAPProxy1
2.
public override void Rfc_Customer_Get (…)
3.
Add these code in this mothed
this.Connection = SAP.Connector.SAPConnectionPool.GetConnection
(MyConnectionString);
base.Rfc_Customer_Get(Kunnr,Name1, ref Customer_T);
• Compile the code and you have the web
service for this RFC.
Client
DomainA\dennisw
Run Window app
and
Call Web Service
Web Service runs
under
DomainA\ProcAcct
credential. This
account then calls
SAP RFC
1. SAP check
DomainA\ProcAcct in
USRSYSACL
2. SAP check
DomainA\dennisw in
vusrextid
3. SAP check dennisw in
USRACL
4. Run SAP process
under dennisw
account
How SAP Single Sign On
work under ASP.Net Web
Service
Set up single sign on for web
service
•
IIS Configuration
–
Disable anonymous access
–
Set up Windows Integrated Authentication
•
Web Service Configuration
–
Generate encrypted user name and password via
aspnet_setreg.exe program. This value will then be set up
in registry. Here we assume the user name is SAPCMDEV
–
Add the following line in Web.Config
•
<identity impersonate=”true”
sername=”registry:HKLM\Software\SapWebService\
Identity\ASPNET_SETREG,sername”
•
password=”registry:HKLM\Software\SapWebService
\Identity\ASPNET_SETREG,password” />
Set up single sign on for web service -
Continue
• GSS Library
–
Requires on the server where Web Service is
located.
–
Copy the GSSNTLM.DLL to
c:\windows\system32
–
If the GSSNTLM.DLL was copied to a folder
other then within the environment search path,
you need to add the following line in system
environment SNC_LIB=”file path\GSSNTLM.dll”
• Make sure to replace the gssapi32.dll with
this GSSNTLM.dll if the old gssapi32.dll
exists. The old gssapi32.dll does not work.
Set up single sign on for web service -
Continue
•
Create Entry in Table SNCSYSACL via SNC0
•
This table contains a list of trusted domain accounts or
SNC.
•
Start SAP and run SNC0
•
Make sure to enable the RFC/CPIC/Ext ID options
Set up single sign on for web service -
Continue
• Make sure all users who access
SAP will have their User
Accounts in USRACL or via SU01
• Mapping external users into
SAP users
• Run SM30 and table VUSREXTID
• Value: Work Area=NT.
• Value: External ID =
MYDomain\dennisw
Set up single sign on for web service -
Continue
• Program The Connection String with
the following value:
– SNC_MODE=1;
– SNC_PARTNERNAME="p:" +
System.Security.Principal.WindowsIdenti
ty.GetCurrent().Name; ‘ Web Service
Process Account
– EXTIDDATA=User.Identity.Name; ‘Caller
credential
– EXTIDTYPE=“NT”;
Access SAP Web Service via
Microsoft InfoPath
ERP – RDBMS – HR - CRM
ERP – RDBMS – HR - CRM
ERP – RDBMS – HR - CRM
ERP – RDBMS – HR - CRM
Information Workers
Information Workers
Information Workers
Information Workers
Enterprise Applications
Enterprise Applications
Enterprise Applications
Enterprise Applications
XML
XML
Web
Web
Services
Services
XML
XML
Web
Web
Services
Services
You can use intelligent forms to interact with your existing
You can use intelligent forms to interact with your existing
applications
applications
You can use intelligent forms to interact with your existing
You can use intelligent forms to interact with your existing
applications
applications
How does InfoPath 2003 connect to
SAP?
• Utilize SAP RFC and BAPI.
• Generate RFC/BAPI proxy by using SAP .Net
Connector
• Create Web Service Wrapper around the proxy
• Hosting/Publish the web service via WSDL
• InfoPath Consume the web service
Demo
Resource
• SAP .Net Connector:
https://websmp103.sap-ag.de/connectors
• InfoPath 2003 SDK
– Available on
under downloads
• InfoPath 2003, Technical Webcasts, Technical White Papers,
Development Guides
– MSDN
–
http://msdn.microsoft.com/office/understanding/InfoPath 2003/
• Visit
for information on:
– SAP at Microsoft
– SAP .Net Connector
– Upcoming customer workshops