Top Banner
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 1 Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1 Applies to: EHP 1 for SAP NetWeaver Process Integration (PI) 7.1 SP 02 Summary: This article shows how Web standards based interoperability between Microsoft .NET 3.5 Framework and EHP 1 for SAP NetWeaver Process Integration 7.1 works. The focus is on showing how you can setup a sample scenario between a .NET client application and an ABAP backend system by using PI. The scenario is based on the delivered standard SFLIGHT demo. Author: Markus Hardank Company: SAP Deutschland AG & Co KG Created on: 21 June 2010 Author Bio: Markus Hardank, SAP Deutschland AG & Co KG, PI development consultant.
22
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Interoperatibility Between NET3.5 and PI7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 1

Interoperability between Microsoft

.Net 3.5 and EHP 1 for SAP

NetWeaver PI 7.1

Applies to:

EHP 1 for SAP NetWeaver Process Integration (PI) 7.1 SP 02

Summary:

This article shows how Web standards based interoperability between Microsoft .NET 3.5 Framework and EHP 1 for SAP NetWeaver Process Integration 7.1 works. The focus is on showing how you can setup a sample scenario between a .NET client application and an ABAP backend system by using PI. The scenario is based on the delivered standard SFLIGHT demo.

Author: Markus Hardank

Company: SAP Deutschland AG & Co KG

Created on: 21 June 2010

Author Bio:

Markus Hardank, SAP Deutschland AG & Co KG, PI development consultant.

Page 2: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 2

Table of Contents

Introduction ......................................................................................................................................................... 3

Scenario Overview .............................................................................................................................................. 3

Setup Certificates ............................................................................................................................................... 4

Prerequisites ................................................................................................................................................... 4

Configuration Steps in PI ................................................................................................................................ 4

Configuration on .NET Client .......................................................................................................................... 8

Setup Scenario in EHP 1 for SAP NetWeaver PI 7.1 ....................................................................................... 11

Prerequisites: ................................................................................................................................................ 11

Design in ES Repository ............................................................................................................................... 11

Configuration in Integration Directory ........................................................................................................... 12

Setup in Microsoft Visual Studio ....................................................................................................................... 16

Prerequisites: ................................................................................................................................................ 16

Development in Microsoft Visual Studio ........................................................................................................... 18

Run the Scenario .............................................................................................................................................. 20

Related Content ................................................................................................................................................ 21

Copyright........................................................................................................................................................... 22

Page 3: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 3

Introduction

With EHP 1 for SAP NetWeaver Process Integration and Microsoft .NET framework 3.5 a lot of Web standards are supported. And with the SAP Enterprise Service Explorer for .NET an add-in is available for Microsoft Visual studio 2005 and 2008 to easily access Enterprise Services in your Services Registry and generate the proxy skeletons. Now this also works in the area of security without any additional customer bindings. It is possible to directly start coding your client coding and access the backend via SAP NetWeaver Process Integration.

In the scenario the authentication is based on X.509 certificates. Therefore, the guide gives a short overview how to get certificates and what steps are required to make the whole thing working. To make it easily reproducible without much configuration effort on the PI side I extend the standard SFLIGHT demo scenario.

Scenario Overview

The figure below shows our scenario. We use the FlightAvailabilityCheck as part of the SFLIGHT demo scenario to check from a .NET flight booking client the availability of a flight in the airline backend system. Therefore it is necessary to setup the SFLIGHT demo scenario as described in the configuration guide.

In this article we concentrate to call the FlightAvailabilityCheck Web service from a simple .NET flight booking system. The communication is based on https. For authentication at the PI system we use an X.509 certificate.

Note: In this scenario we focus on the mediated configuration. It is of course also possible to use direct communication

(direct connection object) if you do not need the additional functionality provided by PI (routing, mapping). In this case you have to create an additional inbound interface on the PI side and create a new proxy for this interface on the ABAP system. The direct connection configures the ABAP system via cash notifications. The .NET application uses the WSDL from the direct connection object.

.Net 3.5

PIABAP

BackendWS

X.509 CertificateXI

(SFLIGHT standard)

Client

application

Focus in this guide

Standard SFLIGHT demo

Page 4: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 4

Setup Certificates

Prerequisites

Your system is already configured to use https.

Configuration Steps in PI

