如何在GXFlow中实现流程按指定周期自动启动?
解决方案:实现GXFlow流程每月自动启动
1. 创建定时触发的后台程序
在GeneXus中创建一个Scheduled Procedure,用于每月触发流程启动:
- 新建Procedure对象,命名比如
LaunchMonthlyFlow - 在属性面板中设置Schedule:选择"Monthly",配置具体执行日期(如每月1号)和时间
- 将程序的Execution Mode设为
Background,运行环境选择.NET
2. 调用GXFlow API启动流程
在Procedure的主代码块中,调用GXFlow的StartProcess方法启动目标流程。示例代码(GeneXus语言):
&ProcessId = "你的流程ID" // 替换为实际流程ID,可从GXFlow设计器获取 &UserId = "系统用户ID" // 指定拥有流程启动权限的用户ID &Success = GXFlow.StartProcess(&ProcessId, &UserId, &ErrorMsg) If &Success &LogId = LogInfo("流程" + &ProcessId + "已自动启动", "GXFlow Auto Launch") Else &LogId = LogError("流程启动失败:" + &ErrorMsg, "GXFlow Auto Launch") EndIf
注意:
&UserId必须是拥有该流程启动权限的系统用户,否则会启动失败。
3. 确保自动启动后表单正常发送
结合你已配置的提醒任务,确认以下两点:
- 流程第一个任务的Assignment Type已正确配置(如分配给指定用户/角色)
- 任务的Notification Settings已启用,保证表单链接能通过邮件/系统消息发送给目标用户
4. 部署与验证
- 将Scheduled Procedure部署到.NET Web环境
- 在GeneXus的Server Administration中确认定时任务已启用且执行计划配置正确
- 可先设置测试计划(如每分钟执行一次)验证流程自动启动功能,测试完成后改回每月执行
关键注意事项
- 确保GXFlow服务在服务器上持续运行,定时任务依赖GeneXus后台服务调度
- 定期检查日志,确认定时任务执行状态
- 验证系统用户权限,避免因权限不足导致流程启动失败
内容的提问来源于stack exchange,提问作者CarlosR
相关产品推荐
相关产品推荐

