news 2026/10/28 19:37:19

SAP-SD交货单类型详解:J/7/T/G四大凭证类别的原理与配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAP-SD交货单类型详解:J/7/T/G四大凭证类别的原理与配置

简介:本资源是一份聚焦SAP SD模块交货单类型配置与应用的深度解析文档,面向SAP ABAP开发人员、SD顾问、实施工程师及企业内部系统运维人员,解决交货单凭证类别、编号规则、订单参照逻辑、库存选址、输出控制、错误处理及WM集成等核心配置难题。文档以PDF格式呈现,共1个文件,大小191KB,内容结构清晰,覆盖J/7/T/G四类凭证含义、NR内部分配与外部范围号机制、201/202项目需求差异、V2输出应用、途径确定规则(A/B空白)、交货分解仓库校验、自动包装与包材项目生成、合作伙伴确定、再计划提示及屏幕显示范围(UALL/UHAU/UMAR)等16项关键参数的实际配置逻辑与业务影响。已有986人学习下载,读者可直接掌握交货单类型在销售出库、退货、内向收货及零售场景下的差异化设置要点、典型报错(如000043路径不一致)根因与规避策略,是SAP SD模块配置落地与问题排查的实用型参考指南。

1. SAP-SD里的“交货单类型”到底是什么:就像快递公司的运单模板,选错就发不了货

你有没有遇到过这种场景:在系统里点开“创建交货单”,刚输完订单号,系统突然弹出红色报错——“凭证类型不匹配”“无法参考该订单”“项目不可编辑”……明明货都备好了,单子却卡在第一步?这不是操作手误,而是你没看清背后那个隐形的“指挥官”:交货单类型(Delivery Type)。它不是个普通下拉选项,而是SAP-SD模块中控制整张交货单行为逻辑的“基因编码”。打个比方:它就像快递公司给不同业务配的运单模板——普通电商发货用“标准件运单”(J),退货用“逆向物流单”(T),门店调拨用“内部转运单”(7),而生鲜超市凌晨补货可能要用专属的“冷链零售单”(G)。选错类型,系统连仓库怎么找、包装怎么打、文本怎么印、甚至能不能手动加一行货,全都会按错的模板执行。很多人以为只是改个字母,结果上线后才发现:退货单不能自动带包材、跨公司调拨单漏了路径重算、零售单打印时缺了促销标签……这些都不是Bug,是类型配置没对上业务真实动作。搞懂它,不是为了背下J/7/T/G四个字母,而是掌握一套“让系统听懂你要干什么”的翻译规则。这份资料,就是把这套规则从SAP后台的参数迷宫里拎出来,用你能立刻对照、马上验证的方式讲清楚。

2. 凭证类别与数字系统:为什么J/7/T/G这四个字母能决定整张单的命运

2.1 凭证类别:四张“身份证”,每张对应一套独立行为规则

SAP-SD里所有交货单都必须挂靠一个凭证类别(Document Category),它用单个字母标识,但背后是一整套预设逻辑。这不是命名习惯,而是系统硬编码的触发开关:

  • J(Normal Delivery):最常用的“常规发货单”。它默认启用库存选址、自动包装、路径重算(A模式)、合作伙伴确定等全套功能。当你在销售订单行项目上双击“创建交货单”,系统默认弹出的就是J类型——因为它假设你正要把货发给客户。
  • 7(Inbound Delivery):专为“内向收货”设计。注意,它和采购收货(如MIGO)不同,特指销售端发起的内部调拨,比如A工厂把货调给B仓库。它禁用客户相关字段(如付款条件),但强制启用WM仓库校验(交货分解-仓库编号勾选),因为内部调拨对仓码一致性要求极高。
  • T(Returns Delivery):退货单的“反向引擎”。它自动反转库存移动类型(从+101变成-101),禁用标准输出(不打印运单),但激活退货专用文本确定过程(比如自动生成“退货原因说明”段落)。如果这里误配成J,系统会试图按发货逻辑扣减库存,导致账实严重不符。
  • G(Retail Delivery):零售行业的“特供版”。它默认启用UALL显示范围(所有行项目强制可见),关联POS系统接口字段,并在输出确定过程中跳过部分税务校验——因为超市扫码结账的退货,和工厂发货的流程根本不在一个维度上。

提示:这四个字母不是随便定的。SAP底层用它们索引不同的程序出口(User Exit)和增强点(BADI)。改一个字母,相当于换了一套发动机控制系统,不是换个车标那么简单。

