20170313 ABAP以jason 格式返回值到http(接口内容返回)
问题1:
返回jason 格式信息给你们这步不通,


这个可以怎么处理,
***得到SCP 系统开发回复,他们需要调整方法;
(1)调用函数做RETURN,
IT_ZSMLSCPNOTICE-FUNCTIONNAME = 'ZMLSCP1_FR0005'.
IT_ZSMLSCPNOTICE-BCPCODE = BCPCODE.
IT_ZSMLSCPNOTICE-STATUS = O_STATU.
IT_ZSMLSCPNOTICE-MSG = O_MSG.
IT_ZSMLSCPNOTICE-RESULT = ''.
APPEND IT_ZSMLSCPNOTICE.
CLEAR:IT_ZSMLSCPNOTICE. CALL FUNCTION 'ZMLSCP1_FR0018'
EXPORTING
L_FNAME = 'ZMLSCP1_FR0018'
IMPORTING
EV_MSGTY = L_MSGTY
EV_MSGTX = L_MSGTX
TABLES
IT_INPUT = IT_ZSMLSCPNOTICE.
* O_STATU = L_MSGTY.
O_MSG = '调用返回结果函数: ' && L_MSGTX.
FUNCTION ZMLSCP1_FR0018 .
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(L_FNAME) TYPE RS38L_FNAM OPTIONAL
*" EXPORTING
*" VALUE(EV_MSGTY) TYPE CHAR1
*" VALUE(EV_MSGTX) TYPE STRING
*" TABLES
*" IT_INPUT STRUCTURE ZSMLSCPNOTICE OPTIONAL
*"----------------------------------------------------------------------
DATA: JSON_SER TYPE REF TO CL_TREX_JSON_SERIALIZER,
JSON_DES TYPE REF TO CL_TREX_JSON_DESERIALIZER. DATA: LV_URL TYPE STRING."http 服务接口地址
DATA: LO_HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT. DATA: LV_LEN TYPE I."发送报文长度
DATA: LV_RESPON TYPE STRING.
DATA: LV_SUBRC TYPE SY-SUBRC.
DATA: LV_JSON_STR TYPE STRING. "发送报文 IF L_FNAME EQ SPACE.
L_FNAME = 'ZMLSCP1_FR0018'.
ENDIF. * 设置HTTP接口地址
SELECT SINGLE ZADDR INTO LV_URL
FROM ZMLSCP_URL_CFG
WHERE SYSID EQ SY-SYSID AND FUNCTIONNAME EQ L_FNAME.
IF LV_URL IS INITIAL.
EV_MSGTY = 'E'.
EV_MSGTX = SY-SYSID && '表ZMLSCP_URL_CFG未配置服务地址'.
EXIT.
ENDIF. * 内表->JSON 设置报文内容(json格式字符串)
CREATE OBJECT JSON_SER
EXPORTING
DATA = IT_INPUT[].
CALL METHOD JSON_SER->SERIALIZE.
CALL METHOD JSON_SER->GET_DATA
RECEIVING
RVAL = LV_JSON_STR. "创建客户端请求
CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL
EXPORTING
URL = LV_URL
IMPORTING
CLIENT = LO_HTTP_CLIENT
EXCEPTIONS
ARGUMENT_NOT_FOUND =
PLUGIN_NOT_ACTIVE =
INTERNAL_ERROR =
OTHERS = .
IF SY-SUBRC <> .
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
MSGID = SY-MSGID
MSGNR = SY-MSGNO
MSGV1 = SY-MSGV1
MSGV2 = SY-MSGV2
MSGV3 = SY-MSGV3
MSGV4 = SY-MSGV4
IMPORTING
MESSAGE_TEXT_OUTPUT = EV_MSGTX.
EV_MSGTY = 'E'.
EXIT.
ENDIF. "设定传输请求内容格式以及编码格式
LO_HTTP_CLIENT->REQUEST->SET_CONTENT_TYPE( CONTENT_TYPE = 'application/json; charset=utf-8' ). "设定调用服务
LO_HTTP_CLIENT->REQUEST->SET_METHOD( IF_HTTP_REQUEST=>CO_REQUEST_METHOD_POST ). "设置待传输内容
LV_LEN = STRLEN( LV_JSON_STR ).
CALL METHOD LO_HTTP_CLIENT->REQUEST->SET_CDATA
EXPORTING
DATA = LV_JSON_STR
OFFSET =
LENGTH = LV_LEN. "发送请求
LO_HTTP_CLIENT->SEND( EXCEPTIONS HTTP_COMMUNICATION_FAILURE =
HTTP_INVALID_STATE = ). IF SY-SUBRC <> .
"操作失败,获取失败原因
LO_HTTP_CLIENT->GET_LAST_ERROR( IMPORTING MESSAGE = EV_MSGTX ).
EV_MSGTY = 'E'.
EXIT.
ENDIF. "读取远程服务返回的处理过结果。
LO_HTTP_CLIENT->RECEIVE( EXCEPTIONS HTTP_COMMUNICATION_FAILURE =
HTTP_INVALID_STATE =
HTTP_PROCESSING_FAILED = ). IF SY-SUBRC <> .
LO_HTTP_CLIENT->GET_LAST_ERROR( IMPORTING MESSAGE = EV_MSGTX ).
EV_MSGTY = 'E'.
EXIT.
ELSE.
"读取返回返回内容
CLEAR LV_RESPON.
LV_RESPON = LO_HTTP_CLIENT->RESPONSE->GET_CDATA( ).
MOVE LV_RESPON TO EV_MSGTX.
EV_MSGTY = 'S'.
ENDIF. ENDFUNCTION.
[{functionname: "ZMLSCP1_FR0005", bcpcode: "20170313001", status: "S", msg: "写入自建表成功!", result: ""}]
11:40:14
现在返回内容到这个地址
http://deiap.changhong.com:18082/PM/ScpFunction/DispatchNotice 20170313 测试问题:

