【南京】根据销售订单创建交货单并自动拣配、过账发货程序

该程序详细介绍了如何在南京地区根据销售订单自动生成交货单,并实现拣配和发货的自动化流程。通过使用特定的技术如WS_DELIVERY_UPDATE, ALSM_EXCEL_TO_INTERN和BAPI_OUTB_DELIVERY_C,实现了从订单到发货的高效过账处理。" 129273964,10583018,深入理解Spring Bean的创建过程,"['spring', 'java', 'IoC']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Code listing for: ZSD020  
Description: 根据销售订单创建交货单并过账发货
*&---------------------------------------------------------------------*
* 程序名称: 根据销售订单创建交货单并过账发货
* 程序名  :ZSD020
* 开发日期:2013-08-26
* 创建者  :ZCY
* 申请者  :
*----------------------------------------------------------------------*
* 概 要  :2013-08-26 初次开发
*&---------------------------------------------------------------------*

REPORT  ZSD020.

*****************************************************************
*TYPE DECLARATION
*****************************************************************

TYPES:BEGIN OF TY_TAB_UPLOAD,                        "上传文件接收表
  SHIP_POINT TYPE BAPIDLVCREATEHEADER-SHIP_POINT,    "装运点
  VBELN(10) TYPE C,                                  "订单号
  REF_ITEM TYPE RFPOS_VL,                            "项目
  DLV_QTY TYPE LFIMG,                                "交货数量
  MESSAGE TYPE STRING,
  END OF TY_TAB_UPLOAD.

TYPES:BEGIN OF TY_VBAP,
  VRKME TYPE VBAP-VRKME,
  END OF TY_VBAP.
*****************************************************************
*TYPE DECLARATION
*****************************************************************
TABLES: VBAP.
************************************************************************
* INTERNAL TABLE DECLARATION
************************************************************************

DATA:
      IT_TAB_UPLOAD TYPE STANDARD TABLE OF TY_TAB_UPLOAD,                    "上传文件接收表
      IT_INTERN LIKE STANDARD TABLE OF ALSMEX_TABLINE,                       "EXCEL文件接收表
      SALES_ITEMS LIKE STANDARD TABLE OF BAPIDLVREFTOSALESORDER,             "BAPI输入表:
      IT_RETURN LIKE STANDARD TABLE OF BAPIRET2,                             "BAPI返回参数 
      IT_SERIAL_NUMBERS LIKE STANDARD TABLE OF BAPIDLVSERIALNUMBER,          "BAPI返回参数 
      IT_EXTENSION_IN LIKE STANDARD TABLE OF BAPIPAREX,                      "BAPI返回参数
      IT_DELIVERIES LIKE STANDARD TABLE OF BAPISHPDELIVNUMB,                 "BAPI返回参数
      IT_CREATED_ITEMS LIKE STANDARD TABLE OF BAPIDLVITEMCREATED,            "BAPI返回参数
      IT_EXTENSION_OUT LIKE STANDARD TABLE OF BAPIPAREX.                     "BAPI返回参数



************************************************************************
* WORKAREA DECLARATION
************************************************************************

DATA:
      WA_VBAP TYPE TY_VBAP,
      WA_TAB_UPLOAD TYPE TY_TAB_UPLOAD,                         "上传文件接收表
      WA_SALES_ITEMS TYPE BAPIDLVREFTOSALESORDER,               "BAPI输入表:
      G_SHIP_POINT TYPE BAPIDLVCREATEHEADER-SHIP_POINT,         "装运点
      WA_INTERN LIKE ALSMEX_TABLINE,                            "EXCEL参数表
      G_DELIVERY TYPE BAPISHPDELIVNUMB-DELIV_NUMB,              "BAPI返回参数
      G_NUM_DELIVERIES TYPE BAPIDLVCREATEHEADER-NUM_DELIVERIES, "BAPI返回参数
      WA_CREATED_ITEMS LIKE BAPIDLVITEMCREATED,
      WA_RETURN LIKE  BAPIRET2.