2.2 数字系统:三套编号规则,管住“谁来编号、怎么编号、编到哪”

交货单必须有唯一编号,但编号权可以交给系统或外部。数字系统(Number Range)就是分配这个权力的裁判:

  • NR 内部分配(Internal Number Assignment):系统自动生成流水号。比如设定范围1000000–1999999,那么第1张J单是1000001,第2张是1000002……它保证绝对不重复,但号码无业务含义。适合对编号无特殊要求的场景,比如内部调拨单。
  • 外部范围号(External Number Assignment):由用户或上游系统(如电商平台)输入编号。比如淘宝订单号TB202405001直接作为交货单号。此时系统只做格式校验(长度、字符),不参与生成。但风险在于:若人工输错,系统无法自动纠错,后续对账会卡死。
  • 项目号增量(Item Number Increment):控制行项目编号的步长。默认是10(10,20,30…),这样方便在中间插入新行(比如在10和20之间插一行,编15)。如果业务需要按批次分组(如1001-1099为A批次,2001-2099为B批次),这里就要改成100。否则后期想按批次筛选,数据库里全是散乱数字。
# 示例:SAP后台配置中数字系统的关键字段(事务码OVLP) # NR_INTERNAL = 'X' # 启用内部分配 # NR_EXTERNAL = ' ' # 禁用外部输入 # ITEM_INCR = 10 # 项目号步长为10 # NUMBER_RANGE = 'ZDEL' # 指向编号范围对象ZDEL(含1000000-1999999)

这段配置代码说明:当NR_INTERNAL='X'时,系统会从ZDEL范围里取下一个可用号;若ITEM_INCR=10,则第一行项目号为10,第二行为20。如果某次配置把ITEM_INCR错设为1,后续所有行项目号变成1,2,3……表面看没问题,但当业务要按“10开头的项目”批量修改时,SQL查询WHERE ITEM_NO LIKE '10%'将完全失效——因为根本不存在10开头的号。

2.3 订单参考:三道“闸门”,决定这张单能不能脱离订单独立存在

交货单和销售订单的关系,不是简单的“父子”,而是可配置的“契约”。订单参考设置就是签这份契约的条款:

  • 要求订单(Order Reference Required):最严格的“绑定模式”。一旦勾选,创建交货单时必须输入销售订单号(VA01生成的SO),且该订单的类型必须匹配此处定义的“允许的订单类型”。比如这里只允许OR(标准订单),但你输了个RE(退货订单),系统立刻报错:“凭证类型不兼容”。这是防止销售部绕过信用检查直接发货的铁闸。
  • 省缺订单类型(Default Order Type):最灵活的“松绑模式”。勾选后,创建交货单时可以不输订单号(即“无单发货”),但后续开票(VF01)时,系统会强制要求你指定一张订单来生成发票。典型场景是STO(公司间调拨):工厂A先发一车货到工厂B(无销售订单),等货到了,B再根据实际收货量创建采购订单并开票。这里的“省缺订单类型”就决定了VF01默认带出的发票类型(如IV)。
  • 项目需求(Item Determination):最精细的“行级锁”。设为201时,交货单抬头创建后,行项目区域完全灰显,无法手动新增、删除或修改任何行——所有项目必须从源头订单带过来。设为202则开放编辑。很多企业用201防业务员私加赠品或替换物料;但若遇上紧急补货需临时加一行,201就成了绊脚石。

注意:这三项不是互斥的。比如某零售客户要求“必须有订单才能发货(要求订单=ON),但允许在订单基础上增减数量(项目需求=202)”,就需要同时开启前两项,关闭第三项的限制。

3. 凭证内容与特殊功能:从仓库选址到自动打包,一张单背后的20个决策点

3.1 库存选址规则:系统怎么知道该去哪个仓库捡货?

“库存选址”(Stock Determination Rule)不是简单查库存表,而是一套多层过滤器。它按优先级顺序执行:

  1. 首选:MRP区域+存储地点(如工厂0001的成品仓1000)
  2. 次选:批次管理规则(如优先发生产日期最新的批次)
  3. 兜底:动态计算(如按最小拣货路径,选离打包台最近的仓位)

配置时选中的规则ID(如0001),实际指向后台表T189(库存确定规则)。如果规则里没定义“按批次有效期排序”,而业务要求“先进先出”,那系统永远按入库时间排,过期品可能被优先发出。更隐蔽的坑是:规则本身正确,但未在交货单类型中激活——就像给汽车装了GPS,却忘了打开导航开关。

3.2 输出确定过程:运单、发票、短信,谁先发谁后发?