LV_RESPON: {"isSuccessful":true,"Msg":"数据取得中..."}
SCP 那边反馈拿不到数据!!!
20170313 ABAP以jason 格式返回值到http(接口内容返回)的更多相关文章
- 写一方法用来计算1+2+3+...n,其中n作为参数输入,返回值可以由方法名返回,也可以由参数返回
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- C++ 需要返回值的函数却没有返回值的情况 单例模式
昨天在看前些天写的代码,发现一个错误. #include <iostream> using namespace std; class singleton { public: static ...
- Java多线程带返回值的Callable接口
Java多线程带返回值的Callable接口 在面试的时候,有时候是不是会遇到面试会问你,Java中实现多线程的方式有几种?你知道吗?你知道Java中有可以返回值的线程吗?在具体的用法你知道吗?如果两 ...
- 测试函数用Return 返回值和用函数名返回值的区别
'*************************************************************************'**模 块 名:工程1 - Form1'**说 ...
- (转)函数中使用 ajax 异步 同步 返回值错误 主函数显示返回值总是undefined -- ajax使用总结
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAloAAAE0CAIAAAB7LwoKAAAgAElEQVR4nO2dy6sc152A6+/R2mXwSn ...
- 怎样获取shell函数的返回值及shell命令的返回值?
1.获取shell函数调用的返回值: #!/bin/sh info() { cat jlb.sh } res=`info` echo "state: "$? echo " ...
- mysql更新返回值问题(更新内容跟之前内容一样,返回0)
mysql更新返回值问题 问: 有一界面要更新个人信息,有几十个text标签需要填写假设有一用户从用户列表点修改进入了修改页面,但又没有修改什么,马上点击保存这时,因为text标签非常多,不能够一一判 ...
- ForkJoin有参无返回值、有参有返回值实例
介绍: a . Fork/Join为JKD1.7引入,适用于对大量数据进行拆分成多个小任务进行计算的框架,最后把所有小任务的结果汇总合并得到最终的结果 b . 相关类 public abstract ...
- SpringMVC中使用@ResponseBody注解将任意POJO对象返回值转换成json进行返回
@ResponseBody 作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区. ...
随机推荐
- Adoquery的 moveby和GotoBookmark,RecNo
GotoBookmark 是必须存在的记录,再次返回原来那个记录的位置,但是原来的那个记录必须存在,所以不适合[删除订单后回到原来的位置],因为原来的订单已经不存在了,删除了, moveby(),从当 ...
- poj 3308(二分图的点权最小覆盖)
Paratroopers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8325 Accepted: 2502 Desc ...
- HOJ - 2715最小费用流
国庆八天乐,刷题也快乐. HOJ崩了,但是VJ可以把题目挂出来. 题目链接:https://vjudge.net/contest/188441#problem/A 涉及到矩阵里面的网络流,化为图来做. ...
- jQuery实现tab选项卡效果小demo
html页面: <section> <h2>Section Title</h2> <ul class="tab-nav"> < ...
- CompletionService 与 ExecutorService 获取任务执行结果时的区别
CompletionService 与 ExecutorService 之间的区别 在讨论二者之间的区别之前,先交待一下背景. 看了ElasticSearch Transport模块的源码,里面充满了 ...
- TCP11种状态
2.全部11种状态 2.1.客户端独有的:(1)SYN_SENT (2)FIN_WAIT1 (3)FIN_WAIT2 (4)CLOSING (5)TIME_WAIT . 2.2.服务器独有的:(1)L ...
- Java使用logback记录日志时分级别保存文件
说明:一般情况下logback可以指定类使用什么样的级别显示输出日志,并且同一类可以指定不能级别,然后对应级别进行输出日志. 第一种配置: <?xml version="1.0&quo ...
- linux删除空行操作:awk、grep、tr、sed
如下:如何删除空行 shen\nshen\\n sen seh sehe she she 真正删除空行,可以使用vim: 通过命令模式删除空行.vim在命令模式下(在vim里输入英文字符:进入命令模式 ...
- LibSVM 安装使用
知道这个库已经很长的时间了,一直没有实践,以前也看过svm的理论,今天开始安装一下一直感觉有错误,结果自己傻了,根本没有错,可以直接使用... libsvm参考资料: libsvm下载网址:http: ...
- python 依照list中的dic的某key排序
面试题之中的一个. s=[ {"name":"Axx","score":"90"}, {"name" ...