订单装运延迟时警报 - 工作流事件处理程序
订单装运延迟,并且移动用户已订阅特定客户的订单装运延迟警报时,该事件处理程序会向该用户发送发货通知。
该事件处理程序激活后,新事件将触发创建用于控制该警报电子邮件通知调度的警报。缺省情况下,订单装运警报通知在处理程序激活时以及此后每隔 24 小时发送。(您可以更改与调度“事件触发器”表单中的事件关联的缺省值,方法是重置该表单中的条件、条件重新测试间隔和触发器重置间隔值。
事件处理程序激活并且创建 OrderShippingAlert 事件触发器后,系统将使用 TrackRows 表保存需要发送通知的发货列表(基于“订单装运延迟警报”是否有任何订阅者),并在每次延迟订单发货时更新该列表。
事件触发器会在每天指定的时间运行存储的程序 LateOrderShippingAlertsSp。它执行以下任务:
- 基于客户号检查通知订阅者有无订单装运延迟警报。通知订阅者可在“通知订阅者”表单中使用“通知名称”= 'OrderShippingAlert' 和“关键字值”= 客户号找到。
- 如果存在通知订阅者,存储的程序会获取订阅者的电子邮件地址,使用“用户”表单中定义的地址。
- 对于每位通知订阅者,存储的程序会查找该客户自上次运行存储的程序后创建的任何订单装运延迟记录。它会将这些记录插入到将成为电子邮件消息正文的变量中。
- 存储的程序输出以下值:
- 变量中存储的订阅者的列表。
- “订单装运延迟警报”电子邮件的消息正文。
一封电子邮件的消息正文应仅包含一个订单及其行/物料。消息正文的容量约为 4,000 个字符(约 40 行)。如果创建的消息正文超过 4,000 个字符,将创建另一封电子邮件包含之前电子邮件未容纳的其余行/物料。
存储过程 DeleteCoShipTrackRowsSp 会在成功发送订单装运电子邮件通知后清除 TrackRows 表。
相关事件和存储的程序
事件 LateOrderShippingAlert 有 3 个操作:
- 操作类型:调用数据库方法 - 调用 LateOrderShippingAlertsSp 并返回两个变量,一个用于订阅者列表,另一个用于消息正文。
- 操作类型:发送电子邮件 - 创建一封电子邮件并使用从 LateOrderShippingAlertsSp 传入的变量将其发送到订阅者列表。
- 操作类型:调用数据库方法 - 调用 DeleteCoShipTrackRowsSp。仅当之前的操作中生成的电子邮件成功发送后才会调用该方法。
事件触发器
- 条件:TRUE
- 条件重新测试间隔:86400
- 触发器重置间隔:86400
- 计划:处理程序最初激活时触发。然后,触发器会在此后每隔 24 小时触发。