“输出确定”(Output Determination)本质是事件驱动的自动化流水线。它监听交货单的特定状态变化(如“已保存”“已过账”),然后触发预设动作:

  • 时机:V2(交货单保存时) vsV3(交货单过账时)
  • 媒介:LOCL(本地打印机) vsMAIL(邮件) vsEDI(电子数据交换)
  • 内容:LD00(标准运单) vsZRET(定制退货通知)

关键陷阱在于:同一张单可能触发多个输出。比如J类型配置了V2+LOCL+LD00(保存即打运单)和V3+MAIL+ZRET(过账后发邮件),但如果网络打印机故障,V2步骤失败,整个交货单保存会被阻塞——因为SAP默认将输出设为“同步执行”。解决方案是把V2改为异步(在输出类型配置中勾选“发送后台作业”),但这就要求运维团队监控后台作业队列,否则运单可能延迟数小时才打出。

3.3 自动包装与包装物料项目:为什么你的包材没自动出现?

自动包装(Automatic Packing)功能依赖三个条件同时满足,缺一不可:

  1. 包规已建(事务码POP1):为物料主数据维护包装层级(如1箱=24瓶,1托=40箱)
  2. 包规已激活(事务码POF1):在工厂层面启用该包规
  3. 交货单类型中勾选“自动包装”且“生成包装物料项目”

最常踩的坑在第3步:很多配置员只勾了“自动包装”,却忘了勾“生成包装物料项目”。结果系统计算出需要2个纸箱,但行项目里只有商品,没有纸箱物料行。这是因为“自动包装”只做计算,“生成包装物料项目”才是把计算结果落地为实际行项目的开关。而后者生效还有隐藏条件:包材物料主数据(MM02)中必须维护销售视图,且“包装物料类型”字段(VHAR)不能为空——否则系统认为“这不是可销售的包材”,拒绝生成行项目。

-- 验证包材是否满足条件的SQL(需在SAP HANA或ABAP层执行) SELECT MATNR, VHAR, VTWEG, SPART FROM MARA WHERE MATNR = 'PACK_BOX_001' -- 包材料号 AND VHAR <> '' -- 包装物料类型非空 AND EXISTS ( SELECT 1 FROM MVKE WHERE MATNR = MARA.MATNR AND VTWEG = '10' -- 销售组织10已维护 );

这段查询检查包材PACK_BOX_001是否同时满足:有包装类型定义、且在销售组织10下启用了销售视图。如果返回空集,自动包装功能必然失效。

3.4 途径确定:重量组重算路径,A/B模式差在哪?

“途径确定”(Route Determination)解决的是“货走哪条路”的问题。它和订单上的运输路径不是简单继承,而是可重算的:

  • 空白:完全继承订单路径,哪怕订单路径是错的也照搬
  • A模式:按重量组(Weight Group)重新计算路径,且允许人工覆盖为任意有效路径
  • B模式:按重量组重新计算路径,但人工只能覆盖为“计划路径”(Planned Route)

什么是“计划路径”?它定义在表TROAL中,是预先配置好的、经物流部审批的合规路径库。比如:

  • 计划路径R001:上海→南京(高速,限重40吨)
  • 计划路径R002:上海→南京(国道,限重20吨)

如果订单没填路径(为空),B模式下你可以自由选R001或R002;但如果订单填了R003(一条未审批的野路),B模式会报错000043,提示“订单路径无效”,强制你改用R001/R002。A模式则不管三七二十一,直接让你选任意路径——灵活性高,但合规风险大。

4. 常见误区与易混概念:J不是“发货”,7不是“收货”,T不是“退货单”

4.1 易混点1:J类型 = 正常发货?

→为什么混:中文翻译“正常交货单”让人以为它覆盖所有发货场景。
→怎么区分:J类型默认启用“客户主数据校验”,如果收货方不是客户主数据里的有效客户(如填了供应商编码),系统会报错。而真正的“无客户发货”(如样品寄送)应该用专门的LF类型(虽不在J/7/T/G之列,但属同一配置体系)。J的本质是“面向客户的销售发货”,不是“所有发货”。

4.2 易混点2:7类型 = 内向收货?

→为什么混:摘要描述写“内向收货单”,但SAP里“内向收货”(Inbound Delivery)特指采购收货(MIGO),而7类型实际是“销售端发起的内部交货”。
→怎么区分:7类型的移动类型是601(销售发货),不是采购的101;它的会计科目走销售成本,不是采购应付。它解决的是“销售组织A把货调给销售组织B”的问题,本质是销售内部流转,不是采购入库。

