创建销售订单-交货单-发货过账对应表_SAP刘梦_新浪博客

本文详细介绍了SAP系统中从销售订单(SO)到交货通知(DN)再到发货过账的完整流程,包括创建SO2800000316、DN8800000170及发货过账4900014566的具体操作,同时涵盖了相关表如VBAK、VBAP、LIPS、LIKP、MKPF、MSEG的使用,以及冲销、重新发货和删除交货单的过程。

仅仅是记录下,好久不做这块了,好多想不起来了。


这里仅仅是记录下。


首先:

创建SO 2800000316

创建DN 8800000170

发货过账4900014566


SO表:VBAK VBAP等

DN表:LIPS LIKP等

物料凭证表:MKPF MSEG等

另外还有关联的VBFA


创建销售订单-交货单-发货过账对应表


VL09冲销
创建销售订单-交货单-发货过账对应表

VL02N重新发货过账
创建销售订单-交货单-发货过账对应表

再冲销
创建销售订单-交货单-发货过账对应表

VL02N删除交货单(交货单是物理删除的)

创建销售订单-交货单-发货过账对应表

再参考SO创建DN
创建销售订单-交货单-发货过账对应表

再发货过账

创建销售订单-交货单-发货过账对应表




<think>嗯,用户这次的问题是如何在SAP系统中判断销售订单对应的交货单是否全部过账完成。我需要结合用户提供的四个引用资料来思考解决方案。 用户提供的引用中,引用[1]提到通过ABAP程序批量创建销售订单交货单过账,这说明交货单过账状态是可以通过程序化方式获取的。引用[2]谈到采购订单交货单的关联增强,虽然场景不同,但原理相通——都需要建立订单交货单的对应关系。引用[3][4]则揭示了交货单过账失败的原因,过账状态存在明确的系统标识。 从技术实现角度,最核心的方案应该是检查VBUK的状态字段。比如VBUK-STATUS字段,当值为C时示完全过账。考虑到用户可能需要实时监控,可以建议开发状态检查报,结合VBUK和VBUP关联查询。另外引用[1]提到的BAPI函数如BAPI_OUTB_DELIVERY_CONFIRM_DEC也可能包含状态信息。 用户可能是SAP运维人员或业务顾问,实际需求可能源于订单跟踪场景。深层需求或许是希望自动化监控交货状态,避免人工检查遗漏。需要强调两点:一是系统标准字段的可靠性,二是考虑部分过账的情况——比如引用[3]中批次日期冲突导致的过账失败。 最后要提醒权限问题,因为VBUK这类通常需要开发权限访问。如果用户没有权限,可能需要建议通过交货单清单(事务代码VL06O)手动筛选。 </think>在SAP系统中判断销售订单对应的交货单是否全部过账完成,可通过以下方法实现: --- ### **核心方法** 1. **通过交货单状态字段判断** 在交货单抬头`VBUK`中,关键字段: - `VBUK-STATUS`:交货单总体状态 - `VBUK-WBSTA`:交货状态 ✅ **完全过账标志**:当`VBUK-WBSTA = 'C'`时,示该交货单**已完全过账**(C=Complete)[^1][^3]。 2. **检查销售订单行项目状态** 在销售订单行项目`VBUP`中: - `VBUP-GBSTA`:行项目状态 ✅ **关键值组合**:若所有行项目的`VBUP-GBSTA`包含 **'C'(已完成)** 且不存在 **'A'(未处理)** 或 **'B'(部分处理)**,明所有交货单均已过账[^1][^3]。 --- ### **操作步骤** #### 方法1:直接查询数据(需开发支持) ```sql SELECT vbeln, wbsta FROM vbuk WHERE vbeln IN (SELECT vbeln_vl FROM vbfa WHERE vbelv = '销售订单号' AND vbtyp_v = 'C') AND wbsta <> 'C'. "存在非'C'状态则有过账未完成 ``` > **说明**:通过关联凭证流`VBFA`找到销售订单对应的所有交货单,检查`VBUK-WBSTA`是否均为'C'[^1][^3]。 #### 方法2:使用标准事务代码 1. **VL03N(查看单个交货单状态)** 输入交货单号 → 抬头状态中检查**"交货状态"** 是否为 **"已完成"**(对应`WBSTA = 'C'`)[^3]。 2. **VA03(销售订单全局状态)** 输入销售订单号 → 在 **"状态"** 标签页: - 若显示 **"完全处理"** 且无警告图标,示所有交货单过账完成[^1]。 #### 方法3:开发定制报(推荐) ```abap DATA: lt_vbup TYPE TABLE OF vbup. SELECT * INTO TABLE lt_vbup FROM vbup WHERE vbeln = lv_vbeln "销售订单号 AND ( gbsta <> 'C' OR gbsta IS INITIAL ). "筛选未完成项 IF lt_vbup IS INITIAL. MESSAGE '所有交货单过账完成' TYPE 'S'. ELSE. MESSAGE '存在未过账交货单' TYPE 'E'. ENDIF. ``` > **逻辑**:检查销售订单所有行项目的`VBUP-GBSTA`是否均为'C'[^1][^3]。 --- ### **关键注意事项** 1. **部分过账场景** 若交货单仅部分过账,`VBUK-WBSTA`会显示为 **'B'(部分处理)**,需检查库存或批次是否充足(参考引用[3]案例)[^3]。 2. **状态同步延迟** 大规模过账时(如引用[1]的批量处理),需确认后台任务是否全部执行完毕[^1]。 3. **增强需求场景** 如需记录订单交货单关系(如引用[2]的委外采购场景),需通过增强字段存储关联关系[^2]。 --- ### **
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值