一
前言
数据同步平台是在ABAP中开发的一个数据同步工具,类似于LTRC,通过配置实现任意两个数据库的数据同步(ABAP需要配置相关的外部数据库连接).
数据同步平台的底层通过调用ADBC类实现远程数据库的读取,写入. 数据同步平台也支持接口方式
DEFAULT 表示连接当前系统
PO 表示目标是PO中间件,此时需要指定相应的中间件对象名称
REST 标识目标系统是REST服务, 此时需要指定REST相关的调用信息
FUNC 调用特定函数去执行外部系统调用,函数名维护在ZTSYNC_C1-EXT_CALL_FUNC
本文介绍数据同步平台对钉钉宜搭普通表单的数据写入支持
二
数据同步平台
详见连接
无峰,公众号:ABAP 技巧与实战SAP工具箱 数据同步平台( 一 简介 )
三
钉钉宜搭
钉钉宜搭帮助中心
详见连接
https://docs.aliwork.com/?spm=a2q5o.26736373.0.0.12e32546CNF2VO
宜搭常用功能
01
流程表单
流程表单是宜搭支持的一种应用模式,由流程的发起人填写表单数据,流程的审批环节补充表单数据,审批通过的表单数据可以提交给其它业务系统.
流程表单允许可视化设计复杂的审批流程及自动化处理
02
普通表单
类似于主数据表,用于支持流程表单的数据选择,自动填充关联内容等.普通表单没有审批环节, 普通表单支持主子表单(两种排列显示方式 平铺方式 表格方式 )
平铺模式
四
DEMO实现场景
单表写入普通表单(非主子表)
单表写入普通表单(主子表)
01
单表写入普通表单(非主子表)
关键信息准备,配置表ZTDINGDING_C1
字段关系对应(配置表ZTDINGDING_C2)
示例数据来自SAKT,SKA1. 通过视图 ZDDL_TS041 把数据整合起来,注意视图最好包含时间戳字段,以便比较变化的数据
配置数据同步平台
表ZTSYNC_C1
CON_NAME_TAR 目标数据库连接使用 FUNC
EXT_CALL_FUNC 特殊外部系统调用逻辑封装的函数 Z_BC_SYNC_DINGDING_YD_CALL 封装了对钉钉宜搭表单写入的调用
JIEK_TYPE 下传接口的类型 S(S表示单表结构)
MESSAGE_NUM 消息中的条目数 100(数据多的时候,需要拆分多次调用,这里指框架指定的每个消息中按分组字段识别的记录数.
PO_GROUP_FIELDS PO/REST调用的分组字段 可以设置关键字. 单表结构可以不设置,此时所有数据一次性调用. 钉钉处理类中再次执行了数据的分包.
FIELDNAME_TIMESTAMP 读取变化量的时间戳字段名
TIMESTAMP_TYPE 时间戳类型 N 表示UTC时间戳. 标准表的时间戳字段大多是UTC时间戳,和本地时间戳可能会有8小时差异, 设置时间戳类型后, 数据同步平台会调整相应的时间戳比较和存储使用指定的类型
配置接口
表 ZTIF002
其中主键检查字段,用于记录关键字和钉钉表单关键字的对应关系,用于确定后续数据写入方式(新增, 修改). 避免数据重复写入.
接收数据类型定义
创建事务代码
执行事务代码
ZTS041
初始化(全量)执行时,可以通过动态选择屏幕设置选择条件
勾选显示详细日志,执行后,可以看到执行记录
执行后,记录的关键字对应关系
以便后续传递时判断是创建还是修改. 如果清空宜搭的表单数据,需要同时清空一下这个表记录的内容.以免调用接口报错
宜搭表单数据查看
接口日志
ZIFLOG 查看接口执行记录,报文详情,报文解析清单
表ZTSYNC_RESULT 可以查看下传程序的执行日志.
如果执行获取数据失败, 此时会有执行日志,没有接口日志
02
单表写入普通表单(主子表)
主子表的配置大部分和单表配置一致. 下面仅列出差异项
子表单节点配置
接口类型配置,
分组字段需要配置为主表关键字
写入宜搭的数据
五
关键代码段
函数Z_BC_SYNC_DINGDING_YD_CALL
配置在ZTSYNC_C1- EXT_CALL_FUNC. 数据同步平台通过配置的函数扩展特殊类型的接口调用.
类ZCL_DINGDING 所有钉钉相关的功能封装在这个类中.
目前包含功能
获取TOKEN(工作通知, 宜搭表单)
发送工作通知
写入宜搭表单数据
......
六
总结
扩展数据同步平台. 添加对钉钉宜搭表单的写入支持.
开发人员仅需把较复杂的数据获取逻辑整合在CDS视图中. 然后完成如下配置即可实现主数据同步到宜搭表单
ZTSYNC_C1 数据同步平台配置
ZTIF002 接口定义
ZTDINGDING_C1 配置接口和钉钉-宜搭表单对应关系及相关参数
ZTDINGDING_C2 配置接口和钉钉-宜搭表单对应关系及相关参数
THE
END
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
请微信联系管理员:
syjf1976
sharry_xlp
Yannick_Duan
申请进入公众号讨论群提问或者参与话题讨论