4.3 易混点3:T类型 = 退货单?

→为什么混:名字叫“退货单”,但T类型创建的单据,会计上仍是“销售发货”(移动类型651),只是方向相反。
→怎么区分:真正的财务退货(冲销收入)需要后续开红字发票(Credit Memo),T类型只管实物退回。如果只建T单不过账,库存不回冲;如果过账但没开红票,利润表虚高。T单是物流动作,红票才是财务动作,二者必须配对。

4.4 易混点4:G类型 = 零售行业专用?

→为什么混:看到“零售”就以为只适用于超市、便利店。
→怎么区分:G类型的核心特征是“弱化客户主数据强管控、强化POS集成”。它禁用部分信用检查,但强制启用UALL显示范围(所有行项目可见)。所以某些快消品企业的分销商返利结算单,因需展示全部返利明细行,也会借用G类型——和零售无关,只因显示逻辑匹配。

4.5 易混点5:“省缺订单类型” = 可以不要订单?

→为什么混:字面理解为“不需要订单”。
→怎么区分:它只是放宽了交货单创建时的输入限制,但后续所有凭证链(尤其是开票VF01)仍强制要求关联订单。所谓“省缺”,是指系统自动帮你填上一个默认订单类型(如OR),而不是真能脱离订单闭环。没有订单的交货单,在财务月结时会成为悬案——无法确认收入,也无法结转成本。

5. 什么时候用、什么时候别用:一份来自血泪经验的配置决策清单

5.1 选J类型的黄金场景与死亡红线

该用J的时候:

  • 标准B2B销售:客户下单→工厂备货→发货→开票→收款,全流程闭环。
  • 客户有完整主数据(含信用额度、付款条件、地址),且所有字段需严格校验。
  • 需要全程跟踪:从拣货(WM)→打包→运输→签收(ASN),每个环节都要留痕。

绝对别用J的时候:

  • ✖️ 给内部部门发样品(收货方无客户主数据)→ 改用LF或自定义类型
  • ✖️ 处理客户投诉补发(需关联原订单但原订单已关闭)→ 改用RE(退货相关交货)配合特殊订单类型
  • ✖️ 跨公司调拨(收货方是另一家法人)→ 必须用NLCC(公司间交货),J类型无法过账

血泪教训:某公司曾用J类型处理经销商返利实物兑付,因返利单无正式销售订单,强行关联测试订单。结果月结时系统发现“J单无对应开票凭证”,自动冻结所有J类型交货单过账,导致当月300+张发货单积压,物流停摆2天。从那以后,我们每次配置新业务场景,都强制走一遍“凭证流沙盘推演”:从创建交货单→过账→开票→收款,每一步检查类型是否匹配。

5.2 7类型与T类型的生死边界:一张单,两个世界

7类型(内向交货)的适用边界:

场景是否适用原因
工厂A调货给工厂B(同集团)✔️属于销售组织内部流转,移动类型601
供应商直送VMI仓(货权属我司)✖️这是采购行为,应走MIGO收货
客户退货暂存质检区(待判定)✖️实物在客户处,应走T类型先收货

T类型(退货交货)的适用边界:

场景是否适用原因
客户拒收整单货物(货在运输途中)✔️创建T单,移动类型651,库存回冲
客户退回部分货物(需重新发货补足)✔️T单过账后,立即建新J单补发,形成闭环
仓库盘点发现短少(无客户退货)✖️这是盘亏,应走711移动类型做库存调整

关键区别:7类型是“销售组织主动发起的内部调拨”,T类型是“响应客户退货请求的被动接收”。混淆二者,轻则库存账实不符,重则引发集团内关联交易税务稽查风险。

5.3 G类型的隐藏陷阱:零售≠所有线下场景

G类型看似为零售设计,但真正决定是否启用它的,是三个技术参数:

  • DISPLAY_RANGE = 'UALL'(必须显示所有行项目)
  • OUTPUT_TYPE = 'ZPOS'(必须对接POS系统输出)
  • PARTNER_DETERMINATION = '0002'(合作伙伴确定过程跳过客户主数据校验)

如果某次配置只改了DISPLAY_RANGE,其他两项没配,G单就会:

  • 在前台显示所有行(符合预期)
  • 但打印运单时崩溃(因ZPOS输出类型未定义)
  • 且收货方地址栏为空(因合作伙伴确定失败)