For the further configuration steps you need a public key infrastructure. Especially the following is required:

A public/private key pair for the .NET client application (created by a trusted Root CA)

An SSL certificate for the PI server (signed by a trusted Root CA)

A root CA public certificate

Note: Currently only V1 certificates are supported on AS ABAP. You can check the certificate version by double clicking

on the certificate and then under Details.

If you want to setup your own certificate authority and create and sign certificates open ssl might be an interesting tool. For configuration we already have the necessary certificates and install them in the involved systems.

In the PI system, go to transaction STRUST and import the Root CA certificate.

Page 5: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 5

After the import, export the certificate to the database under category Root CA.

Page 6: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 6

Then create a certificate request and send it to your CA to sign it (also in transaction STRUST).

Page 7: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 7

After you have received the signed response from your CA, import it in transaction STRUST.

Page 8: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 8

After a successful import of the response from the CA you can see that the (Self-Signed) marking disappears.

Configuration on .NET Client

On the .NET client application you have to install the public/private key pair in the personal certificate store and the root certificate of your CA. In the Microsoft environment it is pretty simple. Just click on your certificate and follow the wizard.

Page 9: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 9

Page 10: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 10

Repeat the procedure for the Root CA certificate.

Page 11: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 11

Setup Scenario in EHP 1 for SAP NetWeaver PI 7.1

Prerequisites:

SFLIGHT Demo is configured.

Design in ES Repository

We want to use the Web services runtime and we do not want to change the SAP Basis software component. Therefore I just recreate the necessary objects in a new software component.

If you use other message types in your interface than the ones used in the standard scenario you of course also have to create the corresponding message and operation mapping.

Page 12: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 12

Configuration in Integration Directory

You can now start with the configuration in the Integration Directory. Create a business component with the corresponding communication channels. Then create Sender Agreement, Receiver Determination, Interface Determination and Receiver Agreement. I created a configuration scenario for putting them all together there.

Page 13: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 13

Here you can decide on the complexity of the scenario. I deleted the conditions and only added one airline (LH) for simplicity reasons.

Page 14: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 14

Publish the service to the service registry

Page 15: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 15

In the Integration Directory go to the Sender Agreement and select Sender Agreement – Publish in SR …

Just follow the wizard for publication.

Afterwards you can check in the SR via http://<host>:<port>/sr if the service is available there.

Page 16: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 16

Setup in Microsoft Visual Studio

Prerequisites:

Installed Microsoft Visual Studio 2005 or Microsoft Visual Studio 2008

Installed .NET 3.5 framework

Installed SAP Enterprise Service Explorer for .Net

In Visual Studio, logon to the Services Registry and search for your service interface.

Find further information on how to work with SAP Enterprise Service Explorer in the related content section.

Page 17: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 17

Page 18: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 18

Development in Microsoft Visual Studio

Start developing your coding. An example coding could look like this:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Security.Cryptography;

using System.Security.Cryptography.Xml;

using System.Security.Cryptography.X509Certificates;

namespace CheckFlightAvailability

