zoukankan      html  css  js  c++  java
  • webService的发布与调用

    • FM创建

    首先,执行Tcode:SE37,进入函数创建界面。

    在创建函数之前,先创建一个Function Group,或者使用系统中已经创建好的Function Group。自定义函数组方法如下:

     

    执行Create Group功能后,弹出如下图所示对话框:

    录入信息后,点击保存。然后返回到Function Builder界面,在Function Module文本框录入FM的名称:Z_CALCULATE,点击创建按钮,如下图所示:

    点击保存按钮,进入FM编辑页面。如下图所示:

    在Attributes面板中,Processing Type选择Remote-Enabled Module单选按钮,然后进入Import/Export/Changing/Tables/Exceptions面板,如下图所示:

    录入参数,并勾选Pass Value复选框,否则将无法成功发布webService。然后进入Source Code进行代码编辑,如下图所示:

    点击检查按钮,然后保存激活改FM。

    • webService发布

    在FM激活之后,在菜单Utilities中选择More Utilities→Create webService→From the Function Module。如下图所示:

    执行菜单功能按钮后,将弹出以下对话框:

    定义服务,点击继续按钮,如下图所示:

    点击继续。

    点击继续。

    勾选Local Object复选框,若不勾选,则必须要在相应文本框录入当前所要应用的Package名称,及所创建的Transport Request。然后点击继续按钮。

    点击完成按钮,此时ZSAP_CALCULATE服务已经创建完成了。

    在当前系统访问事务码:SOAMANAGER,进入SOA Management界面。如下图所示:

    在Business Administration面板,执行Web Service Administration,如下图所示:

    创建查询服务,点击Start按钮。选中刚创建好的服务,点击Apply Selection。如下图所示:

    点击Configurations→Create Service。

    在弹出的SOA Management界面,录入相应信息后,点击Apply Settings。然后在Overview面板,执行Open WSDL document for selected binding。如下图所示:

    我们所要的URL链接地址即为地址栏中显示的内容。

    然后在当前系统中执行Tcode:SICF,进入Maintain Services界面,如下图所示:

    然后在Service Name文本框中录入服务名称,点击执行按钮。

    选中ZSAP_CALCULATE,右键执行Test Service功能。测试结果如下图所示:

    地址栏中显示的内容即为我们要找的EndPoint地址。

    • webService调用配置

    webService发布之后,我们就需要到调用该webService的系统进行一些相关配置,实现调用之前的接口函数。

    在要调用该webService的SAP系统,执行事务码SE80。

    在相应对象上右键选择Create→Enterprise Service,并执行该菜单功能,进入如下图所示界面:

    选择Service Consumer,点击继续。

    选择URL/HTTP Destination,点击继续。

    在URL文本框中录入之前查询的URL。录入之后点击继续。

    填写Prefix信息,勾选Local Object复选框,将对象保存到本地,否则录入相应的package和Request/Task,点击继续按钮。

    点击完成按钮。

    录入webService所在系统的用户名、密码,点击确定按钮。

    点击激活按钮。然后执行事务码LPCONFIG,进入Display/Create Logical Port界面,创建逻辑端口。

    点击创建,进入编辑页面。

    按照上图进行相关配置。在General Settings面板,打开Call Parameter面板,如下图所示:

     URL为EndPoint地址,经检查后激活该逻辑端口。

    • Report开发

    *&---------------------------------------------------------------------*
    *& Report  ZTEST_SCREEN
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*

    REPORT  ZTEST_WEBSERVICE.
    DATA: CONVERT TYPE REF TO ZCO_ZSAP_CALCULATECO_ZSAP_CALC,
    INPUT_PAR TYPE ZCO_ZSAP_CALCULATEZCALCULATE,
    OUTPUT_PAT TYPE ZCO_ZSAP_CALCULATEZCALCULATE_R.


    CREATE OBJECT CONVERT.

    INPUT_PAR-NUMBER1 '1'.
    INPUT_PAR-NUMBER2 '3'.
    INPUT_PAR-ZOPERATOR '+'.


    TRY.
        CALL METHOD CONVERT->ZCALCULATE
          EXPORTING
            INPUT  = INPUT_PAR
          IMPORTING
            OUTPUT = OUTPUT_PAT.

      CATCH CX_AI_SYSTEM_FAULT .
        WRITE 'Error:Communication Error'.
      CATCH CX_AI_APPLICATION_FAULT .
        WRITE 'Error:Application Error'.
    ENDTRY.

    WRITE: OUTPUT_PAT-RESULT.

  • 相关阅读:
    Compression algorithm (deflate)
    tcpip数据包编码解析(chunk and gzip)_space of Jialy_百度空间
    What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
    gzip压缩算法: gzip 所使用压缩算法的基本原理
    Decompressing a GZip Stream with Zlib
    Frequently Asked Questions about zlib
    how to decompress gzip stream with zlib
    自己动手写web服务器四(web服务器是如何通过压缩数据,web服务器的gzip模块的实现)
    What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
    C语言抓http gzip包并解压 失败 C/C++ ChinaUnix.net
  • 原文地址:https://www.cnblogs.com/foam-h/p/5193132.html
Copyright © 2011-2022 走看看