************************************************************************
* SELECTION SCREEN DECLARATION
*******************************************
<think>我们正在处理一个关于SAP STO(库存转移订单)流程置的问题。用户希望实现:在创建STO自动生成交货单且在交货单过账后,采购方能够自动完成入库操作。根据引用内容,我们可以得到一些线索:引用[1]提到:“解决集团公司集采管理。集采公司采购订单与内部关联公司采购订单对应表,解决集采公司自动入入库,阶段性触发STO采购订单交货单创建根据交货单入库,阶段性分布反向冲销;”引用[2]则提到了采购订单_STO发货创建内向交货,以及相关的输出条件类型(SPED和SPER)和后台置路径。因此,我们需要置STO自动创建交货单交货单过账自动触发采购方的入库。在SAP中,这通常通过输出条件类型和后台置来实现。步骤大致如下:1.自动创建交货单:这通常通过输出类型(OutputType)和条件类型(ConditionType)来实现。在采购订单置输出类型,当采购订单保存时自动触发交货单创建。2.自动过账:在交货单过账发货过账)后,需要自动触发采购方的入库。这可以通过移动类型(MovementType)和自动过账置来实现。具体置步骤:一、自动创建交货单发货方)1.1定义输出类型(OutputType):使用事务码NACE,选择“采购”->“采购订单”,然后定义输出类型(例如:MEDN-内向交货单)。确保输出类型与交货单创建相关。1.2分输出确定过程(Output DeterminationProcedure):在采购订单类型中分输出确定过程。事务码:SPRO ->物料管理->采购->采购订单->定义输出类型->分输出确定过程。或者使用事务码OMEL,为采购订单类型分输出确定过程。1.3置条件记录(ConditionRecords):在采购订单中,需要为输出类型MEDN创建条件记录。这可以通过事务码ME12(修改采购订单)来完成,在采购订单的“条件”标签页中,添加输出类型MEDN,设置触发时间(例如:立即发送)和发送方式(例如:EDI或打印等,但自动创建交货单通常使用EDI或后台处理)。注意:自动创建交货单通常需要置后台处理(BackgroundProcessing),这可能需要ABAP程序支持。二、交货单自动过账发货方)当交货单创建后,发货方需要执行发货过账(使用事务码VL02N)。但是用户要求自动过账,这可能需要使用后台作业或者增强来实现。另一种方式是使用WM(仓库管理)模块的自动过账功能,但这里我们假设是使用基本的库存管理。2.1发货点(ShippingPoint)的自动过账:在发货置中,可以设置自动创建交货单自动过账。事务码:OVXD,选择发货点,检查“自动创建交货单”和“自动过账”的置。2.2置检查规则(CheckingRule):在发货过账时,系统会执行一些检查(如库存、批次等)。需要确保这些检查规则允许自动过账。事务码:SPRO->后勤执行->装运->交货->定义交货的项目类别确定->定义检查规则。三、置采购方自动入库(收货方)在STO流程中,发货发货过账后,采购方(收货方)需要做收货入库。这通常通过MIGO事务完成。但用户要求自动入库。3.1自动收货:在SAP中,可以通过置输出类型在交货单过账后触发收货。但标准功能可能不支持自动收货,可能需要开发增强。另一种方式:使用后台作业监控交货单状态,当交货单状态变为“已发货”时,自动触发收货(MB01或MIGO)。但是,引用[1]中提到:“提供SAP采购订单收货接口日志表,以WMSID为主键,防止重复提交后,异常过账,且支持同步接口,二次异步反馈凭证号即消息,允许WMS多次调用接口”,这表明可能需要接口程序。四、使用STO的特殊功能(一步法或两步法)在STO中,有两种转移方式:-一步法:发货同时自动收货。移动类型为301。-两步法:先发货(移动类型641),再收货(移动类型101)。用户的需求是自动创建交货单过账自动入库,因此我们可以考虑使用一步法(如果业务允许)。置一步法STO:4.1在采购订单的项目类别中,设置移动类型为301(一步法库存转移)。事务码:OMJJ,定义移动类型301的属性(自动过账)。4.2在创建采购订单时,使用一步法的项目类别(例如:U)。在采购订单的行项目中,项目类别U对应移动类型301。4.3当发货方对交货单过账时,系统会同时完成发货和收货的过账。这样就不需要在采购方单独做入库操作。因此,如果业务允许使用一步法,则置一步法STO是最简单的实现方式。五、置步骤总结(以一步法为例):5.1置移动类型301(一步法库存转移):事务码:OMJJ,确保移动类型301的“自动过账”标志被勾选。5.2置采购订单的项目类别:事务码:SPRO->物料管理->采购->采购订单->定义项目类别,确保项目类别(例如:U)的移动类型为301。5.3在创建STO采购订单时,使用项目类别U(或自定义的一步法项目类别)。5.4自动创建交货单(如前所述):-定义输出类型(如MEDN)给采购订单类型。-发货点(ShippingPoint)的自动创建交货单自动过账(事务码OVXD)。5.5这样,当保存采购订单时,系统会自动创建交货单(通过输出类型MEDN触发),且当发货方在交货单中执行过账(VL02N)时,系统会自动完成发货和收货(一步法)。注意:如果业务要求使用两步法,那么自动收货就需要额外的置或开发。在这种情况下,我们可以考虑使用IDOC或接口程序,在发货过账自动触发采购方的收货(MB01或MIGO)。但是,标准功能不支持两步法的自动收货,因此可能需要开发。根据引用[2]提到的输出类型SPED(用于内向交货),我们也可以考虑在交货单过账后,通过输出类型触发一个事件,例如调用一个函数模块来执行收货。但这需要ABAP开发。因此,推荐使用一步法来实现自动入库。相关问题:1.一步法和两步法库存转移的区别是什么?2.如何置输出类型以实现采购订单自动创建交货单?3.在SAP中,如何发货点的自动过账?4.如果使用两步法,如何实现自动收货?5.STO流程中,如何避免重复过账?</think>### SAP STO自动创建交货单自动入库置指南 在SAP中实现STO自动创建交货单过账后采购方自动入库,需置以下关键步骤: #### 一、核心置步骤 1. **移动类型置(一步法)** - 事务码`OMJJ`中激活**移动类型301**(一步法库存转移) - 勾选"自动过账"标志,实现发货与收货同步完成 $$ \text{移动类型301} \rightarrow \text{发货过账} = \text{收货方自动入库} $$ 2. **采购订单项目类别** - 事务码`SPRO`:物料管理 > 采购 > 采购订单 > 定义项目类别 - 为STO类型订单**项目类别U**(库存转移) - 关联移动类型301 3. **自动交货单创建** - 事务码`OVZH`:发货点的"自动创建交货单"标志 - 事务码`OVZ8`:设置交货类型为**NLCC**(内向交货) ```ABAP SPRO路径:后勤执行 > 装运 > 交货 > 定义交货类型复制控制 ``` 4. **输出控制置** - 事务码`NACE`:为采购订单输出类型**MEDN**(内向交货单) - 设置处理程序**MEDNCH**(自动触发交货单创建)[^2] $$ \text{采购订单保存} \xrightarrow{\text{MEDN输出}} \text{自动生成交货单} $$ #### 二、业务流程示例 1. **创建STO采购订单** - 事务码`ME21N`创建类型为UB(公司间)的采购订单 - 项目类别选择U,移动类型自动带出301 2. **自动触发流程** ```mermaid graph LR A[保存STO采购订单] --> B{输出类型MEDN激活} B -->|自动| C[生成内向交货单] C --> D[VL02N发货过账] D -->|移动类型301| E[自动完成收货方入库] ``` 3. **过账结果验证** - 发货方:物料凭证显示移动类型641(发货) - 收货方:物料凭证显示移动类型101(收货) - 会计凭证:自动生成GR/IR科目分录 #### 三、关键注意事项 1. **公司间结算置** - 事务码`OBYR`置公司间STO的评估级别 - 确保发货/收货工厂属于不同公司代码 2. **防止重复过账** - 引用[1]方案:建立**接口日志表**,以WMSID为主键防重 - 启用采购订单的**交货已完成**标识(JIT功能) 3. **异常处理** - 置输出类型**SPER**用于交货单撤销[^2] - 事务码`V.26`设置退货移动类型122 > **置验证点**:使用事务码`MIGO`检查收货方物料凭证,确认移动类型101是否自动生成,且会计凭证GR/IR科目平衡。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值