# 每月5号定时查询上月未提交项目月报的同事并进行提醒

来源快照：`result_data_new_260518.json`

- 来源 ID：`1972743077440362839`
- 模块：低代码平台e-builder
- 目录：专题学习 - 场景专题 - 数据加工专题
- space ID：`1157961794811633670`
- 原文链接：未提供
- 产品基线：未提供

## 正文

**1.  ****编写目的  **

在项目管理场景中，项目经理需要对状态为“进行中”的项目，每月填写项目月报，汇报项目进展。在次月5号，系统会自动查询出上个月未填写月报的项目经理，并发送消息进行提醒：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706527909421080&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706532015013889&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706531970244617&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)  


  


**2.  ****思路分析**  

对于上述场景，我们会首先联想到采用动作流【定时触发】，然后用【数据源查询】或者【DML】直接查询“项目月报”这张表单，找出上月未写月报的人员。但是这里有一个误区：“项目月报”表里，只会记录谁填写了月报，并不会记录谁没有写，因此我们无法直接查询到有效数据。

此时我们可以使用数据加工中的sql视图，首先查询出“项目月报”中填写日期是上个月的数据，之后与“项目信息”表做右链接，这样就能查看各个项目上个月的填写情况（如下图所示），最后通过动作流【定时批量触发】，进行【消息提醒】。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706532179222566&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

** **

**3.  ****操作说明**  

**3.1****搭建项目信息表 &项目月报表 **

首先搭建项目信息表，放入项目经理（人员选择）、项目状态（下拉框）等关键字段：![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706536435810340&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

之后搭建项目月报表，放入关联项目（关联e-builder）字段，关联项目信息表：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706536500092985&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

**3.2****新建SQL视图**

SQL视图是数据加工模块提供的一项功能，其目的是帮助用户直接从数据库查询、过滤数据，并生成数据集，之后可以在虚拟表、页面组件数据源、报表数据集等场景中引用。目前仅私有化部署可以使用SQL视图，云端暂不支持。

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706540655280130&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

首先新建SQL视图，需要确定自己的数据库是mysql还是其他的数据库，不同的数据库SQL语句会有所区别。之后依据本场景需求撰写SQL如下：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706540576219150&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

撰写完成后，设置输出字段，对字段的属性进行设置。这一步很多人会忽略，如果不设置的话，所有字段默认属性是文本类型，此时浏览类型字段会显示成id字符串，日期、数字等字段也会在之后的使用中被识别成文本：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706540778283032&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

设置完成后，点击保存，再点击运行即可查看sql视图效果：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706544997752857&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

 

**3.3****配置定时触发动作流**

新建动作流，由于需要每月5号进行触发，并且已经有对应的数据源，因此选择触发方式为“定时或指定时间触发-定时批量触发”：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706544997752870&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

数据源选取数据加工-sql数据集中的数据，条件设置为“填写日期”字段为空，这样就能筛选出哪些项目未填写：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706544882253863&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

之后添加动作消息提醒，目前支持的有IM、云桥、邮件、短信，以IM为例，设置提醒标题、提醒内容（两者都可以拼接动态参数）：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706549233262605&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

之后可以设置PC端和移动端链接，让用户点击消息，自动打开链接的内容。例如在该场景中，我们希望用户点击消息，能打开对应项目的显示详情。那么首先我们复制项目信息表的表单显示布局：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706549312323608&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

复制粘贴到动作流中，并将$dataid$，替换成动态赋值ID字段。移动端链接将sp换成mobile即可：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706549312323630&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

最后设置提醒对象，选择项目经理字段作为提醒人：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706553589628945&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)

配置完成后，用户可以点击手动执行测试效果，需要注意的是：批量触发的动作流，手动执行只会执行一条数据，只有自动触发才会执行所有数据。

最后的展示效果如下：

![](https://weapp.eteams.cn/papi/file/preview?fileId=1157706557806419969&type=redirect&customParam=%7B%22isExtDist%22%3Atrue%2C%22distributeId%22%3A%22%22%2C%22externalId%22%3A%22%22%2C%22appId%22%3A%22%22%7D)
