使用WorkFine无法直接实现需求时,可以借助外力实现所需功能,比如使用AI、脚本、Windows功能等。

功能需求
当系统检测到异地登录时发送邮件到指定邮箱通知
最终效果

功能特点:
- ✅灵活配置:独立的数据库、邮箱等关键信息存储在配置文件内
- ✅自动检测:通过Windows计划任务实现无感运行
- ✅日志输出:记录执行过程和结果,可配置存储日志时长
- ✅ 数据库监控:实时检测异常登录日志。
- ✅ 自动化运维:减少人工检查成本,自动告警。
- ✅ 安全审计:快速发现异常登录行为。
实现方法(后面附思路)
- 数据获取:通过WorkFine系统日志表
- 数据引入:通过WorkFine外部数据源引入日志表
- 数据处理:通过三个视图完成数据处理
- 脚本检测:脚本文件自动检测上一步视图中数据,有符合条件就发送邮件

实现思路
通过现有数据进行分析,问AI是个不错的选择。
通过下图数据可以这样问:
AI完整回答【点击查看】,通过AI回复,得到解题思路,可以使用WorkFine支持的窗口函数ROW_NUMBER
和自连接实现数据处理,由于WorkFine定时任务尚未支持邮件发送,我们就通过脚本文件+Windows定时任务实现邮件发送功能


有了思路后,就是开始实施了,相关截图如下:



资料列表
├─📄 新IP登陆提醒.ps1
├─📄 Monitor-SQLLoginLogs.config.json
└─📄 Monitor-SQLLoginLogs.log
使用帮助
按照文章内步骤创建好视图数据后,使用脚本文件+Windows定时任务进行部署
配置文件填写示例
{
"Email": {
"UserName": "ilishengxi@vip.qq.com", // QQ邮箱账号(需开启SMTP服务)
"SmtpPort": 587, // QQ邮箱SMTP端口(SSL加密端口)
"Password": "fazxluqjjelaagbihe", // QQ邮箱授权码(非登录密码)
"Encoding": "UTF8", // 邮件内容编码(防止中文乱码)
"Subject": "新IP登录提醒", // 邮件主题
"SmtpServer": "smtp.qq.com", // QQ邮箱SMTP服务器地址
"From": "ilishengxi@vip.qq.com", // 发件人邮箱(需与UserName一致)
"UseSSL": true, // 启用SSL加密连接
"To": "ilishengxi@vip.qq.com" // 收件人邮箱
},
"SQLServer": {
"UserName": "sa", // SQL Server登录账号
"TimeColumn": "UDF_V_3549", // 记录时间的字段名(自定义字段)
"IPColumn": "UDF_V_3548", // 记录IP地址的字段名(自定义字段)
"Database": "WF_WZGL", // 数据库名称
"Password": "SrK7AuH9%jJ7", // SQL Server密码(注意转义特殊字符)
"ResultColumn": "UDF_V_3550", // 检测结果的字段名(值应为'不同')
"Table": "UDV_412", // 数据表名
"Server": "127.0.0.1,15689" // 数据库服务器地址和端口(注意端口号)
},
"Settings": {
"TimeThresholdMinutes": 5, // 检测时间范围(分钟)
"LogRetentionDays": 20 // 日志保留天数
}
}
需要协助部署的请联系站长付费部署
常见问题
相关知识清单
以下是本示例完成的主要知识点,没有带链接的可AI一下
- WorkFine系统表
- 外部数据源
- 视图
- SQL 语句
- 邮箱配置
- PowerShell脚本
“任何功能的设计都应以实际需求为出发点。”
结语
通过此案例,最重要的不是实现相同的功能,而是掌握一种突破WorkFine现有功能限制的思路与技巧。借助这一方法,可以在WorkFine现有框架下实现更灵活的数据处理逻辑,通过对相邻记录差异的分析,提取出符合业务需求的关键信息。类似的应用场景非常广泛。
更多相关场景
1. 数据变更追踪(Change Tracking)
- 场景:监控数据表中的变化,例如订单状态变更、库存变动等。
- 实现:使用
LAG()
或自连接方法,标记相邻行数据不同的记录,便于后续分析或触发业务逻辑。
2. 时间序列数据分析
- 场景:分析股票价格、温度记录、销售数据等时间序列数据,识别突变点。
- 实现:计算当前行与前一行的差值,若差值超过阈值则标记为异常。
3. 日志审计(Log Auditing)
- 场景:检查数据库日志或操作记录,识别异常操作(如短时间内多次修改同一数据)。
- 实现:比较相邻行的操作类型或时间戳,若不一致则标记为可疑记录。
4. 数据清洗(Data Cleansing)
- 场景:检测重复数据或数据突变(如用户信息突然变化)。
- 实现:使用
LAG()
检查相邻行是否相同,若不同则可能需要人工审核。
5. 业务流程监控
- 场景:跟踪工作流状态变化(如订单从”待处理”到”已发货”)。
- 实现:比较
status
列,若当前行与上一行不同,则触发通知或记录变更历史。
6. 财务数据核对
- 场景:核对银行交易记录,检测异常交易(如金额突变)。
- 实现:比较相邻行的
amount
值,若差异显著则标记为待审查。
7. 物联网(IoT)设备监控
- 场景:监测传感器数据突变(如温度骤升)。
- 实现:使用
LAG()
计算当前值与前一值的差异,超出合理范围则报警。
其实官方解决方案中9.2 业务流转方案有些相似之处,各位Fine友可以参考学习