webservice的创建与使用

13 篇文章 0 订阅

webservice创建与使用

webservice
Web Service就是一个应用程序,它向外界暴露出一个能够通过Web调用的API。Web Service是一种基于Web的中间件技术。用户通过把应用程序的一部分包装成Web服务的形式,将自己的应用程序功能提供给别人

ALE/IDOC

ALE是SAP专门为SAP与SAP之间所设计的整合中间件。ALE技术是分布–集成式的SAP系统实现基础。
从技术角度来说,ALE主要应用于两个有业务联系的SAP系统之间的数据同步,但也支持在SAP和非SAP系统间的数据同步的实现。
如果用最简单的语言介绍ALE的基本功能,可以认为其主要用于便捷地实现SAP系统/应用间的业务信息和数据的复制。数据以业务对象(BO)为实现单元,在系统/应用间通过基于RFC协议的ALE接口,以IDoc格式进行传递,在此过程中,系统将保证数据的完整性。IDoc是系统间数据交换过程中的媒介,SAP数据库中的IDoc结构包括一个控制记录、一段或多段数据记录以及一段或多段状态记录。

IDoc多用于在SAP系统之间的传输数据,IDoc对接收端的配置人员要求高。
IDOC出站处理:
1)应用层:生成应用数据
2)ALE层:创建出站IDOC
3)通讯层:寻找伙伴和端口
4)发送 IDoc
IDOC入站处理:
1)通讯层:接收入站端口传来的数据.
2)ALE 层:创建入站IDOC并通过伙伴参数文件查找IDOC处理类型.
3)应用层:写入文档.
SAP和SAP系统之间传输,系统有很多标准的配置实现,做增量数据传输很方便,需要配置的RFC逻辑连接是R3类型。SAP系统和外部系统交互,一般采用生成文件的方式,放在本地,再转化为XML或者FTP形式发送给对方,配置的RFC逻辑连接时T类型。在这里补充一下SAP发送到FTP的实现方法:建立RFC逻辑连接,函数连接FTP,账户密码登陆,然后用FTP命令在指定位置创建文件。

    SAP调用远程功能的能力是通过RFC接口系统(RFC interface system)实现的。根据调用方向的不同(SAP系统调用其他模块或其他系统调用SAP模块),RFC接口提供以下两种服务。
   (1)ABAP程序的调用接口
   任何ABAP程序都能使用CALL FUNCTION⋯DESTINATION语句调用远程功能。
  (2)非SAP ABAP程序的调用接口
  非ABAP程序必须以特定的规格进行编程,以确保它可作为RFC通信中的伙伴方。

RFC( 远程服务调用)
RFC是SAP系统之间以及SAP与外部系统之间程序通信的基本接口技术,诸多其他更高层的SAP接口和通信技术,如BAPI,ALE等,都是基于RFC实现的。

    根据通信方向和通信类型,共有如下三种RFC通信:

