黄山市网站建设_网站建设公司_导航易用性_seo优化
2025/12/21 8:36:38 网站建设 项目流程

WBSTK 为空的场景不仅存在,而且是 SAP 标准设计,跟“有没有财务凭证”毫无关系。下面把逻辑彻底拆一遍,告诉你为什么系统会给出 WBSTK = 空,而且完全正确。


  1. WBSTK 的字段定义
    域:LFSTK_WRF(3 位,A/B/C/空)
    语义:仅当“存在交货单(LIKP)”时才被使用;
    对“没有交货单”的凭证类型,系统硬编码保持 INITIAL。

  2. 更新逻辑(代码位置:SAPLV60A 例程 RV_DELIVERY_STATUS_UPDATE)
    IF 销售凭证类别 = ‘J’(退货)、‘T’(退货贷项)、‘G’(贷项)、‘F’(发票)等
    或 开票类别 = ‘F1’(订单发票)、‘G2’(贷项)等
    → 跳过 WBSTK 更新,保持空值。

    只有下列场景系统才会写 A/B/C:

    • 先建交货单(LF 类型)再开票(F2、LR、LF、LG …)

    • 或订单类型本身需要发货(如标准销售订单 OR、现金销售 BV、紧急订单 SO 等)

  3. 因此常见组合
    a) 标准销售流程
    订单 OR → 交货 LF → 发票 F2
    结果:VBUK-WBSTK = C(货已发)
    VBUK-FKSTK = C(发票已开)
    VBUK-BUCHK = C(财务已过账)

    b) 订单-直接开票(不交货)
    订单 OR → 发票 F1(勾选“直接过账库存”)
    库存由开票过账消耗,但系统不会建交货单。
    结果:VBUK-WBSTK = 空 (标准设计)
    VBUK-FKSTK = C
    VBUK-BUCHK = C

    c) 贷项通知单(G2)
    无交货、无发货,只开一张贷项发票,同样 WBSTK = 空。

  4. 验证办法
    SE38 运行 RV_BILLING_DOCUMENT_STATUS 或者断点
    在 include LV60AA12 里可看到:
    IF NOT lf_delivery_exists. “没有交货单
    CLEAR vbuk-wbstk. “直接清空
    ENDIF.


结论
WBSTK 为空并不代表“状态丢失”,而是系统告诉你:
“这张发票走的就是‘无交货单’路线,库存变化由开票过账直接完成,不需要也不应该去看 WBSTK。”
所以——

  • 要判断“库存是否已出库”:先看有没有交货单,有就看 WBSTK;没有交货单,就去物料凭证(MKPF/MSEG)里找移动类型。

  • 要判断“财务是否已记账”:直接看 BUCHK 或 VBRK-BUCHK,与 WBSTK 毫无关系。

之前把“财务记账”和“发货过账”混为一谈,确实错了,感谢指正。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询