尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

SAP MIGO消息输出配置:实现物料凭证自动化打印与通知

SAP MIGO消息输出配置:实现物料凭证自动化打印与通知 1. 项目概述为什么MIGO的MESSAGE OUTPUT值得你花时间配置如果你在SAP MM物料管理模块里泡过一段时间肯定对MIGO这个事务代码不陌生。每天成百上千的物料移动、库存调整、采购订单收货都离不开它。但不知道你有没有遇到过这种情况操作员在MIGO里做完一笔收货系统提示“物料凭证XXXX已创建”然后呢然后就没有然后了。仓库同事可能还在等纸质单据财务同事可能不知道这笔业务已经发生或者更糟——操作员自己都忘了刚才做的凭证号等到后续对账或冲销时只能凭记忆大海捞针。这就是MIGO标准功能的一个小“盲区”。它忠实地记录了每一笔业务但信息的传递却止步于操作者的屏幕。MESSAGE OUTPUT配置就是为了打通这“最后一公里”而存在的。简单说它能让SAP在创建物料凭证后自动触发一个“输出”动作比如打印一张标准的收货单、发送一封包含凭证详情的邮件或者生成一个PDF文件存档。这不仅仅是省去了手动点击“打印”按钮的麻烦更是将业务流程自动化、标准化减少人为错误和信息滞后。从技术角度看MESSAGE OUTPUT是SAP输出控制Output Control体系的一部分它基于条件技术Condition Technique将业务事件如凭证创建与输出媒介如打印、邮件、输出格式如单据样式和接收者动态地绑定在一起。配置它意味着你正在将SAP从一个被动的记录系统转变为一个主动的沟通节点。对于物料管理、仓库、财务乃至审计流程来说这种自动化的信息流至关重要。接下来我会以一个资深顾问的视角带你从设计思路到实操细节彻底搞懂这套配置。2. 核心思路与方案设计构建自动化信息分发的逻辑骨架在动手配置之前我们必须先想清楚我们要什么给谁什么时候给用什么方式给一套清晰的方案设计能避免后续的反复修改。2.1 输出场景与需求分析首先我们需要枚举MIGO中所有可能需要自动输出的物料凭证类型。最常见的有采购订单收货101收货完成后自动打印收货单一式多联分别用于仓库留存、送货司机签收、提交财务。其他收货如102、122对于生产退料、其他收货等也需要有单据凭证。发货261、201等向生产车间发货或消耗性物料领用时自动打印领料单。库存转移311、309仓库内库位转移时生成转移单便于仓库管理员现场核对和记账。初始库存上载561在上传期初库存时为每一笔记录生成确认单用于数据核对。对于每一种移动类型Movement Type我们都需要明确输出时机是“凭证保存时”立即输出还是“凭证过账后”输出通常选择“保存时”以确保信息的即时性。输出媒介本地打印LP01直接连接到MIGO操作员电脑的打印机。适合需要立即取走纸质单据的场景如给送货司机。远程打印LP02输出到某个网络打印机队列。适合在固定地点如仓库办公室集中打印所有单据。电子邮件将凭证内容以邮件正文或附件形式发送给相关责任人如采购员、财务应付会计。归档ARCH生成PDF直接存入SAP归档系统或指定的网络路径用于电子存档。输出格式表单SAP提供了标准的物料凭证打印表单如RM07MLBS。但公司通常会有自己的格式要求这就需要开发或配置自定义的Smart Form或Adobe Form。接收者确定单据发给谁邮件发给谁这通常需要通过配置输出确定程序Output Determination Procedure来定义可以基于采购订单中的采购组、工厂、库存地点等条件来决定。2.2 技术方案选型条件技术详解MESSAGE OUTPUT的核心是SAP的条件技术。你可以把它理解为一个智能的“IF-THEN”规则引擎。整个配置链路如下业务对象 - 输出类型 - 条件记录 - 输出处理业务对象Application对我们而言就是“物料凭证”Material Document。在SAP中其应用标识通常是WE01或WE。输出类型Output Type为物料凭证定义不同的输出目的。例如NEU新建物料凭证的输出最常用。STO库存转移单输出。你可以根据公司需求创建多个如NEU_PRINT用于打印NEU_MAIL用于邮件通知。条件记录Condition Records这是配置的精华所在。它定义了在什么条件下触发哪个输出类型并指定具体的输出参数如打印机、邮件地址、份数。访问顺序Access Sequence系统查找条件记录时所遵循的优先级路径。例如先按“工厂移动类型”找找不到再按“工厂”找最后找一个通用的。条件表Condition Table定义了条件记录的关键字段组合。例如可以创建一张表包含字段工厂WERKS、移动类型BWART、库存地点LGORT。这样你就可以为“工厂1000下所有261移动类型的发货”配置统一的打印设置。输出处理Processing Routines定义输出数据的格式和发送方式这里关联到具体的打印表单或邮件模板。实操心得在项目初期不要追求过于复杂的条件组合。建议先从最通用、最核心的场景开始比如“所有101收货都打印到仓库打印机”。先让流程跑起来再根据业务部门的反馈逐步细化条件例如为贵重物料收货增加邮件通知给财务。一次配置过细容易出错且难以测试。3. 配置全流程详解从后台到前台的一步一图理论清晰后我们进入实战环节。以下配置均在SAP后台SPRO中完成。3.1 第一步定义输出类型Output Type这是定义“我们要做什么”的环节。进入事务代码SPRO导航至物料管理-库存管理和实际库存-物料移动-物料凭证-定义输出类型。点击“新条目”。填写关键字段输出类型例如输入NEU。这是你自定义的标识建议有含义如ZNEU。名称输入描述如“物料凭证创建打印”。应用程序选择WE01物料凭证。合作方通常选择LS装运。传输方式选择输出媒介如1表示打印6表示邮件。这里可以先选一个具体设备在条件记录里定。默认值可以设置默认打印份数、立即输出标识等。保存。一个输出类型就定义好了。你可以为打印、邮件、归档分别创建不同的输出类型例如ZNEU_PRINT,ZNEU_MAIL。3.2 第二步配置输出确定程序Output Determination Procedure这是定义“系统按什么顺序去找输出规则”的环节。一个程序里可以包含多个输出类型并规定它们的优先级。SPRO路径物料管理-库存管理和实际库存-物料移动-物料凭证-定义输出确定程序。创建新的确定程序如ZMIGO。在程序内分配步骤Step步骤从10开始以10递增如102030。计数器同一步骤内可以有多个计数器用于区分同一输出类型的不同条件通常从1开始。输出类型填入你上一步定义的输出类型如ZNEU_PRINT。需求这里可以关联一个需求编号Requirement用于更复杂的控制逻辑例如只有特定工厂的凭证才输出。初期可以不填。缺省如果勾选则即使没有找到条件记录也会尝试用输出类型中的默认值执行输出。慎用容易导致垃圾输出。保存。一个简单的程序就包含了ZNEU_PRINT这一个输出步骤。3.3 第三步分配输出确定程序告诉SAP对物料凭证这个业务对象使用我们刚创建的确定程序。SPRO路径物料管理-库存管理和实际库存-物料移动-物料凭证-分配输出确定程序。在“物料凭证”行将“输出确定过程”字段填入你创建的确定程序名如ZMIGO。保存。3.4 第四步定义访问顺序和条件表核心这是配置中最灵活也最关键的一步决定了输出规则的精细度。3.4.1 先创建条件表Condition Table事务代码/NSPRO路径物料管理-库存管理和实际库存-物料移动-物料凭证-信息控制-维护条件表。点击“创建”输入一个数字编号如501和描述。从字段目录中选择你需要的字段。对于MIGO输出常用字段有工厂WERKS移动类型BWART库存地点LGORT物料凭证类型BLART生成并保存条件表。3.4.2 再创建访问顺序Access Sequence同一SPRO路径下进入维护访问顺序。创建新的访问顺序如ZMIGO。为这个访问顺序分配你刚创建的条件表。可以分配多个系统会按你定义的顺序102030...依次查找。例如步骤10使用条件表501字段工厂移动类型。步骤20使用条件表500字段仅工厂。步骤30使用条件表000通用无字段。这样系统会先找最精确的匹配工厂移动类型找不到再找次一级的仅工厂最后找不到则用通用设置如果配置了的话。3.4.3 将访问顺序分配给输出类型回到定义输出类型SPRO。找到你定义的输出类型如ZNEU_PRINT双击进入更改模式。在“访问顺序”字段填入你创建的访问顺序如ZMIGO。保存。3.5 第五步创建条件记录Condition Records这是最后一步也是业务顾问最常操作的一步在前台完成。事务代码NACE。输入你的输出类型如ZNEU_PRINT和应用程序WE01。点击“条件记录”按钮。系统会根据你为输出类型分配的访问顺序要求你输入关键字段值。例如如果你的访问顺序第一步用的是包含“工厂”和“移动类型”的条件表那么这里就会弹出这两个字段。输入具体的值例如工厂1000移动类型101。在后续屏幕中配置具体的输出参数打印机输入目标打印机的SAP设备名称如SAP_LOCAL。打印份数例如3。立即输出通常勾选表示凭证保存后立即输出无需人工干预。发送时间选择“立即”。保存。这条条件记录就生效了。它意味着在工厂1000下执行移动类型101采购订单收货并保存物料凭证时系统会自动按照此记录向指定打印机输出3份单据。注意事项条件记录的维护是客户端相关的。在开发机DEV配置好后如果需要传输到测试机QAS和生产机PRD必须使用事务代码NACE的“传输”功能或者将条件记录包含在传输请求Transport Request中。直接后台配置的对象输出类型、程序、访问顺序等通过常规的传输请求传输。4. 高级配置与深度优化基础配置完成后可以针对复杂场景进行优化让输出控制更智能。4.1 使用需求Requirement进行动态控制有时仅靠字段组合工厂、移动类型不足以判断是否需要输出。例如“只有采购订单收货101且收货数量大于100时才需要打印”或“只有特定库存地点的发货才需要通知主管”。这时就需要用到“需求”。创建需求通过事务代码CMOD进入SAP增强点Enhancement管理在输出控制的相关增强点如MV50AFZ1中编写ABAP代码。需求是一个函数模块返回一个布尔值SPACE表示不满足需求X表示满足。* 示例仅当移动类型为101且收货数量100时输出 IF T16BW-BWART 101 AND MSEG-ERFMG 100. REQUIREMENT_MET X. 满足需求 ELSE. REQUIREMENT_MET . 不满足需求 ENDIF.在输出确定程序中分配需求在定义输出确定程序的步骤里将创建好的需求编号填入“需求”字段。这样只有当需求被满足时系统才会继续执行该输出步骤。4.2 配置邮件输出邮件输出比打印更复杂因为它涉及接收人地址的动态获取。定义输出类型创建一个新的输出类型如ZNEU_MAIL传输方式选择6电子邮件。配置条件记录在NACE中为该输出类型创建条件记录。关键配置在“通信”页签接收人可以固定填写邮件地址但更灵活的方式是使用合作伙伴确定Partner Determination。这需要配置合作伙伴方案将物料凭证与业务伙伴如采购订单的采购员、供应商主数据的联系人关联自动获取其邮箱。邮件文本可以关联一个文本ID维护标准的邮件正文模板。也可以使用Smart Form设计更美观的邮件内容。附件通常将物料凭证的打印表单如PDF作为邮件附件发出。合作伙伴确定配置这是一个相对独立的配置体系SPRO:物料管理-采购-合作伙伴确定需要为物料凭证分配合作伙伴方案并确保合作伙伴主数据中维护了有效的电子邮件地址。4.3 自定义打印表单SAP标准表单RM07MLBS可能不符合公司的单据格式。这时需要开发自定义表单。工具选择SAP主流表单工具有Smart Forms和Adobe Forms。Smart Forms更传统与SAP集成度极高Adobe Forms基于PDF标准排版能力更强是现代项目的首选。开发流程使用事务代码SFPAdobe Form或SMARTFORMS创建新表单。设计表单布局绑定物料凭证相关的数据源如表MKPF,MSEG。激活表单。关联输出在输出类型配置或条件记录中将“打印程序”和“表单”字段指向你新开发的自定义表单。5. 测试、监控与问题排查实录配置完成后不经过充分测试就上生产是极其危险的。以下是一套完整的测试和运维方法。5.1 端到端测试流程单元测试在开发或测试环境使用NACE查看条件记录是否已正确创建。使用事务代码WE20检查输出设备打印机、邮件服务器配置是否正常。集成测试执行MIGO做一个简单的移动如101收货。保存凭证后不要立即关闭窗口。查看MIGO界面状态栏或点击“凭证” - “显示物料凭证”在凭证的“消息”视图或“抬头”视图中应该能看到一个“输出”状态。如果成功会显示“已处理”或给出输出编号。立即去检查目标打印机是否有输出或检查发送的邮件。批量测试测试不同工厂、不同移动类型、不同库存地点的组合确保条件逻辑正确没有遗漏或错误触发。5.2 常见问题与排查技巧即使经验丰富踩坑也在所难免。下表整理了最常见的问题及解决方法问题现象可能原因排查步骤与解决方案MIGO保存后无任何输出系统也无提示。1. 输出确定程序未分配给物料凭证。2. 输出类型在确定程序中的步骤未被触发需求未满足。3. 条件记录不存在或关键字段不匹配。1. 检查SPRO中“分配输出确定程序”是否正确分配。2. 在MIGO保存后用ME23N查看采购订单或直接查物料凭证MB03进入“消息”视图看输出记录的状态。如果是“未处理”说明条件不匹配或需求未过。3. 使用NACE模拟输入凭证的关键字段工厂、移动类型等查看系统能否找到对应的条件记录。系统提示“输出已触发”但打印机没反应。1. 打印机设备未在SAP中正确配置WE20。2. 操作系统默认打印机设置问题。3. SAP Spool系统问题。1. 检查事务代码WE20确认输出设备类型为“CNSAPWIN”Windows本地打印或其它正确类型主机打印访问方法正确。2. 检查SAP GUI本地设置中的默认打印机。3. 检查事务代码SP01假脱机请求找到对应的输出请求查看其状态。如果是“已完成”但未打印尝试重新打印F8。查看错误信息。邮件未发出。1. 邮件接收人地址为空或错误。2. SAP邮件服务器SCOT未配置。3. 合作伙伴确定未配或主数据无邮箱。1. 在条件记录或合作伙伴主数据中检查邮箱地址。2. 让BASIS同事检查事务代码SCOT中的邮件服务器配置。3. 检查SP01中邮件输出的日志通常会有SMTP错误详情。输出内容错误或格式乱码。1. 打印表单选择错误。2. 表单本身有程序错误。3. 字符集不匹配。1. 确认输出类型和条件记录中关联的表单名称正确。2. 在SE80或SFP中检查并测试表单。3. 对于打印检查打印机驱动和SAP设备字符集设置。条件记录似乎不生效系统走了默认设置。输出确定程序中勾选了“缺省”。这是新手常犯的错误。在输出确定程序SPRO中检查对应输出类型步骤的“缺省”列是否被勾选。如果勾选了即使找不到条件记录系统也会用输出类型里的默认参数尝试输出。通常不应该勾选除非你明确需要一条兜底规则。5.3 日常监控与维护上线后需要建立监控机制定期检查SP01关注状态为“错误”或“等待”的假脱机请求及时处理。日志分析SAP提供了输出日志事务代码SLG1对象V1子对象NAST可以查询所有输出处理的历史和错误信息。业务反馈与仓库、财务部门保持沟通确认输出的单据/邮件是否及时、准确送达根据业务变化调整条件记录。配置MIGO的MESSAGE OUTPUT就像为物料管理流程安装了一个自动化的神经末梢。它不改变核心业务逻辑却极大地提升了流程的顺畅度和数据的可见性。从简单的自动打印到复杂的条件化邮件通知这套机制的灵活性足以支撑起一个现代化仓库或工厂的信息流转需求。最关键的是一旦配置妥当它就在后台默默工作将人为失误和沟通延迟降到最低。
返回列表