基于PI的Webservice发布实例Word下载.docx
- 文档编号:17395220
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:12
- 大小:140.24KB
基于PI的Webservice发布实例Word下载.docx
《基于PI的Webservice发布实例Word下载.docx》由会员分享,可在线阅读,更多相关《基于PI的Webservice发布实例Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
string,
l_float
f.
field-symbols:
<
fs_fieldname>
any,
fs_fieldvalue>
any.
"
解析XML数据到通用内表
type-pools:
ixml.
types:
begin
t_xml_line
data(256)
x,
end
t_xml_line.
l_ixml
ref
to
if_ixml,
l_streamfactory
if_ixml_stream_factory,
l_parser
if_ixml_parser,
l_istream
if_ixml_istream,
l_document
if_ixml_document,
l_node
if_ixml_node,
l_xmldata
string.
l_elem
if_ixml_element,
l_root_node
l_next_node
l_name
l_iterator
if_ixml_node_iterator.
l_xml_table
t_xml_line,
l_xml_line
l_xml_table_size
i.
*
Creating
the
main
iXML
factory
=
cl_ixml=>
create(
).
a
stream
factorya
l_ixml->
create_stream_factory(
l_streamfactory->
create_istream_string(
string
input
document
create_document(
Create
Parser
create_parser(
stream_factory
l_streamfactory
istream
l_istream
document
Parse
stream
if
l_parser->
parse(
)
ne
0.
return
.
endif.
Process
is_dom_generating(
eq
'
X'
perform
process_dom
tables
using
*&
--------------------------------------------------------------------*
Form
process_dom
form
p_i_zxml
structure
zmmjyh_cdif
if_ixml_document
node
iterator
if_ixml_node_iterator,
nodemap
if_ixml_named_node_map,
node_parent
attr
name
name1
prefix
value
indent
count
index
?
document.
check
not
is
initial.
exit.
create
iterator
node->
create_iterator(
get
current
node
iterator->
get_next(
loop
over
all
nodes
while
get_height(
2.
+
20.
case
get_type(
when
if_ixml_node=>
co_node_element.
element
get_name(
get_attributes(
attributes
nodemap->
get_length(
do
times.
sy-index
-
1.
get_item(
attr->
get_namespace_prefix(
get_value(
记录字段名、字段值
p_i_zxml-fieldname
p_i_zxml-fieldvalue
append
enddo.
co_node_text
or
co_node_cdata_section.
text
get_parent(
node_parent->
endcase.
endwhile.
endform.
准备数据到数据库更新内表
at
into
ls_field_data.
clear
l_fieldname.
assign
ls_field_data-fieldvalue
concatenate
LS_ZMMJYH_HT_0007-'
ls_field_data-fieldname
(l_fieldname)
assigned.
CONTRAMOUNTNUM'
or
APPLYAMOUNT'
金额字段中科学计数法的处理
l_float.
else.
it_return-zresult
0'
it_return-description
程序异常,字段名不匹配!
it_return.
return.
到达一条数据末尾
PREPAYID'
lt_zmmjyh_ht_0007.
ls_zmmjyh_ht_0007.
endloop.
更新到自建表
lines(
>
0
modify
zmmjyh_ht_0007
from
sy-subrc
commit
work
and
wait.
1'
回传成功!
rollback
work.
回传失败,数据库更新异常!
无数据可传输!
endif.
把结果回传给外围系统,先创建好Transformation
然后把返回值封装成XML串:
l_xstr
xstring.
call
transformation
zmmjyhmesgjdzsw
source
root
it_return[]
RESULT
XML
output
result
xml
l_xstr
options
xml_header
no'
.
ty_bin,
bin_data(1024)
ty_bin.
lt_bin
ty_bin."
文件二进制内表
l_len
function
SCMS_XSTRING_TO_BINARY'
exporting
buffer
APPEND_TO_TABLE
importing
output_length
l_len
tables
binary_tab
lt_bin
SCMS_BINARY_TO_STRING'
input_length
FIRST_LINE
LAST_LINE
MIMETYPE
ENCODING
=
text_buffer
output-zmmjyht010response-output
OUTPUT_LENGTH
EXCEPTIONS
FAILED
1
OTHERS
2
MESSAGE
ID
SY-MSGID
TYPE
SY-MSGTY
NUMBER
SY-MSGNO
WITH
SY-MSGV1
SY-MSGV2
SY-MSGV3
SY-MSGV4.
由于是基于PI创建的,此时的Webservice还没有注册,TC:
SOAMANAGER
进入singleserviceadministration,搜索刚才创建的webservice:
Zmmjyht010,并applyselection
点选Configurations标签,创建服务:
记得勾选中
UserID/Password
点击showwsdloptions,并把WSDLFormat设置为standard,然后点选DisplayselectedBinding'
sWSDLURL,
在右边会得到WSDL的URL
在SICF中,找到服务Zmmjyht010,在登录数据里,把过程数据改为“标准”,这是为了跳过WSDL的安全策略。
最后,然后把此WSDL的URL给到外围系统的开发人员就可以了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PI Webservice 发布 实例