You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

查询Dynamics AX 2009中销售订单及行创建完成过账结束的触发时点

Dynamics AX 2009 销售订单过账完成后自定义代码触发位置

符合你要求的触发点共有两类,可根据实际业务场景选择:

1. 标准过账场景首选:SalesFormLetter类run方法末尾

  • 适用场景:所有走系统标准过账流程(发货过账、发票过账、合并过账等)的销售订单
  • 触发逻辑说明:SalesFormLetter是AX 2009所有销售过账逻辑的核心基类,run方法的super()调用完成后,就代表整个过账事务已经提交,SALESTABL头、SALESLINE行以及所有关联过账台账数据都已完全落库,不存在回滚风险,完全匹配你要的「全流程完成后触发」的需求。
  • 实现提示:在run方法super()执行完成后添加判断,仅当过账状态为成功、且过账类型符合你的业务要求时,读取当前过账的销售订单编号,按顺序遍历关联的SALESLINE行执行自定义逻辑即可。

2. 全场景覆盖可选:SALESTABLE表update方法后置逻辑

  • 适用场景:需要覆盖前端手动过账、后台批量接口创建过账等所有订单完成场景
  • 触发逻辑说明:销售订单全流程过账完成后,SALESTABLE的DocumentStatus字段会更新为对应的最终状态(如已开票),你可以在update方法的super()执行完成后,添加状态变更判断,仅当订单从非最终状态更新为你需要的最终过账状态时,再触发自定义逻辑。
  • 注意事项:需要额外添加幂等校验,比如给SALESTABLE加一个自定义布尔字段标记自定义逻辑是否已执行,避免同一个订单多次触发重复执行。

注意:不要直接在SALESTABL或SALESLINE的insert方法中添加逻辑,销售订单创建和过账处于同一个数据库事务中,insert触发时事务还未提交,一旦后续过账校验失败回滚,你的自定义代码已执行的操作无法同步回滚,会导致数据不一致。

内容的提问来源于stack exchange,提问作者Bekir Ozpozan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 17:36:04