{

class Program

{

/*

* Function for

* printout of the results

*

*/

static void

PrintResults(CheckFlightAvailabilityService.FlightCheckAvailibilityResponse result)

{

if (result.Availibility != null)

{

Console.WriteLine("Connections found: " + "\n");

Console.WriteLine("Availability");

Console.WriteLine("----------");

Console.WriteLine("Economax: " + result.Availibility.Economax);

Console.WriteLine("Econofree: " + result.Availibility.Econofree);

Console.WriteLine("Businmax: " + result.Availibility.Businmax);

Console.WriteLine("Businfree: " + result.Availibility.Businfree);

Console.WriteLine("Firstmax: " + result.Availibility.Firstmax);

Console.WriteLine("Firstfree: " + result.Availibility.Firstfree);

}

else

{

Console.WriteLine("No seats available.");

}

}

/*

* Function for searching for the right certificate in the

* personal certificate store of the current user.

*

*/

static public X509Certificate GetCertificates()

{

//Open the My certificate store.

X509Store certStore = new X509Store(StoreName.My,

StoreLocation.CurrentUser);

certStore.Open(OpenFlags.ReadOnly);

X509Certificate myCert = null;

Page 19: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 19

/*

* Loop through each certificate and find the certificate

* with the appropriate name.

*/

foreach (X509Certificate c in certColl)

{

if (c.Subject.Contains("CN=testapplication"))

{

myCert = c;

break;

}

}

if (myCert == null)

{

throw new CryptographicException("The X.509 certificate could not be

found.");

}

certStore.Close();

return myCert;

}

static void Main(string[] args)

{

try

{

// select flight

//ServiceReference.FlightCheckAvailibility request = new

ServiceReference.FlightCheckAvailibility();

CheckFlightAvailabilityService.FlightCheckAvailibility request = new

CheckFlightAvailability.CheckFlightAvailabilityService.FlightCheckAvailibility();

request.AirlineID = "LH";

request.ConnectionID = "0400";

request.FlightDate = "2009-07-01";

// get authorization

CheckFlightAvailabilityService.XI_29ca1bec399a3542a816430312c033f1_Service service =

new

CheckFlightAvailability.CheckFlightAvailabilityService.XI_29ca1bec399a3542a816430312c

033f1_Service();

service.ClientCertificates.Add(GetCertificates());

// trust all CAs

// System.Net.ServicePointManager.ServerCertificateValidationCallback

=

// ((sender, certificate, chain, sslPolicyErrors) => true);

//ServiceReference.FlightCheckAvailibilityResponse result =

// service.OB_CheckFlightAvailability(request);

CheckFlightAvailabilityService.FlightCheckAvailibilityResponse result

= service.OB_CheckFlightAvailability(request);

Page 20: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 20

Console.WriteLine("Press any key print results. ");

Console.Read();

PrintResults(result);

Console.WriteLine(" ");

Console.WriteLine("Press any key close application. ");

Console.Read();

}

catch (Exception e)

{

Console.WriteLine(e.ToString());

Console.Read();

}

}

}

}

We are now ready to test the scenario.

Run the Scenario

For testing the sample application just press STRG + F5 in Microsoft Visual Studio. A list of available seats for the selected flight is displayed.

In PI you can monitor the messages in transaction sxmb_moni, since we use the Web Services Runtime and everything is processed in the AS ABAP part of PI.

Page 21: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 21

Related Content

.NET Interoperability on SDN

SAP NetWeaver Process Integration Security Guide

SAP NetWeaver Process Integration – Demo Examples Configuration (SAP EHP 1 for NetWeaver PI 7.1)

Introducing SAP Enterprise Services Explorer for Microsoft .NET

Consuming SAP Enterprise Services with Microsoft .NET Framework 3.0 – Take It ESE!

Web Services Security Interoperability between SAP NetWeaver 7.0 and Microsoft Windows Communication Foundation (WCF) – Part I

Web Services Security Interoperability between SAP NetWeaver 7.0 and Microsoft Windows Communication Foundation (WCF) – Part II

Web Services Security Interoperability between SAP NetWeaver 7.0 and Microsoft Windows Communication Foundation (WCF) – Part III

Page 22: Interoperatibility Between NET3.5 and PI7.1

Interoperability between Microsoft .Net 3.5 and EHP 1 for SAP NetWeaver PI 7.1

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 22

Copyright

© Copyright 2010 SAP AG. All rights reserved.

No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice.

Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.

Microsoft, Windows, Excel, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.

IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, System z9, z10, z9, iSeries, pSeries, xSeries, zSeries, eServer, z/VM, z/OS, i5/OS, S/390, OS/390, OS/400, AS/400, S/390 Parallel Enterprise Server, PowerVM, Power Architecture, POWER6+, POWER6, POWER5+, POWER5, POWER, OpenPower, PowerPC, BatchPipes, BladeCenter, System Storage, GPFS, HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, Parallel Sysplex, MVS/ESA, AIX, Intelligent Miner, WebSphere, Netfinity, Tivoli and Informix are trademarks or registered trademarks of IBM Corporation.

Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.

Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries.

Oracle is a registered trademark of Oracle Corporation.

UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.

Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc.

HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C®, World Wide Web Consortium, Massachusetts Institute of Technology.

Java is a registered trademark of Sun Microsystems, Inc.

JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape.

SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP Business ByDesign, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and other countries.

Business Objects and the Business Objects logo, BusinessObjects, Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius, and other Business Objects products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Business Objects S.A. in the United States and in other countries. Business Objects is an SAP company.

All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.

These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.