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

Business Central v21:如何拦截销售单生成的仓库装运单创建后事件?

Business Central意大利版21中仓库装运单创建后的拦截事件

在Business Central意大利版21中,确实存在可拦截仓库装运单创建完成后的事件,以下是符合你需求的关键事件说明:

核心可用事件

这些事件均位于标准Codeunit 7316 "Whse.-Create Shpt. Orders"中,意大利本地化版本不会移除标准事件,仅会补充本地化功能:

  • OnAfterCreateWhseShptOrderHeader
    触发时机:单个仓库装运单表头创建完成后
    参数包含:

    • SalesHeader: Record "Sales Header":生成装运单的源销售订单表头
    • WhseShptHeader: Record "Warehouse Shipment Header":新建的仓库装运单表头
      完全匹配你需要的「以销售订单表头为输入参数」的场景,可直接在事件订阅中对新建的装运单表头进行修改。
  • OnAfterCreateWhseShptOrderLine
    触发时机:每一行仓库装运单行创建完成后
    参数包含:

    • SalesLine: Record "Sales Line":源销售订单行
    • WhseShptLine: Record "Warehouse Shipment Line":新建的仓库装运单行
      适合需要针对装运单行进行修改的场景。
  • OnAfterCreateWhseShptOrder
    触发时机:整个仓库装运单(表头+所有行)创建完成后
    参数为:

    • WhseShptHeader: Record "Warehouse Shipment Header":新建的仓库装运单表头
      可通过该表头的Source Document和Source No.字段关联到对应的销售订单,进而完成后续修改操作。

订阅示例(AL代码)

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Whse.-Create Shpt. Orders", 'OnAfterCreateWhseShptOrderHeader', '', true, true)]
local procedure OnAfterCreateWhseShptOrderHeader(SalesHeader: Record "Sales Header"; var WhseShptHeader: Record "Warehouse Shipment Header")
begin
    // 在这里添加对WhseShptHeader的修改逻辑,比如更新特定字段
    WhseShptHeader."自定义字段" := SalesHeader."销售订单对应字段";
    WhseShptHeader.Modify(true);
end;

内容的提问来源于stack exchange,提问作者Lorenzo Soncini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 08:02:46