基于PI的Webservice发布实例

本文通过一个具体的实例展示了如何在SAP PI上基于PI发布Webservice来接收外围系统回传的XML数据。首先创建自建表,然后解析XML数据,通过遍历节点将数据更新到自建表。接着,将结果转换为XML并回传,最后在SOAMANAGER配置Webservice并获取WSDL URL供外围系统使用。
摘要由CSDN通过智能技术生成

最近的项目中,接口较多,而Webservice技术是主要实现方式之一。下面以项目中的一个具体实例来体验一下基于PI的Webservice发布。


业务场景

SAP系统实时接收一个外围接口系统(基于Web的电子商务平台)回传的数据。


技术分析

由于同步要求较高,数据量偏小,采用Webservice实现较为合理。


实例演示

创建好自建表,用于接收回传的数据:


 

TC: SPROXY根据集成组在PI配置的服务名创建Service Interface


 

在实现类中,根据传入的XML字符串,解析后更新到自建表:

  data: ls_field_data like zmmjyh_cdif,

        lt_field_data like table of ls_field_data,

        ls_zmmjyh_ht_0007 like zmmjyh_ht_0007,

        lt_zmmjyh_ht_0007 like table of ls_zmmjyh_ht_0007,

        l_retcode type i,

        l_fieldname type string,

        l_float type f.

 

  field-symbols: <fs_fieldname> type any,

                 <fs_fieldvalue> type any.

 

  "解析XML数据到通用内表

  type-pools: ixml.

  types: begin of t_xml_line ,

  data(256) type x,

  end of t_xml_line.

 

  data: l_ixml            type ref to if_ixml,

        l_streamfactory   type ref to if_ixml_stream_factory,

        l_parser          type ref to if_ixml_parser,

        l_istream         type ref to if_ixml_istream,

        l_document        type ref to if_ixml_document,

        l_node            type ref to if_ixml_node,

        l_xmldata         type string.

 

  data: l_elem            type ref to if_ixml_element,

        l_root_node       type ref to if_ixml_node,

        l_next_node       type ref to if_ixml_node,

        l_name            type string,

        l_iterator        type ref to if_ixml_node_iterator.

 

  data: l_xml_table       type table of t_xml_line,

        l_xml_line        type t_xml_line,

        l_xml_table_size  type i.

 

* Creating the main iXML factory

  l_ixml = cl_ixml=>create( ).</

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值