跳到主要内容

如何获取与A应用项目有交集的所有数据?

场景/问题描述

客户在轻流A表单内记录了任务及任务参与人信息,需要在轻流B表单内发起数据进行通知所有涉及到任一任务相关参与人。

思路逻辑

使用代码块来进行筛选另一个应用的数据,当选择好了多项选择的内容,通过代码块来进行讲多项选择的内容与应用的所有数据进行对比筛选,如果两者有交集就符合条件,就会将对应数据提取出来

配置过程

表单设计

image.png

image.png

image.png

代码块内容

const axios = require('axios');
let data = JSON.stringify({
"pageSize": "50",
"pageNum": "1"
});
let config = {
method: 'post',
url: 'https://api.qingflow.com/app/请替换appkey/apply/filter',
headers: {
'accessToken': '请替换accessToken',
'Content-Type': 'application/json'
} ,
data: data
};

axios(config)
.then(function (res) {
const msg = res.data;
const result = msg.result.result;
const res_list = [];

result.forEach(value => {
const res_msg = {};

value.answers.forEach(v => {
const queId = v.queId;
const queTitle = v.queTitle;

if (queId ===请替换多项选择的queId) {
const values = v.values;
const dataValue =values.map((value) => value.dataValue).join(',');
res_msg[queTitle] = dataValue;
};
if (queId === 请替换参与人字段queId || queId === 请替换邮箱字段queId) {
const values = v.values;
const dataValue = values[0].dataValue;
res_msg[queTitle] = dataValue;
}

});

res_list.push(res_msg);
});
const a = 请替换多项选择字段;
var str = a.join(",");
let result1 = res_list.filter(obj => {
return str.split(",").some(val => obj.请替换多项选择字段名.split(",").includes(val));
});
qf_output = {result1};
});

实现效果

B表单数据录入情况:

image.png

A表单代码块效果:

企业微信截图_16988088891409.png