# 常见问题

## 预警平台提供了哪些数据源支持？
答：预警平台设计时就考虑了丰富的业务使用场景，目前提供了`单据`,`基础资料`等数据源的通用支持。框架支持`多数据源`，由于多数据源取数复杂性，需要用户自行编写`数据源插件`实现。

## 预警平台通用过滤条件功能不满足需求，可以自定义过滤条件吗？
答：预警平台支持自定义过滤条件，用户可以通过预警平台提供的自定义表单注入动态表单页面，自行构建所需过滤条件。整体过程分为如下几个步骤：
1. 写自定义条件表单，利用平台功能构建表单条件填入页面。自定义条件表单需要配置实现`IEarlyWarnConditionForm`接口的插件，以便预警平台可以获取到用户设置的数据。
2. 编写自定义数据源，实现`IEarlyWarnDataSource` 接口，重写构建取数条件逻辑或重写取数过程。
3. 预警引擎执行时会将自定义条件表单参数注入执行上下文，在执行各个过程需要用到时可以从上下文获取。

## 预警平台支持哪些消息发送方式？
答：预警平台消息发送是通过消息中心发送的，目前支持：`消息中心`、`短信`、`邮件`、`云之家`和`企业微信`。

## 预警平台支持哪些配置哪些消息接收对象类型？
答：预警平台目前支持按`人员`、`用户变量`或`自定义消息接收人`配置用户接收类型。

## 预警平台消息发出后，后续用户操作能控制吗？
答：预警平台消息是通过消息中心发出的，后续消息处理目前只支持消息中心的链接跳转，具体构建链接构建与`工作流`的相关跳转链接构建一致。

## 预警数据量较大，需要如何优化预警执行效率？
答：预警平台的取数逻辑为`IEarlyWarnDataSource`数据源实现，默认提供的`DefaultEarlyWarnBillDataSource` 通过`Orm`框架进行取数，对于大数据场景下可能存在性能问题。有需求用户可以通过实现自定义数据源或继承`DefaultEarlyWarnBillDataSource`，覆写取数方法进行性能优化。

