问题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. Java生成GUID的方法

    其实在Java上已经换了一个说法,叫做UUID,方法如下: java.util.UUID.randomUUID()

  2. 【hibernate postgresql】注解@TypeDef/@Enumerated/数据库字段gender为枚举类型,从前台接受到实体后进行保存报错:org.postgresql.util.PSQLException: ERROR: column "gender" is of type gender but expression is of type character varying

    数据库字段gender为枚举类型,从前台接受到实体后进行保存报错:org.postgresql.util.PSQLException: ERROR: column "gender" ...

  3. Android View 绘制流程(Draw) 完全解析

    前言 前几篇文章,笔者分别讲述了DecorView,measure,layout流程等,接下来将详细分析三大工作流程的最后一个流程——绘制流程.测量流程决定了View的大小,布局流程决定了View的位 ...

  4. mysql 安装配置及经常使用操作

    作为关系型数据库的一种,mysql因其占用内存小和开源等特性而兴起.以下简介下关于mysql配置和简单的操作. mysql配置 1.安装文件的下载 免安装版下载地址 :http://dev.mysql ...

  5. 【经验之谈】适合学习的IT教程站点列表

    ①  CSDN   http://www.csdn.net/ ②  gitHub   https://github.com/ ③  极客学院  http://www.jikexueyuan.com/ ...

  6. 小谈Vim打开文件开头的&lt;feff&gt;

    在本地Windows机上开发的PHP程序上传到linuxserver上后,通过浏览器訪问对应接口.发现返回的数据前多了一个莫名的字符'-',甚为不解.之后通过网络抓包的方式,查看到接口返回数据前多了 ...

  7. android客户端向服务器端验证登陆方法的实现2

    一.在上一篇文章中,我只是提到了其中一种方法来实现登陆 大家可以参见: http://www.apkbus.com/android-45004-1-1.html      android获取web服务 ...

  8. vim 查找整个工程

    1. 使用vim内置搜索引擎 vimgrep 格式::vim /patern/gj ** 命令::vim 或者 :vimgrep 模式: 查询模式包含在 / / 之间 参数: g 表示将同一行搜到的关 ...

  9. hdu 2842(矩阵高速幂+递推)

    题意:一个中国环的游戏,规则是一个木棒上有n个环.第一个环是能够任意放上或拆下的,剩下的环x假设想放上或拆下必须前一个环x-1是放上的且前x-2个环所有是拆下的,问n个环最少多少次操作能够所有拆掉. ...

  10. poj3181 Dollar Dayz

    Description Farmer John goes to Dollar Days at The Cow Store and discovers an unlimited number of to ...