通过飞书机器人调用SAP服务 (3/3)
james
2021.06.23 12:00发布于技术 - 新手入门
1130
本例描述的是让用户在飞书聊天群里用户呼叫飞书机器人,调用后端Mendix服务,返回SAP查询信息给飞书聊天群。

第三部分 SAP后台ODATA服务开发

在Mendix中根据SAP Odata服务(ZRFICO_PROJECT_SRV)的$metadata,创建如下数据模型,以及EntitySet:

图片0.png

通过导入SAP Odata服务的Metadata (http://10.60.89.37:8000//sap/opu/odata/sap/ZRFICO_PROJECT_SRV/$metadata), 生成mpk文件后再导入Mendix生成数据模型。

图片50.png

图片51.png

图片52.png

服务URI信息保存在固定变量中:

图片53.png

在SAP中创建ODATA的步骤如下:

1、SEGW – SAP Gateway Service Builder 创建新的项目

图片54.png

2、SEGW – 导入数据模型

图片55.png

图片56.png

图片57.png

3、生成Runtime Objects – 获得Technical Service Name

设置完毕后,运行生成:

图片59.png

图片60.png

获得服务名称“ZRFICO_PROJECT_SRV”。

图片59.png

图片61.png

4、设置Query服务对应的SAP程序

图片59.png

图片61.png

图片65.png

程序分2部分:

1、读取通过zacdocaSet?$filter输入的Query条件

举例:

read table it_filter_select_options
  into ls_filter
 with key property = 'Rbukrs'.

if sy-subrc = 0.
      loop at ls_filter-select_options into ls_select_options.
        append initial line  to lt_RBUKRS assigning <fs_RBUKRS_id>.
        move-corresponding ls_select_options to <fs_RBUKRS_id>.
        unassign <fs_RBUKRS_id>.
      endloop.
else.
endif.

2、运行Select,把查询结果写回到et_entityset变量中

 select *
  from ACDOCA into corresponding fields of table lt_entityset
  where RLDNR = '0L'
  and BELNR IN lt_BELNR
  and RBUKRS IN lt_Rbukrs
  and GJAHR IN lt_GJAHR  .
 et_entityset = lt_entityset.

(连载完)

感谢亦政、承相、Matt、Mendix超哥对本次测试的大力支持和帮助!

 

 

颂文Gavin
点赞
收藏
手机查看
举报
0个评论
倒序看帖
仅看楼主

暂无数据