p 两个独立的SAP系统之间通信;
p SAP系统作为调用系统,与外部远程系统(非SAP ABAP系统)通信;
p 外部系统作为调用系统,与SAP系统通信。
SAP为多种语言及相关的操作系统提供RFC库(其中包含RFC API)及SAP连接器。连接配置操作简单。为Java提供的Java Connector(JCo),为C和C++提供的RFC SDK(RFC Software Development Kit),为.NET(C#,VB.NET等)提供的 .NET Connector(NCo),为Louts Notes 提供的Louts connector 。RFC分为同步和异步的,队列RFC,事务性RFC。

BAPI
在研究BAPI之前,首先要了解业务对象(Business Object,简称BO) 和业务对象仓库(Business Object Repository,简称BOR) 。
BO代表的是实际世界的对象,比如一个采购订单,一个物料数据。SAPBO包含业务数据,并完整描述了业务过程。系统内部应用和系统间在BO级别进行通信:
通过调用BAPI,内部及外部应用可以通过portal、java、.net、以及webservice等标准访问和操作业务对象。

   BOR是SAP业务对象类型(业务对象的定义和描述)和相关BAPI的组织中心。其中的BO根据其隶属的应用层级进行组织,以便于查找。BOR管理着SAPBO的不同发布版本,同时保证其接口的版本兼容性

Middleware

     中间件是CRM特有的接口技术,是CRM系统和其他外部系统交互的工具,CRM通过适配器实现数据传输,XML适配器,IDOC的适配器,R3适配器等等。在不同系统之间传递的媒介是BDOC,BDOC的本质是qRFC。CRM传输的对象分为“业务对象”,“定制对象”和“条件对象”。其中“配置对象”是一些配置表的对象,一般用于初始化传输的,业务对象就是CRM的业务对象。

简而言之CRM的处理机制可以理解为:CRM->BDoc->IDoc/xml/BAPI结构->外部系统。
数据传输时,CRM将出站数据和处理函数打包写入BDOC(qRFC),数据存入数据库,然后调度程序将数据库里的数据写入入站队列,在接收方再将数据映射为自己系统的数据。
比如,CRM 的order,保存时候,调用函数CRM_ORDER_SAVE,函数产生出站队列,到ERP端之后根据适配器里定义函数将数据转化为ERP的数据结构再保存到ERP的数据库。
实现两边系统的传输步骤是:定义好站点,确定RFC目标系统,注册并启动队列,传输数据,监控。

创建方式

webservice
第一种:通过se80

  1. se80 进入界面 ===== >创建 ===>企业服务
    在这里插入图片描述
    在这里插入图片描述

点击Service Rrovider 后继续
在这里插入图片描述

此处选择Existing ABAP Object(Inside Out)

在这里插入图片描述

选择组别:
● Function Group 组里面的内容,一个组里可以有多个Function Module
● Function module 一个函数
● BAPI
在这里插入图片描述

选择FunctionModule , 记住functionmodule 必须要是Remote Function,也就是远程启用的模块
在这里插入图片描述

点击继续
设置SOAP和Profile文件传输的协议,安全级别等设置
在这里插入图片描述

如果是放在本地的话,request就不需要设置,如果是放在某个package下的话,需要制定一下request
在这里插入图片描述

完成创建
在这里插入图片描述

ZWS_F00001
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第二种: 通过函数: 实用程序===> 更多实用程序==>创建webservice

中文模式下
在这里插入图片描述
在这里插入图片描述

点击创建函数模块,后续与第一种的创建方式相同. 一直点击下一步,
激活程序
点击执行
在这里插入图片描述

继续执行
在这里插入图片描述

继续执行
在这里插入图片描述

最后会显示response

测试消费者consumer
在这里插入图片描述

第一种通过URL,链接,
http://s4hdev.luxshare.com.cn:8000/sap/bc/srt/wsdl/flv_10002P111AD1/sdef_url/ZWS_F00002?sap-client=110

第二种通过生成文件
在这里插入图片描述

创建comusmer
在这里插入图片描述
在这里插入图片描述

点击External WSDL/Schema

选择LocalObject的话,就只需要写前缀即可,非本地,需要创建请求,
在这里插入图片描述

点击继续知道创建完成

在这里插入图片描述

consumer调用porvider

源码
创建provider的时候RemoteFunction的源码
在这里插入图片描述
在这里插入图片描述

FUNCTION ZFM_ADD.
 sum = num1 + num2 .
 WRITE: / sum .
ENDFUNCTION.

调用provider源码

DATA lr_consumer TYPE REF TO zws_consumer01co_zws_f00002.

TRY.
    CREATE OBJECT lr_consumer
*  EXPORTING
*    logical_port_name  =
      .
  CATCH cx_ai_system_fault .
ENDTRY.

TRY.
    CALL METHOD lr_consumer->zfm_add
      EXPORTING
        input  = input
      IMPORTING
        output = output.
  CATCH cx_ai_system_fault .
ENDTRY.

BREAK-POINT .

DATA lr_consumer TYPE REF TO zws_consumer01co_zws_f00002.

TRY.
    CREATE OBJECT lr_consumer
*  EXPORTING
*    logical_port_name  =
      .
  CATCH cx_ai_system_fault .
ENDTRY.

TRY.
    CALL METHOD lr_consumer->zfm_add
      EXPORTING
        input  = input
      IMPORTING
        output = output.
  CATCH cx_ai_system_fault .
ENDTRY.

BREAK-POINT .

创建过程
通过这一步会自动,帮助我们生成具体的代码

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

soapmanager
输入该tcode后进入sap后台管理这些里面
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值