最近的项目中,接口较多,而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( ).</