自己练习的RESTful接收方
IF_HTTP_EXTENSION
双击点进去
"接收格式定义
TYPES: BEGIN OF LS_REQUEST_I,
ACTION TYPE STRING,
DATA TYPE ZFS_ZSMMF001_J,
* DATA TYPE ZSMMF001_TJ,
END OF LS_REQUEST_I.
DATA: LS_REQUEST TYPE LS_REQUEST_I.
DATA: LT_REQUEST TYPE TABLE OF LS_REQUEST_I.
"定义返回值
TYPES: BEGIN OF TY_RETURN,
STATE TYPE CHAR1,
MESSAGE TYPE CHAR255,
END OF TY_RETURN.
DATA: LT_RETUNR TYPE TABLE OF TY_RETURN,
LS_RETUNR TYPE TY_RETURN.
"定义内表
DATA LT_ZTMMF001 TYPE TABLE OF ZTMMF001.
DATA LS_ZTMMF001 TYPE ZTMMF001.
"定义接收JSON串
DATA: LV_JSON TYPE STRING.
DATA: LV_JSON_RT TYPE STRING.
DATA: LV_CONTENT_TYPE TYPE STRING.
"获取接收数据
LV_JSON = SERVER->REQUEST->GET_CDATA( ).
IF LV_JSON IS NOT INITIAL.
CALL FUNCTION 'ZFM_DESERIALIZE_JSON'
EXPORTING
IV_INPUT = LV_JSON
IMPORTING
ES_OUTPUT = LS_REQUEST.
ELSE.
SERVER->RESPONSE->SET_STATUS( CODE = '404' REASON = '接收失败,请检查数据是否异常!' ).
RETURN.
* LS_RETUNR-STATE = 'E'.
* LS_RETUNR-MESSAGE = '接口编号不存在,请检查接口!'.
* APPEND LS_RETUNR TO LT_RETUNR.
* CLEAR LS_RETUNR.
ENDIF.
LOOP AT LS_REQUEST-DATA INTO DATA(LS_DATA).
MOVE-CORRESPONDING LS_DATA TO LS_ZTMMF001.
LS_ZTMMF001-ZUNAME = SY-UNAME.
LS_ZTMMF001-ZERDAT = SY-DATUM.
LS_ZTMMF001-ZERZET = SY-UZEIT.
APPEND LS_ZTMMF001 TO LT_ZTMMF001.
CLEAR LS_DATA.
CLEAR LS_ZTMMF001.
ENDLOOP.
IF LT_ZTMMF001 IS NOT INITIAL.
LS_RETUNR-STATE = '0'.
LS_RETUNR-MESSAGE = '成功'.
APPEND LS_RETUNR TO LT_RETUNR.
ELSE.
LS_RETUNR-STATE = '1'.
LS_RETUNR-MESSAGE = '接口接收失败,纯火'.
APPEND LS_RETUNR TO LT_RETUNR.
ENDIF.
IF LT_RETUNR[] IS NOT INITIAL.
CALL FUNCTION 'ZFM_SERIALIZE_JSON'
EXPORTING
IS_INPUT = LT_RETUNR
IMPORTING
EV_OUTPUT = LV_JSON_RT.
REPLACE 'FACTORY_CODE' WITH 'factory_code' INTO LV_JSON_RT.
REPLACE 'PRODUCT_CODE' WITH 'product_code' INTO LV_JSON_RT.
REPLACE 'SUPPLIER_CODE' WITH 'supplier_code' INTO LV_JSON_RT.
"返回消息
SERVER->RESPONSE->SET_CDATA( LV_JSON_RT ).
"返回HTTP 状态
SERVER->RESPONSE->SET_STATUS( CODE = 200 REASON = 'OK' ).
LV_CONTENT_TYPE = 'application/json'.
SERVER->RESPONSE->SET_CONTENT_TYPE( LV_CONTENT_TYPE ).
ENDIF.
自己做的,有做的不好的地方,大佬们多多提出