Author: 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
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
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 (…)
- Open Service1.asmx and do the following modification
- public class Service1 : SAPProxy1
- public override void Rfc_Customer_Get (…)
- Add this code in this method
- 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.
How SAP Single Sign On work under ASP.Net Web Service
Set up single sign on for web service
- 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
- Requires on the server where Web Service is located.
- Copy the GSSNTLM.DLL to c:windowssystem32
- 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 pathGSSNTLM.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.
- 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
- 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 = MYDomaindennisw
- Program The Connection String with the following value:
- SNC_PARTNERNAME=”p:” + System.Security.Principal.WindowsIdentity.GetCurrent().Name; ‘ Web Service Process Account
- EXTIDDATA=User.Identity.Name; ‘Caller credential
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