How to Comsume ES With Net 3_0

  • Upload
    lei-li

  • View
    229

  • Download
    0

Embed Size (px)

Citation preview

  • 7/29/2019 How to Comsume ES With Net 3_0

    1/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 1 -

    How to Consume Enterprise Services with Microsoft .NET 3.0and Visual Studio 2005

    Applies to:

    Access to the ES-Workplace mySAP ERP ECC 600.

    https://www.sdn.sap.com/irj/sdn/developerareas/esa/esworkplace

    Microsoft Visual Studio 2005.

    Microsoft .NET Framework 3.0.

    Summary

    This document enables you to generate a Windows Communication Foundation Client for consuming WebServices from the ES Workplace using Visual Studio 2005 and the .NET Framework 3.0.

    Time requirement

    The time requirement for this How-To-Guide is about 20 minutes.

    Author: Boris Mueller

    Company: SAP AG

    Created on: 20 February 2007

    Author Bio

    Boris Mueller is computer science student and currently works as a trainee at SAP in the MarketDevelopment Engineering Team in Walldorf.

    Boris has several years of experience as maintenance supervisor of electrical engineering andtelecommunications in a management position.

    https://www.sdn.sap.com/irj/sdn/developerareas/esa/esworkplacehttps://www.sdn.sap.com/irj/sdn/developerareas/esa/esworkplacehttps://www.sdn.sap.com/irj/sdn/developerareas/esa/esworkplace
  • 7/29/2019 How to Comsume ES With Net 3_0

    2/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 2 -

    Table of Contents

    Applies to: ........................................................................................................................................ 1Summary.......................................................................................................................................... 1Time requirement............................................................................................................................. 1

    Author Bio........................................................................................................................................ 1Part 1: Creating a project................................................................................................................. 3

    Creating a Console Application.................................................................................................... 3

    Use ........................................................................................................................................... 3Procedure ................................................................................................................................. 3

    Part 2: Choose a WSDL file from the ES Workplace ...................................................................... 4Choose a WSDL file..................................................................................................................... 4

    Use ........................................................................................................................................... 4Procedure ................................................................................................................................. 4

    Part 3: Generating WCF Source Code with the ServiceModel Metadata Utility Tool...................... 7Rename the Message Part in the WSDL..................................................................................... 7

    Use ........................................................................................................................................... 7Procedure ................................................................................................................................. 7

    Generating WCF Source Code with Svcutil ................................................................................. 7Use ........................................................................................................................................... 7Procedure ................................................................................................................................. 7

    Part 4: Importing the Source Code and Consuming the Enterprise Service ................................... 9Importing the Source Code .......................................................................................................... 9

    Use ........................................................................................................................................... 9Procedure ................................................................................................................................. 9

    Creating Source Code................................................................................................................ 10Use ......................................................................................................................................... 10Procedure ............................................................................................................................... 10

    Settings for the App.config file ................................................................................................... 11Use ......................................................................................................................................... 11Procedure ............................................................................................................................... 11

    Build the Project and Start the Program .................................................................................... 12Complete Source Code.............................................................................................................. 13

    Related Content............................................................................................................................. 16Copyright........................................................................................................................................ 17

  • 7/29/2019 How to Comsume ES With Net 3_0

    3/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 3 -

    Part 1: Creating a project

    Creating a Console Application

    Use

    First, we create a simple Console Application project in Visual Studio 2005. In part four, we include thegenerated WCF source code in this project.

    Procedure

    1. Start Visual Studio 2005.

    2. Choose FileNewProject

    2. In the pop-up window, choose

    Visual C#Console Application.

    3. Enter the project name: WsCall

    4. Choose OKto create a new Console

    Application.

  • 7/29/2019 How to Comsume ES With Net 3_0

    4/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 4 -

    Part 2: Choose a WSDL file from the ES Workplace

    Choose a WSDL file

    Use

    The ServiceModel Metadata Utility Tool needs a WSDL file to generate a source code. In the following step,we will use the Find Customer by Address enterprise service, which you can find on the ES Workplace. The

    Name of this Enterprise Service in the mySAP ERP ECC 600 backend system is ECC_CUSTOMER002QR.

    Procedure

    1. Open the ES Workplace: http://erp.esworkplace.sap.com/socoview

    2. Click the link Enterprise ServiceIndex.

    3. In the browser window, insert the name of the enterprise service Find Customer by Address into the fieldSearch and Click Search in Enterprise Service Index.

    4. The search results will appear in your browser window.

    5. Click the link Find Customer by Address.

    https://www.sdn.sap.com/irj/sdn/developerareas/esa/esworkplacehttp://erp.esworkplace.sap.com/socoviewhttp://erp.esworkplace.sap.com/socoviewhttp://erp.esworkplace.sap.com/socoviewhttps://www.sdn.sap.com/irj/sdn/developerareas/esa/esworkplace
  • 7/29/2019 How to Comsume ES With Net 3_0

    5/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 5 -

    6. In the resulting page, you can get detailed information about the enterprise service.7. To open the WSDL file, click the link on Related Web Service Definition.

  • 7/29/2019 How to Comsume ES With Net 3_0

    6/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 6 -

    8. When prompted, logon with your user.

    9. Choose FileSave Asin the browser window.

    10. Change the file extension from XML to WSDL and choose Save to save the WSDL file on your computer.

  • 7/29/2019 How to Comsume ES With Net 3_0

    7/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 7 -

    Part 3: Generating WCF Source Code with the ServiceModel Metadata Utility Tool

    Rename the Message Part in the WSDL

    Use

    Before we use the ServiceModel Metadata Utility Tool (Svcutil), we have to change the name of the messagepart in the WSDL from parameters into parameter. If we do not, Svcutil will generate incorrect source

    code.

    Procedure

    1. Open the WSDL file in a text editor.

    2. Search for the message part and change the name from parameters into parameter (two times in thiscase).

    3. Save the new WSDL file.

    Generating WCF Source Code with Svcutil

    Use

    With a WSDL file, we are able to generate WCF source code with Svcutil. Svcutil can be found at theWindows SDK installation location: C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin. You can find adetailed documentation of the tool at: http://msdn2.microsoft.com/en-us/library/aa347733.aspx.

    Procedure

    1. Open the command prompt.

    2. Specify the syntax:svcutil.exe /ser:Auto /d:n:\targetFolder /config:App.config n:\sourceFolder\ECC_CUSTOMER002QR.wsdl

    http://msdn2.microsoft.com/en-us/library/aa347733.aspxhttp://msdn2.microsoft.com/en-us/library/aa347733.aspx
  • 7/29/2019 How to Comsume ES With Net 3_0

    8/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 8 -

    The following table shows the used options for the tool.

    Option Description

    /directory: Directory to create files in. Default: The current directory.

    Short form: /d:

    /serializer:Auto Automatically selects the serializer. This uses the Data Contract serializer.

    If this fails, the XmlSerializer is used. Short form: /ser:Auto

    /config: Specifies the filename for the generated configuration file.

    Default: output.config

    3. Press Enterand the Svcutil tool will generate a C# file and a config file.

  • 7/29/2019 How to Comsume ES With Net 3_0

    9/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 9 -

    Part 4: Importing the Source Code and Consuming the Enterprise Service

    Importing the Source Code

    Use

    Before we can use the generated source code, we have to import it into the Console Application project.

    Procedure

    1. Right-click on the WsCallproject and chooseAddExisting Item.

    2. Choose the directory where the files reside.

    3. In the popup window, choose Files of type: All Files(*.*).

    4. Select the two generated files.

    5. Click Add to finish importing the two files into theConsole Application project.

  • 7/29/2019 How to Comsume ES With Net 3_0

    10/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 10

    -

    Creating Source Code

    Use

    To invoke the Web service, you have to specify the proxy settings, authentications, and values of the requestand response. Here, we use the Program class. The complete source code is also available at the end of thischapter.

    Procedure

    1. Open the class Program

    2. Insert the using directives.

    usi ng Syst em;

    usi ng System, Col l ect i ons. Gener i c;

    usi ng Syst em. Text ;

    usi ng Syst em. Net ;

    3. Handle errors and exceptions with a try/catch statement in the main method.

    t r y

    {

    }catch (WebException exp)

    {

    System.Console.WriteLine(exp.ToString());

    }

    4. Create instances in the try-block.

    Syst em. Consol e. Wr i t eLi ne( "St ar t i ng SOAP WebSer vi ce Cal l \ n" ) ;Cust omer Si mpl eByNameAndAddr essQuer yResponse_I nCl i ent ser vi ce = newCust omer Si mpl eByNameAndAddr essQuer yResponse_I nCl i ent ( ) ;Or gani sat i onName oname = new Or gani sat i onName( ) ;Cust omer Si mpl eByNameAndAddressQuer yMessage_sync query = new

    Cust omer Si mpl eByNameAndAddressQuer yMessage_sync( ) ;Cust omer Si mpl eByNameAndAddressQuer yMessage_syncCust omer Si mpl eSel ect i onByNameAndAddr ess querydat a = newCust omer Si mpl eByNameAndAddressQuer yMessage_syncCust omer Si mpl eSel ect i onByNameAndAddr ess( ) ;Cust omer Si mpl eByNameAndAddr essQuer yMessageSync.Cust omer Si mpl eSel ect i onByNameAndAddr ess quer ydata = newCust omer Si mpl eByNameAndAddr essQuer yMessageSync.Cust omer Si mpl eSel ect i onByNameAndAddr ess( ) ;Or gani sat i onName oname = new Or gani sat i onName( ) ;

  • 7/29/2019 How to Comsume ES With Net 3_0

    11/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 11

    -

    5. Set values for the request.

    oname. Fi r st Li neName = J ul i a;

    quer ydata. Cust omer Addr esCountr yCode = DE;

    quer y. Cust omerSi mpl eSel ect i onByNameAndAddr ess = quer ydat a;quer ydat a. Cust omer Name = oname;

    6. Insert authentication and specify your username and password from the ES Workplace.

    ser vi ce. Cl i ent Cr edent i al s. User Name. User Name = "myUser " ;ser vi ce. Cl i ent Cr edent i al s. UserName. Password = "myPassword" ;

    6. Display the response.

    Cust omer Si mpl eByNameAndAddr essResponseMessage_sync r esul t s =ser vi ce. Cust omerSi mpl eByNameAndAddr essQuer yResponse_I n(query) ;Cust omer Si mpl eByNameAndAddr essResponseMessage_syncCust omer [ ] cust omer s =r esul t s. Cust omer ;f or ( i nt i = 0; i < cust omer s. Lengt h; ++i ){Cust omer Si mpl eByNameAndAddr essResponseMessage_syncCust omer cur = cust omer s[ i ] ;i f ( i == 0) Syst em. Consol e. Wr i t eLi ne("Cust omer ( s) f ound: "+ cust omers. Length + " \ n") ;

    Syst em. Consol e. Wr i t eLi ne( " \ nCust omer I D: " + cur . I D. Val ue) ;Syst em. Consol e. Wr i t eLi ne( "Fi r st Li neName: "+ cur . Basi cDat a. Common. Name. Fi r st Li neName + " \ n") ;}System. Consol e. Wr i t eLi ne( "\ nWebSer vi ceCal l f i ni shed") ;

    Settings for the App.config file

    Use

    In the App.config file we can change the application settings.

    Procedure

    1. Open the App.config file.2. Insert the proxy settings where they are necessary.

    3. Change the settings for security mode from None to TransportCredentialOnly

    4. Change the settings for clientCredentialType from None to Basic.

    5.Choose FileSave.

    6. Right-click on References and chooseAdd Reference from the context menu.

  • 7/29/2019 How to Comsume ES With Net 3_0

    12/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 12

    -

    7. In the popup window, add the following references:

    System.Runtime.Serialization

    System.ServiceModel

    Build the Project and Start the Program

    1. Choose BuildBuild Solution to build the project.

  • 7/29/2019 How to Comsume ES With Net 3_0

    13/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 13

    -

    2. Choose DebugStart Without Debuggingto start the program, then watch as the result of the Webservice call is displayed in the console.

    Complete Source Code

    The following is the complete source code for the config file and the program file. You can copy and paste it

    into the files. Before building the solution, be sure to change the settings for username yourUser andpassword yourPassword in the source code.

    / / sour ce code for t he Programf i l e

    usi ng Syst em;

    usi ng System. Col l ect i ons. Gener i c;

    usi ng Syst em. Text ;

    usi ng Syst em. Net ;

    namespace WsCl i ent

    {cl ass Pr ogr am

    {

    st at i c voi d Mai n( st r i ng[ ] ar gs)

    {

    t r y

    {

  • 7/29/2019 How to Comsume ES With Net 3_0

    14/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 14

    -

    Syst em. Consol e. Wr i t eLi ne( "St ar t i ng SOAP WebSer vi ce Cal l \ n" ) ;Cust omer Si mpl eByNameAndAddr essQuer yResponse_I nCl i ent ser vi ce = newCust omer Si mpl eByNameAndAddr essQuer yResponse_I nCl i ent ( ) ;Or gani sat i onName oname = new Or gani sat i onName( ) ;Cust omer Si mpl eByNameAndAddressQuer yMessage_sync query = newCust omer Si mpl eByNameAndAddressQuer yMessage_sync( ) ;Cust omer Si mpl eByNameAndAddressQuer yMessage_syncCust omer Si mpl eSel ect i onByNameAndAddr ess querydat a = new

    Cust omer Si mpl eByNameAndAddressQuer yMessage_syncCust omer Si mpl eSel ect i onByNameAndAddr ess( ) ;oname. Fi r st Li neName = " J ul i a";

    quer ydat a. Cust omer Addr essCount r yCode = "DE";

    quer y. Cust omerSi mpl eSel ect i onByNameAndAddr ess = quer ydat a;

    quer ydat a. Cust omer Name = oname;

    ser vi ce. Cl i ent Cr edent i al s. UserName. UserName = "MyUser " ;

    servi ce. Cl i ent Cr edent i al s. UserName. Password = "MyPasswor d" ;

    Cust omer Si mpl eByNameAndAddr essResponseMessage_sync r esul t s =ser vi ce. Cust omerSi mpl eByNameAndAddr essQuer yResponse_I n(query) ;Cust omer Si mpl eByNameAndAddr essResponseMessage_syncCust omer [ ] cust omer s =

    r esul t s. Cust omer ;f or ( i nt i = 0; i < cust omer s. Lengt h; ++i ){Cust omer Si mpl eByNameAndAddr essResponseMessage_syncCust omer cur = cust omer s[ i ] ;i f ( i == 0) Syst em. Consol e. Wr i t eLi ne("Cust omer ( s) f ound: " + cust omer s. Lengt h +"\n") ;Syst em. Consol e. Wr i t eLi ne( " \ nCust omer I D: " + cur . I D. Val ue) ;Syst em. Consol e. Wr i t eLi ne( "Fi r st Li neName: " +cur . Basi cDat a. Common. Name. Fi r st Li neName + " \ n") ;}System. Consol e. Wr i t eLi ne( "\ nWebSer vi ceCal l f i ni shed\ n") ;}cat ch (WebExcept i on exp){System. Consol e. Wr i t eLi ne( exp. ToSt r i ng( ) ) ;}}}}

    sour ce code f or t he conf i g f i l e

  • 7/29/2019 How to Comsume ES With Net 3_0

    15/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 15

    -

    useDef aul t WebProxy="f al se">

  • 7/29/2019 How to Comsume ES With Net 3_0

    16/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG - 16

    -

    Related Content

    Platform Ecosystem

    ES Workplace homepage on SDN

    Enterprise SOA homepage on SDN

    http://www.sap.com/platform/ecosystem/http://www.sap.com/platform/ecosystem/https://www.sdn.sap.com/irj/sdn/developerareas/esa/esworkplacehttps://www.sdn.sap.com/irj/sdn/developerareas/esa/esworkplacehttps://www.sdn.sap.com/irj/sdn/developerareas/esahttps://www.sdn.sap.com/irj/sdn/developerareas/esahttps://www.sdn.sap.com/irj/sdn/developerareas/esahttps://www.sdn.sap.com/irj/sdn/developerareas/esa/esworkplacehttp://www.sap.com/platform/ecosystem/
  • 7/29/2019 How to Comsume ES With Net 3_0

    17/17

    How to Consume Enterprise Services with Microsoft .NET 3.0 and Visual Studio 2005

    SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

    2007 SAP AG 17

    Copyright

    Copyright 2007 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, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.

    IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iSeries, pSeries, xSeries,zSeries, z/OS, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, Informix, i5/OS, POWER, POWER5, OpenPower and PowerPC aretrademarks or registered trademarks of IBM Corporation.

    Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe SystemsIncorporated 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 ofCitrix Systems, Inc.

    HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, MassachusettsInstitute 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.MaxDB is a trademark of MySQL AB, Sweden.

    SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver, and other SAP products and services mentioned herein as well as theirrespective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. Allother product and service names mentioned are the trademarks of their respective companies. Data contained in this document servesinformational 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 ("SAPGroup") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors oromissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in theexpress warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting anadditional warranty.

    These materials are provided as is without a warranty of any kind, either express or implied, including but not limited to, the impliedwarranties of merchantability, fitness for a particular purpose, or non-infringement.

    SAP shall not be liable for damages of any kind including without limitation direct, special, indirect, or consequential damages that may

    result from the use of these materials.SAP does not warrant the accuracy or completeness of the information, text, graphics, links or other items contained within thesematerials. SAP has no control over the information that you may access through the use of hot links contained in these materials anddoes not endorse your use of third party web pages nor provide any warranty whatsoever relating to third party web pages.

    Any software coding and/or code lines/strings (Code) included in this documentation are only examples and are not intended to beused in a productive system environment. The Code is only intended better explain and visualize the syntax and phrasing rules ofcertain coding. SAP does not warrant the correctness and completeness of the Code given herein, and SAP shall not be liable for errorsor damages caused by the usage of the Code, except if such damages were caused by SAP intentionally or grossly negligent.