尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

SAP SD模块配置全复盘:从组织架构到接口传输的落地指南

SAP SD模块配置全复盘:从组织架构到接口传输的落地指南 做SAP SD模块配置这些年最常被新手问的不是后台路径而是“销售组织、定价过程、交货单、开票这些配置到底按什么顺序做才算把销售营销模块立起来”。很多人把SD理解成一个单据流转模块结果配置完发现订单建了但交货过不了账、开票金额对不上问题全出在最基础的模块联动上。这篇内容是我在企业级项目里做SD模块配置的完整复盘包含企业结构、主数据、定价、ATP可用性检查、交货开票、STMS传输、LSMW导入和跨系统接口适合正在做SD配置的顾问、以及想从运维转实施的人照着这个骨架走一遍能少踩不少坑。1. 项目背景与SD配置的整体思路1.1 先理解SD模块在业务链里的位置这次配置任务的目标是让一条完整销售业务线跑起来客户下单、可用性检查、交货、装运过账、开票、会计凭证。单纯看功能SD好像就是几个单据但真正落地时SD的每个动作都碰MM的库存、FI的科目、CO的成本对象、PP的生产批次。所以做配置前一定要先把主数据来源和单据流向画出来。有一个很典型的提问是“MOM与SAP接口主要是哪个模块”。在我们项目里MOM下发的销售订单、交货单状态回传、序列号采集全部在SD侧完成。之所以不是PP也不是MM是因为这条业务链的起点是SD销售订单订单行项目里的物料、批次和序列号信息会一路带到交货单再被MOM采集回去。配置SD时必须预留序列号、批次和可追溯字段否则接口上线后会发现MOM侧永远少数据。我习惯按五层来做组织架构、主数据、定价与控制、单据流配置、接口与传输。如果一开始就扎进某个定价过程里后面大概率要回头改结构返工成本很高。1.2 组织架构是SD模块的地基SD组织架构的核心是销售组织、分销渠道、产品组它们组合成多个“销售范围”。所有客户主数据销售视图、物料主数据销售视图、价格条件、信用额度、可用性检查全部挂在销售范围内。很多人问为什么订单上明明选择了工厂却还是找不到价格大概率就是销售范围没分配对。我这次项目的结构可以当作参考对象代码说明销售组织1000中国区销售公司分销渠道10直销分销渠道20批发产品组01成品产品组02备件工厂1001成品工厂装运点1000工厂1001的发运点配置路径在SPRO里的企业结构定义和分配节点。先定义销售组织、分销渠道、产品组再把销售组织分配给公司代码把销售组织分配给工厂最后定义装运点和装运点分配。不要小看这些分配关系它们在后台表的关联很直接一张客户主数据在销售范围内的记录没建好后面所有单据都会提示找不到客户销售范围。我建议把组织架构表单独做一个配置文档明确每个销售组织对应哪个公司代码、哪些工厂、哪些装运点因为这不仅是SD自己用MM、PP、FI的人也要对同一张表。否则到集成测试时销售范围缺失的问题会一波接一波。2. 主数据、定价与可用性检查的配置细节2.1 客户和物料主数据配置不体现在维护界面上客户主数据的配置本身不复杂复杂的是账户组和号码范围。账户组决定了客户主数据的屏幕格式、字段状态和编号范围。配置时定义客户账户组比如国内销售客户、国外销售客户、一次性客户再给每组分配号码范围。号码范围不够是很多项目上线第一天的灾难因为销售订单不断创建客户主数据号码从9万跳成负数。物料主数据的销售视图同样重要。一个常见问题就是单位转换这刚好和很多人搜的“SAP BOM物料单位转换”是一类话题。比如一个物料库存单位是“瓶”销售单位是“箱”系统里必须维护1箱12瓶的转换因子。这个内容在物料主数据基本单位视图里维护也可以在CUNI里提前维护好。如果只建物料主数据而忽略单位转换后面SD交货单拣配数量就会成倍错误。这里要特别提醒SD的可用性检查也是按销售单位计算的。如果物料主数据里销售单位是箱库存单位是瓶转换因子又漏了MD04里的可用数量会被系统理解成12倍或1/12。物料分类视图和BOM之间的单位同步也要检查很多集成单据会在BOM展开时带上不同单位最终在发货过账时报单位换算错误。2.2 定价过程与条件技术别让订单金额“静悄悄错”定价是SD模块最容易被问后台路径的地方。定价条件技术由条件类型、存取顺序、条件记录、定价过程组成。简单理解条件类型就是“价格”和“折扣”的容器存取顺序决定系统从哪里找这个容器里的值条件记录是实际存进去的值定价过程则是一堆条件类型按计算顺序排列的清单。配置时先定义条件类型比如PR00表示物料价格K005表示客户折扣MWST表示销项税。然后定义存取顺序把条件记录表按优先级放进去。最后在定价过程里把这个字段串起来。标准定价过程RVAA01是很好的参照但我不建议直接套因为不同业务的价格组成完全不同。还有一个很容易翻车的是税和含税价格。很多人搜“SAP采购订单含税价格”虽然采购订单是MM的事情但税的计算逻辑会和SD定价过程撞在一起。如果物料价格按含税价维护而定价过程里又放了标准的税条件MWST最终开票时税额会被重复计算。此时要检查定价过程中的税条件类型要么用净价加税要么在定价过程里做含税拆分这是一定要在配置文档里写明白的规则。再分享一个小工具用GS01维护集合。批量维护条件记录时可以用GS01先把客户组、物料组做成集合再在VK11里按集合批量维护PR00价格条件。这样后续新增物料只要维护集合归属不需要重新维护价格条件。这个技巧很多SD顾问知道但真正写进项目交付文档的很少。2.3 可用性检查MD04/MD07不能光看还要会用可用性检查ATP决定销售订单能不能按时承诺。它的逻辑很直白库存采购订单计划收货-已承诺需求-预留可用数量。SD的配置任务是把检查规则分配到销售凭证类型、项目类别和计划行类别上。很多项目做了自定义销售订单类型后忘了给项目类别分配检查规则结果业务说“为什么我这里没有可用量检查”打开MD04一看毛需求旁边根本没有可用数量。MD04是单个物料的库存/需求清单可以看到哪张销售订单占了多少库存哪张采购订单补充了多少。MD07则是把多个物料的需求汇总到一起看缺料情况做销售计划的人很喜欢用它。要注意的是MD07不容易看出订单修改历史如果销售订单做过冲销或缩量MD04里的元素清单反而更靠谱。这块排查逻辑也很简单先查物料主数据是否勾了“可用性检查”再查销售凭证类型的可用性检查控制最后查项目类别的检查规则。如果三个地方都配了MD04还是不对再看单位转换。顺序弄反会白白查半天因为最常错的其实是单位。2.4 序列号状态EDEL与批次追溯序列号状态EDEL是很多运维同事头疼的问题。EDEL一般表示序列号已经从库存发出进入“已交货”状态。SAP对序列号状态的更新不是靠后台刷新而是由事务驱动比如入库、发货过账、退货收货都会触发状态变化。如果发货过账完成后序列号状态停在ESTO或ESTI没有变成EDEL就要检查两件事一是物料主数据是否挂了序列号参数文件二是销售凭证的项目类别里是否维护了序列号确定过程。配置点在后勤常规里的序列号参数文件定义以及销售分销的基本功能里维护序列号确定过程。序列号参数文件决定这个物料是否需要记录序列号、发运时是否强制收集序列号序列号确定过程则决定SD订单行项目用哪种编号策略去收集。这里有一个很实际的坑手工改序列号状态比如用SE16N把EDEL改回在库很容易在下一笔交货过账时又被系统覆盖。因为状态是由事件和后续单据共同决定的单据流已经往前走单纯改状态并不能把整个关系链改回来。遇到这种问题正确做法是先把外向交货过账冲销再处理序列号状态而不是直接改表。3. 销售单据流的实操配置3.1 销售订单类型、项目类别和计划行销售订单类型的配置通常是复制标准OR类型再改成自定义Z类型。复制的好处是标准OR里的复制控制、文本确定、输出类型、定价过程都被带过来减少遗漏。很多顾问选择空白定义结果漏了一大堆设置。项目类别决定了订单行怎么处理。标准TAN是标准项目TAS是免费项目TANN是退货项目。项目类别里的“交货相关”选项尤其重要如果项目类别没有勾选交货相关系统建订单之后根本看不到交货单生成选项。计划行类别则影响可用性检查、需求传递和移动类型。创建交货单时系统根据计划行类别把库存过账到对应的移动类型。所以排查“订单能建但交货单不能建”的问题时先看项目类别和计划行类别的配置再看订单类型到交货类型的复制控制。我做过太多这种排查结果是新销售订单类型忘了配复制控制。3.2 交货、装运、WM与库存过账交货模块配置包括交货类型、装运点确定、拣配、包装和发货过账。外向交货单标准类型是LF装运点由物料主数据、客户主数据和工厂共同决定。如果装运点没分配创建外向交货单时会一直提示找不到装运点。发货过账在后台对应移动类型601。SAP集成调用或自开发常用BAPI创建外向交货单比如BAPI_OUTB_DELIVERY_CREATE_STL然后调用确认BAPI做发货过账。不要一上来就写MIGO的物料凭证移动那是在绕过SD交货单的状态管理。冲销方面很多人搜“冲销物料凭证的BAPI”。我的经验是外向交货发货过账后的冲销应该走VL09先冲销货物移动再用BAPI_GOODSMVT_CANCEL做物料凭证冲销最后处理交货单状态。直接删除交货单而不冲销物料凭证会导致MB51的物料凭证和交货单状态对不上财务对账时早晚炸出来。批次和倒冲是另一个容易联动出错的地方。生产端报工倒冲自动指定批次配置在PP但SD发货单在交货过账时也要读批次信息。如果销售订单行的批次确定没挂对系统会报批次找不到或者批次不存在于该工厂。这种问题不要只查SD要两边一起看。3.3 开票、科目确定与FI集成开票配置从开票类型开始常用F2是标准发票G2是贷项凭证L2是借项凭证。开票计划用于分期开票比如30%预付、70%发货后开票这在固定资产类销售里很常见。开票的复制控制决定销售订单或交货单能不能生成相应开票凭证。SD开票过账会自动生成会计凭证这一步依赖科目确定。科目确定由客户主数据里的账户分配组、物料主数据里的科目确定组和SD的科目确定过程共同决定。配置路径在销售分销的基本功能里定义科目确定表和科目确定过程。现在新总账和Group Reporting项目里收入科目和费用科目经常会要求维护“功能范围”。很多人问“SAP功能范围是干嘛的”简单理解就是报表按功能区分收入来源。如果SD开票的科目确定漏了功能范围开票过账就会报错或者FI清账时会发现凭证里功能范围字段是空的。做完科目确定还要给每个收入科目维护好功能范围最好在配置核查表里加一项。这里也提到“分摊分配”它本身属于CO但SD收入科目的成本对象字段会影响CO的分摊。比如销售收入挂到哪个功能范围决定了后续费用分摊能不能正确匹配。配置SD时提前和CO顾问对一张收入科目-功能范围对照表能省掉一大堆集成测试问题。3.4 传输请求与STMS配置不做传输等于白配SD配置全部做完后最后一步是释放变更请求并通过STMS传送到测试和生产系统。很多项目在开发环境配得很完整测试时也正常但传输到生产后功能时好时坏大多数情况是请求里漏了表或传了半截。建议把配置相关的请求都用定制请求传输主数据相关的用工作台请求。STMS导入后一定要检查导入状态不要只看“绿灯”还要在目标系统里回头验证配置路径。我习惯在传输完成后用SE16N查关键配置表比如定价过程表AUKO、销售组织表TVKO确认数据真的过去了。这里有个很实际的原则不要在生产系统直接改配置。有些顾问觉得“就改一个字段直接在SM30里改”。SD配置是一套强关联的表改一个字段可能涉及其他表没有被同步更新后续升级或审计时很难交代。真要紧急改也先把当前内容导出备份再从开发系统改完走传输。4. 数据迁移、查询报表与接口对接4.1 LSMW批量导入实操SD上线的最痛环节往往是主数据迁移客户主数据、物料销售视图、定价条件记录几百上千条数据不可能手工敲。LSMW是经典工具至今很多项目还在用。LSMW操作一般分这几步创建项目、子项目和对象对象类型通常选“录屏”或“BAPI”。记录前台事务比如VD01维护客户销售视图VK11维护价格条件记录。定义源结构、源字段、映射规则源数据可以从Excel或文本文件读入。读取数据、转换数据、显示数据检查无误后运行生成批导会话。执行批导会话查看成功和失败日志。LSMW最常见的错误是日期格式、小数点和前导零。比如客户主数据里工厂字段必须是前导零Excel里如果没转文本导入后字段会被截断。另一个高频坑是LSMW只导了主数据主表没有导相关附属表比如销售范围分配表。所以用录屏方式比直接BAPI更容易保持完整性因为录屏会把整个屏幕上的字段都填上。提问“SAP LSMW创建”的人很多其实LSMW创建功能并不难难的是录屏时字段顺序不稳定Excel字段顺序一旦变动映射关系就全乱了。建议在录屏前先明确源文件的列顺序并且把第一行做成字段名然后固定下来。还有一点必须反复强调LSMW用来导主数据不是用来导配置。如果只是想在配置表里新增几行请用SM30视图维护不要用SE16N直接insert很多配置表有校验和激活逻辑直接改表可能当时看不出问题后续传输或升级时爆发。4.2 MOM与SAP的接口为什么还是回到SD配置回到前面的MOM接口问题。接口端看起来是PI/PO或中间件在传消息但真正的业务逻辑还是SAP侧的数据结构。如果SD的序列号状态没走到EDELMOM那边就永远收不到“已完成发货”的回传。如果SD交货单发货过账没有成功MOM就无法拿到装配完成的批次消耗数据。所以做接口集成测试前先确保SD配置已经覆盖这几个点销售订单类型能创建项目类别能交货交货单能发货过账序列号和批次能在交货时收集开票能生成会计凭证。只要主流程没走通接口调试就是白做。配置接口时还会用到RFC目的、端口、伙伴参数文件和IDoc处理代码。老实说这些配置不在SD的IMG菜单里而是在SAP基础模块。但SD顾问要能说清楚IDoc的发送方和接收方是谁发货状态用哪张状态表否则MOM开发人员问起来不知道该找谁。建议把MOM相关接口的字段映射表做成一份独立文档特别是序列号EDEL、交货单号、物料凭证号这几个关键字段。4.3 常用查询Query报表与MD04/MD07业务平时最想要的不是后台配置而是报表。用SAP Query做一个简单的销售订单汇总比ABAP开发快很多。流程是SQ02建信息集SQ03把信息集分配给用户组SQ01创建查询最后给查询分配事务码。很多人搜“SAP Query报表怎么建Tcode”就是因为SQ01做好的查询没有分配事务码用户根本找不到。MD04和MD07也值得在SD顾问里多说一句。MD04适合单物料深挖MD07适合一堆物料汇总。业务如果反馈“库存够但订单交不了”我第一反应不是去查后台定价而是打开MD04看可用量与毛需求很多时候是另一张订单已经把库存预留了MD07只显示了毛需求没显示可承诺量。用SQ01建销售报表时也可以把MD04/MD07的数据作为辅助检查两者结合能快速判断订单是否卡在可用性检查。这块不需要高深ABAP但非常实用。5. 常见问题与排查技巧实录5.1 SD配置问题速查表症状可能原因排查方法/配置点订单能建交货单不能建项目类别交货相关没勾或复制控制没配检查项目类别、计划行类别、订单到交货复制控制MD04可用数量一直不准检查规则没分配或单位转换错误检查销售凭证类型、项目类别、物料单位发货过账后序列号状态没变EDEL序列号参数文件或序列号确定过程缺失检查物料主数据、序列号参数文件、销售项目类别开票金额和订单金额不一致定价过程少条件类型、税码错误、舍入差异条件记录、定价过程、税码配置开票过账报科目未确定科目确定组/科目确定过程没完整配置检查客户、物料、科目确定表和功能范围外系统回传交货状态为空SD发货过账没完成或IDoc状态没更新检查交货单状态、物料凭证、IDoc监控SIM模块报AApo176这类消息号多半是增强或条件记录问题不是标准配置错误用ST22看短转储查自定义条件类型、增强实施5.2 配置交付前的自检清单每次配置完成后我都会按下面这张清单过一遍少了任何一项都不敢把请求丢给测试组织架构和销售范围分配已在SPRO里配好并确认传输状态。客户主数据、物料主数据销售视图都维护了测试销售范围。定价过程覆盖标准销售、退货、免费项目和折扣场景。可用性检查已分配到销售凭证类型和项目类别MD04能正常显示。序列号参数文件和序列号确定过程已挂好交货过账后状态能更新到EDEL。开票科目确定已维护功能范围字段非空。外向交货单能创建、发货过账冲销流程走通。LSMW导入的数据在批导会话里全部成功没有遗留错单。IDoc或API的SD发货状态已回传MOM字段值正确。STMS导入日志全部成功关键配置表已回查。SD配置之所以繁琐是因为每个功能都由多张表共同决定。我自己的习惯是拿一张最简单的销售订单从VA01一路跑到VF03再补异常场景。只要是新项目这套走完基本能发现一半潜在问题。最后说一个个人经验做配置文档时不要只写后台路径把每个配置对象的前后值、截图、影响范围都写上三个月后的自己会非常感激。
返回列表