问题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.
 11:37:47
返回JASON 内容
[{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. 写一方法用来计算1+2+3+...n,其中n作为参数输入,返回值可以由方法名返回,也可以由参数返回

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. C++ 需要返回值的函数却没有返回值的情况 单例模式

    昨天在看前些天写的代码,发现一个错误. #include <iostream> using namespace std; class singleton { public: static ...

  3. Java多线程带返回值的Callable接口

    Java多线程带返回值的Callable接口 在面试的时候,有时候是不是会遇到面试会问你,Java中实现多线程的方式有几种?你知道吗?你知道Java中有可以返回值的线程吗?在具体的用法你知道吗?如果两 ...

  4. 测试函数用Return 返回值和用函数名返回值的区别

    '*************************************************************************'**模 块 名:工程1 - Form1'**说   ...

  5. (转)函数中使用 ajax 异步 同步 返回值错误 主函数显示返回值总是undefined -- ajax使用总结

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAloAAAE0CAIAAAB7LwoKAAAgAElEQVR4nO2dy6sc152A6+/R2mXwSn ...

  6. 怎样获取shell函数的返回值及shell命令的返回值?

    1.获取shell函数调用的返回值: #!/bin/sh info() { cat jlb.sh } res=`info` echo "state: "$? echo " ...

  7. mysql更新返回值问题(更新内容跟之前内容一样,返回0)

    mysql更新返回值问题 问: 有一界面要更新个人信息,有几十个text标签需要填写假设有一用户从用户列表点修改进入了修改页面,但又没有修改什么,马上点击保存这时,因为text标签非常多,不能够一一判 ...

  8. ForkJoin有参无返回值、有参有返回值实例

    介绍: a . Fork/Join为JKD1.7引入,适用于对大量数据进行拆分成多个小任务进行计算的框架,最后把所有小任务的结果汇总合并得到最终的结果 b . 相关类 public abstract ...

  9. SpringMVC中使用@ResponseBody注解将任意POJO对象返回值转换成json进行返回

    @ResponseBody 作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区. ...

随机推荐

  1. Objective-C日期相关工具方法

    //date根据formatter转换成string +(NSString*)dateToString:(NSString *)formatter date:(NSDate *)date { NSDa ...

  2. ASP.NET路由应用及IIS配置(非MVC)

    一.前后台代码: Global.cs: using System.Web.Routing; ... void Application_Start(object sender, EventArgs e) ...

  3. WCF的学习之旅

    一.WCF的简单介绍  Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是MS为SOA (S ...

  4. win7dos删除文件和删除文件夹

    如果要删除呢?也简单:假设删除d盘下的123文件夹 del/s/q d:\123\*.* ----(用于删除文件夹下的子文件) rd/s/q d:\123 ----(用于删除文件夹) /s参数为子目录 ...

  5. js中cookie、sessionStorage、localStorage

    一.cookie <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  6. Codeforces Gym101606 C.Cued In (2017 United Kingdom and Ireland Programming Contest (UKIEPC 2017))

    C Cued In 这个题是打球的.都忘了写的什么了... 代码: 1 #include<iostream> 2 #include<cstring> 3 #include< ...

  7. Xamarin.Forms XAML控件的公共属性

    Xamarin.Forms XAML控件的公共属性   Xamarin.Forms XAML控件有很多.通过官网API,可以查看每个控件的属性.但是官网只给出了控件的特有属性,而公共属性没有列出.所以 ...

  8. HDU 2586 How far away ? 离线lca模板题

    How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  9. 2008 SQL SERVER 用户 架构

    2008 SQL SERVER 用户: SERVER用户与数据库用户 SERVER 与 数据库用户的映射,以使 登陆用户可访问数据库 架构等同于SCHEM (表空间),即表空间管理对象,建立层次对象关 ...

  10. ios 联网 在mac机器上进行抓包

    Remote Virtual Interface在使用Mac抓取iPhone数据包中介绍了两种方式在Mac电脑上抓取iPhone上的数据包,一是使用Mac的网络共享功能将Mac的网络通过WiFi共享给 ...