安全替代方案:当只需“显示所有行”时,直接在交货单类型中将DISPLAY_RANGE设为UALL,类型仍用J。G类型应是“三参数齐备”的完整解决方案,而非仅解决显示问题的快捷方式。

5.4 数字系统的致命组合:外部编号+项目号增量=灾难

曾有个案例:某电商客户要求交货单号=淘宝订单号(外部编号),同时因促销活动需频繁拆单,要求项目号步长为1(1,2,3…)。配置员照做了,结果上线后:

  • 第1张单:TB1000001,项目1,2,3
  • 第2张单:TB1000002,项目1,2,3(因步长1,系统从1开始重计)
  • 导致所有报表按项目号排序时,TB1000001的第3行和TB1000002的第1行混在一起,无法区分归属

正确解法:外部编号必须配内部分配的项目号(即NR_INTERNAL='X'+ITEM_INCR=10)。系统会为每张单独立生成项目号(TB1000001:10,20,30;TB1000002:10,20,30),既满足外部单号要求,又保证行项目可追溯。

5.5 最后一道防线:配置前必做的三件事

  1. 画凭证流图:手绘从销售订单→交货单→发票→收款的每一步,标出每张单的类型、移动类型、会计科目。如果某环节类型缺失或冲突,立刻停止配置。
  2. 跑沙盒测试:在测试系统用真实数据走一遍全流程,重点验证:
    • 创建交货单时能否顺利进入?
    • 过账后库存移动是否正确?(用MB51查移动类型)
    • 开票时能否自动带出正确发票类型?(VF01抬头字段)
  3. 查后台表依赖:确认所有启用的功能(如自动包装、途径重算)所依赖的后台表(POP1/POF1/TROAL等)均已维护,且数据状态有效。

希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/28 19:36:04

Prometheus监控告警体系:从部署到实战优化

1. Prometheus监控告警体系概述在现代分布式系统架构中&#xff0c;监控告警系统如同人体的神经系统&#xff0c;实时感知各个组件的运行状态。Prometheus作为云原生时代的监控标杆&#xff0c;其独特的Pull模型和强大的多维数据模型&#xff0c;使其成为监控领域的首选工具之一…

作者头像 李华
网站建设 2026/10/28 19:35:47

2026年5款AI编曲软件深度评测与实战指南

1. 项目概述作为一名从业15年的音乐制作人&#xff0c;我见证了AI技术如何从简单的和弦生成进化到如今能够独立完成完整编曲。2026年的AI编曲软件市场已经呈现出百花齐放的态势&#xff0c;这次我将以专业音乐人的视角&#xff0c;带大家深度体验5款最具代表性的AI编曲工具。这…

作者头像 李华
网站建设 2026/10/28 19:34:27

预处理与Krylov子空间方法:加速大规模线性方程组求解

1. 数值计算中的加速器&#xff1a;预处理器与Krylov子空间方法解析在求解大规模线性方程组时&#xff0c;我们常常会遇到病态矩阵或收敛缓慢的问题。这就像在拥堵的市区开车&#xff0c;即使知道目的地&#xff0c;也可能因为路况复杂而耗费大量时间。预处理器和Krylov子空间方…

作者头像 李华
网站建设 2026/10/28 19:33:24

工业级流动管道控件开发与性能优化实践

1. 工业级流动管道控件的核心价值在工业自动化监控和数据可视化领域&#xff0c;流动管道控件是最基础也最关键的界面元素之一。不同于普通进度条或简单动画&#xff0c;真正的工业级控件需要同时满足三个核心要求&#xff1a;精确的流体运动模拟、灵活的样式配置能力&#xff…

作者头像 李华
网站建设 2026/10/28 19:33:23

区块链开发入门:从基础原理到Solana实战

1. 为什么开发者需要从区块链基础开始学起&#xff1f;第一次接触区块链代码时&#xff0c;我盯着屏幕上的哈希值看了整整十分钟——这些看似随机的字符串究竟如何构建起价值数万亿美元的加密世界&#xff1f;这可能是每个刚入门的开发者都会经历的困惑时刻。Solana作为当前高性…

作者头像 李华
网站建设 2026/10/28 19:33:23

WinForm与WPF技术选型:10个实战案例深度对比

1. 项目概述作为一名在Windows桌面开发领域摸爬滚打多年的老手&#xff0c;我见过太多开发者在WinForm和WPF之间犹豫不决的场景。最近在技术社区看到一个有趣的讨论&#xff1a;90%的开发者可能都选错了技术方案&#xff1f;这个说法虽然有些夸张&#xff0c;但确实反映了实际项…

作者头像 李华