学习目标:
掌握RFC并且写一个简单的RFC函数
学习内容:
写RFC函数步骤
1、 创建函数
2、 创建入参(导入)
3、 创建返回(导出,表)
4、 写源代码
制作步骤:
1、创建函数
输入事务编码:SE37,自定义函数名创建,属性设置远程启用的模块。
2、创建入参(导入)
入参只有一个物料编码(i_matnr)
3. 创建返回(导出,表)
导出:一个执行结果的结构(es_return)。表:物料的信息(表名:et_data 参照结构:zscj_dxl_003)
4.源代码
DATA: gt_out TYPE TABLE OF zscj_dxl_003, "声明一个内表
gs_out TYPE zscj_dxl_003. "声明一个工作区
DATA ls_json TYPE string."声明json接收的变量
IF i_matnr IS NOT INITIAL. "判断输入是否为空
SELECT
a~matnr
a~ersda
a~meins
b~maktx
FROM mara AS a
JOIN makt AS b ON a~matnr EQ b~matnr
INTO TABLE gt_out
WHERE
a~matnr = i_matnr.
"将物料代码去掉前导0
LOOP AT gt_out INTO gs_out.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = gs_out-code
IMPORTING
output = gs_out-code.
MODIFY gt_out FROM gs_out.
ENDLOOP.
"将内表数据加到函数输出表中
APPEND LINES OF gt_out TO et_data.
"内表转JSON
CALL METHOD cl_fdt_json=>data_to_json
EXPORTING
ia_data = gt_out "gt_out为内表
RECEIVING
rv_json = ls_json. "ls_json为接收json串的变量
es_return-type = 'S'.
es_return-message = '物料查询成功'.
es_return-json = ls_json.
ELSE.
es_return-type = 'E'.
es_return-message = '物料编码不能为空'.
ENDIF.
学习产出:
制作了一个RFC函数,既可以返回表参数,也可以返回JSON格式数据